web 2.0

Advice for Aspiring ASP.NET Web Developers

For some reason, I have been asked the same question a lot lately. Which is, "I am new to development. Do you have any tips/tricks/suggestions to get me up to date on ASP.NET?". My knee jerk response to this question is usually to point people to Google for the answers. However, there is so much information floating around on the web these days that it can be overwhelming when you try to comb through it all. So, if you are an aspiring ASP.NET web developer then I hope you will find the following links, tips and tricks useful.

The Basics of Web Development

No matter what web technology you develop with, there are some basics that you should understand first:

HTML – If you have never had exposure to HTML then you are going to want to visit W3 schools tutorial page before going any further. In its most primitive form, HTML is very simple and easy to use.

Cascading Style Sheets (CSS) is a style sheet language used to describe the presentation semantics (that is, the look and formatting) of a document written in a markup language.

JavaScript is an object-oriented script language used extensively on the web. Once again, W3 school is a great resource for learning JavaScript. 

A well designed website is a clever combination of HTML and CSS. JavaScript is then applied to make your site dynamic and interactive. It takes a fair amount of time and experience in order to truly understand how these technologies should coexist together.

ASP.NET Web Development

0-the-matrix-red-blue-pill

When it comes to ASP.NET Development you really have two choices. If you take the blue pill (WebForms) - the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill (MVC) - you stay in Wonderland and I show you how deep the rabbit-hole goes.

Yes, I am slightly biased towards MVC even though I don’t want to completely discourage people from WebForms because it still has an important role in the realm of ASP.NET development. However, I truly believe that MVC is the future of ASP.NET, If you have done any sort of web development prior to experimenting with ASP.NET then you may quickly come to the realization that WebForms is a hack. Yes, it really does a bang up job of masking the stateless nature of the web. However, the web is stateless and I would prefer to deal with those shortcomings on my own terms instead of adopting some crazy, half-assed programming paradigm. Why hide the truth from everyone? One of my favorite statements regarding WebForms is from Rob Conery:

"It’s abstraction wrapped in deception covered in lie sauce presented on a plate full of diversion and sleight of hand. Nothing you do with Webforms has anything to do with the web – you let it do the work for you."

Anyways, If you chose to take the blue pill (WebForms), I would begin by watching some of the tutorials on asp.net's website. In particular, I would concentrate on the page lifecycle. Make sure that you know and understand events such as PageInit and PageLoad. Learn about the meaning of a PostBack, your life will depend on it! In addition, spend a little bit of time working with the various controls such as the data grid and the data repeater. Finally, make sure that you are familiar with the concept of a master page. Life without the master page is hell.

If you chose the red pill (MVC), then the Nerd Dinner eBook and source code is all that you really need to get started. The Nerd Dinner source code has recently been undergoing some changes to accommodate the new features in the .NET 4 framework. If you talk to anyone who has done ASP.NET MVC development, they will tell you that Nerd Dinner is the ultimate learning source for quickly getting up to speed with MVC. In addition to Nerd Dinner, here are some tutorials that I wrote regarding MVC:

jQuery

jQuery can simply be described as JavaScript on steroids. The jQuery slogan is “write less, do more” and let me tell you that this is the absolute truth. I can’t not even imagine writing JavaScript code anymore without using jQuery. It is an absolute lifesaver.

In case you are wondering, JQuery is not a Microsoft specific technology. However, Microsoft realized the importance of this library early on and took on the task of integrating it into Visual Studio. When it comes to jQuery tutorials, the ultimate resource is jQuery.com. They have a great tutorial section to get you jumpstarted. I have also written a fair amount of jQuery tutorials that will help you on your way:

Summary

In the world of programming, it is important to start with a solid foundation first. Understanding concepts like GET, POST, PUT and DELETE will help you no matter what web programming language you decide to adopt. Also spend some time to understand how an HTTP Request actually works. This will help you immensely when you start delving into topics like AJAX and REST. Also consider participating in a open source project. There is no better way to learn than by actually writing some code. 

Finally, If you have never written any code before than don’t expect too much the first time you try to develop a website. The most important thing is that you remember to have fun and enjoy the ride!

Comments

Aditya H. United States, on 4/19/2010 1:08:58 AM Said:

Aditya H.

Thanks for this post. I do believe though that before even jumping directly to the framework, noobs developers should start learning the basics of HTTP, session state, cookies, and asp.net page life cycle, and some other basic stuffs

mikeceranski United States, on 4/19/2010 8:02:18 AM Said:

mikeceranski

Hi Aditya,
   You make an excellent point. If you learn HTTP, session state and etcetera it can be generally applied to any web development language. I started out by learning classic ASP and PHP first. Therefore I was exposed to a lot of things that modern WebForm developers take for granted. So much work is done by the controls and frameworks these days. In any case, I hope my post was helpful to you.
Thanks,
    Mike



Matt B. United States, on 4/19/2010 9:38:33 AM Said:

Matt B.

Once again, great blog post. I would like to add, once you build a good foundation of core skills, dive in and build a website (outside of your day job) that deals with something you are passionate about. Try to build something that will be an on-going project, versus a small static informational site.

Why?
1. Gives you a platform to try out new technologies.
2. You can read 1000 books and forget most of what you read. Actually doing it, will help you remember it. You might be pinned down in your corporate day job, building applications that are "boring." Your outside project is where you can have fun and flex your coding muscles, any way you like.
3. If you are passionate and patient enough, your outside project could turn into a nice money maker for you. Hey, if it pays for itself, plus your gym membership, and a nice monthly dinner for the family at Red Lobster, what's not to like about that?!
4. Finally, if your project turns out to be a really nice expression of your work, and you DO good work, put er' on your resume.

My case in point, was a music website I built back in 2001. Unbelievable to me now, version one was all static html pages, no database, in a super cheap shared hosting environment. Then as my career progressed, I would build new versions. Next was classic ASP with an Access database. Then .NET 1.1 with Access. Then .NET 2.0 with SQL Server. etc. etc. etc. all the way to today, I'm working on .NET 4/MVC/Jquery/SQL Server 2008. I ended up learning more from this on-going project than I did in college and I would be willing to bet, when put up against other developers for a job, it was my passion and outside work that gave me the slight advantage in winning the job.

uberVU - social comments , on 4/19/2010 10:40:09 AM Said:

trackback

Social comments and analytics for this post

This post was mentioned on Twitter by mikeceranski: blogged:  Advice for Aspiring ASP.NET Web Developers http://goo.gl/fb/yuOFq #aspnet #dotnet #programming #tech

mikeceranski United States, on 4/19/2010 10:57:34 AM Said:

mikeceranski

Excellent point Matt.

Participating in open source projects has really helped me out in my career. I am currently working on WeBlog which has so far been great learning experience. Also, working in a team with other developers is always a huge advantage. Being able have a whiteboard discussion or just talking about technology over lunch is a great way to learn.

Software Web App Development United States, on 6/1/2010 4:55:02 PM Said:

Software Web App Development

Web Development with C# is really the way to go. From my observations people really aren't writing too many new apps in WinForms these days. I am seeing more Silverlight, SharePoint and MVC development. The .NET stack has really been evolving at a rapid pace and I think people are starting to see its full potential.

Comments are closed