Friday eventually arrived and marked the end of a fascinating week! The day started with Glenn Block (patterns & practices) explaining how you can use the Web Client Software Factory (WCSF) in conjunction with AJAX ASP.NET. What they've done for the October release of the WCSF is to include a new guidance package for creating an AJAX ASP.NET enabled project (Composite Web Application Block). This will include a couple of scenarios like Suggestion (basically an autocomplete extender like the one found in the AJAX Control Toolkit, but modified to use contextual information), Live Form (validating user supplied information on the fly using custom validators and a custom extender), PopUp (a custom extender displaying an inline overlay on your page). Pretty handy stuff.
Next up: Pat Helland (apparently some sort of god in the Microsoft world, I had no idea before this week who he was and that this is true) giving a very interesting view on things to come in the next ten years. His message basically was that because of the technology driven nature of our profession and the human drive to always to be connected, applications will get a lot more complicated. Key technology advancements are likely to be in multi-core processors (256 cores on one chip are probably going to be around 2015) and data storage (Flash drives will eventually replace harddisks, and they will turn replace tapes, growing to a 10 TB in size by the year 2010). This allows for complicated data integrity breaches, pushing us, developers, to develop and design patterns to solve these issues. Still, this is just one vision (or opinion if you like), but was very fascinating (and a bit scary as well) to try and comprehend the implications of these changes. You can find his slides here.
After lunch, another interesting session on Windows Communication Foundation (WCF) performance by Justin Smith. Focus was on commonly made mistakes, how to optimize your WCF services and tools for measuring performance. This was actually a repeated that Dennis saw earlier during the week, and deservedly so. The room was pretty small, and only eight other people were attending, which helped the interactivity of the session a lot.
Finally, the last session at the TechEd for me was about deep reflection by Roy Osherove. Me and Dennis met up with him during dinner on Wednesday night (again, I had no idea who he really was up to that point, only to find out that I've been reading his blog once in a while!) and I decided to attend his last session. He talked about how you can dramatically increase your reflection operations in .NET 2.0 and higher by using dynamic methods. Say you want to deep clone an object. Normally you would use reflection to get the object type and run through all its properties and copy the values into the new object. This is a very expensive operation to run (as you would know when you've used reflection before). He showed the audience how to do this another way by creating a dynamic method. You do so by adding a method to a type at runtime, and emit an extra function into the .dll and attach this to an existing type. But since we're doing it runtime, you need to create the IL (Intermediate Language) version of the function for this. It's a bit of a hassle, but it can worth it if your class type is very complex (object inheritance and property wise) and you need to clone a lot of objects. Very intriguing stuff. Roy is actually known for ending all his presentations with a song while playing the guitar. Quite funny to watch, and a nice way to finish the final session of the week.
To summarize, TechEd 2007 was pretty awesome: we've attended a lot of interesting and compelling sessions, met people you would normally not run into outside of the TechEd environment (such as David Platt, Shy Cohen, Tim Stevens, Roy Osherove to name a few). Both inside and outside the TechEd we've had great fun! Finally a word of gratitude to my bosses Mark and Bart for letting us go, and to Dennis for the excellent companionship during this whole week.