The days started with Arie talking us through the keynote.
Scott talked about old programming languages, followed by the MVC and the concept of (Lego) blocks. How everything should be pluggable and fit together.
Wade spoke of the Windows Azure Appfabric Caching going live and how that fits in the whole blocks idea. The blocks in Windows Azure are SQL Azure, Caching and Access Control. Important things from his talk were 1) functionality over technique 2) keep using the same tool(s) as in Visual Studio 3) next generation applications are created now.
Windows Phone 7 Mango was the topic from Ben. The new emulator will have accelerometer and location support. Some additions to the framework/api have been done like fast appswitching. Important url http://create.msdn.com. At the last minute Rob was send in to get us ready to build Windows Phone 7 apps and games.
Entity Framework 4
Pieter showed the new features of EF4 like the new T4 templates and EntityKeyObject to delete an entity without reading first. He showed the different ways to query EF: EntityDataReader, EntitySQL and Linq. Also a nico demo with Dynamic Data which displayed data from a codefirst EF in a MVC application without any excessive coding, watch out GRAILS 😉
Clemens talked about simple three tiers applications and how they are not that simple any more with Apps as clients. The cost aspect of a “Box” and “Cloud” are compared, with the lowering of the service operation cost as a similarity. In the cloud some optimalization can be done to improve the margin (profit) made by deployment automation, self-healing architecture, autoscale, high density and multi tenancy. Here the appfabric comes in handy. The appfabric is an abstraction layer on top of webservices, caches, workflows, access controls, routing, messages and transforms. Velocity is the codename for Appfabric caching, which is an local cache and a centralized cache that is synchronized. Servicebus makes anything available even when it is behind a firewall. This is demonstrated by an image service I tested live. Resulting image of Microsoft people here. Queues with topics, which has rules to determine a message applies to a certain reader. Access Control with Facebook, Live ID, Google ID, Yahoo and ADFS in and SAML token out. This is claimsbased ofcourse. This evolved from supporting Servicebus to something important that it broke protocol. Servicebus will stay on V1, but will come to V2 later this year. Something called the “Container” service will be anounced today in Redmond but was shared with us. A model describes the application in stead of the configuration. The model is translated into (multiple) configuration on deployment. Clemens showed us a very limited demo (I would call it a screenshot) on which an application was designed in the model. Clemens ended his talk with “AppFabric is the new middle-tier”.
Visual Studio Ultimate testing tools
Marcel talked about testdriven unittesting, historical debugging (intellitract) and the testimpact window. After which he showed web performance test with validation rules (validation of the response on css, selected values etc) and extraction rules (flow parameters from one request to another). An coded web performance test can be aquired by conversion from a web performance test which is recorded. Marcel used the robot.xml of msdn.microsoft.com to hit all known pages. He tipped on using the validation rules in a performance test to notice incomplete / wrong responses and to mark those tests as failed. At the end the Performance Profiler was used to test a bad application with sampling. The result was like a defragmentation screen and he told us how to read it. Very usefull.
Behind the scenes of C# languag features
Bart starts his talk with a tweet that states the level should have been 600. Then he shows he has got only one slide. Everything is in demos with VS2010 and ildasm. Some hacking with dumpbin and sos.dll makes it complete. I didn’t know a const readonly array was stored in the resulting assembly and pushed into memory from there. Word to rememeber is “inline-polymorphic-cache” which is what the framework does when a method is called on a dynamic class. Nice new feature in dotnet will be the await statement which suspends the method until a task is completed and than continues. Normaly this is done with events, but this is simpler.
iPhone development with mono
Marcel, Roy and Willem build an application for Windows Phone 7, iPhone and Android using 66% shared code. Mono is used for the iPhone and Android and dotNET for the Windows Phone 7. The emulators of all devices are slow. MVC is the most comenly used pattern. They used a context per device with partial methods that are implemented for each device specific. Important lesson is to do a design or else code sharing is minimal.