Clearly the best day of the conference until now, with two really great sessions: Pat Helland's and Rafal's.
The first session was Justin Smith's "Connections in the Cloud - BizTalk Services and WCF". This was an interesting session about BizTalk Services, with some demos to illustrate how it can be used. I've described the technology previously, so I'm not going to spend time here on it. I especially liked the demo where the access control to a service is done at the ISB-level, based on claims and w/out any change whatsoever to the service. We were also told the team is using agile methodologies, with new drops every 6-8 weeks. Workflow is obviously the feature everybody is waiting for. And I personally wish it had context-based routing, and not only named-uri/topic-like pub/sub. CBR is an immensely powerful mechanism available in BizTalk Server, and it allows for greater decoupling between the sender and receiver(s) of a given message.
Next was Matt Winkler's "What's the Context of this Conversation: Enabling long running services in workflow services". The basic ideas of Workflow Services (in .Net 3.5) are implementing services as workflows, and hosting workflows as services. The session described the current mechanisms used to communicate between the wf host and its instances using applicational queues, and described how this works in long running scenarios. If this was BizTalk Server, this would be a session about Correlation and Convoys. Since its not, it was about the exchange of context information between the service and its clients so that the correct instances can be rehydrated when messages/invocations arrive. Matt highly recommends the "Conversation" sample from the SDK to learn about this topic. Having studied previous versions of WF, I'm glad they are dropping the Handle External Event/Call External Method ways of communication between host and workflows, which always felt strange to use.
This was not the greatest of sessions, but it was interesting nonetheless.
After lunch there was Pat Helland's "Data on the Outside vs Data on the Inside", the best session of TechEd IMHO. This is not a new session (also see this), it's a couple of years old, but the ideas are still up-to-date. The session starts with the idea that services communicate using messages, and from there Pat explores the location of the data (inside services, or in messages being exchanged). The most interesting part of the presentation were the parallels between the theory of relativity and messaging. Definitely a great session. Some quotable sentences I noted: «Messages are not from the now, but from the past. There is no simultaneity at a distance», «Services, transactions and locks bound simultaneity», «All data from distant stars is from the past [so, each service has its own perspective]» and «operators is hope that something will happen in the future».
The next session was "Silverlight, Asp.Net and Web Services in IronPython and IronRuby", presented by Mahesh Prakriya. The session was very much about the Dynamic Language Runtime and the languages that use it. It included quite a few impressive demos of Silverlight and its interaction with IronPython, as well as using Web Services (and dynamic proxy creation). The Asp.Net demo was less interesting. I find dynamic languages really interesting (I love languages like Lisp, Prolog and Xslt), although much less structured that C++/C#/Java-like languages, and would like to experiment using these languages in some enterprise scenarios. Unfortunately, however, it's possible to call from DLR languages into CLR languages, but not vice-versa. Which means I can't develop over SharePoint, OBA-apps, or even BizTalk, calling into DLR code. Helas.
The last session of the day was Rafal Lukawiecki's "Developing More Intelligent Applications Using Data Mining". Rafal is a great speaker, and this was a very good session, which is available online here at a previous event. Rafal is widely known to be able to deliver great sessions whatever topic (he did sessions on security, networking and MSF, at TechEd), being a very eloquent and expressive speaker. His session was dedicated to the use of data mining techniques in application development, and started by establishing the differences between OLAP (interactive exploration of data) and Data Mining (Proactive discovery of information/patterns). This "discovery" aspect, or "Predictive Programming", is what can allow use to develop more intelligent apps, with adaptative user interfaces, data input validation, and business process validation. De session ended with a demo of Input Validation using Sql Server 2005 Analysis Services. Overall this was a very interesting session that left me with several ideas of possible applications in the development work we do at |create|it|.