Browsing Posts published in October, 2008

image Tonight, Bil Simser and I had the pleasure of presenting a brief overview of Prism (aka the Composite Application Guidance for WPF and Silverlight) to a crowd of 150 developers at Shaw Court in Calgary. You can find the slidedeck here. If you’re interested in getting started with Prism and related concepts, this is a good set of resources to start from:

Thanks to everyone whom came out. If you have any questions, don’t hesitate to contact me or Bil. If you’d like to find out more about Prism and go much deeper into the underlying technology, there is always Microsoft Tech•Days Canada 2008

Zombie Inc.BTW – Some of you might have caught the inside joke in the slidedeck. For the rest… Bil does not in fact work for Zombie Inc., though he probably wishes he did. He is a big fan of the game Stubbs the Zombie: Rebel Without a Pulse. 10 minutes with Paint.NET and I had a decent looking corporate logo for his fictitious company. It’s really quite amazing what you can do with this free .NET application, though the true Paint.NET master remains Justice Gray.

My first dnrTV episode went live today. I am talking with Carl Franklin about dependency inversion, dependency injection, and inversion of control. I demonstrate how to build a very simple IoC container. My intent is to show developers that it isn’t any thing crazy scary. I talk about how IoC facilitates decoupling dependencies and creating more easily testable software. Check it out!

dnrTV #126: James Kovacs’ roll-your-own IoC container

Feedback is always welcome.

Carl and I plan to do another show focused on IoC containers in the next few weeks. Specifically we’ll be talking about what a full-fledged container offers over and above the roll-your-own. If you have other IoC questions you would like answered on the next show, drop me an email.

I was going sysprep a base image of Windows Server 2008 this morning and followed my own instructions on sysprepping Windows. I went to the installation DVD and couldn’t find sysprep. A quick google later and a bit of poking around revealed that sysprep is now installed by default on Windwos Server 2008. You can find it at:

c:\Windows\System32\sysprep\sysprep.exe

The experience is also streamlined considerably. Simply run sysprep.exe above and you are presented with:

 image

Check the “Generalize” checkbox (regenerates system SID), change the Shutdown Options to “Shutdown”, and click OK. The system will go through the sysprep process and shut itself down. You can now create cloned servers to your heart’s content simply by creating linked servers and booting the clone as originally documented here.

UPDATE: Benjamin Chau noticed that SIDs weren’t being regenerated. Turns out that you need to check the Generalize checkbox to make that happen.

Just realized that I never announced it, but I will be giving a double-header presentation at the Regina .NET User Group tomorrow night – Wednesday, October 8, 2008 from 5:30 to 8:30 pm. You can find directions and registration here.

Session 1: Taming Software Dependencies with Dependency Injection (DI) and Inversion of Control (IoC)
Software inevitably contains dependencies. Dependencies between classes. Dependencies between layers. Dependencies with third-party libraries. How can concepts like dependency inversion, dependency injection, and inversion of control help you tame your software dependencies? Where does an inversion of control container, such as Castle Windsor, come into the picture and do you need one? Can Binsor help you achieve convention over configuration? This session answers all these questions and more…
Session 2: Achieving Persistence Ignorance with NHibernate
Object-relational persistence can be very complex and middle-tier code is often dominated by persistence concerns. Your Customer class probably contains more code related to loading and saving customers to the database than it does actual business rules about customers. Wouldn’t it be nice if you could remove all this persistence-related noise? This session examines why the concept of persistence ignorance is important and how to use NHibernate to build persistence ignorant domain models.

I have a busy calendar of events in the next few months. I’ll post my other appearances in the next few days…

image A Reading from the Book of Armaments, Chapter 2, Verses 9 to 21 (Wikipedia | YouTube):

…And Saint Attila raised the hand grenade up on high, saying, “O Lord, bless this Thy hand grenade that with it Thou mayest blow Thine enemies to tiny bits, in Thy mercy.” And the Lord did grin and the people did feast upon the lambs and sloths and carp and anchovies and orangutans and breakfast cereals, and fruit bats and large chu… [At this point, the friar is urged by Brother Maynard to "skip a bit, brother"]… And the Lord spake, saying, “First shalt thou take out the Holy Pin, then shalt thou count to three, no more, no less. Three shall be the number thou shalt count, and the number of the counting shall be three. Four shalt thou not count, neither count thou two, excepting that thou then proceed to three. Five is right out. Once the number three, being the third number, be reached, then lobbest thou thy Holy Hand Grenade of Antioch towards thy foe, who being naughty in my sight, shall snuff it.”  — Monty Python

And this shall be my third year as a MVP. I received the official email from Microsoft this morning notifying me that I have been re-awarded. Congratulations to everyone else who was awarded or re-awarded today! A special call-out to some very deserving first-time MVPs… Ben Scheirman, Jessica Moss, and Derik Whittaker. I look forward to another fun-filled year of mischief, mayhem, and software development!