ASP.NET Core 6.0 – The Journey

Ken Haggerty
Created 10/13/2021 - Updated 10/13/2021 02:12

This is the 100th article published at KenHaggerty.Com. I just downloaded the Visual Studio 2022 Release Candidate. This includes a Go Live license for ASP.NET Core 6.0. I added the ASP.NET Core 6.0 LTS option to the Framework Enum I use to filter articles and projects. This is the first article for ASP.NET Core 6.0 LTS so I will reflect on how I got here. Before I do, I want to thank all the users who have found my articles. I don’t think I would have published 100 articles if no one was reading them.

Before I created KenHaggerty.Com, I submitted a 2-part article in December 2018 to Code Project about how to scaffold and modify Identity in the new ASP.NET Core 2.2 Razor pages template. Part 1 is published at Require Confirmed Email in ASP.NET Core 2.2. The processes of formatting, uploading images, and submitting revisions strongly influenced the design of KenHaggerty.Com. I envisioned Topics to be like Code Project discussions. The Code Project article allowed me to upload article images. I developed UI to crop, upload, and dynamically display article images. The images are stored in the database as Data URL. The second article I published at KenHaggerty.Com, ASP.NET Core 2.2 - Razor Pages Logout Behavior, demonstrated article images. The fifth article, ASP.NET Core 2.2 - SMTP EmailSender Implementation, is still one of my most popular articles. I write about the difficulties and methods I have found while developing KenHaggerty.Com. I try to compose each article focused on a feature or issue and not be too lengthy.

I usually compose articles in groups by project. The first project was an ASP.NET Core 2.2 version of ASP.NET Core 3.1 - Bootstrap Native Project. It implements a scaffolded and modified Identity UI, an extended user with confirmed email addresses, and Native JavaScript for Bootstrap rather than jQuery. I use this configuration without the social logins for KenHaggerty.Com.

The second project was an ASP.NET Core 2.2 version of the ASP.NET Core 3.1 - Table Functions Project. This is the research project I used for a series of articles about managing entity data in Razor Pages and Bootstrap tables. I used an in-memory database and lists of fruit, vegetable, and spice names for records with fields which could be filtered and sorted. This was the first project I deployed to a sub domain, http:// tables. kenhaggerty. com.

Websites which authenticate users require SSL. My original hosting plan included Let's Encrypt SSL for 1 website. I purchased an SSL certificate for 3 more addresses. This allowed me to develop and deploy the Bootstrap Native Project at https:// preview. kenhaggerty. com, the Users Without Passwords Project at https:// fido. kenhaggerty. com, and Ken's Demo Site implementing the Users Without Identity Project.

The KenHaggerty. Com. SingleUser Razor Class Library is my first NuGet package. The package provides cookie authentication for a single user to an ASP.NET Core Web Application. The ASP.NET Core 5.0 - SingleUser Class Lib Project is the library source code and a Bootstrap Native host. The project is free to download for registered users.

The ASP.NET Core 3.1 - FIDO Utilities Project is a collection of utilities I developed for the Users Without Passwords Project. It also features the SingleUser NuGet package, the SMTP EmailSender, Admin Page with Send Email Tests, ExceptionEmailerMiddleware, Bootstrap v5 Detection JavaScript, Copy and Paste Demo, Offcanvas Partial Demo, Path QR Code Demo, and the updated SMTP Settings Tester. Registered users can download the source code for free.

KenHaggerty.Com started with a simple page hit log for analytics. It evolved with more complex data collection and reporting of usage metrics. The ASP.NET Core 5.0 - Homegrown Analytics Project is designed and organized to allow easy integration with existing projects. I have been tweaking the project as I integrate it with my live sites and real-world data. The SingleUser NuGet package segregates the user logic.

Upcoming ASP.NET Core 6.0 Projects

