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
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,
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.
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.
Use meaningful naming conventions. Compose class, method, and parameter comments for IntelliSense. Use XML comments for auto
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
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.