There and Back Again – My .NET Journey (Part 1)

December 14, 2024

I have been a Microsoft Developer for over 30 years. Professionally, I started as a programmer assistant working with C++, QuickBasic, DOS 6, Windows 3.11, and batch file development. I did this while studying computer science at The University of Michigan-Flint. Those technologies allowed me to advance in a growing IT industry that needed mostly business-facing (as opposed to customer-facing) software to handle internal needs. At least that was the need for an inner city medical center where I started my career.

When the internet began to flourish for consumers as well as businesses, it didn’t affect my job very much. I worked in an enterprise business, and my skills in developing Windows-based desktop CRUD programs were more than sufficient for my company’s needs. I developed original applications, and there was a demand for creating programs that assisted 3rd party applications. Many times this required reverse engineering skills. Most of these “helper” programs didn’t have user interfaces – they just did their job in the background without user intervention. Up to this time for most of the world, software meant something that was built and compiled on a machine, placed on a floppy disk, CD, or shared network drive, and installed. The internet was only a tool for downloading software that ran on my PC as far as I was concerned. For my job, C++, C#, Visual Studio .NET, and Visual Basic were all the tools I needed.

Then it happened. I needed to rebuild one of my desktop programs for accessibility across our company’s local area network (LAN). Furthermore, we wanted it to run on our company’s intranet. In other words, a web application. My first foray into web development was with Visual Studio .NET 2003, Active Server Pages, and IIS 3.0. Considering how web development was evolving and, in hindsight, which side of history Microsoft was on at the time, this was not ideal for developing my internet/web programming skills. Yes, Microsoft Technologies got the job done, but they viewed the world as “Windows First”. And why not? Most people on the planet were using x86 PCs running Windows, and that’s where Microsoft staked its future. They would get into the internet, but it would be in the “Microsoft” way. This can be seen through their duplication of the Visual Basic experience (Drag-and-Drop controls) in Web Forms.

Using Microsoft’s IIS for a web server gave me a non-optimal first impression of web servers. Using IIS for my small application gave me an experience of unneeded ceremony and complexity. This is not to say setting up Apache on a Linux VPS was simple. But IIS was an enterprise web server – It was overkill for my application and there was no easy beginner approach. I bought several WROX and Microsoft Press books on  IIS, internet and intranets, networking, and (of course) Windows Server. As Microsoft’s technology improved with patches and upgrades, I made my way through Application Pools, .NET CLR versions, Site Bindings, Network Protocols, and wwwroot directories.

What I didn’t realize at the time was that most web development was not done this way. It was still evolving at the time, and many things were missing from what we consider modern development. However, it was a different world from Microsoft’s. Developers not using the tech from Redmond, Washington were creating standards and tools that facilitated exponential growth of the web and eventually mobile devices. Things such as open-source software, multiple new development frameworks based on JavaScript, JSON, API development, distributed version control, and package managers were part of the rapidly growing developer community – but not of Microsoft.

As 2010 rolled around, I looked toward the future of my career. I had been with my company for 20 years, and I wanted to make sure my skill set was marketable if I needed to go elsewhere. Instead of only reading .NET materials, I started to study overall web development through books, blogs, and articles as well as listening to podcasts. I found a world very different than Microsoft’s. It blew me away how unmarketable my skill set was outside of desktop development. Software was eating the world and a great deal of the software was either on the web or mobile – two areas where my skill set could not help me.

Yes, I could create web applications through ASP.NET, but consider this: What if I wanted to make an eCommerce site for a small to medium-sized business? There was no way that type of business would invest several thousand dollars on servers, licensing Windows Server OS and SQL Server, and other necessary tooling to get a Microsoft Web site up and running. At the time, even large enterprises started using dedicated VPSs running Linux from hosting companies.

So, around 2015, I started migrating away from .NET and Microsoft Technologies.

Seeing the title of this blog, there is obviously more to this story.

To be continued…