The speakers on the Microsoft patterns & practices Symposium 2010 are real entertainers. Speakers like Uncle Bob Martin, Don Box and Scott Hanselman almost have a popstar status. This is why we all have such a good time at this symposium. Today both Karl Shifflett and Ward Bell were very entertaining during their sessions.
This day started with two sessions about Windows Phone 7. I was really interested in those sessions, especially because the phones are finally released this week (at least in Europe). The first session about WP7 explained the positioning in the market, the possibilities of the phone os and the differences compared to Mobile 6.x. Furthermore, phones from HTC, Dell, LG and Samsung were demonstrated. The WP7 phone targets only the consumer market. The experience of the end user is the main focus. A rich developer ecosystem is created based on Silverlight and XNA technology to create quality apps and games. The hardware requirements for WP7 phones are very strict to force a consistent user experience and to enforce that applications which work on one phone will work on all phones. On the contrary, all previous Mobile Phone tried to target both business and consumer market. There were much more differences in hardware and this forced a lot of extra testing for developers on many devices. Applications for WP7 can only be installed from the Microsoft marketplace. Applications can only be made available through this marketplace after approval from Microsoft. At this moment there are no plans anytime soon to allow private marketplaces, thus deployment of proprietary business applications will no be supported in short term. The Windows Phone 7 Developer Guide is available from CodePlex.
The TailSpin demo, that was used in earlier sessions for cloud development, also contains a Windows Phone 7 application that is using services in the cloud. In the second session this day, the implementation of this Silverlight ViewModel application is shown. There are of course differences compared to other Silverlight implementations. Specific WP7 events like launching, closing, activating and deactivating events are routed to the ViewModel to be handled. For specific functionality such as the microphone, which is not available in Silverlight, it is possible to integrate XNA to use the microphone functionality. This cloud scenario can run in a completely simulated environment using DevFabric and the WP7 phone simulator. So without paying for Azure and still waiting for your WP7 phone to arrive, you already can build beautiful WP7 applications in the cloud.
The title of the next session about jQuery says it all: "jQuery: The way JavaScript should be". The way JavaScript works is confusing and not completely consistent implemented in all browsers. Therefore, it is advised when building an application using JavaScript and Ajax technology to look for jQuery first. jQuery is a open source lightweight JavaScript library that works consistently over all browsers. It is built with extensiblity in mind. jQuery is delivered with the Microsoft development tools. Several jQuery extensions are available at CodePlex. You can search in the open source community for much more available extensions. A good example of using jQuery is in the hooizdat application on CodePlex.
Karl Shifflett did two sessions in a row. First he explained the basic of the Model-View-ViewModel pattern. This is a design pattern for UI. He showed the basic binding for a simple application and then the M-V-VM pattern for WPF for the exact same application. Basic binding is not wrong, but becomes complex for applications with many and/or large forms and is hard to test and maintain. The mapping between the View and the ViewModel need not one on one. A ViewModel can map on multiple Views and also the other way around. The ViewModel need not only be used for values, but can also be used for other properties: disable button, start animation, change ViewState, show validation errors. The M-V-VM pattern described in his first session is only a pattern. Prism is a framework to make it easier build modular Windows Presentation Foundation (WPF) and Silverlight client applications. This framework has an implementation for using the M-V-VM pattern in those client applications. In his second session he showed many details of the usage of Prism 4.0 in a Silverlight application for integrated navigation. Prism realises navigation between Silverlight pages for you while preserving state. If you want to use the M-V-VM pattern, you should take Prism into account, although you should have a look at other frameworks available as well.
The last session of the day by Ward Bell was again awesome. His sister Cindy and his serious nephew helped him during a humorous presentation to show how your application may use different datasources for different usages. Four types of data are recognized: sample data for UI design in Expression Blend, test data for unittesting, development data for manual testing and live data for the production environment. He demonstrated how Expression Blend can be used to design your first version of the UI including sample data. From this starting point the application can be adapted to set the datasource to be used to the one needed using a bootstrapper class. The BadGolf demo application with was used to demonstrate this case will soon be available on http://www.ideablade.com/.
No comments:
Post a Comment