Here we are, nearly 10 years into the 21st century and it is amazing where we have come from.  I remember picking up classic ASP back in the 90's and thinking "this is cool."  Back then, we used to build COM objects and in-line SQL, words today that are usually synonymous with cringing, sighs, and the "FFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUU-" face. 

Most people will agree that the trend these days is abstraction.  WCF is a great example.  We have a lot of capability at our disposal but the one thing we don't have is time.  The sheer amount of time it takes to construct our applications is something most developers have been striving to reduce.  At the same time we are asked to maintain quality and allow for rapid turn-around on bugs and new features.

This list is a short/quick highlight of major technologies, mostly ASP.NET related, either in the forefront or working their way into the forefront of development today.  It is a list, I considder, worthy of being known by all ASP.NET developers by 2010.  Some may argue that you should already know these things, but I won't go there.  =)

These are not listed in any particular order.

6. MSBuild / NANT / Build Automation

Why? Because you have better, and more important, things to do then move files, make IIS directories, and version your code.  This has fastly grown within the past five years with the adoption of test driven development and continuous integration - both concepts that all developers should be familiar with these days.

All developers today should be using some form of Source Control with a build routine (nightly, daily, etc).  Even on something as trivial as a "Hello World" application, the practice and habit of using automated build techniques can greatly improve your productivity and save you time when it comes time to take that gorilla and move it to your production servers.  You do have separation of development and production right?

What? MSBuild is the Microsoft build platform and can do just about anything you like.  Like MSBuild, NANT is another build platform that can also do just about anything you can think of.  The nice thing about NANT and MSBuild is that if a "task" is missing from the framework, you can easily write your own custom task to achieve what you would like.  It behooves you know both because many projects these days use different build systems.  Team Foundation Server and Team City are just a couple.

5. WCF, WPF, and WF

Why? Because .NET is not a constant or static plane.  It's an ever-evolving and maturing framework that will continue to move forward, with or without you.

If you haven't taken time to sit down and review the new foundation technologies that ship with ASP.NET 3.0, you need to do so sometime this year.  Tools and accompanying frameworks are maturing in line, but behind, the .NET framework - your applications should be as well.  The earlier you start, the better.

What? WCF, or Windows Communication Framework, is used to abstract the "plumbing" of your application.  I highly suggest you take a look at the patterns & practices App Arch guide, as it contains a great scenario and walk-through of how you make use of these new technologies.

4. Silverlight and Expression

Why? Because it's not that hard to make your website look great.  With Silverlight you can link your rich interface with your data that the bits that make it work.  Sure, you can get away with simple XAML and source code, but the experience is much easier with Expression studio.

It is going to be interesting to see how the Flash vs. Silverlight battle plays out.  Even within just the past year, Silverlight has made huge gains on Flash and offers great integration with existing ASP.NET applications.  I am sure you could make cases of "anything you can do, I can do better" but we will spare this article from that banter.

What? Claiming that Silverlight is simply "Microsoft's version of Flash" is probably inappropriate.  But, for someone who doesn't know, that essentially is what it is.  The real value of Expression really shines when you start talking about taking your design/layout and moving it into a rich web-client application. 

3. JQuery

Why? Because it's freaking cool, that's why.  There are a lot of other nice Javascript libraries out there but JQuery is the one being adopted by Visual Studio

What? Jquery is a Javascript library that has a lot of neat tools in it's bag.  It is very helpful for taking care of mundane tasks like "get that div" or "set that text box value."  It also has a great set of methods for dealing with AJAX.  

2. W3C Design Compliance & "Table-less Design"

Why? Because by now, you should know better.  Stop being lazy and reverting to using tables.  All developers today should be using W3C compliant HTML in all of their applications.  On top of that, it will make your life easier when you go to cross-browser test your latest creation.

What? Most people are familiar with what the W3C is.  We also know what a nightmare it has been for us to design websites that work in all shapes and forms of browsers.  As a rule of thumb, I typically make sure that a website works in IE, Firefox, Chrome, and Safari.  While Firefox and Chrome use a similar rendering method, this usually tends to satisfy the majority of web browser clients.

1. Azure

Why? Because this is the future.  It might not be Microsoft's framework that everyone adopts, but eventually we will all be working with some type of cloud computing environment.

What? Azure is Microsoft's cloud computing framework. There is a great video on the technology website that can help better explain just how you can use it. 


I hope this article is a help for anyone who is still stuck in ASP.NET 2.0 land or is overwhelmed by where to start.  I am sure there is other great stuff that should have made the list.  Feel free to call me out on it.  =)

kick it on DotNetKicks.com