Thursday, October 21, 2010

Extreme VB Game programming and more on BackEnd day

Again a successful day at the Microsoft Patterns & Practices Symposium 2010 with lots of interesting topics. There were excellent sessions, but I think the climax of the day was the "Whose Code Is It Anyway" coding gameshow hosted by Scott Hanselman. More on that later.

Another great thing to do at the symposium is to have discussions with others during so-called Open Space sessions. During the week everyone has the possibility to put topics or questions to be discussed on the whiteboard. Everyone can vote which topics will be discussed in three parallel sessions at the end of the day. Sessions about topics like Test Driven Development, Agile and SOA give a lot of insight how companies use this stuff. Today I joined the SOA session and I was suprised to hear that in several cases there was no knowledge about which clients depend on which services. Even for in-house solutions. Apparently, if one person publishes a service others are free to use it if needed. This way, things can get out of control really quick. To prevend this, one should design a business-oriented architecture first, based on current and forseeable future business requirements, before coding is started. To make a link to another session: not everything starts with Test Driven Development.

The keynote about Cloud Computing Challenges and Opportunities showed once more to me that Azure is much more flexible than just using it for Microsoft proprietary technology in the web role. You have Windows Azure SDK for Visual Studio, Eclipse, PHP and Java. Management API's are RESTful. The developer experience is use existing skills and tools: Eclipse, Python, PHP, Java, Visual Studio. You can even run other HTTP servers like TomCat or JBoss in a worker role. The challenges appear when existing applications are migrated to the cloud. All kind of aspects like security, state, scaling, regulation and compliance, data sensitivity and more should be reconsidered. Finally, for the future there is much more to come. For example: Windows Azure Appliance for partners will allow large companies or providers to create a private cloud. Cloud computing is still a baby. We are only at the beginning.

The next session explained the freedom of REST (Representational State Transfer) comparing to Soap. REST uses the web as it was meant. It is using the GET, PUT, POST and DELETE verbs of the HTTP protocol to do much more than only CRUD operations. By using the GET verb to retrieve data, better performance is achieved because of HTTP caching. The full power of REST is exposed using hypermedia controls, which allow you to discover possible actions on a resource. Martin Fowler explains the rest in his blog.

Eugenio Pace & Scott Densmore returned to the stage (after doing there workshop about Azure on monday) to show the Tailspin demo, which demonstrates good practices for building a scalable could application. The Tailspin demo is described in detail in the book Developing Applications for the Cloud.

The next session explained the CQRS archtectural pattern which is best used in case you have much more reads than writes with many users (eg. Wiki). It features separate business models en data stores for read and write actions. The huge advantage is that each model and store can be optimized and scaled for it's own purpose, resulting in a much better performance comparing to using one model and store. I like this pattern and I think many solutions can benefit from it.

The session about OData by Don Box was awesome. OData is an open data protocol with the goal to create an ecosystem to connect easier (for example, connect Excel to Twitter). To create such an ecosystem, the protocol shoud be adapted on a large scale. The OData team saw it as a mission to realize this. They started with an implementation for the .NET Framework (not exciting yet). Next Excel consumes data. Next SharePoint supplies data. Next a lot of other Microsofts support OData. Next PHP, jQuery, iPhone development, Restlet. Next third parties facebook, IBM (without asking) and others. Next all that come along. Now it is so width spread, that you can actually do the most amazing stuff. The best demo was the addition of data in a SharePoint list from the command line using the utility curl. The second best was using a Linq-query to determine the best movie of 1972 from a data source that was never meant to do such things. The best movie was The Godfather by the way.

The last session of the day about Agile Web Development with ASP.NET MVC was an overview of tips and tricks how life of a developer can be made much easier. Brad Wilson gave demo's about Test Driven Development with xUnit.net for server-side testing, QUnit for javascript testing and end-to-end (acceptance) testing with the Lightweight Test Automation Framework. Also applying filters for interception, usage of dependency injection and more was demonstrated. Good stuff. See his blog for more information.

The climax of the day after dinner was "Whose Code Is It Anyway" coding gameshow. A hilarious match of two xtreme pair programming teams for people from Microsoft or Norway. Actually, people who knew a Norwegian metal band could also join, but unfortunately I was too late to shout Motorpsycho. One of my favorite bands, by the way. After a short look at the fully functional Shakespeare Programming Language the game started. The teams performed assignments like programming from the command line and implementing sound in VB. I am not able to repeat all jokes and good moments we had in a blog. So, you should have been there, also because the video camera failed to record the show.

No comments:

Post a Comment