Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

First of all, I am not a web developer but I can say that I understand in general the difference between PHP, ASP.NET, etc. I have played a little with ASP.NET and C# as well, however, I didn't continue the learning path.

Now I'd like to learn ASP.NET MVC but there is no a book for a beginner in ASP.NET MVC so I had a look at the tutorials but it seems that I need to learn C# first and SQL Server and HTML, am I right?

So please tell me how can I learn ASP.NET MVC directly (I mean without learning ASP.NET Web forms). What do I need to learn (You can assume that I am an absolute beginner).

Update: It is true that i can find ASP.NET MVC tutorial that explain ASP.NET MVC, but I used to find ASP.NET web forms books that explain SQL and C# at the same time and take you step by step. In ASP.NET MVC I don't know how can I start! How can I learn SQL in its own and C# in its own and then combine them with ASP.NET MVC!

share|improve this question

closed as off-topic by Jim G., GlenH7, gnat, MichaelT, Kilian Foth Nov 11 '13 at 8:45

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Jim G., gnat, MichaelT, Kilian Foth
If this question can be reworded to fit the rules in the help center, please edit the question.

If books are what you're looking for, there are plenty of books on ASP.NET MVC out there... Not sure what you're asking. – Eric King Mar 14 '12 at 20:50
@Eric: Professional books? I am asking for beginners'. – Naif Mar 14 '12 at 21:04
Some people have said learn them all at once, but I would start with C#, progress to databases, and then HTML. Finally I would tackle ASP.NET MVC. Note don't think you need to become an expert at one thing before moving on, you just need a foundation. It's hard to recommend particular books etc without knowing your learning style, some people like the Head First books for beginners though (for C#, SQL). For HTML use the Opera web developers curriculum. And for MVC use the tutorials on the Microsoft website. – Antonio2011a Mar 14 '12 at 22:36
From your question, it seems like you've looked at WebForms books before, but you're daunted by the idea of learning C#. That's odd to me. It seems like maybe you aren't actually learning it, but just copying along with the examples. I'd highly recommend focusing on just understanding one element as suggested above. If you can't read the examples and understand the why of what's being written, you won't be able to apply it. If you can though, it won't matter whether you learn WebForms first or not, because you'll be able to apply what you learn to any framework. – CodexArcanum Mar 16 '12 at 5:52
I mean, things like SQL, HTML, JavaScript, and the C# language itself are all common between WebForms and MVC. Even large chunks of the underlying framework (the ASP.NET stuff) are the same. You'd have to learn everything else either way, so it doesn't matter where you get it from, just so long as you get it. – CodexArcanum Mar 16 '12 at 5:54

You don't need to learn ASP.NET Web Forms to learn ASP.NET MVC, and none of the tutorials will require that of you. You will, however, need to learn C#, SQL and HTML. You also need these same skills to write programs using ASP.NET Web Forms.

The ASP.NET MVC site is probably the shortest possible path for learning ASP.NET MVC for a beginner. If you follow the tutorials there, it will become clearly evident where you will need to supplement your learning.

share|improve this answer
No need to learn SQL for ASP.NET MVC. HQL would work equally if you use NHibernate to talk to the database. Or maybe you use an exotic database that uses an entirely different language. +1 anyways as I really like this answer. – Manfred Mar 14 '12 at 21:28
Or Linq, for that matter. – Robert Harvey Mar 14 '12 at 21:30

You do need to learn C#, SQL, HTML and probably some JavaScript. ASP.NET MVC is intentionally more programmer-oriented and does not include all the tooling provided by ASP.NET WebForms (e.g., no drag-and-drop designer elements). The upside is you get a lot more control over what your program is doing and if you have HTML/CSS/JavaScript skills it's easy to put them to work building a great website. The downside is you do have to learn some server-side programming practices. If you learn C#, you could avoid learning much SQL by using the Entity Framework for querying a database (if you need a database).

If you don't know HTML you're going to have trouble so you might want to start there. It's easy to get up to speed quickly.

A similar question was asked here already:

How to properly learn ASP.NET MVC

share|improve this answer
+1, for realistic advice. I agree with your answer except for the part: "you could avoid learning much SQL by using the Entity Framework" - I think every developer needs to know basic SQL. – NoChance Mar 14 '12 at 21:39
Heh, let me restate that: you could avoid learning much SQL while standing up a basic MVC site...but not for long. – pfries Mar 15 '12 at 16:01
Having done a lot of work in ASP.NET WebForms, I have to say that the drag-and-drop appeal is very deceptive. The abstraction will inevitably leak when you need to do anything complex, and then you're going to be thrown into the deep end of trying to fix code with no understanding of what the controls are actually doing. MVC seems more complex, but it's much more open and apparent what is happening. IMHO, anyway. – CodexArcanum Mar 16 '12 at 5:42
yes, for that reason, if you know a little HTML, JavaScript and server-side programming, MVC is actually much simpler. – pfries Mar 16 '12 at 20:58

I think the better way to learn is by studying sample code or applications. I will suggest you take a look at this Visual Studio extension. It's a code generation tool and there's a free version you can download. It will generate a complete MVC app form an entity model. You can learn how things are done in MVC by studying the generated code.

share|improve this answer

In ASP.NET MVC I don't know how can I start! How can I learn SQL in its own and C# in its own and then combine them with ASP.NET MVC!

It sounds counter-intuitive, but it's better to try and learn them all at once!

If you try to ignore any of them, you'll be missing out on a HUGE part of creating web applications under the Microsoft stack.

See a concept you don't understand? Research it relentlessly; even if you split time between C#/SQL and MVC evenly. No one becomes an expert in one and then moves to the other and then the next--any good developer is still learning all three.

share|improve this answer
If the programmer is a beginner, learning them all at once is a recipe for confusion. Start with one thing. – LachlanB Mar 15 '12 at 13:08

If you want an extremely good videos for learning ASP.NET MVC3 I fully recommend you to watch the ASP.NET MVC 3 Fundamentals by Scott Allen from PluralSight.You may find it here: Link

share|improve this answer

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