.Net MVC noobie advice

I have played around with .Net for many years and have made quite a few win apps and web apps using the win/web forms. I never really liked web forms due to the awful html output, the view state and the completely out of place event model. It seemed to me that all it was doing was trying to help old vb forms programmers build websites without any really need to understand HTTP/ HTML / CSS / JS etc. So I avoided it mostly and wrote web stuff in Perl, Classic ASP, php and wordpress. Over the last few years I have spent a serious amount of time learning JS and feel comfortable now, so I have just been creating .NET webservices, which relied heavily on JS. I recently started to look at all the MVC web frameworks, i.e. Ruby On Rails and .Net MVC and I was pleasantly surprised by the very clean HTML output and the use of functional and dynamic paradigms ( lambdas and extension methods) from the .Net offering. As I started to learn .Net MVC I have realised I have a steep learning curve with all the complementary features, i.e. EF, LINQ, Razor etc. Does anybody have any advice for this me on what I should concentrate on as I see .Net as the tool that I need for my career and I can play around with Ruby On Rails when I am competent with .NET.

I’m in the same boat, but LINQ and EF are both ORM’s, to access and manipulate the database, that accomplish the same goals. LINQ was going to be deprecated in .NET 4.0, but because of developer backlash, Microsoft will fully support it into the future. Of course, you can learn both, which would be great, but me personally I am sticking with LINQ because it allows me to work with Stored Procedures along with Lambada Expressions.

Razor isn’t coming out until MVC 3, which will be released very, very soon.

Other then that, MVC 3 is available now, to experiment with, before the final version is released soon.

If you are looking for a dead-tree solution, I recommend the APRESS MVC 2 book available now for a good project tutorial and reference. Really good book that covers a lot of topic pertaining to MVC.

Also, do you know what .NET language you are going to build your MVC apps in? C# or VB.NET? You will need to write MVC websites in either-or.

I am using C# as I have used this since my first .Net 1.0 app, I felt VB.Net was something that was going to die out and looked rather strange,(not exactly VB6 or java based) and at the time I was playing around with Java and it seemed a close match. From a data access point of view I am struggling as my main work DB is DB2 and LINQ2SQL doesn’t have a provider, EF does support DB2 but I find it quite cumbersome and high level and XML based, yack… Still I am going to stick with it as I feel that .NET is the way to go at the moment from a career point of view. Still really interested in Ruby On Rails, but I am not touching it until I have had my head stuck in .NET MVC for a few months… This research is not only personal, but also work based as I need to recommend a new server-side technology and my biggest problem will be trying to encourage other people to learn .NET when they are used to hacking with Classic ASP.

Professionally…

This should never happen until long after you’ve been hired and have a firm hold on your position there. Try taking a look at some want-ads by various employers in your region to get a feel for what they are currently using. Learn that first. Some companies may hire on potential, but most hire on concrete knowledge. Once you’ve gotten past the hurdles, move up from there. You may even find there isn’t a need for anything more than what you’d currently be doing.

Personally…

Learn both c# and vb.net as some projects start by disecting existing client code. You’ll need to be able to pick both apart.

Learn both WebForms and MVC for the exact same reason as above.

Learn (Fluent)Nhibernate. It is a much better alternative to EF and Linq2Sql. If that’s too much, wait until the EF CTP5 goes RTM in the first quarter of 2011. It will contain much of what Nhibernate does now, only with the backing of MS.

@Serenarules - Thanks … I am the senior dev in my shop and have been there for a long time and that is why I have been given the responsibility to decide on a new server side dev technology. I have never been comfortable with web forms, which is more to do with the output and how it tries to force the Request/Response model of HTTP into the win forms event model. I think I have avoided .Net long enough and realise that I need to learn this for my own career based on the employment opportunites that are out there. Fortunately MVC has come along, which I feel is a much better framework and will even help me to learn other .NET concepts and related technologies as I become more involved in the .NET world.