Wed Jul 13 2011

Last night I had the opportunity to virtually present to the NUFW users group on ASP.NET. Personally since .NET 4.0 released, it feels like the ASP.NET team has managed to push out a metric ton.

When I speak about "newer technologies" my goal is pretty simple. Put a new tool(s) in your toolbox. It's unrealistic for me to think you might become an expert in less than 60 minutes, especially for something you might have never even heard of. When I am done, I want you to look into your tool box, and know I just put a new wrench in it. I want you to know what it's for and how it relates to you and your other tools. You will have seen me use it but now you really need to pick it up, see how it feels and start to understand how you can incorporate that into your daily life.  Now if we had more time, depending on the context, it might be different.

And, yes I like car analogies.

I don't know about you but personally it's very easy for me to become overwhelmed by all of the new things being release in and around the web. Last night I attempted to string together a story that covered all of the following:

  • WebMatrix WebDeploy Razor NuGet Helpers ASP.NET Web Pages ASP.NET Web Forms ASP.NET MVC Some HTML5 Tooling MVC Scaffolding IIS Express

Seriously, that is a lot of stuff?!?!! Ironically after having talked so much about it over the past 6 months I realize while the list is a lot of bullets those LEGO pieces all snap together really nicely. Last night we opened with WebMatrix. Since it's the newest and mostly has the most FUD around it, why not start there. What people most often don't realize is pretty much everything talked about in WebMatrix is transferable to something like MVC3. WebMatrix is built on top of ASP.NET, in fact the project structure is just an ASP.NET WebSite project. It uses SQL Compact, WebDeploy, Razor, IIS Express and so on. I love to teach things like Razor concepts ( such as layout ) in WebMatrix. It's just simple and very fast.

Once you realize it's all related in some way you might then ask, why should I care? Very valid. It's a compliment to Visual Studio and in fact you can take a WebMatrix Project and open it directly in Visual Studio. I personally like to show sites such as this blog and our WebCamps Site as examples of sites that I have chosen to build in WebMatrix as the primary editor. Having said that I did use Visual Studio for some of it as well. One is PHP and the other is ASP.NET. Both were done in less than two weeks. It's the simple, get things done approach where I might not care about some of ceremony of things. Don't get me wrong, I love MVC. Developer Smackdown is an MVC site and that was absolutely the right decision. Before jumping into MVC I like to finish showing Helpers, and the Open Source Integration.

When I start to talk about MVC, I like to start with a blank slate, just an empty project. From there I will install MVCScaffolding using NuGet and we build out a simple podcast site administration site. Since I run a podcast, you might see why I got this route. Once I have the site running I like to explain the following:

  • What just happened? Put a break point in the controller and talk through the call stack? Talk about the MVC implementation in ASP.NET
  • Talk about MVC vs WebForms vs WebPages
  • Talk through Scaffolding and how to use it and customize templates.
  • Look at the assets created with Scaffolding and compare that to what we build using WebMatrix
  • What is Routing and how does it work? How does it work compared to what we saw in WebMatrix?
  • How did EF create the DB without there being a DB?
  • Install other things through NuGet and see how that all fits together. Even show your own NuGet store.

If you're overwhelmed, your not alone but it's not as daunting as it might appear. Just start building something to see how things work. I think it's a totally valid approach to start with a blank slate and use scaffolding to build out a shell site to see what happens. Here is a list of links and resources either mentioned last night or related to what we talked about:

NuGet Packages I used:

Where can you download the tooling:

My demo's are located at: