PDC 2009 – .NET Developers Short Review and Bleeding Edge Download Links

This years PDC was great. I think the big deal this year was “Integration”. I’ve never seen so many bits working together at such an early state.

I’ll walk through what I’ve seen and provide some detailed information plus the corresponding downloads I’ve found. It is insane, how many CTPs and Betas Microsoft offers right now.

These are the topics I will cover. Click to jump to the corresponding section.

Visual Studio 2010 + .NET Framework 4

I’ll start with Visual Studio, because it spans all of it.

In the last years especially Visual Studio was lagging behind. It didn’t even have good support for debugging LINQ in C# – what could we then expect from integration with other products from Microsoft.

But now Visual Studio comes not only with an improved debugger, but also with many, many new project templates, enhanced deployment features for web and SharePoint, an extension manager bound to an online extension gallery, and many-many more features.

Maybe the reason for the more integrated development environment is the huge improvement in Visual Studio Extensibility. Download the SDK if you plan to write your own plugins.

If you want to know more about the “.NET Framework 4.0”, Google has a good coverage on “C# 4.0”, “Windows Workflow 4.0”, “Windows Communication Foundation 4.0”, “Entity Framework 4.0” …


Silverlight 4

Maybe the announcements around Silverlight 4 were the biggest. The Silverlight team has made incredible progress in the last couple years. With Silverlight 4 they seem to eliminate most of the drawbacks it had compared to WPF. I can’t see yet where this goes, but a Silverlight OS could absolutely be a nice answer to the Chrome OS. And then we are back to terminals and mainframes.

Among the new features are a better out-of-the-browser experience including full-trust mode. Also new is webcam and microphone access, a richtext/html editor and a browser control. The browser control can also embed flash. And it can be used as a brush, in other words, it lets you run YouTube videos while applying any Silverlight effects.


Entity Framework 4

After the entity framework came out in V1, many of the industry’s thought leaders called it a joke. The team has tried to incorporate most of that Feedback in EF V2 (Called V4 to align with .NET 4).

Together with the .NET Framework 4 Beta 2 and the Futures CTP you get code-only and model-first including SQL schema generation. There are also alot improvements in the designer and the query performance. Haven’t really checked out the details so far.


OData / WCF Data Services (neé “Astoria”)

The Open Data Protocol (OData) has been developed to support a convention-oriented REST-style API over data of any kind. It builds on atom/pub and adds optional metadata, querying and projections. Using the .NET OData Client (WCF Data Services) you can use LINQ against any OData source. Sharepoint 2010 will expose all data via OData. Any application that uses the Entity Framework can very simply expose it’s data over the protocol.

Also SQL Server Excel PoverPivot (neé Gemini) supports OData and lets you interact with huge amounts of data the Excel-way.


SQL Server Modelling (neé “Oslo”)

In a couple of sessions Doug, Chris, Don and Chris showed the new features in the November CTP. The team has made some progress, although it is easy to see, that they have much homework left. Some of the new features are the better Visual Studio Integration, a ASP.NET MVC project supporting “M” for the M in MVC, debugging support in DSLs, richer right-hand grammar productions, support for views in “Quadrant”. Also the Modeling Services where officially announced to be part of SQL Server in some future release.

I’ll spend a new post on more of the changes soon.

Also, today I think, that Quadrant will not replace the DSL Tools in Visual Studio. Those have made much progress and will rather be improved and merged with “M”.


Office and Sharepoint 2010

No matte who I asked, nobody liked SharePoint development so far. From what I’ve seen this might change in the future. There has been much focus on the developer experience for SharePoint customization. Deployment and packaging seems to be much more fluent, and the horrible SharePoint web service interfaces will be superseded by the new generic OData implementation over lists and libraries. There is also better support for embedding Silverlight, and Microsoft finally promises a good user experience even when using Firefox or Safari.

I just like Office 2010, but I haven’t done any customization for Office since the good old VBA times. I think the web-versions of Office built into SharePoint are really cool. They allow collaborative editing like in Google Docs. I’ll check out this stuff soon!


SQL Server 2008 R2

