# .NET

The Easiest Way to Version NuGet Packages

Using MinVer is the easiest way to version your NuGet packages and DLL's using semantic versioning (SemVer).

Link

Unit Testing dotnet new Templates

It's difficult to know if your 'dotnet new' based project will work if they have lots of options, in this post I show how to unit test them.

Link

The Dotnet Watch Tool Revisited

The dotnet watch tool is a file watcher for dotnet that restarts the application when changes in the source code are detected. You can use dotnet watch in Visual Studio by using the launchSettings.json configuration file.

Link

ASP.NET Core Caching in Practice

How to use and implement Cache-Control, Cache-Control Immutable, E-Tag, Last-Modified and If-Modified-Since Caching HTTP headers in ASP.NET Core.

Link

Structured Data using Schema.NET

Schema.NET is Schema.org objects turned into strongly typed C# POCO classes for use in .NET.

Link

ASP.NET Core Lazy Command Pattern

Move your ASP.NET Core MVC action method logic into lazily loaded commands using the command pattern, to reduce Controller complexity.

Link

dotnet new Feature Selection

How to add feature selection to your dotnet new template using symbols (bool, string, choice, computed) and pre-processor directives.

Link

Cleaning Up CSPROJ

I show how to make the new Visual Studio 2017 .NET Core based csproj XML concise and pretty for hand editing.

Link

Custom Project Templates Using dotnet new

How to create project templates using dotnet new and the template.json file. How to share project templates by creating NuGet packages.

Link

Reactive Extensions (Rx) - Part 8 - Timeouts

Should you use Reactive Extensions (Rx) to do timeouts in .NET? It turns out it's better to use CancellationTokenSource in the Task Parallel Library (TPL).

Link

SEO Friendly URL's for ASP.NET Core

An SEO friendly URL is human readable and gives your site a higher page rank. Learn how to implement SEO friendly URL's using ASP.NET Core.

Link

Making Application Insights Fast & Secure

Implementing Application Insights into your ASP.NET Core application with performance and security as a top priority in this advanced scenario.

Link

The Dotnet Watch Tool

The dotnet watch tool is a file watcher for dotnet that restarts the application when changes in the source code are detected.

Link

Social TagHelpers for ASP.NET Core

Enhance the experience of sharing a page from your site through the use of social media meta tags implemented with ASP.NET Core TagHelpers.

Link

Subresource Integrity TagHelper Using ASP.NET Core - Part 2

Use an ASP.NET Core TagHelper to implement Subresource Integrity (SRI) to ensure that external resources have not been tampered with. With is part 2.

Link

Subresource Integrity TagHelper Using ASP.NET Core - Part 1

Use an ASP.NET Core TagHelper to implement Subresource Integrity (SRI) to ensure that external resources have not been tampered with.

Link

Colorful.Console

Colorful.Console is a C# library that wraps around the System.Console class, making your console apps more colourful. Write ASCII art using Figlet fonts.

Link

Logging with Serilog.Exceptions

Log exception details and custom properties that are not output in Exception.ToString() using Serilog.Exceptions for .NET.

Link

Dynamically Generating Sitemap.xml for ASP.NET MVC

How to dynamically generate a sitemap.xml file using ASP.NET MVC to improve the Search Engine Optimization (SEO) of your site and get better search rankings.

Link

Whats New in ASP.NET Core Boilerplate

With the release of ASP.NET Core Boilerplate, this post discusses what's new and what is currently missing due to ASP.NET Core still being in beta.

Link

Dynamically Generating Robots.txt Using ASP.NET MVC

How to dynamically generate a robots.txt file using a simple ASP.NET MVC action method and only a few lines of code.

Link

Canonical URL's for ASP.NET MVC

Use canonical URL's in ASP.NET MVC for better Search Engine Optimization (SEO) using ASP.NET Core Boilerplate and the RedirectToCanonicalUrlAttribute.

Link

Building RSS/Atom Feeds for ASP.NET MVC

How to build a fully featured RSS/Atom feed for ASP.NET MVC, including Google's PubSubHubbub and the 'Subscribe to this feed' button.

Link

C# 6.0 - Saving Developers From Themselves

C# 6.0 helps reduce human error and save developers from themselves using the nameof operator, string interpolation and the null-conditional operator.

Link

Content Security Policy (CSP) for ASP.NET MVC

Content Security Policy (CSP) is a HTTP header which white-lists content the browser is allowed to load. This post discusses its application in ASP.NET MVC.

Link

NWebSec ASP.NET MVC Security Through HTTP Headers

The NWebSec NuGet packages help secure your ASP.NET MVC site using HTTP headers. The ASP.NET Core Boilerplate project template configures them our of the box.

