I graduated in computer science. I had pretty good knowledge in Java. I have about a year experiences in ASP.net C# Web form. What other things do I need to know if I want become expert in ASP.net MVC which I able to do a complex eCommerce website?


If you really want to become an expert in ASP.NET MVC, you'll first need to understand exactly what the MVC pattern is, how it's implemented in this case.

Next, I would get your head around stuff like:

  • The ASP.NET MVC routing engine - in particular, I'd look at how you can extend it!
  • How the framework passes parameters to your actions and how it decides which values to assign to which parameters and such
  • How the strong typing of parameters works, especially with reference types - this is quite a cool feature of ASP.NET MVC
  • How to implement form and model validation - look at the the client-side scripting that the framework generates for form validation and other stuff
  • Loosely- and strongly-typed views their partial counterparts
  • What kinds of data types the framework can send and receive, and how to do that
  • Error/exception handling - the way this is done in ASP.NET MVC is quite different to any other framework I've experienced
  • How ASP.NET MVC plays with tools like Entity Framework and LINQ-to-SQL
  • How Javascript (and jQuery\prototype\other) work with the framework and vice versa - in my experience, they work quite nicely together

Once you've really got your head around these things, the rest is pretty much like any other implementation of the MVC pattern.

As a side note, spend some time learning the Razor syntax. It won't be anything particularly new if you already know Java (and presumably C#), but I always find myself forgetting little things with it!

If I've missed something crucial, add it to the list!

  • @andybursg even i am at a learning curve of MVC and your answer is even more useful first to me(+1 for that) and then OP :) – Devjosh Feb 6 '12 at 10:40
  • ASP.NET ships with jQuery, I would suggest that understanding how ASP.NET uses jQuery for core elements like client side validation, as well as the concept of progressive enhancement would be useful. – AlexC Feb 6 '12 at 12:04

start from having a basic knowledge of M V C. go through exhaustive tutorial series.What actually they are i.e M, V & C. you should implement which kind of code How and where. Go through exhaustive tutorials available here. Watch Videos Available for making the concept clear by watching them implemented here

Get the more insights of MVC by watching some more advanced and detailed videos over here.

Download Sample MVC Applications from asp.net MVC site and try to observe the convention which is followed in those application

i will personally advise you to make sample applications along when you complete learning a concept

of course it will take time but learning is something which should be given time.

  • 1
    +1 for the fantastic tutorials provided. The PluralSight ones are fantastic! – Andy Hunt Feb 6 '12 at 10:36

In my opinion, what is your main purpose of your project, is that to conquer a very complex eCommerce website, if so, you should try another server side technology like JSP, Django or Ruby on Rails. They are more suitable. ASP best appropriate for small and medium project.

If you still decide to learn ASP.NET with MVC Pattern. First, you should understand basic info about HTML, CSS, XML (if any), Client Side Scripting like JavaScript (these are the very important thing you need to know about web technology).

And then, you should know about MVC Pattern (supposed you know basic about ASP.NET) You can loo kup more closely the MVC Pattern in any Design Pattern Books to understand how it works.

After that, you should try to take part in more and more projects, with real practice, you gradually become an expert in ASP.NET. Just remember: "Practice makes perfect"

  • "you should try another server side technology like JSP, Django or Ruby on Rails." That he did not ask! – Simple Fellow Nov 19 '14 at 22:19

Not the answer you're looking for? Browse other questions tagged or ask your own question.