Browsing Posts published in May, 2008

I’ve received a lot of great feedback on Becoming a Jedi and was planning on having the next episode done already. Unfortunately lightning struck twice. While fighting a horrid sore throat -likely the same illness that had Roy Osherove missing two of his three DevTeach presentations – my motherboard on my main dev box died a horrible BSOD death and corrupted my RAID array during its death throes. I’m picking up new hardware tomorrow and rebuilding the RAID array from a recent backup. Fingers crossed, I should be back in business and recording later this week, which would mean a new episode sometime next week. Thanks to everyone for your patience.

<message type=”aside”>

I cannot stress enough the value of a good backup plan. My main workstation stores everything on a RAID 0+1 array. I have essential data (client documents, family photos, corporate information) replicated between multiple computers via FolderShare. Any development or writing is stored in a Subversion repository – public or private depending on the work. Each computer is backed up using Vista’s Backup, which is far superior to Windows Backup in previous versions. Those backups include more files than is replicated via FolderShare. (FolderShare limits you to 10,000 files per library, which isn’t enough if you’ve got a few Subversion working copies kicking around in there.)

Now why do you need a good replication and backup strategy if you’re storing your information on a RAID 0+1 array? You can rebuild the array if a drive fails. Aren’t the replication and backups redundant? For those who skipped the beginning of this blog post, you need backups just in case your motherboard dies a horrible death and corrupts your RAID array. Or you realize that you accidentally deleted an important file a few days ago and in the meantime you’ve emptied the Recycle Bin and run a defrag. RAID arrays – while fantastic for protecting you from drive failures (RAID 1 or 5), or increasing performance (RAID 0), or both (RAID 0+1) – still do exactly what you – or the operating system – tell them to do. If the operating system crashes horribly and while doing so, sends the command to format c:, guess what’s going to happen?

So do yourself a favour and make sure your backups are in order. You never know when you’re going to need them next…


I’ll be one of the speakers at the Calgary .NET User Group this Thursday. First up is Daryl Rasmussem…

Building ASP.NET/AJAX with Visual Studio 2008 by Daryl Rasmussem

AJAX is now built into ASP.NET with Visual Studio 2008 – and because there’s no separate download to install, the fully integrated nature of AJAX gives you better separation of the code from the design, and the generated Javascript and HTML is cross browser compatible, including support for both FireFox and Opera.

In this presentation, we will use a real world development scenario to explore the following AJAX techniques in Visual Studio 2008:

· Partial Page Rendering and the use of Update Panels

· Using the UpdateProgress control

· Using Control Extenders from the AJAX Toolkit

· Creating a new Extender Control

· Working with web services – from both server and client side code

To C# 3.0… and Beyond by James Kovacs

C# 3.0 introduces lambda expressions, extension methods, automatic properties, and a host of other features. We will look at where C# is today, where it is going tomorrow, and what ideas we can borrow from languages like F# and Ruby to improve our C# code. Plus find out the real reason for the new “var” keyword.

Date/time: Thursday, May 29, 2008 from 5-8pm

Location: Nexen Conference Centre (801 – 7th Avenue SW, Calgary)

Registration: Calgary .NET User Group Events Calendar (N.B. You must be logged in to see the registration link.)

Another DevTeach has come and gone. I had an awesome time. I enjoyed hanging out with old friends and meeting some new ones. I saw a lot of great sessions, but the best part, as always, is the hallway and bar conversations. (No, I still haven’t quite figured out Metastones, even after playing for hours.) I wanted to especially thank everyone involved in the agile track – both presenters and attendees. I have received a lot of positive feedback on the track. Given that I organized the track, I am immensely pleased with its success.

You can download my slides and demos from here or the DevTeach site.

Achieving Persistence Ignorance with NHibernate (2.6 MB)

Taming Software Dependencies with DI and IoC (20.9 MB)

I have started keeping my latest presentations online in Google Code’s Subversion repository.

svn checkout

Take a look in the tags to get the slide deck and demos for a particular event. For example, you’ll find tags/DevTeachToronto2008 contains the version from – surprise, surprise – DevTeach Toronto 2008. If you have any questions or comments on slides, demos, or techniques, please don’t hesitate to email me.

DevTeach is returning to Montreal on December 1 to 5, 2008. I’ll be the Agile Track Tech Chair again. Jean-Rene will be putting out a call for sessions in the near future and you should find the announcement here. If you are interested in speaking in the Agile Track, feel free to email me. If you attended any sessions in the Agile Track and have suggestions for things that you’d like to see again or suggestions for improvement, email me!

…a ReSharper Jedi, that is. I am making no claims about my own ReSharper Jedi abilities. JP and Oren are known ReSharper Jedi Masters. I feel more like Luke Skywalker when he first landed on Dagobah in comparison. Back to the point of this post…

Many developers don’t see the value of JetBrains’ ReSharper until they’ve seen it in action. So I’m putting together this screencast series to show off my favourite ReSharper features. My goal is to keep each screencast to 5 to 10 minutes and focus on a related set of capabilities. In the first episode, I look at ReSharper’s Code Browsing – CTRL-N, CTRL-B, CTRL-ALT-B, ALT-F7, and related.

Streaming: Becoming a Jedi – Part 1: Code Browsing (requires Silverlight 1.0 or higher)*

Download: Becoming a Jedi – Part 1: Code Browsing (via Live SkyDrive)

Before someone makes a snarky comment about my coding speed, I’m intentionally taking the time to explain the features. That and I’m not as adept as some at coding and talking at the same time. Hopefully I’ll improve with practice as this screencast series progresses. Any constructive feedback on the content or presentation style is appreciated. Enjoy!

* I am encoding the series using Silverlight 1.0 for two reasons:

  1. In my tests with Camtasia, the Silverlight version scaled better than the Flash version. Text in Visual Studio remained clearer as the video was resized. The original recording is at 1024×768, but is still legible when scaled to 640×480 or smaller.
  2. I can host the content on Silverlight Streaming for free. When you sign up for an account, you get 10 GB of storage and 5 TB of bandwidth per month. The videos are distributed by Microsoft’s content delivery network and streamed from a server close to the viewer. As an author you simply upload your videos to Silverlight Streaming and Microsoft does the rest. I also don’t run the risk of blowing the bandwidth allotment at my hosting provider and incurring charges for bandwidth overages.