During my work for my employer, most of the time I work on desktop applications implemented in WPF and C#.NET. I really like the XAML technology stack, because I am used to it and I think it provides a simple and extensible way to implemented user interfaces. It also separates the logic (ViewModels and Services) from the user interface code (XAML) without much effort in a natural way.
Past experience with web development
Web development nowadays
My first experience with ASP.NET
I tried ASP.NET which then was in version 2.0 and I didn’t like it since it was hard to get started with. After only a few days, I stopped using it and was going down the non-Microsoft road for the next years. I am sure ASP.NET was much better at this time than I thought. It was just that I didn’t like to work with it.
Because of my bad experience, I never tried ASP.NET in the future.
ASP.NET WebAPI to the rescue
This year I was asked to implement a RESTful service for a backend used in a mobile (Android) application for a university project. My first choice was PHP as I always did for the previous few years. But I used to work with Visual Studio from work which provides great debugging tools as well as an integrated web server. When I opened Notepad++ and started writing my service, I missed features that I was used to from my daily work.
Suddenly I thought “hey! why don’t you try ASP.NET again?” In my opinion, it was a great idea because if it would not work or would need too much time, it was not a problem. It’s a university project which is less critical than any productive application I work on a daily basis, I thought.
I searched Google for RESTful APIs and ASP.NET and I found what I was looking for was called ASP.NET WebAPI. I had an amazing experience trying it. It took less than an hour to implement a prototype of the services I wanted to build without having used ASP.NET WebAPI ever before! The project structure of the generated project template was very simple to understand. And there are many tutorials, videos, and other training materials online which can help you to get started very quickly.
Deploying to Microsoft Azure
I was very happy after getting my service to work as I expected. Changes could be made very quickly, debugging was very comfortable and I learned a lot about web development using ASP.NET WebAPI.
When it was time to think about how the client application, which was a mobile application written in Android, could connect to my ASP.NET WebAPI service, I thought about using Microsoft Azure. When I searched how to do that in Google, I was not sure if I had to believe that was easy.
But it was really simple indeed. If you already have a Microsoft account, you just have to register on the Microsoft Azure portal and you can create a new Web app. A Web app on Azure can be many different things. Important for us, it can host an ASP.NET website.
After creating that website on Azure, you can connect your website in Visual Studio with your website on Azure. When they’re connected, you can deploy to your Azure website using the context menu of the web project within Visual Studio and your application gets published on Azure with a single click. That’s pretty cool and I might write more about it in the future.
Other products of the ASP.NET family
After some time, I realized that there are other parts of the ASP.NET product family which are worth trying out. So I tried ASP.NET WebAPI, ASP.NET MVC, and SignalR as well. I won’t tell you about my experience with those two products in this post, but I want to make sure that I mention those essential parts of the ASP.NET family here.
My goal for this post was to give an overview of what is possible on the Microsoft side of web application development nowadays and what I thought would be from my past experience. I would highly recommend anyone who has read so far to try it yourself. If you don’t like it, you can get a completely new view on the Microsoft side of web development.
Further reading and videos
If you like to learn more about ASP.NET, I can recommend the following resources which can help to get started in a very short period of time: