Demystifying .NET Standard

Clearing up the confusion

David Pine

5 minute read

Intro Monday, August 14th was an amazing day to be a .NET developer! As the world celebrates another triumphant series of announcements from Microsoft, there is still confusion amongst the masses. What is this .NET Standard thing? What does it mean to target .NET Standard versus .NET Core, or even the .NET Framework? As a developer, what .NET should I target and why? Are Portable Class Libraries (PCLs) dead?

Perusing C# 7.1

The language features you've been waiting for

David Pine

6 minute read

Earlier this year in March – Visual Studio 2017 was released. With this the world was given C# 7, checkout my post on “Exploring C# 7” here. In this post we will peruse C# 7.1, the first incremental release while C# 8 is being fleshed out. Async Main Since the release of C# 5, developers have either embraced the async and await keywords or fumbled along the way feebly attempting to comprehend them.

How to organize an amazing technical conference

Behind the scenes of MKE DOT NET

David Pine

6 minute read

Story Time This is my third year organizing MKE DOT NET, so I’ve been accumulating plenty of interesting stories. Last year I was fortunate enough to have convinced Scott Hanselman to be our keynote speaker. Yes, “the Scott Hanselman” - arguably the worlds most influential person in the tech industry. I was his ride to and from the airport and the conversations we had actually led to several key changes.

TypeScript - JavaScript Reimagined

"Making JavaScript tolerable"

David Pine

6 minute read

First things First JavaScript is the world’s third most common programming language today. JavaScript was created by Brendan Eich in about ten days. It might seem odd that the previous two sentences not only exist, but go together…yet it is true! JavaScript runs seemingly everywhere and applications written in this language are only getting larger. JavaScript was perhaps intended for 100, maybe up to 1,000 lines of code and now with regularity people are building 100,000 line apps, if not 1,000,000 line apps.

Exploring C# 7

Expressiveness Redefined & #notasugly

David Pine

12 minute read

Intro Since we have all been actively celebrating the 20th anniversary of Visual Studio, it felt appropriate to post about C# 7! In this post we will explore the features that make C# 7 so promising. I’ve put together a demonstration C# 7 project, that is available here. This post contains examples and details on five of the nine new C# 7 features. Pattern matching out variables Tuples Local functions throw expressions These are the remaining features, that I do not cover in this post.

Overriding ASP.NET Core Framework-Provided Services

You take the red pill—you stay in Wonderland, and I show you how deep the rabbit hole goes

David Pine

4 minute read

Overview In .NET it’s really easy to create your own interfaces and implementations. Likewise, it’s seemingly effortless to register them for dependency injection. But it is not always obvious how to override existing implementations. Let’s discuss various aspects of “dependency injection” and how you can override the “framework-provided services”. As an example, let’s take a recent story on our product backlog for building a security audit of login attempts. The story involved the capture of attempted usernames along with their corresponding IP addresses.

What happened to my Thread.CurrentPrincipal

This is not the IPrincipal you are looking for...

David Pine

4 minute read

Overview Like the title claims, if you’re using ASP.NET Core and expecting the Thread.CurrentPrincipal or ClaimsPrincipal.Current to be populated you’d be wrong. This is not the IPrincipal you’re looking for. In this post we’ll discuss what happened and what you need to do now. Additionally we’ll cover all the peripheral benefits as a result of this change. History If you have ever done any .NET Framework development, you’ve probably seen the Thread class.