I'm Keyvan Nayyeri, a 25 years old Ph.D. student at
the Computer Science department of
the University of Texas at San Antonio.
I'm also
a Software Architect and Developer and previously held a B.Sc.
degree in Applied Mathematics.
This is my blog where I publish content about various topics specifically Programming Languages and Compilers, Software
Engineering and Programming.
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.
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.
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.
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.
While I jumped in the core topics about ASP.NET MVC, I completely neglected some obvious requirements for a web developer that must be a part of your background such as knowing XHTML, CSS, and JavaScript as well as using your development IDE which is usually Visual Studio.
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.
ASP.NET MVC Archived Buzz, Page 1
Mar 03, 2009 12:10 PM
#
Pingback from ASP.NET MVC Archived Buzz, Page 1
How to Learn ASP.NET MVC
Mar 04, 2009 3:10 AM
#
You've been kicked (a good thing) - Trackback from DotNetKicks.com
Reflective Perspective - Chris Alcock » The Morning Brew #299
Mar 04, 2009 3:39 AM
#
Pingback from Reflective Perspective - Chris Alcock » The Morning Brew #299
How to Learn ASP.NET MVC : Keyvan Nayyeri
Mar 04, 2009 7:26 AM
#
Thank you for submitting this cool story - Trackback from DotNetShoutout
ASP.NET MVC Stuff « QuantuMatrix’s Weblog
Mar 04, 2009 12:22 PM
#
Pingback from ASP.NET MVC Stuff « QuantuMatrix’s Weblog
Tim
Mar 04, 2009 2:45 PM
#
I would like to learn about ASP.NET MVC inside out, but I do not know anything about ASP.NET. Could you please list all the ASP.NET Core APIs that are used in ASP.NET MVC? I believe I would not need to study everything about ASP.NET Webforms in order to be able to understand ASP.NET MVC.
a1
Mar 05, 2009 6:29 AM
#
Thanks
taelor
Mar 14, 2009 9:52 AM
#
Tim,
check out the tutorials on the http://www.asp.net/mvc/ website. I personally come from the Ruby camp, so I have not really seen much of these "web forms" and "post backs", but with those tutorials, I was able to build a foundation for an internal tasks and client services web app for my company.
also check out http://stephenwalther.com/ blog. There was one post in particular showing what new things to use (like controller and view code generation).
ASP.NET MVC 1.0 Released
Mar 18, 2009 9:00 AM
#
Back to pre-historic days, we had to wait for Scott Guthrie to let us know what’s new with Microsoft development products, but nowadays days thank to economic crisis and loss of attention on download priorities on MSDN as well as a quick spying site called
shahnawaz
May 19, 2009 7:58 AM
#
How can I Learn the Asp.net, Can you help me about this Asp.Net
I want to Learn it
In Future make myself as a Professiona
Shahanawaz Khurrum
shah_khurrum@hotmail.com
Leave a Comment