views:

160

answers:

8

I am not a web programmer by any definition. I am more interested in the language and some low-level stuff. I like a simple, small language like C that has a fairly small grammar set with a vocabulary that is fairly large. I like programming in an environment where I know what's going on. I feel very awkward working with frameworks that build a huge cushion of abstraction and expect you to just put a few pieces together for a set of given situations.

It is for that reason that I've been very scared of ASP.NET. I have read books on ASP.NET 1.1 when it was out and even tried building a website on my own, with little success (okay, some success) and that was just to learn and practice ASP.NET. But that was about it. I can't say I've built a fully functional start-to-finish ASP.NET website in my career ever.

And now, I have to learn ASP.NET MVC for a new project. I've been a very hands-on guy writing most applications single-handedly in my career and I'm now having goosebumps just thinking of the prospect of learning a Web technology.

I always side stepped any opportunities for Web development because there's just so much, I think, one needs to know to build a web application. JavaScript, CSS, XHTML, XML, a server side programming language, a database language, some middle-tier shit like ADO.NET or some ORM like the entity framework or Linq, etc. just to name a few. Oh, and Ajax and crap, and then Ajax has so many, umm, implementations from different vendors.

I'd say I know all of these things only a little bit, just enough. I can't say I am very good at any of these.

And that's all the more reason for my fear. Is a guy like me, who has read books on ASP.NET, knows classic ASP somewhat, and has only dabbled with web technologies but never actually written anything useful with them, going to be able to learn ASP.NET MVC?

If you think someone like me should be able to pick it up, where do I start? There's just so much information on the asp.net website but most of it doesn't get to the point to begin with.

I'm interested in what's going on under the hood. But I'm scared, without an intimate knowledge of the ASP.NET framework and what goes on inside (http.sys, how IIS, ISAPI filters, extensions, the ASP.NET worker process, etc. work), am I going to be able to appreciate the "why's" of ASP.NET MVC?

Basically, I just have cold feet. And I need someone to tell me it's not all that impossible.

Update Thank you for your answers. I'm watching the videos on the asp.net website and am also about 130 odd pages into a book on ASP.NET MVC that I'm not enjoying very much. It's a 590 page book that doesn't do a lot of good in the first 100 pages odd.

I've watched a couple of intro/overview videos and seen some code and it's all the same thing. Everyone's telling you how to do something but not really telling you why, or what's really going on? I want to know why something works and how it has been implemented. I guess it's a matter of time before I bump into something that will start making more sense.

+3  A: 

OK, if you just want to "hear" that, I will tell you - "It's not all that impossible."

I don't think that web developers are just a special chosen ones. You need just patience and more practice. Start from simple projects just to break the fear. Then gradually you will go on to more complex web projects and will accumulate much experience. Just give it a try and work hardly and you can achieve a lot. As for the resources there are tons of books, blogs and etc.... and also check www.asp.net it will help you much.

Incognito
+2  A: 

As a programmer you'll always keep learning and you'll never know everything about everything. I think if you want to become a good professional programmer your primary hobby should also be programming.

The nice thing about ASP.NET and .NET in general is that there's a huge community that can help you learn as fast as you can, and want. Not to mention all the books that have been written about it.

So read, start with a small web application, ask questions. You don't need to know about css, javascript, ajax, etc to get something working in .NET.

Jeroen
+8  A: 

Read the NerdDinner tutorial. It's the kinder, gentler way to learn ASP.NET MVC.

Robert Harvey
+4  A: 

I just started (2 weeks ago) with all videos available under MVC category in ASP.NET website

http://www.asp.net/mvc/videos

balexandre
Did you have any experience with ASP.NET before that?
Water Cooler v2
yes, 5 years in Webforms and plus 10 more (before .NET) in ASP and web developing :)
balexandre
+2  A: 

The best way is for you to write a simple application that you understand already. You might want to start by looking to write a simple blog for yourself. I have found this process incredibly helpful since most of us already know what a blog is supposed to do and it pretty much uses most of the functionality that asp.net mvc provides for.

Bikal Gurung
+1  A: 

Here's the problem - you're thinking too big. You need to start out small. VERY small. And you need to be concerned with the client side far more than the server to start. Here's what I have new developers do:

  1. Write a simple static .htm file in notepad that shows a table with the last 5 places you've gone on vacation
  2. Create inline css at the top of the page to style it a bit
  3. Add simple javascript (or JQuery if you're bold) to change the color of a cell when you click on it

At this point, you've created a super simple website, without touching the backend. Now, to learn a little MVC:

  1. Port your single file into a view in MVC, and create an action to serve that view. Other than the header info, the view should be THE EXACT same as your simple .htm file
  2. Setup your controller action to add a list of vacation objects to your model, and change your view to read from this model and generate the table in a for loop

At this point, you've created a basic readonly form. Pretty simple, but getting the basics is far more important than trying to tackle something big. I usually have newcomers add a simple POST form at this point, and possibly even use some $.get or $.post jquery calls. But once you understand what is happening behind the scenes, it's pretty easy to build on it (and easier to search for something if you cannot figure it out).

Andrew
+2  A: 

"...there's just so much, I think, one needs to know to build a web application. JavaScript, CSS, XHTML, XML, a server side programming language, a database language, some middle-tier shit like ADO.NET or some ORM like the entity framework or Linq, etc. just to name a few. Oh, and Ajax and crap, and then Ajax has so many, umm, implementations from different vendors."

Those are different disciplines and you shouldn't be expected to do all those things yourself. As the C# backend guy you would expect to write the server-side code itself and deal with ORM/ADO.NET and maybe databases. But someone else, usually a designer, does the HTML and CSS, and something else, usually a front-end engineer as we call them where I work, does the JavaScript and Ajax. Although a basic understanding of those other things is necessary.

If you where having a house built, one person wouldn't be responsible for the drawings and planning, and laying the foundation, and driving the cement trunks, and lay the bricks, and do the plumbing and electrics, and build the furniture, and lay the carpets etc etc.

Remember "Jack of all trades, master of none".

If you hate the high level of abstraction in ASP.NET, then you're picking the right choice with ASP.NET MVC, it's coding 'closer to the metal' or closer to the raw HTTP stack.

Out of interest, which book are you using? I would recommend Steven Sanderson's Pro ASP.NET MVC 2 Framework http://www.amazon.com/ASP-NET-Framework-Second-Experts-Voice/dp/1430228865/ Best book I've read on ASP.NET MVC

Sunday Ironfoot
+1  A: 

I prefer to learn by example so I find projects and read the code.

For that I would recommend looking at some of the open source MVC apps.

You need to have a basic understanding before you start but the rest you can pick up from reading code. I find this approach more fun than reading books.

Sruly