Link

Reactive Extensions (Rx) - Part 7 - Sample Events

Shows how to use the Reactive Extensions (Rx) Sample method to reduce the number of subscribed events by taking a sample from them over a given time period.

Link

Securing the ASP.NET MVC Web.config

The web.config file is insecure in the default ASP.NET MVC project template. This post talks you through securing the ASP.NET MVC Web.config file.

Link

Custom Visual Studio Project Templates

A guide to creating custom Visual Studio project templates in .zip and VSIX form and submitting them to the Visual Studio Gallery, so it can be downloaded.

Link

Internet Favicon Madness (Updated)

Add favicon's to your website to support iOS, Android, Windows 7, Windows 8, Windows Phone and more. Find out where icons are used on each platform and how.

Link

ASP.NET Core Boilerplate

ASP.NET Core Boilerplate is a professional ASP.NET MVC template for building secure, fast, robust and adaptable web applications or sites.

Link

Elysium Extra 1.1 Released

Elysium Extra Version 1.1 is a Windows Presentation Foundation (WPF) SDK providing Metro styles for built in WPF controls and some custom controls.

Link

Model-View-ViewModel (MVVM) - Part 4 - INotifyDataErrorInfo

An base class implementation for the INotifyDataErrorInfo interface. Used in the Model-View-ViewModel (MVVM) pattern. Targeted for best performance.

Link

Model-View-ViewModel (MVVM) - Part 3 - INotifyPropertyChanged

An base class implementation for the INotifyPropertyChanged interface. Used in the Model-View-ViewModel (MVVM) pattern. Targeted for best performance.

Link

Model-View-ViewModel (MVVM) - Part 2 - IDisposable

Implementing IDisposable correctly is ridiculously hard. A Disposable base class can make it easier. Using IDisposable in Model-View-ViewModel (MVVM) really helps.

Link

Model-View-ViewModel (MVVM) - Part 1 - Overview

What really goes into using Model-View-ViewModel (MVVM) in .NET. Base classes for INotifyPropertyChanged, INotifyDataErrorInfo, IDisposable and a lot more.

Link

Portable Class Library (PCL) version of NotificationsExtensions NuGet package

NotificationsExtensions.Portable is a Portable Class Library (PCL) used to Create Windows 8.1 or Windows Phone 8.1 Tile, Toast and Badge Notification XML.

Link

Reactive Extensions (Rx) - Part 6 - Task ToObservable

How and where to use the Reactive Extensions (Rx) ToObservable Extension method to turn a Task Parallel Library (TPL) Task into an IObservable.

Link

GetHashCode Made Easy

Implementing GetHashCode is hard work and little understood. Learn how to implement GetHashCode as quickly and as simply as possible.

Link

Reactive Extensions (Rx) - Part 5 - Awaiting Observables

How and where to use Task Parallel Library (TPL) async and await with Reactive Extensions (Rx). Also, how to use TPL for awaiting observables.

Link

WPF Metro Part 4 - Elysium Extra

Elysium Extra is an excellent Windows Presentation Foundation (WPF) SDK providing Metro styles for built in WPF controls and some custom controls.

Link

WPF Metro Part 3 - Elysium

Elysium is an excellent Windows Presentation Foundation (WPF) SDK (On CodePlex) providing Metro styles for built in WPF controls and some custom controls.

Link

Reactive Extensions (Rx) - Part 4 - Replacing Timers

You should definitely consider using Reactive Extensions (Rx) is as a direct replacement for .NET Timers. This post will explain how.

Link

WPF Metro Part 2 - MahApps Metro

MahApps Metro is an excellent Windows Presentation Foundation (WPF) SDK providing Metro styles for built in WPF controls and several custom controls.

Link

WPF Metro Part 1 - Modern UI for WPF

Modern UI for WPF is an excellent Windows Presentation Foundation (WPF) SDK providing Metro styles for built in WPF controls and several custom controls.

Link

Reactive Extensions (Rx) - Part 3 - Naming Conventions

Reactive Extensions (Rx) Advantages of using IObservable property naming conventions and comparison between C# events.

Link

Reactive Extensions (Rx) - Part 2 - Wrapping C# Events

Reactive Extensions IObservable wrappers for C# events and hiding the C# events entirely from subscribers using explicit interface implementations.

Link

Reactive Extensions (Rx) - Part 1 - Replacing C# Events

You should definitely consider using Reactive Extensions (Rx) is as a direct replacement for C# events. This post will explain how.

Link

ConfigureAwait in Task Parallel Library (TPL)

The importance of using ConfigureAwait when using the Task Parallel Library (TPL) to improve performance and reduce context switching.

Link