Switching from Django to ASP.NET MVC

I have recently started a personal project that involves building a website, an API, and an iOS and Android apps that will communicate with the said website. As usual, I am doing this mostly to learn new technologies and frameworks.

Throughout my developer life, I've used Python - specifically focusing on Python desktop development using Qt (PyQt/PySide). I did some small web development projects using Python (with the help of Flask microframework), but I've never played with Django. I've heard of it - of course - but never really found a project that, I guess, would take full advantage of it.

This, I thought, would be the perfect project for Django. I've liked Django for two reasons specifically:

  • It has a magical administrator dashboard that just works
  • It's Python

Now, I was a complete beginner to Django. Knowing Python is one thing, but knowing a framework as elaborate as Django is totally different. I went through the official tutorial and, armed with (limited) knowledge, I began my adventure.

Unfortunately, it did not work out very well for me. More often than not, especially later into the project, I started becoming frustrated. It seemed that only I was getting specific problems, because Googling rarely revealed any useful information to deal with the problem I was facing.

Of course, I know that this is entirely my fault - Django is an amazing framework and many large websites that I know use Django (e.g. http://developers.mozilla.org). The documentation is just fantastic. For me, it just did not work out the way I planned - I felt I spent too much time trying to solve some simple problems. On the other side, I had to spend very little time trying to solve complex problems (kudos to Django!).

Since I am always looking for new technologies to learn, I decided to try the same project and build it using the Microsoft's ASP.NET framework. I am pleased to see the new direction Microsoft is taking (by making more and more of their software packages open source), and I wanted to try out the .NET stack.

Two months in, I have to say that I am pleasantly surprised. I was expecting the .NET to be this uncontrollable, untamed behemoth and that I will need to spend hours (days?) just configuring it in order to make it run. Turns out, I was far from the truth - Visual Studio 2015 took care of most of the configuration for me, and my boilerplate website was ready quickly (well, as quickly as it takes to install VS2015 - which is hours).

ASP.NET is... different. I feel that there is definitely more code that I need to write compared to Django, but I don't think of this as a huge obstacle - as long as you keep your code clean and organized. It seems that most of the problems that I have faced (so far) are common, and the solution is usually a click away on StackOverflow and/or MSDN.

At this point, I already had the requirements written for my Django project, so I simply needed to port my code from Python/Django to C#/ASP.NET.

But my challenge this time? Working on a .NET application using a MacBook.