XImplosionX

Step into my mind.

Microsoft Student Insider Kick-Off: Scott Hanselman

During my time at the Redmond campus, I was fortunate enough to meet with Scott Hanselman, Principal Program Manger Lead for Microsoft’s Developer Division. He also runs a very successful blog and podcast. Mr. Hanselman’s position at Microsoft requires him to travel a lot. This, combined with his living in Oregon, makes it difficult to snag a meeting with him. But we were lucky enough to meet with Mr. Hanselman for an hour in Building 5.

We started off our time with Mr. Hanselman by introducing ourselves. He then lectured us on the history of Bulletin Board Systems, relating it to a recent interview he had done on his podcasts. He then talked about his blog, and how useful social media is.

And then we got to the new technology. Mr. Hanselman first showed us Boot to VHD, a new feature in WIndows 7 that allows us to take the VHDs created in Virtual PC 2007, Hyper-V, and other parts of the virtualization platform, and boot our machine to this virtual OS. This allows the virtual hard disk to use hardware rather than the emulated environment when running. This follows the idea of “less virtual, more machine”.

The next demos Mr. Hanselman showed us struck me as very cool. He decided to demonstrate two new features of .Net 4.0: PLINQ and MEF. Now when I heard him say PLINQ, I had to do a double take. My understanding was PLINQ had been around for at least a year. But I was happily surprised to find that PLINQ (Parallel Language Integrated Query) was finally shipping as a part of the .Net Framework. This made me happy. Finally I could add support for multi-core processors with very little hassle. Simply invoke a query with the .AsParrallel() extension method, and you’ve got yourself a query working across multiple cores. There are other features in PLINQ, and I urge you to check out the Parallel Programming With .Net blog for more info.

The final demo Mr. Hanselman showed us was MEF. MEF stands for the Managed Extensibility Framework. Imagine the following situation: You are an enterprise developer working for a company that keeps inventory of different kinds of cars. Each car has similar qualities, defined in an interface, while being unique in itself. Your boss approaches you, requiring a new brand be added to the application used for keeping inventory. Due to the lack of a quality plugin system, this task would be very tedious and an all around pain in the neck. What MEF allows you to do, is simply create your new class, implementing this interface, export it through a new DLL, and the inventory application will do a “composition”, loading any and all classes that use the interface declared in the core of the API. I was extremely excited when Mr. Hanselman showed us this new feature. I’ve always loved the idea of extensibility, but hated using slow Reflection based techniques for dynamically loading classes. I highly recommend you take a look at MEF over on CodePlex. It’s a very cool framework and could make great leaps in improving application development productivity.

After that demo, we had to go our separate ways again. Like I said, Mr. Hanselman is a very busy man, and I was very grateful to have met with him. I highly suggest your follow him on Twitter or read his blog, as he frequently provides interesting links related to social media and new technology.