Questionnaire DSL with Microsoft "Oslo" overview
Intro
After PDC 2008 there was quite some confusion around what you can do with Microsoft “Oslo”. I was already busy with Domain-Specific Languages for a while so I got a general idea. There weren’t a lot of good and complete demos either for “Oslo”, so that didn’t help in getting “Oslo” clear for lots of people.
Last year back at Avanade I decided to start building a good showcase together with two enthusiastic graduation students (Michael Wolbert and Bryan Sumter) and Felienne Hermans from Delft University of Technology. Some of you may have already seen this at Code Generation 2009 where I did a session about “Oslo” together with Felienne or at the Achmea Technight where I did a similar session with Alex Thissen. More of you will start to see this demo since it will probably run at the “Oslo” booth at PDC09!
Bryan and Michael pulled this very well together so let me briefly describe what this is about.
The case
Our domain is questionnaires for insurance products. Before you get accepted for insurance product companies tend to ask quite some question so they can calculate risk. These questions generally change quite a lot or extra questions are added due to new insights by insurance experts. Now if you’re a big insurance company and sell quite some products you can build these questionnaires one-off every time, but that isn’t very handy.
The “Oslo” solution
Here is how you could solve this problem with Microsoft “Oslo”. I will only show you how this works for the end users and insurance experts, only briefly how this is build with “Oslo”.
1. Textual DSL
We wrote a textual DSL with M. Insurance experts can use this together with a developer to quickly specify all the possible questions and their types in Intellipad:

2. Visual DSL
After pushing into the repository from “Intellipad” the insurance expert can model the order and relationships of the questions in “Quadrant”.

3. Runtime
If the insurance expert and the developer are done in “Intellipad” and “Quadrant” we can launch the runtime. The runtime picks up all the data from “Intellipad” and “Quadrant” from the repository and shows the right questions. Optionally the developer can spend some time with stylesheets (css) to adjust the looks of the website. Finally the runtime can be used by customers to request insurance products. Questions can be changed (via “Quadrant”) or added ( via “Intellipad” and “Quadrant”) and the runtime will render accordingly.
Conclusion
So there you have it, a full case of how “Oslo” could be used for this problem. Again credits to Michael Wolbert and Bryan Sumter for pulling this together. Hope they start blogging about the inner things of how they got this working. Go check this out at the booth of the “Oslo” team at PDC09 if you’re lucky enough to be there.