Skip to main content
Software Alchemy

The Art and Science of Software Development

Authentication and Identity

In this entry, we’ll start to add in more structural elements, namely the authentication components of the UI and Identity Model classes in our Web API. Fortunately, ASP.NET Core and Visual Studio do a lot of this work for us via scaffolding tools. Our main concern is to take this auto-generated code, modify it where needed, and move it into the appropriate layers of our Clean Architecture solution, namely the Infrastructure and Presentation layers.

If Visual Studio is your samurai sword, then the C# programming language along with patterns and practices of structured software development are your fighting techniques, principles and disciplines. In this post, I'm going to talk about some of the features of C#, versions 6, 7, and 8. I've chosen to focus on these three versions because not only are they the most recent (obviously) but also because the style of language version releases started to change with version 6, focusing on a more frequent tempo and more granular features. Even more importantly, the syntax and feel of the language itself seemed to turn a corner with C# 6, marking what in my opinion is an evolving paradigm shift toward functional programming.

You are a software samurai, and your sword is Visual Studio. The purpose of this blog entry is to give you guidance on some of the new features of Visual Studio 2019, as well as existing features that you may have overlooked, such as hotkeys and snippets, so that you can work more efficiently and effectively as a Microsoft (.NET) stack software developer. As stated in my previous blog post, Visual Studio is your primary tool when working on the Microsoft stack, and the better you understand that tool, the more productive you will be and the more time you will save. The idea is to reduce unnecessary wear-and-tear on your hands and body, and hopefully also prevent the mental burnout that can result from doing repetitive work. The bottom line is this: fewer keystrokes = greater career longevity.

So you want to be a Microsoft (.NET) stack developer? Your head may be spinning from all the information out there and recommendations that you've either heard from other people or read online (e.g. Reddit). You might be feeling like you're being pulled in several directions.

I'd like to help you.

The purpose of this blog series, the Foundational Concepts Series, is to help introduce novice software developers to programming on the Microsoft stack. I first started coding when I was a kid and I've been using C# and .NET since 2003, so I'd like to think that I've learned a few things over the years. Even intermediate or advanced software developers may learn something new or fill in gaps in their knowledge from this blog series. My goal is to present the material in a fun and accessible format, so that the reader is left with not only a greater understanding of programming concepts and how to create quality software using one of the finest ecosystems out there, but also a passion for learning, so that you will continue to grow as a professional and as a person.