Day 3 started with keynotes by members of the Microsoft Research team. Microsoft Research employs 850 Phd’s, its many times larger than the largest university computer science departments in the US, and has campuses around the world. They showed us a map of heat sensors that they created using inexpensive wireless devices that report temperature back to a server and a really slick front end interface for displaying the data. One of the paradigms of Microsoft Research is that programming is a life skill, essentially a tool that enables people to accomplish more in whatever field they are in. To this end they have created a game programming system called Boku that is targeted at children. Rather than write lines of code, the “developer” can create their game using the xbox 360 controller and menus to define actions and logic. The demo was impressive and this game programming system looks like it will be fun for not just children. Finally, they demoed a new addition to Surface called “Secondlight” which enables Surface to project a second video image onto an object that is above the MS Surface screen. You really have to see it
to understand it.
After the keynote I changed things up by attending a session on “IIS 7.0 and beyond.” This proved to be very useful. In IIS 7.0 Microsoft uses the exact same extensibility API’s to build the pieces of IIS 7 that the public can use to build their own. Vijay Sen ran us through a demo of creating an class that implements IHttpHandler along with the MMC plugin for configuring it. Vijay also went over syncing your website to a remote IIS instance using msdeploy.exe to make an exact copy of a website to a remote server. He also went over packaging up a website into a .zip file and using it to re-create the website on remote box via the IIS MMC. Next up was the URL Re-writer functionality which can be used to prevent file leeching and also can shorten URL’s by rerouting a short URL to a longer URL string with a dynamic format. The new media Extensions were covered which allows bandwidth optimization and the creation of media sequences: you can create a .isx file using the IIS MMC that is an xml definition of a playlist, then point an embedded media player on a website to the .isx file. Instead of playing one piece of media it will play the playlist back in order. I already have some interesting thoughts on how I could build some software to utilize this. One of the most interesting things that Vijay showed off was the ability to create a server farm to do load balancing and fault tolerance. The simplicity with which he did this was amazing, he simply right clicked on his computer in IIS and said add->server farm. He then pointed it to the two servers that were running the sync’d site and you could clearly see through the MMC how it was balancing the load. Unfortunately all of this new functionality isn’t in my Windows Vista version of IIS yet…and they weren’t overly clear as to when I can expect to see all these features, in fact it was hard for me to know what was beta and what was released; it appears the IIS team is really moving quickly.
I then went to lunch and snuck in half way through a session on the roadmap of controls for Silverlight. Not a ton new here that I hadn’t seen over the previous week, although some demos were done on using the new calendar/date picker and autocomplete controls.
Next up was Improving .NET Scalability and Performance with Visual Studio. Unfortunately this entire session was based on the team system profilers which is not something our development shop plans to use. I was hoping for a session on better coding practices but that unfortunately wasn’t what this session was about. I also attended a session on “Live Mesh” which was mostly powerpoint. It did however get me to install the Live Mesh client on my machine which is pretty cool, I uploaded my mobile phone photos to the mesh and sync’d it to my desktop which was easy to do (other than the fact that there was no “multiple file upload” on the WAP interface).
The last session I attended was about Mono which is an open source implementation of the .net framework. I haven’t wrapped my mind around how we would utilize this but I can say that its very cool. Miguel de Icaza from Novell created this and Microsoft is helping to support his effort. He demonstrated a dynmic c# shell that let you write code from the command line. He explained the flexible linker and how you can basically build a custom compact framework by defining what you need in an xml file. He showed off the extensibility scenario’s by connecting to a running photo application and getting properties about objects within that application displayed on his command line instance. Mono is being used in many games, Secondlife now uses is. It’s been accelerated for SSE2 SIMD instructions so it is actually very fast for managed code. One application we may have for it is to utilize it to create a macroing subsystem for our product. I will definitely have to do some more research on this interesting product.
The end of day 3 featured “Ask the Expert.” I grabbed a beer and took a seat at the only open table I could find, the Windows Mobile Development table. No expert showed up at first but as is often the case, sometimes you get more just by talking to people informally. I spoke with a developer from Atlanta and we shared some war stories. A collection of us showed off our phones, including the Google Android and iPhone’s and it was a great discussion on the pro’s and con’s of the various devices. After about an hour someone came to our table and informed us that the expert was at a different table. Fernando Zandona and Nicole Bates were ready to answer questions. My concerns are still with managed code performance and stability. I also wanted to know why the CF is still relevant for many apps in the age of Silverlight. Silverlight has limitations with doing offline storage and accessing local resources. But more importantly I learned that unlike on the desktop, Silverlight on the Pocket PC actually uses the Compact Framework directly. There is no separate plug-in. The implication of this is that the CF will have to progress and get better if Silverlight is going to grow. So any investment you make in targeting the CF is not going to be wasted as Silverlight is targeting it as well. Other developers wanted to stress the need for more WPF like functionality on the Windows Mobile platform, and also the addition of multi-touch.
Day 3 was a very long day, the ask the expert session was great. Day 4 is up next, stay tuned!