20 years of .NET

.NET turns 20 years old today and it is just kind of ... wow!

.NET 20 Years

Yes, the 20-year celebration was was announced for a couple of weeks now, but I didn't really care until I started to think about it.

I didn't really plan to write about it but the more I think about the last 20 years... you know... And you are completely free to read it. :-D

Because 20 years of .NET also means to me writing software and getting paid for it for more than 20 years, it also means to me spending almost half of that time as a Software Engineer at the YOO. This is amazing, surprising, and a little bit scary as well. I already spent almost half of my life turning coffee into code.

I started coding using ASP written in VBScript, which also uses server-side ActiveX libraries written in VB6. At that time I tackled the Microsoft developer community the first time, by asking questions about how to solve my coding problems.

At the time of the second half of 2001, there already was lot of news about ASP+, NET Fx, and other weird stuff. And I started to play around and created the first ASP-like applications that actually compile and execute awesomely fast. I was impressed by .NET 1.0 and writing the first ASP.NET Code using VB.NET.

I took some time to convince my boss to write the very first project using ASP.NET 1.0 but finally I got the opportunity to rewrite a news module for an existing CMS using the new technology.

At that time a pretty cool blog was the primary source to learn about new things about .NET and ASP.NET. It was Scott Guthrie's blog. The cool thing: That blog is still online. You'll find posts from 2003. Awesome! Scott was the person who invented ASP.NET. Just yesterday, he posted a tweet that shows his notebook that contains the first specks about ASP.NET.

Now, I'm wondering what this book would look like if it would have been written using interactive notebooks :-D

The release of .NET 1.1 wasn't that good: Project types change and a lot more breaking changes happened and we had doubts about using .NET at all. Luckily Microsoft released a patch that fixes the issues we and a lot more developers had at that time.

My personal 20 years of .NET were a journey with some lows but a lot more heights during the whole time. Not all the stuff I worked with was good. I remember some ugly technology that was put on top of ASP.NET Webforms. Do you remember the ASP.NET Web Parts? I guess this was a bad try to get SharePoint-like behavior in every web application. This feature got even worse together with ASP.NET AJAX. Moving HTML and ViewStates around using JavaScript remote scripting (Ajax) isn't really what Ajax is meant for.

Some years before that, I already worked on a project for Siemens that loads XML-based data via client scripting from the server and displays the data on the client. Also, user input got sent to the server that way. The term Ajax wasn't introduced at that time. We created a single-page application years before the SPAs were a thing at all. Maybe this is the reason why ASP.NET AJAX felt completely wrong to us.

It was .NET 3.5 that changes ASP.NET and .NET a lot. ASP.NET MVC was awesome. It felt a lot more like a real web framework. It doesn't use a ViewState to hack around the stateless nature of the web. Using ASP.NET MVC felt more natural as we knew it from the days when we worked with classic ASP. I started to like .NET again. Even LINQ got introduced and made the handling of data a lot more productive.

Also around that time, I started blogging. I wrote my first blog post in 2007. I already was kinda involved in the German-speaking .NET developer community by contributing what I learned to people that started working with the technology. The feedback was amazing and pushes me forward to continue with the community work. Because of my blog, I got asked to write for technical magazines, and because of this, I got asked to talk at conferences, and so on...

I am mainly a more pragmatic developer. I'm using the tools that are best for me and the current project. .NET isn't always the best tool. I also worked with NodeJS and was impressed by how fast it is to get started and to get your job done. I also worked with python for around a year and had the same experience. Since I started my career scripting solutions using classic ASP, it wasn't a big deal to use JavaScript or Python. Actually, I miss the scripting experience in .NET as well as the flexibility with the language. Maybe I should have a more detailed look into F#. On the other hand, being a pragmatic software developer also means, getting your work done, making the customer happy, and getting paid for your work. In some cases, Python helped me to get things done as well as NodeJS did but in most cases it was .NET that helped me to get the customers happy. Well known since 1.0.

Getting things done using a well-known framework means you can start hacking around issues, customizing stuff to remove blocking things. Actually, I did work on a pretty fast ASP.NET Webforms application that doesn't use any Webforms UI technology at all. No Webforms Components, no ViewState. It generates XML that got transformed on the server using XSL-Templates and writes the result directly to the output stream.

My personal 20 journey is like a marriage with heights and lows. And some unexpected happenings change a marriage a lot. .NET Core happened and I fell in love with .NET again. It was completely rewritten, lightweight and customizable. You all know that already. The best thing from my perspective is the lightweight and console first approach. It almost feels like NodeJS and works similar to all the other web tools and frameworks that already exist at that time. .NET wasn't only a framework to build stuff and earn money for that work anymore. With the new .NET, it started to make fun again.

I am a web developer, even if I did some Windows Forms, WPF, Windows Mobile as well as Windows Phone development. I always feel more comfortable working with applications that have an HTML user interface, that make use of CSS and JavaScript. So the new .NET and ASP.NET Core feels even more naturally than ASP.NET MVC ever did. This is absolutely great.

What's coming next? We'll see.

Writing a book was eating my time to write blog posts. I'm now starting to have a look at the next version of .NET and ASP.NET Core and I will write about that.

There will be no .NET 7.0 update for my book since I decided to write a new edition for every LTS version only. The next LTS will be .NET 8.0 which should be released around November 2023. So I'll have enough time to write blog posts.

🎉 Happy 20th Anniversary .NET! 🎉