So day 2 at Tech Ed, still not quite managing to find my way around and getting sore feet from all the walking.
Due to some talks being far more popular than the organisers anticipated I only managed to catch to get to 4 sessions;
- Building Web Sites with Orchard
- Building Business Applications with Visual Studio LightSwitch
- Patterns for Parallel Programming
- Introduction to WCF RIA Services for Silverlight 4 Developers
The sessions that I missed out on were:
- How Frameworks Can Kill Your Projects and How Patterns Can Prevent You from Getting Killed
- Web Applications in Danger: Attacks Against Web Sites and RIAs
With any luck the sessions may be repeated or failing everything else I should be able to view the videos online.
Building Web Sites with Orchard – Bradley Millington
This session was all about a CMS called Orchard that has been built on top of ASP.Net MVC, it was first announced at Tech Ed last year and its currently pre-release software with an expected release date to January 2011.
Orchard has is built around the concept of Layers, Zones & Widgets which gives the system a lot of flexibility when it comes to how the pages are laid out and how/what content appears in the pages.
The team building Orchard hope to build a community around it much as Umbraco has done and have already created Gallery functionality that will allow people to upload modules that extend Orchards functionality.
Orchard has been designed to be localised from the ground up so not only can you localised the Admin UI you can add translations for the content, it currently doesn’t have any functionality to detect a users culture settings and automatically use the appropriate translations but you can do that yourself and hopefully it would be in the RTM.
Just as per Umbraco you can use Live Writer as an interface to allow business users to enter content into the system.
Building Business Applications with Visual Studio LightSwitch
LightSwitch is the new product from Microsoft in the Visual Studio family aimed primarily at business users who are currently using Excel & Access to create applications themselves rather than asking developers to do so.
LightSwitch has generated a lot of bad feeling in the developer community as generally it is not seen as a ‘professional’ developers tool, I believe the issue is that it is in the wrong product family as it should belong in the office family of products along side Excel and Access the tools the users are already using. If the product was in the office family I believe that you would see a lot of the bad feeling disappear and may even get some traction from the developers in getting the business people to use it.
The product itself allows users to select from a data source, or sources, and it will then generate a UI in Silverlight for the user over the data. A data source can be a database, SharePoint, RIA service, etc so the user has a lot of flexibility over where they can select data from and how they link it together. Only issue this could cause is the user is unaware of the time it may take to query these sources and performance could be an issue.
The generated screens are simple enough and the product will allow you to customise them to give user friendly names, add validation rules, etc but the user will need to be able to write some Vb.Net or C# in able to accomplish some of these tasks.
LightSwitch also comes with deployment support to allow the user to decide how it will be packaged and deployed, will it be a desktop app or a browser app, the user decides, my question at this point is how does this align with an Enterprise that controls all software that is deployed to the desktop centrally?
It is possible to create your own extensions for LightSwitch and have them utilised within the product and Microsoft seem to be looking to developers to do just this to enhance the whole LightSwitch eco system.
Ultimately I don’t see this tool being used by developers but it may gain some traction with business users that its aimed at, all I can say is please move it to the office product family to avoid the tears and tantrums that abound from developers.
Patterns for Parallel Programming - Tiberiu Covaci
This session was not on the original session line up, the presenter for the original session was ill and so Tiberiu (Tibi) was drafted in to fill the gap and he did so admirably.
Tibi set off at a cracking pace and didn’t let up the whole way through explaining to use about the benefits of being able to parallelise code and how to go about it.
To help demonstrate the various parallel techniques and discuss the patterns relating to them he used an example of cooking a meal and having code replicate the steps in the recipe, this provided a nice simple frame of reference that I believe the whole audience could relate to.
He then went on to put into practice how you can work out what can be parallelised and how you then implement that in the code using the functionality that is available in the .Net 4.0 framework.
To round off he gave us a load of links to resources to help learn how to do this and also a list of books that would help.
Introduction to WCF RIA Services for Silverlight 4 Developers – Peter Brown
The final session of the day for me was with Peter Brown which coincidentally was the same as yesterday.
Today Pete was explaining how you implement the RIA services that have been introduced in Silverlight 4 and what you can do with them.
Pete started off by explaining a little about the new Business Application template in Silverlight 4 and how it fits with the DomainService concept. He then went on to create a DomainService and have it implemented in the client showing the client retrieving data through the service.
A note of caution was raised by Pete when he said that you don’t get good separation of concerns and that testing could be difficult although he felt that the functionality that was offered at least balanced out these issues.
Pete then went on to demonstrate how you could paginate, sort and filter the data simply by setting various properties on the Domain datasource that your UI is bound to.
Basic client side validation is also possible utilising the DataAnnotations assembly that is also used in MVC to indicate things such as max length via attributes on a meta data class for the entity linked to the DomainService although it is not possible to do cross field validation through this technique.
Finally Pete showed how you can add authentication simply by decorating the DomainService with attributes and that both Windows and Forms authentication was supported.
Although I wasn’t in sessions all day (nice to have lunch at a more leisurely pace) I found the majority of the sessions interesting and I have enough information for me to perhaps look at some of the things I have seen in more depth.
As per yesterday I have more extensive notes for my team but if you want them drop me a line and I’ll sort them out for you.