My Own Blog Engine Software
Today I spoke at a one-day class at UCSD Extension titled .NET 2.0 University, giving a 90 minute presentation on new features in ASP.NET 2.0. My presentation focused on:
- The provider model
- Site Navigation
- Master Pages
- Data binding / Data Source controls
- The Login and Navigation Web controls
I had a slew of demos showing each of these neat features in their own right, but no single, unifying, semi-real-world demo to illustrate the use of many of the above concepts in one fell swoop. This lack of a unified demo nagged at me a bit during the week, but I had a full plate. Today, though, after the lunch break, still 90 minutes away from my talk, I decided to see if I couldn't create such an encompassing demo in the hour and a half I had before I was slated to speak. Being able to create such an app, I figured, would not only be a fun race against the clock, but would highlight the developer productivity improvements baked into 2.0.
So I set out to create a very, very simple blogging engine, a website that used master pages, would allow visitors to create accounts / login, add entires to their blogs, view the 10 most recent blog entires on the homepage, provide site navigation using a menu with a list of the bloggers and their three most recent posts, and a page to see a list of all of the site's bloggers, when they started blogging, their last login date, and so on. It uses a custom site map provider to base the navigation structure on the bloggers and their three most recent posts. (To be fair, the custom provider involved a little cutting and pasting from another example I had done a few months back, although I still had to write a sproc and change the meat of the code in the BuildSiteMap() method.) As a testament to ASP.NET 2.0, I was able to create such a site in a little under 75 minutes. I contemplated adding some additional features - a page to view all of the posts for a particular user, or an aggregate RSS feed for the site (or by user, perhaps), but figured such demos were tangential to the features I was presenting in 15 minutes (that and my batteries were nearly zapped and I wasn't near an outlet).
If interested, you can grab the Visual Studio 2005 project here. If you've yet to explore 2.0, I think you'll be heartily impressed with what is accomplishable in such a short window of time. Of course this application is very trivial and not even close to being ready for prime time, but I still think it's impressive to have gone from literally ziltch to what I had in 75 minutes, to which the ASP.NET team deserves the credit.