It was 2003 when I first laid my eyes on C# and .NET in one of my general programming classes in university. After several years of having to maintain pointers and having to manage my own memory structures and garbage collection in C and C++, C# was a breath of fresh air.
It allowed me to focus on the logic more and the lower level details less. At the same time, Visual Studio .NET was also making its appearance. And the ability to generate both Windows Forms and Web Forms pages with similar code was mind-blowing to me. It still is.
During this time however, most developers were jumping on the Java train. It was more mature, had way more tools and IDE's (like JBuilder) and the job market was better suited to it.
But for whatever reason, I decided to stick with C#. Maybe it was because I genuinely enjoyed C++ and because I like being the contrarian.
So when I graduated college, I lead my resume with "C# developer". By this point in time C# had started to make a name for itself and its market share had grown substantially.
Unfortunately, you don't really get to decide your first job. You sort of take whatever you can get. So even though I walked in as a "C# developer", I walked out as a full-time X++ developer.
And if you don't know what X++ is, fret not, because no one knows anymore. However, to my luck, this company did own several .NET properties, and it didn't take long before someone in the office approached me with "You know C# right?".
"Why yes, yes I do." I replied with a smirk two sizes too large.
I was soon moved to the web team, stepping into what would eventually become my full-time role for many years.
This was my chance to show the company what I could really do, because I loved C# at the time. I would go home every night and work on one of 10 projects that I had sitting around.
At this time I was also religiously binge watching Channel9 videos online. For those who weren't around back in the early 2000's, Channel9 was Microsoft's developer community filled with tutorials and videos on everything .NET related.
In late 2021, Channel 9 was officially merged into Microsoft Learn to unify educational resources.
And one of my favorite blogs back then was 4GuysFromRolla, which essentially taught me everything I needed to know in order to do my job and get paid well.
For me personally, this was indeed a magical time. Not so much because I loved any aspect of the language itself. But more so because I knew it so damn well. I felt like I could build anything and everything in the blink of an eye. Getting paid to do something you'd do for free anyway? That's the dream. I was living it.
At this point in my career, I was a C# developer through and through. And I didn't struggle to land interviews for the next few years.
Around 2011 though, I started to notice a big pivot from ASP.NET Web Forms to ASP.NET MVC. At this time MVC 3 was coming around (with Razor views) and companies were either migrating from Web Forms to MVC or they were starting fresh new projects with MVC at the forefront.
I personally, was still mostly hired to maintain Web Forms projects, mainly because I had so much experience with it and it was actually getting more difficult to find us "legacy" folks.
It wasn't until 2015 that I finally got to work on a full MVC project from the ground up. Four years late to the party. I was excited to finally be 'modern' again.
Truth be told, this development wasn't as fun as Web Forms. It was a bit colder and stricter than what I was used to. Whereas every Web Forms project that I had ever worked on had these clever hacks that previous dev teams had implemented, MVC was less friendly on how "hacky" you could be.
But it was a sign of the times and I had to evolve. So I finished this project and worked on it for several years.
Then around 2016-2017, something else happened that left me questioning my career.
In 2016 Microsoft released ASP.NET Core 1.0. It was a complete rewrite. It didn't rely on the .NET Framework anymore, it ran cross-platform on Windows, Mac and Linux. It was faster, more modern and more importantly it wasn't compatible with anything that we were building at the time.
At this point in my career I wasn't quite sure where to go. Do I go back to what I know best and find companies looking for legacy Web Forms work? Do I pivot towards MVC, which I was getting much more comfortable with? Do I drop everything and put it all on Core in the hopes that it actually takes off?
Well, I did what made the most sense for me at the time. I started to learn React for a teaching opportunity that I was approached with.
At this point in time React was everywhere. The marketing engines were running at full speed, and coding bootcamps were eager to jump on board.
And to be fair, I was using JavaScript heavily from day 1 of my development journey. jQuery effects, XMLHttpRequest, the whole Ajax revolution. But always as a supplement to server-side code. Never as the main event.
I had never used it as the soul development framework. So for the next 4 years, I pretty much lived React and taught several hundred students how it worked from the bottom up.
And I grew to enjoy it the way I enjoyed C# in that first year programming class. Sure, it had its flaws, like all frameworks do, but, it was just JavaScript. It wasn't suddenly going to morph into some new never before seen language. The platform was stable. The ecosystem moved fast, but the foundation stayed the same. I could build something and it would still work in 5 years.
In 2021, I joined my second startup to build a B2B SaaS marketplace and I was tasked with choosing the tech stack, and essentially building it from the ground up.
Maybe you won't be surprised that I went with React as the stack. And so far? It just works. React isn't deprecated. Node is still around. I'm not rewriting my deployment pipeline. I'm not debating which version of which framework to bet on. I'm just...building.
Which brings me back around to the title of this article, that probably got you to click on it. Over the past few years I've considered numerous times diving back into the .NET ecosystem to see if there's still something left for me.
I won't be able to rely on my Web Forms knowledge going forward anymore, or my MVC 5 skill set, or even what I know of Entity Framework 6, because we're now on EF Core 10, soon to be 11.
Truth be told, after 22 years, I feel more like a newbie today than I did back when I was reading articles on 4GuysFromRolla. And maybe that tells me everything I need to know.
Maybe I was never really a .NET developer, just a web developer that knew .NET. And now, I'm one that knows React decently well.
Am I done with .NET forever? Probably not. I'll probably maintain some old projects. This blog for example is running in good old fashioned .NET, and even though I threaten to rewrite it entirely every single year, I never do.
Maybe subconsciously it still reminds me of the good old days when I would sit down to marathon Bob Tabor's videos, and I can't let that go just yet.
But as for diving back in? Learning the new patterns? Learning Blazor? Keeping up with the ecosystem? I think I'm good for now. Not because .NET is bad. Because it isn't. And it's probably more widely used today than ever before.
But because I finally realized that the parts that I personally miss the most about the framework, probably died out years ago.