7

I want to ask experienced ASP.NET developers about how to climb the learning curve of ASP.NET.

I am an experienced C++ and C# developers with no web application experience.

I found ASP.NET MVC and ASP.NET are two different technologies. I just want to ask:

  1. Whether these two technologies will co-exists or MVC will replace ASP.NET?
  2. If I want to learn ASP.NET MVC. Do I need to learn ASP.NET as a prerequisite?
  3. Can you recommend some learning resources? Book? Video? Not paid Microsoft training :(

Many thanks

Eranga
  • 32,181
  • 5
  • 97
  • 96
Kevin
  • 5,972
  • 17
  • 63
  • 87
  • 1st, learn HTML, CSS and Javascript (and probablt jQuery as it's likely a must use) – Steve B Oct 05 '11 at 08:18
  • @Steve B ... i am in same situation as this person was 3 years back ... just wanted to confirm that before i start with ASP.NET MVC ... do i have to learn "EVERYTHING" about HTML, CSS and Java Script?? – Sana.91 Jan 05 '14 at 13:08
  • 1
    @Sana.91: you don't have to know everything, but the ultimate purpose of ASP.Net is to produce html. So you will have to understand how ASP.Net works, what kind of HTML and/or javascript it produces. The amount of what you will have to learn will ultimately depend on what are your requirements, in term of user interface, look & feel and dynamic behavior – Steve B Jan 07 '14 at 08:47

5 Answers5

9

First of all ASP.NET is request/response pipeline. This means that you are given access to the request and response streams as well as some provisions like, session, cache, security, etc.

On top of this there are 3 frameworks in charge for generating HTML. The first and oldest is known as ASP.NET Web Forms. Because it was the only one it is sometimes called ASP.NET but this is not correct in the current state of things. ASP.NET MVC is the second one and there is a third one known as ASP.NET Web Pages. All 3 of these share the same core ASP.NET request/response pipeline and the APIs for Session, Cache... What is different is how they generate HTML.

You can check my answer to this question for more info. Asp.Net Web Forms and Asp.Net Web Pages

And to answer your concrete question - no Web Forms is not going away. A lot of people use it, MS are releasing new versions.

Web Forms is pretty good for people with desktop background because it uses a control model familiar to desktop devs and also has something that simulates state. It also requires less knowledge of HTML, JS, CSS. ASP.NET MVC is kind of the opposite. It gives you a lot of control but requires a lot of knowledge about the web.

I personally prefer Web Forms to MVC for a variety of reasons that I will not list here but even Web Forms supporters (and especially me) will admit that Web Forms is pretty bad way to learn about the web because it abstracts a lot of things. This gives you productivity, security, etc. but can result in cases of leaky abstraction if you don't know how the underlying framework works and it is pretty easy to skip learning the details because you know stuff just works... until it breaks and then you don't know where to start.

Ultimately the choice is yours but if you start with Web Forms be sure to learn about HTTP verbs, cookies, raw response stream, http headers, html form/submit model inline css vs separate files and javascript out of the context of Web Forms and make sure you know how Web Forms automates these.

Community
  • 1
  • 1
Stilgar
  • 22,354
  • 14
  • 64
  • 101
  • @ Stilgar: i am in same situation as this person was 2 years back ... just wanted to confirm that before i start with ASP.NET MVC ... do i have to learn "EVERYTHING" about HTML, CSS and Java Script?? – Sana.91 Jan 05 '14 at 13:09
  • 1
    @Sana.91 nobody knows "EVERYTHING" about HTML, CSS and JS but it will be easier if you are comfortable with them before you start with ASP.NET MVC because otherwise you may find yourself learning several things at the same time which may be hard. Don't go into advanced HTML5 stuff like graphics with Canvas, Web Workers, Web Sockets, CSS transitions, etc. Make sure you understand the basics. – Stilgar Jan 06 '14 at 15:20
  • so learning at least basics of each of these 3 will do the work,right? – Sana.91 Jan 07 '14 at 08:11
  • 1
    Eventually you will need to learn more as you get deeper into web development but the basics are a requirement. – Stilgar Jan 07 '14 at 11:29
3

1) Whether these two technologies will co-exists or MVC will replace ASP.NET?

The official position of Microsoft today is that those two technologies will coexist. ASP.NET MVC will not replace classic ASP.NET. At least Microsoft will continue shipping new features in ASP.NET.

2) If I want to learn ASP.NET MVC. Do I need to learn ASP.NET as a prerequisite?

Not necessarily but it will be better if you learned it because as ASP.NET MVC is based on ASP.NET kernel and it will help you be a better understand the underlying technology.

3) Can you recommend some learning resources? Book? Video? Not paid Microsoft training :(

http://asp.net/mvc is a good start.

Darin Dimitrov
  • 1,023,142
  • 271
  • 3,287
  • 2,928
2

Can't say if one is going to rule the other one out. But the easiest to learn is asp.net MVC. Pro ASP.NET MVC 3 Framework

this is a good book to learn it.

Frederiek
  • 1,605
  • 2
  • 17
  • 32
  • Frankly I doubt that MVC is easier for someone with desktop programming background (especially coming from Win Forms, MFC or similar component oriented framework) – Stilgar Oct 05 '11 at 08:34
  • Coming from WinForms or MFC, I guess WebForms are easier to get into than MVC. That is the transition path WebForms were designed for. – Arjan Einbu Oct 05 '11 at 08:39
  • Well i had personal less problems with the MVC then the ASP.NET. But that was because i had some good knowledge of html/php – Frederiek Oct 05 '11 at 08:53
2

http://www.w3schools.com/aspnet/default.asp
http://aspauthors.com/aspnetbyexample/
http://www.exforsys.com/tutorials/asp.net.html

Some links which may useful to you.

whostolemyhat
  • 3,107
  • 4
  • 34
  • 50
Jay
  • 1,317
  • 4
  • 16
  • 40
1

Darin gives you good answers on 1 and 3, but i disagree some on 2:

2) If I want to learn ASP.NET MVC. Do I need to learn ASP.NET as a prerequisite?

No. ASP.NET WebForms (often reffered to as just ASP.NET) has a VERY different paradigm.

While ASP.NET WebForms tries it best to hide all the web (like POST vs. GET, the HTML, how to maintain state) stuff from you, ASP.NET MVC is dependant on knowing and understanding the same things. Learning aboutWebForms' ServerControls and ViewState are of little help.

There are of course parts of the ASP.NET stack that you'll encounter in both WebForms and MVC. The different state mechanisms (session, application, cookies etc.), the Server, Reguest and Response objects, caching mechanisms, jQuery etc. are used in both places.

Arjan Einbu
  • 13,543
  • 2
  • 56
  • 59