It’s been over a year that ASP.NET MVC has become one of the major topics discussed on the .NET community, and there has been a fast-growing progress in the development of the product and teaching activities around it.
During this while and especially due to our work on the book which enforced us to rewrite many parts to meet our audience, I realized that one of the biggest problems for novices is, the lack of knowledge in the learning progress for this new product by Microsoft which usually yields to many confusions and misunderstandings. In my opinion this is mainly for some reasons such as the fact that ASP.NET MVC has undergone some major fundamental changes, and also there isn’t a clear distinction of ASP.NET technologies and the way that new ASP.NET architecture is made.
Therefore, in a recent post I discussed the new architecture of ASP.NET including several products in its stack such as ASP.NET MVC. Having that background, in the current post I’m going to talk about the way that you can get started with ASP.NET MVC.
Generally I can split the knowledge required to learn ASP.NET MVC into four main areas: principles, ASP.NET core API, ASP.NET MVC basics, and ASP.NET MVC techniques. Here I talk about them shortly.
Like any other software development technology, ASP.NET MVC is built on top of some principles and the first principle that is obvious for everyone is the Model View Controller (MVC) pattern and how to develop software with this pattern. Another common principle that is shared among many technologies is Object-Oriented Programming (OOP).
Besides, MVC development is nowadays tight to unit testing and Test-Driven Development (TDD) techniques, so for someone who wants to apply ASP.NET MVC as a serious tool, it looks mandatory to learn these concepts as well.
Having a background in Object-Oriented Programming is a solid requirement for all the .NET languages, and it’s not possible to imagine someone who wants to use ASP.NET derivations without learning C# or Visual Basic; therefore, this requirement is something implied in this context, and you must know it before everything else!
On the other hand, many of the upcoming books about ASP.NET MVC (including ours) have a good coverage of MVC pattern in software development that should be enough for a mediocre developer, and there are also some introductory chapters about TDD and unit testing concepts. However, the topic of TDD and its usage in common ASP.NET MVC developments is something that enforces you to learn it from other resources.
ASP.NET Core API
As I explained in a previous post, new ASP.NET architecture allows its derivations to apply some shared APIs in the core (such as caching). If you have a good background in ASP.NET WebForms, then you already have enough information in this field otherwise you need to spend some time learning about these core APIs whether from ASP.NET WebForms resources or ASP.NET MVC books. But as far as I know, none of the current books about ASP.NET MVC explains these APIs in details, and they’re a prerequisites for their audience, so you’re better to start with ASP.NET WebForms resources.
ASP.NET MVC Basics
This is something commonplace among software technologies. They usually have some basics that are required to use the technology as well as some techniques and advanced topics that help you in real world business scenarios. ASP.NET MVC isn’t an exception and it also has some basics specific for itself. Some concepts like the way to define a controller or action method, as well as modifying the routing patterns are topics that every developer should know about ASP.NET MVC to be able to use it.
Fortunately all the ASP.NET MVC books, articles, tutorials, and videos have invested much effort into this area, and you can easily learn these things as you wish.
ASP.NET MVC Techniques
To be able to take commercial positions and develop real world projects with a technology, you need to know some professional techniques and hacks about it. ASP.NET MVC is a technology that has many techniques and hacks. One point that makes this new technology a highlight is the level of customizability that it offers in comparison with ASP.NET WebForms. This can open many doors to such techniques and hacks, so this part of your learning progress should be very interesting for you. I can exemplify such topics as the ways to develop an alternative view engine or validation frameworks.
At the moment, some online blog posts and articles have covered some parts of these techniques. I’d expect to see such topics in a few ASP.NET MVC books as well, but don’t forget that this part of a technology is very progressive and there are always new findings specifically when the technology goes to the final stable stage and more people get their hands on the technology. Learning this part requires persistency and subscribing to active ASP.NET MVC resources.
The Obvious Part
The annoying point that has been a source of complain for many community leaders is the lack of knowledge in these fields among many developers who have taken professional positions!
While you’ll be fine with learning abovementioned topics, there are still some areas that you may need to know because they’re commonly used by ASP.NET MVC developers in their projects. One famous topic that you should know is jQuery.
You also may need to learn about some data technologies in order to be able to build your models. Some new technologies such as ADO.NET Entity Framework may have wide usages with ASP.NET MVC in the future.
The information about these topics are available in separate resources for their own but you may learn about them in ASP.NET MVC books, articles, and samples in a level that you need to use in your projects.