ASP.NET Core

November 14, 2018

Implementing Background Tasks in ASP.NET Core with HangFire

Background job processing can be incredibly helpful. Anything from kicking off a longer-running process, to regular process of things such as outbound emails, and everything in-between. There are many methods or tools to be able to do this, however, finding an accurate getting started guide that works for a full implementation in ASP.NET Core is hard. In this post we will work through adding support for background tasks in ASP.NET Core using HangFire.

November 10, 2018

.NET Core/ .NET Framework My Perspective On The Future

Over the past three years I've given many talks at conferences regarding .NET Core, I've implemented many solutions for customers using .NET Core, and help consult with many organizations looking to move forward. No matter what way you slice it, it seems that .NET Core is the future, but there are still many questions out there regarding the future and how you move forward. In my time working with .NET Core I made some assumptions early on that are starting to come true. With all of the recent news and confusion, I thought this would be a good time to try and summarize where we are, and what I think it means.

July 19, 2018

Should, When, and How Can I Migrate to .NET Core

Now that we are a few years into .NET Core I am seeing more organizations start to look at the big picture and decide if they want to migrate to .NET Core, or are evaluating .NET Core for consideration on new projects. Over the past few years I've given multiple talks at conferences with the title "Should I Transition to .NET Core? Will It Hurt?" This talk has been very popular so I thought I'd share a bit of context that you cannot get with the slides to help you better understand what might make the best sense for your organization/project.

July 17, 2018

Reporting Code Coverage in VSTS with .NET Core

Recently I decided to go back to using VSTS for my CI/CD processes after having some great experience with it on a project. As I evaluated the processes that I was following, one thing was missing from my existing CI process, and that was reporting on Unit Test Code Coverage for my .NET Core projects. I'll admit, it was something that I hadn't exactly looked at in a while. When I first started with .NET Core Code Coverage was a "Coming Later" feature and I wasn't too concerned about it. Searching for solutions I found a plethora of crazy recommendations and using the out-of-the-box VSTS build process for .NET Core did not get me what I wanted. In this post I'll walk through the process to properly get Code Coverage Calculated with each build, this will also allow the "Test" -> "Analyze Code Coverage" option to work in Visual Studio.

March 20, 2018

Using Multiple Authentication/Authorization Providers in ASP.NET Core

I find that in many cases application developers need to create web applications that can support not only the web application itself but an API that might be used by a Mobile Application or otherwise. I have seen some methods used in the past to create these two interfaces, everything from home-grown security to the creation of two separate applications that do the same thing. With ASP.NET Core we can use multiple authentication providers so we can easily support various providers and control when each should apply. In this post, I explore the process of supporting multiple authentication providers.

December 28, 2017

Avoid MVC Core Performance Penalty with Html.DisplayFor()

Recently when working with an ASP.NET Core project I had a page that was taking an unnecessarily long time to render. Looking at my code I couldn't figure out what I was doing wrong, the query returned fast, and although I was working to display about 1,000 rows in an HTML table, it shouldn't be taking seconds when the query returned in 22ms. Upon deeper review, I uncovered a bug that had been a silent killer of performance in multiple applications.

December 04, 2017

Website Performance: Images & Compression

Website performance is one of those items that I have been talking about for years. It is a game that is constantly changing, but some items have been issues since the beginning of time, and yet they are still some of the biggest culprits when it comes to website performance. This post I'll dive in a bit on images, compression, and the steps you can take to optimize your site for the best performance possible, even if it is a large legacy site.

October 09, 2017

Real-World ASP.NET Core Logging Configuration

ASP.NET Core provides a much better foundation for integration of logging into your projects. .NET Core allows you to quickly aggregate your logging with log messages coming from the runtime creating a full logging stream. Although a great platform when working inside of .NET Core for your first few projects trying to figure out exactly what it takes to get logging setup to a level that records it where you want it when you want it, and with the required granularity might having you wanting to pull your hair out! In this post, we will investigate a process to introduce complete logging to an ASP.NET Core project.

May 10, 2017

Updated ASP.NET Core 2.0 & Full .NET Framework

This week is the week of Microsoft's BUILD developer conference where lots of new announcements are typically made. Yesterday it was revealed that the next version of ASP.NET Core, version 2.0, will no longer support running on the full, existing .NET Framework. (.NET 4.7 for example). There has been a lot of various feedback on this topic, and I thought I'd chime in a bit with my opinion as well, as with all posts I welcome conversation and alternative viewpoints in the comments.

Content provided in this blog is provided "AS-IS" and the information should be used at your own discretion.  The thoughts and opinions expressed are the personal thoughts of Mitchel Sellers and do not reflect the opinions of his employer.

Content Copyright

Content in this blog is copyright protected.  Re-publishing on other websites is allowed as long as proper credit and backlink to the article is provided.  Any other re-publishing or distribution of this content is prohibited without written permission from Mitchel Sellers.