I am migrating the KenHaggerty.Com and Demo.KenHaggerty.Com sites with Visual Studio 2022 Preview. I have also been migrating some some of the existing research projects and adding a new one. I am enabling the nullable context and mitigating issues. Most just need final testing and packaging with the Go Live release of Visual Studio 2022.

  • ASP.NET Core 6.0 – Demos And Utilities (Fido Utilities)
  • ASP.NET Core 6.0 – Hosted Single User Class Lib
  • ASP.NET Core 6.0 – Homegrown Analytics
  • ASP.NET Core 6.0 – Users Without Identity
  • ASP.NET Core 6.0 – Users Without Passwords
  • ASP.NET Core 6.0 – Users With Device 2FA

Upcoming ASP.NET Core 6.0 Articles

  • ASP.NET Core 6.0 – Migrate From .NET 5.0
  • ASP.NET Core 6.0 – Users With Device 2FA
  • ASP.NET Core 6.0 – Top-Level Statements
  • ASP.NET Core 6.0 – Claims-Based Authorization
  • ASP.NET Core 6.0 – Zero Trust

I hope the articles have encouraged developers and helped solve some common and sometimes complex issues.

Bits Of Wisdom

I just turned 65 years old. In a high school math class, I asked the teacher, “Why do we need to learn all this stuff?”. The wise Mr. Crain replied, “You are learning how to learn.”. From a tube type TV repairman in my 20s to now, I’ve learned a lot.

I was a Data Systems Tech on an aircraft carrier when I taught myself VisiCalc and MBasic on a Xerox 820 CPM machine. I set up and trained over 20 divisions with Zenith MS-DOS v1.1 machines during a Med Cruise. I even developed an assembly language program with Masm to wipe a hard drive. After the Navy, I worked at a PC Systems store, building and selling PC clones, where I purchased Visual Basic v2. Then I worked for Seagate Technology where I programed a Fairchild computer to analyze circuit boards.

I started designing a desktop program called Tournament Manager with VB v2 which evolved into TournamentManager. Net developed with Visual Studio 2015. TournamentManager. Net was a mobile friendly, ASP.NET 4.6, WCF web application with the SQL database on SQL Azure. I developed a Chromecast application called Tournament Caster with Android Studio and Java. I published it to Google Play. In 2008 I was certified by MS as MCTS: .NET Framework 2.0 Web Applications (Visual Basic). I taught myself C# with KHaggerty.Com, a personal website I used to study new technologies like ASP.NET Core v1.1 and Entity Framework Core.

I realize now, I owe Mr. Crain a ton of gratitude. Recovering from a serious medical issue, I took early retirement. I still want to learn and mentor. Here are some bits of wisdom.


Make it mobile friendly, Bootstrap or any responsive CSS framework helps. Use index pages to list links to related pages. Use pagination, filters, and sort on listings. When listings are large, list titles alphabetically in a dropdown or auto-complete search.


Make it mobile friendly! Consider PWA. Use lowercase URLs. Use a title-slug for navigation. Use meaningful H1 tags. Use keywords in title and H1 tag. Use quality internal links. Use Google Search Console.

Sub Domains

Use sub-domains to test deployment and updates. Use SSL on authenticating sub-domains. Use sub-domains to test with mobile devices!


Use analytics to monitor usage metrics. Use analytics to monitor not found errors. Use error and exception reporting. Adapt and repair as analytics indicate. If not Google Analytics, use the ASP.NET Core 5.0 - Homegrown Analytics Project.

Code Commenting

Use meaningful naming conventions. Compose class, method, and parameter comments for IntelliSense. Use XML comments for auto documentation.


Update often. Do all you can per version. Use good version control. Use error and exception reporting to catch regression issues. Inspect and adapt existing code. Use TODO Task List, great for tracking pending database updates. Upgrade to latest technology. Consider LTS vs Current support levels.

Fail Fast

Don’t give up too fast. Make it function, make it efficient, then make it pretty. Do what you can, revisit what you can’t. Reasons to give up are: lack of function, lack of interest, lack of talent, lack of financing, lack of time, and lack of reward.

Article Tags:

Analytics BootstrapNative

Comment Count = 0

Please log in to comment.

Login Register
Logged in users receive web notifications.
Web Notifications