And for the final Pandemic project, I give you the Book Review Page.
ASP.NET driven by a SQL Datbase.
 
Book Reviews in ASP
Update 7/15/2022: I was going to update this progject and add some features, but it seems Microsoft is trying to kill off .NET Framework and move everyont to .NET CORE, so my project doesn't work in Visual Studio Community 2021. I have no idea what this would entail, but it really doesn't make me want to start this all over again.
The Book review section of my web page is one of my first sections started back in 2003. I've been meaning to give it a face lift for a long time, but with about 200 books, I knew it would be a job. But heck, it's a pandemic, and just how long could it take?
It took about 100 hours.
And yes, I know it's pretty basic, but wow was the learning curve steep. Between learning all the things I needed to learn and to doing all the things I needed to do, this was a nightmare. After it was all done, It's about 4 hours of coding, 2 hours of setup, and 94 hours of learning. The project almost broke me, but it's finally complete and working.
So what did I need to learn?
"Hey, I do most of this for a living. How hard can it be to do absolutely everything?"
Answer: More difficult than expected.
So What was involved?
How about a few more details?
Ok, Unless you're a programmer, much of this will be Greek. This section is so that I have a reference for the next time I have a similar crazy idea. And I seem to know a bunch of programmers that might find it amusing.
------------------------------------------------------------------------What do I need to complete this project? Can I do it easier? After some false starts I figured on a format and got to work, but even with the smaller review format it was taking forever. Doing this manually was just not going to give me the result I wanted for all the work put in. After checking to see if there was an easy way to do this with some kind of Javascript and a flat file, I figured out that the only way to do this was with programming and a database.
So I figured it was time to brush up on my coding.
I had done what I though was a similar project years ago back in 2000 so I figured this would only take about 8 hours. BAHAHAHAH. That project was in ASP not ASP.NET. It was not object oriented. It did not have framework issues. It did not have a "design philosophy". Begin the descent into madness.
So what do I need?
Ok, just a few items. At one time or another over the last 30 years I've done a version of all of these. Now I just have to do all of them at the same time and get them all to play nice with each other. This should be no problem, I'll just take a quick lunch a couple days. Right?
------------------------------------------------------------------------This should be the easy one since I already have one. But, it's running Server 2012 and that only has ASP.NET 4.0 by default. So I need to figure out how to upgrade it to ASP.NET 4.8. Cue Spending 8 hours because "of course" you can't do this without other patches, some registry hacks, and some irritating IIS caching issues. And of course don't get me started with having to run the Application pool with different permissions so that it could access the external File share. Or how Visual Studio complied the project with debug on so that now the service needed write permission and not just read permission because,,, well just because.
------------------------------------------------------------------------I do this for work, just what could go wrong? In retrospect I should have remembered that I only setup the servers, then I hand them over to the database people to actually install "SQL Services". So the last time I actually installed SQL from the ground up was SQL Server 2000. What I installed was SQL 2016, and for "security" reasons it turns OFF "allow access from remote computers" by default. Argggh! How would I even know this was a feature that exists! - Waste more hours.
------------------------------------------------------------------------At first I thought this was a total win but I got suckered. Microsoft released a "basic" version of Visual Studio as a free community project and it is rather incredible in what you get. (Even with all the crap I'm going to say about it, it really is incredible in what it offers for free, but wow would it help to have some expert advice). It also has a couple of bugs and omissions that will make it hell to learn while using. So, if you go that route there are a few things you will want to know.
Templates:
First, Microsoft REALLY wants you to learn the newest way to code and will hide everything else from you. Currently what they want you to learn is "CORE" with "RAZOR" in "F#". If you are already a programmer that probably makes sense to you. If you are not, and if you are trying to learn, that is Greek. Unfortunately the Visual Studio Community edition 2019 is "Template" driven. This means that you have to know EXACLTY what all of that means before you can even start. What template you choose will very much determine your experience, and there is no way to know what to choose until you know an incredible amount about everything. So, burn hours and hours here, just to figure out what the hell this means.
After lots of research, in the end I thought of it as
What this comes down to in the real world is choosing your "starting template" from about 40-50 options. Choose from your Chinese menu, 1 Programing Language, 1 Framework, and 1 Software Design Methodology. (Don't mess up a single part or you will waste hours and hours. No pressure)
Remember this will be EXTERMELY important on all future things you do. What is most important to this story is that not all of these template options are available with a standard install. Because, well because Microsoft really wants you to program the newest and cool things. So, in order to have the template I would eventually use, you will have to install "additional features". Kinda difficult to do, when you have no idea what you are doing.
I wanted to write this in "ASP.NET, with Forms and C#" because the structure of a single code behind page made sense to me, and because that's what my work used until recently so I have a bunch of code examples to learn from. After creating dozens of new projects base on various templates I finally found the one I was looking for (or so I thought).
Lots of choices, let choose something
From all of the options how about this one?
This looks good right? For the love of God, NO!
What you REALLY want is this
Why? (Or, what you want to know before you know what you want to know)
This template adds so much junk that you will never use, so that everything is more complicated than it needs to be. This template also adds subtle configurations that are hidden from the user unless you are very advance. Also this template has bugs. For example during the Publish process it does not include all of the required files and simple does not work. All of this is "ok" by Microsoft because "This is older and unsupported code. We recommend you use our most recent".
------------------------------------------------------------------------Ok, with all that out of the way, how about we start learning how to program in C#?
An here is where you start the constant debug loops. You get an error on the server that cannot be resolved, so you simplify the code to help troubleshoot and get a different error. Rinse and repeat. In retrospect, this is where I should have started from day 1 with a simple "Hello World" page. There is a reason that is always first. Ignore at your own peril