In the last couple of weeks I had to do a lot with SQL Server. The thing is, still devs do not care much about new SQL Server versions. They do rather talk about persistence ignorance. Even the Xml/XQuery implementations well the hosting of the CLR inside the SQL Engine did not really touch the developers hearts.

But often the heart of the application is data. And the more you have to do with it with fast response times, the closer you’ll have to operate on it. Another argument is, that Microsoft emerges the brand “SQL” from a relational RDBMS engine to a data platform including Analysis Services, Reporting, Integration Services, and so on …

Some of the new features are StreamInsight, the Excel PoverPivot plugin and more…


AppFabric (neé “Dublin” and “Velocity”)

“Dublin” was Microsofts promise to deliver a more manageable Application Server for .NET, WF and WCF solutions. But since it was announced there were no public CTPs or anything that we could have played around with.

At the same time “Velocity”, a memory cache, has had more publicity.

Those two are now merged in the AppFabric, promising a reliable host for the workflow foundation runtime and hopefully in the future a good replacement for NT services.

There have been rumors, that it enters the space of EAI, that BizTalk tried to cover so far. But the promise is, that they have different intents and will play nicely together.


Windows Azure

I’m not into it yet. But it looks promising. Let me just provide the links to the downloads I found.


.NET Service Bus

The .NET Service Bus is really interesting stuff. Somebody explained it as “Skype knowledge in a box”. This means, the .NET Service Bus helps you to set up secure duplex communication channels through firewalls and routers. It just leads your calls through the NAT jungle.

What you simply do, is creating a public namespace on “the internet”, where you then register your WCF service. Clients may then access your service through the Azure Cloud. Bye, bye DMZ!!

You can also use it to negotiate the connection details and then have it set up a direct TCP/IP connection between your server and the calling client.

In both modes, you’ll also be able to send messages to your clients, through all this expensive infrastructure that is intended to avoid those scenarios 🙂

The .NET Service Bus is part of the .NET Services SDK which also contains the Access Control Service and Workflow Services in the cloud.


Windows Identity Foundation (neé “Geneva”)

Federated claims-based security. Everybody is talking about it. After Microsoft tried to reach through with Card Space and Live ID, this finally seems to be their answer to OpenID.

