by bill-s, 2020-11-02T23:24:00.653Z
.NET has been steadily adding support for improved cross-platform diagnostics tracing for applications. In .NET Core 3.0, we saw the introduction of EventCounters, used for observing metric measurements over time. These counters can be consumed out-of-process as well as in-process and are cross-platform in their design.
I’ve used counters from ASP.NET Core in a few applications, to track the number of HTTP requests handled by a service over time.
As .NET 5 has been progressing, I’ve been watching some of the work in the runtime repository which adds new telemetry counters and events to some of the core components involved in making external HTTP requests. This includes, HttpClient, Sockets, DNS and Security.
by bill-s, 2020-11-05T23:48:01.681Z
This article is a practical application of Wei-Meng Lee's May/June 2018 article: Understanding Blockchain: A Beginners Guide to Ethereum Smart Contract Programming (https://bit.ly/3i2fu2C). Of all the most talked about and hyped topics in technology today, blockchain is at the top of the list. Almost without exception, the terms blockchain and crypto currency are used interchangeably for the basic reason that crypto currencies are based on blockchain. But not all blockchains are crypto currencies. It follows that we can discuss and implement blockchain independently of crypto currencies and the peer-to-peer networks within which the blockchains that are central to crypto currencies reside.
by bill-s, 2020-11-02T16:17:10.117Z
If you have a large database, with millions of rows, and you need to run an batch operation on it, like deleting lots of old records, then you’ll quickly find that the operation often will lock the table, and prevent users get at their data – as well as bloating the transaction log table.
So, the trick is to break it down into manageable chunks. Let’s say the operation I want to run is this;
delete from log where success=0
by bill-s, 2020-11-02T23:24:29.779Z
Want to see Microsoft's vision for cloud-powered development environments that enable developers to get up and running quickly and work from anywhere on any platform? Visual Studio PM Vix Ryan shows the ease of power of GitHub Codespaces.
by rogaliusz, 2020-11-02T10:11:16.642Z
From this article, You will learn about interceptors & how to use it for handling errors, a correct way of transfer exceptions between client & server, how You can change the status code of gRPC request for better application monitoring.
by referbruv, 2020-11-03T05:26:18.376Z
Endpoint routing is a new middleware introduced starting from ASP.NET Core 3.x, which is said to replace the traditional MVC routing which has been the default routing mechanism from the good old times till the recent ASP.NET Core 2.2.
by bill-s, 2020-11-02T23:24:14.818Z
Identity Server 4 (IdS4) is an OpenID Connect and OAuth 2.0 framework for .NET core application. It’s an authentication service that provides you centralized authentication logic for different types of applications (Web, Mobile, or Services).
by bill-s, 2020-11-02T16:17:54.627Z
Here's another LINQ gem, which is very useful if you plan to base your projection or filtering logic on the element's index in a sequence.
From the MSDN page for Enumerable.Select():
Projects each element of a sequence into a new form by incorporating the element's index.
What the "incorporating the element's index" part means is that you get an extra parameter inside of the Select method's selector, which gets incremented with each processed element. As is common in C#, the index is zero-based.
by anthonygiretti, 2020-11-02T03:00:34.878Z
As you may know, in order to be able to iterate on a collection in C# with the foreach loop the collection must expose a public method GetEnumerator() which doesn’t exist on IEnumerator<T> and IAsyncEnumerator<T> interfaces. C# 9 allows to create an extension method to allow foreach loops on those interfaces. Let’s see in this article how to proceed.
by bill-s, 2020-11-05T05:26:12.888Z
Having .NET Core with NGINX on Linux is easier that you might imagine. In this article I will talk about my experience related to NGINX and what it takes to configure it for the first time. If you come from an IIS/Windows world like me, where you know everything by heart, the declarative approach in NGINX might be a bit odd.
by bill-s, 2020-11-02T23:23:30.602Z
I’m excited to announce that today we are releasing the Mobile Blazor Bindings Preview 5 update that adds support for sharing UI between web apps and mobile/desktop apps. You can now use a Razor Class Library (RCL) to build your UI and app logic once and use it in a Blazor Web app and in a Mobile Blazor Bindings app. This release also includes many other improvements, such as support for Shell with Blazor @page routing, SkiaSharp for rich graphics, gesture recognizers, and a whole lot more!
by bill-s, 2020-11-02T16:18:41.211Z
This blog post will focus on behavioral incompatibilities in .NET libraries.
So, you wrote a .NET library, you released it to the public and now you are about to make version 2.0 or 1.1 or even just 18.104.22.168b.
Any change that you are going to make has the risk of introducing one or more of these types of backward incompatibilities:
Behavioral (your library’s behavior is changing)
Source (your users’ code may fail compiling)
Binary (your users’ application may break at runtime)
by bill-s, 2020-11-02T16:18:12.221Z
Entities typically have integer, GUID or string ids, because those types are supported directly by databases. However, if all your entities have ids of the same type, it becomes pretty easy to mix them up, and use the id of a Product where the id of an Order was expected. This is actually a pretty common source of bugs.
by bill-s, 2020-11-02T17:42:58.429Z
Back in 2017, there was a party celebrating the 15th anniversary of .NET shipping. I had the opportunity to do some short interviews with folks at the party that were part of .NET way back at the beginning. You can see some of those interviews on Channel 9 at Happy Birthday .NET! After the evening was over, it occured to me that we needed to write these stories down before they get lost. That was the beginning of what has evolved into a multi-year effort to collect the tales that led to the creation and evolution of .NET. The book has been coming for awhile now, sign up here to be kept up-to-date on its development and the many stories behind creating it!