I’ll definitely take some time digging into it. I’m also interested in how it interacts with the SQL Server Modeling Services for System.Identity.


    Windows 7

    Windows 7 is great! What I’m interested in most, is multi-touch. I think this will be the default for every monitor and notebook in just a couple of years.

    If you find any nice multitouch enabled applications, please give me a hint at http://multitouch-apps.com.


    Have fun!


    dotnetpro 08/2009 – Nordische Grammatik: Domänenspezifische Sprachen mit Microsoft Oslo M

    Soeben ist der dritte Artikel der DSL-Serie von Markus und mir bei der dotnetpro erschienen.

    Bild 11

    Abstract: Mehrspaltige Layouts für Webseiten sind komplex und stellen hohe Ansprüche an den Webprogrammierer. Warum nicht eine Sprache entwickeln, die solche Layouts vereinfacht? Mit Oslo M und dem ASP.NET MVC Framework lässt sich so eine Sprache realisieren.


    Hauptsächlich dreht sich der Artikel um MGrammar, den Teil der Sprache Microsoft M (Teil von Microsoft Oslo) mit dem andere Sprachen definiert werden können. Zuerst wird die MGrammar (Arbeitstitel) anhand einer simplen “Hello, World”-Sprache erklärt.

    Danach erstellen wir eine DSL zur Beschreibung mehrspaltiger Layouts und bringen diese mittels ASP.NET MVC und YAML ans laufen.

    Das Beispiel im Artikel basiert auf der Oslo January CTP, der Quelltext für das Oslo May CTP kann aber bei mir angefragt werden.


    Typisches dreispaltiges Portal-Layout.

    Konkretes Layout - dreispalter

    * Die Berechnung der Restbreite stimmt hier nicht. Richtig wäre:

    Rest = (75%* Gesamtbreite) –400px

    Dies mag aber von CSS-Framework zu CSS-Framework variieren.

    DSL zur Beschreibung

    Die Syntaxhervorhebung ergibt sich aus der Grammatik und ein wenig Konfiguration.

    intellipad - Syntaxhervorhebung

    Architecture.NET Open Space 2009

    On the 5th and 6th of June German software architects and some ALT.NET buddies met at the Architecture.NET Open Space conference. It was the first event in a series and indeed a great time.



    The event started at Friday at 9 o´clock. We had booked some rooms in the World Wide Business Center on the famous “Kö” in Düsseldorf, Germany. In total we were 22 participants.

    My main take-away is that I got to know even more great people. I also have tons of new ideas and a somewhat better picture on what good software architecture is.

    Find more reactions here: Architecture.NET Reactions, or have a look at the twitter stream.

    I also made some pictures and videos I’d like to share:

    Vodpod videos no longer available.


    Sessions I attended

    • Cloud Computing The conclusion was, that there is more fear than necessary. It’s a matter of good contracts. One thing to remember when putting software into the cloud is legal concerns. In Germany, for example, some company’s data is not allowed to be stored physically in other countries.
    • Asynchronous, Decoupling Messaging Human communication is totally asynchronous. Why not apply that to software architectures? What are the pitfalls? Are business processes really synchronous? In most cases they are not. But what are the trade-offs for synchronous processes in an async world? Great discussion!
    • Where to put status? Is there a live without session beans? Where does the session status belong? Database? Client? Middle tier? Distributed cache? Well, the answer is: it depends. But still a good discussion. I got some new ideas and even some product hints as Coherence, Terracotta and MSFT Codename "Velocity".
    • How dangerous is "cool"? What are the motivations behind introducing new technologies? Do we decide intuitively or rationally? Is there a benefit to it, or do we just want to try something new? Whom do we trust? Microsoft? The ALT.NET-Community? Gartner? Maybe the main problem in our industry is, that new technologies keep coming without leaving a chance to really learn how to apply them efficiently.
    • What is the next OOP? Discussion about possible future programming paradigms. Maybe it is component-oriented programming – just another static view on the world? Or could it be something flow-based as the actor-model? Are we just locked into Van Neumann architectures?
    • Plus many great discussions about architecture evolution, REST and much more.

    Things I would have liked to talk about, but didn’t find time for are:

    • Deployment/Setup/Dependency-Management
    • Domain-specific languages for defining sw-architectures
    • Security aspects
    • How to make my customers trust in Open Source

    DSL Tools, Software Factories and Oslo – Model-driven the Microsoft .NET way

    After primarily being concerned about Model-driven Software Development in general and specifically the concepts openArchitectureWare brings into our daily developer life, I wanted to figure out what Microsoft’s answer is like.

    I separated my research into three parts:

    DSL Tools

    The Domain-Specific Language Tools firstly shipped as external package for Visual Studio 2005. For Version 2008 they joined the Visual Studio 2008 SDK.

    With the DSL Tools Microsoft offers a graphical user interface for creating DSLs. Compared to MDSD terms, the DSL Tools base DSLs on a static meta-metamodel.

    A DSL then consists of Classes and Relationships defining the metamodel on the one hand, and Diagram Elements describing the graphical experience for creating an model on the other hand. Out of this metamodel VS generates a fully typed object-structure as well as designers which can be plugged into Visual Studio or Visual Studio Shell.

    To give you some impression these screen shots show the “End-End Wizard UIP”, one of many examples that ship with the Visual Studio SDK:

    1) Defining a DSL

    Defining a DSL

    2) Just a click on “Run”: The Designer that was automaticly generated for this DSL + a Model following the DSL is opened in a Visual Studio Shell

    Bild 4

    3) Another click on “Run” starts the generated wizard program that was defined by the model.

    Bild 5


    T4 – Text Template Transformation Toolkit

    For the generation of source code both DSL Tools as well as Software Factories utilize T4, a ASPX-like template language for generating program code, XML or any text files as for example database schemas.

    A nice thing is that T4 allows you to use your favorite .NET programing language. But it is not even half as powerful as for example XPand template language which is used in openArchitectureWare.

    It unfortunately lacks support for polymorphism, multi-file generation, protected regions and custom beautifiers.

    Resources on DSL Tools

    Download and Install



    These names were just popping up all over.

    • Steve Cook, Book Author, Microsoft, formerly representing IBM on the OMG Team specifying UML2, does now work on DSL Tools + UML.
    • Cameron Skinner Comments on Visual Studio Team System, Design and Architecture, .NET, and beyond
    • Stuart Kent, Book Author, Senior Program Manager, Visual Studio
    • Gareth Jones, Microsoft, Senior Development Lead, Visual Studio

    Software Factories

    The software factories Microsoft offers are meant to guide through the whole developing lifecycle of an application mostly for one specific horizontal domain.

    Software Factories are based on GAX and GAT, the Guidance Automation Extensions and the Guidance Automation Toolkit. These are frameworks to create wizards and macros/recipes that guide through the creation of an solution.

    It would be wrong to say that Software Factories by concept incorporate MDSD principles, but there is still an analogy.

    I could imagine building a software factory for compositing different models into a very specific ready-to-use-factory that fully considers MDSD principles by using DSLs and Code Generators.

    The Microsoft Patterns and Practices Team is developing a couple of Software Factories, which include:

    Especially these implementations lack at one point: Refactoring! Since code is generated once, instead of generating over and over again, changes on the templates and the model wont affect generated code.

    The Software Factories are not meant to be used as products! That does’t mean they are not made for productive us, but it means that a isv will have to create own Software Factories build upon GAT/GAX or at they will at least have to highly customize the factories for their end customers use.

    While DSL-Tools and MDSD often help to get bigger projects done more rapidly, developing a software factories will most likely not return its investments during the first project they are used for. You wont build a car-factory to build one single car either!


    Download and Install


    Codename “Oslo

    Since October 2007, when Microsoft firstly mentioned Codename “Oslo” there has been a lot of rumors on what “Oslo” means. Oslo was never announced as a product, but more likely as a concept and strategy influencing Microsoft’s enterprise and development products line.

    In fact the Oslo wave grew so big, that the different camps at Microsoft use to describe it differently.

    The two latest official Statements were:

    1. At TechEd Fishbowl in June David Chappell described Oslo as:
      • A storage repository and visual modelling tool
      • A new version of Windows Workflow Foundation
      • A process server to host WCF services and WF workflows
    2. In September there was an announcement from the BizTalk camp. Douglas Purdy said Oslo now consists of just the modelling components, which are:
      • A modelling tool
      • A modelling language
      • A storage repositoryThat is it. That is all Oslo is. Oslo is just the modeling platform.

    But Microsoft still leaves plenty of room for speculations. As I understand, Oslo is a campaign that affects plenty of products and services. Therefore it’s impossible to say what Oslo exactly is just in a few words.

    The aspects on Oslo that excite me most, and to which I look forward to most, are:

    1. The modeling language/tool to describe schemas for the repository as well as meta models and DSLs?
    2. A repository that is able to store and connect tons of data following these models.
    3. A process server to host WF, WCF and hopefully own services that brings stability, scalability, hot deployment and all the other services we are used from Java Application Servers.

    David Chappel also described the release roadmap, but without confirming any exact dates:

    1. A CTP Release around PDC (October 27?)
      He didn’t say what that will include.
    2. New Workflow Foundation with .NET 4 and a new Visual Studio version
    3. The repository including the modeling language and its visual editor + a first part of the process server
    4. A more complete version of the process server, including lifecycle manager (whatever that means)

    The indend, they tell me, is to ship these three chunks of technology in a fairly close succession. As much so as possible.
    David Chappell, PDC 2008

    There is nothing left but waiting for the PDC in October. So see you there!



    Well, everyone who seems to be really important does not say anything about Oslo. But still we got some statements in the past.

    • David Chappell – Consulter and Keynote Speaker who seems to be a insider to Microsoft and its forthcoming Oslo technologies
    • Douglas Purdy  – Product Unit Manager at Microsoft. His vision: “to make everyone a programmer (even if they don’t know it)”.
    • Jon Flanders

    kick it on DotNetKicks.com