October 27, 2008 osloeditorial

The Oslo Developer Center: Letter from the Editors

Welcome to the Oslo” Developer Center, your one-stop shop for all things Oslo.” Do you need to learn how M works (or what the heck it is?)? Do you want to sprinkle some of that repository stuff into your SQL Server? Do you need a quick video tutorial on the Oslo” SDK tools? Then you’ve come to the right place!

This DevCenter is a bi-directional communication channel between the Oslo” product team and you, our customers. We have all kinds of things we want to tell you about Oslo and all manner of ways for us to tell it to you, e.g. articles, videos, screencasts, samples, tools, etc. But more important than that, we want to hear from you, so we’ve set up a forum for you to ask questions and a Connect site for you to report bugs. And, if you blog about Oslo, you’re very likely to get noticed and featured on the home page. Or, if you do post about Oslo or find something Olso-related that you think deserves mention and we haven’t found it yet, then don’t hesitate to tell us! Finally, if that doesn’t make you happy, you should feel free to send your email directly to the site’s editors, Chris Sells and Kent Sharkey. We’re here for you!

What is Oslo?”

And to kick this conversation off, we’d like to provide the 10,000 foot introduction to Oslo”. Oslo” is the code name for our platform for model-driven applications. The goal of Oslo” is to provide a 10x productivity gain by making model-driven applications mainstream. At the core of this platform are domain-specific models, language and tools:

  • A language, M, for authoring domains textually
  • A tool, Quadrant, for authoring domains visually
  • A Repository for managing domain models
  • A library of pre-built domain models and languages

Together, these components will make it more efficient for a team to develop, implement, and maintain applications and services.

What is M”?

M” is a new declarative language that provides developers with an approachable, textual format for authoring models and DSLs for those models. The M” language consists of three parts: MGraph, MSchema and MGrammar. MGraph is used to write down values in a graph structure similar to syntaxes like JSON. MSchema builds on MGraph by providing a structural type system, extent declarations for storing values, and computed values, which are queries over values and extents. MGrammar is used to describe a domain-specific language in terms of token and syntax rules, which are then used to parse text into an MGraph.

What is Quadrant”?

Quadrant is a real-time editor over a SQL database. Updates in Quadrant are automatically propagated to the database. Views over the same data are automatically refreshed when those data changes are made to the database. This is technically possible because Quadrant is built on an innovative dataflow technology. Quadrant’s user experience is reflective of the experience in Office tools.

Quadrant is available to PDC attendees on the VPC, but not yet available for download. We hope to get Quadrant into a future Oslo CTP soon!

What is the Repository?

The Oslo” repository delivers a platform to manage application metadata. The Oslo” repository provides a common set of features to enable data-driven applications to leverage a platform investment made by Microsoft.

The Oslo” repository builds naturally upon the SQL Server database and provides optimizations for storing and sharing models — by providing a thin layer on top of the existing DBMS engine, this enables customers to easily leverage the existing SQL Server database ecosystem (e.g. tools, reporting, BI, etc). The repository is designed for extensibility, and supports common tasks such as impact analysis and access control. The repository manages end-to-end system models across the lifecycle, including support for both design and run-time views of application metadata. Pre-built models will be delivered as a starting point for building your full application, and with extensibility points so that your models can be augmented as needed.

Call to Action!

See for yourself. Download and install the Microsoft Oslo” SDK. It contains lots of goodies, including:

  • Compilers and tools
    • The M” compiler (m.exe)
    • The MGrammar compiler (mg.exe)
    • A tool to parse files based on a .mgx, and output an M” or XAML file (mgx.exe)
    • A tool to load M” content into a SQL database (mx.exe)
    • Visual Studio language integration for M”
    • Intellipad, a text editor with MSchema and MGrammar integration (ipad.exe)
    • MSBuild integration for the M” compiler
    • M” Add-in for Excel 2007
  • Documentation
    • Oslo Overview
    • M” in a Nutshell
    • M” Language Specification
    • MGrammar in a Nutshell
    • MGrammar Language Specification
    • Intellipad Primer
    • Help content for M”, Models, and the Repository
  • The Oslo and Dublin models
  • Samples
    • M Models: Northwind DBMS, WMI schemas (subset), enumeration and relationship patterns, and query examples
    • MParserDemo, a sample that demonstrates using the M” framework
    • Samples for M” Language Specification
    • MGrammar samples
    • Intellipad samples

And then, once you’ve dug through all of that, come here for more and to post your bugs and questions. We’re working to keep the content up to date and fresh, so they’ll always be something new for you at the Oslo DevCenter.

XXOO, Chris Sells & Kent Sharkey

October 24, 2008 tools

Tired of writing unit tests yourself? Try Pex!

From the Pex site:

Pex (Program EXploration) produces a traditional unit test suite with high code coverage. … To do so, Pex performs a systematic white box program analysis. Pex learns the program behavior by monitoring execution traces, and uses a constraint solver to produce new test cases with different behavior. At Microsoft, this technique has proven highly effective in testing even an extremely well-tested component.” [ed: emphasis mine]

So, Pex will produce a parameterized set of unit tests for your classes and does all of this integrated with Visual Studio and the unit testing built into VS. I’ve seen the demo and it blew me away. Nikolai Tillmann, a developer at MSR (Microsoft Research), has a nice write-up that discusses his work and when you’re done with that, go download Pex!

September 30, 2008 spout

MS + jQuery: This Is Huge!

Yesterday, the ASP.NET team announced that they were going to ship jQuery, a small, populate open source web client library. And not only is Microsoft going to ship this library, as is, but we’re going to build support into Visual Studio for it, build future versions of our web components assuming it and support it via PSS like any other Microsoft product.

This is huge.

Of course, is it useful for developers using Microsoft tools, because they get another supported library out of the box for them to use to build their applications. But that’s not what makes it huge.

What makes it huge is that, instead of seeing the functionality in jQuery and thinking to themselves, Wow. jQuery is really great. Let’s build something from scratch like that into our products,” the ASP.NET team, in what is the first time in Microsoft history afaik, decided to reuse something from the world that was already working, adding only the thing we do better than anyone else: integration into a suite of libraries and tools.

But isn’t this just embrace and extend?’” I hear you asking. Isn’t Microsoft just going to absorb jQuery, thereby killing it for folks not using Microsoft products?”

There are two ways forward at this point. One, we could push on jQuery in a Microsoft-centric way until the project owners” (which is a slippery concept with an OSS project anyway), decide to either give up and let Microsoft own” it or they decide to fork jQuery, thereby creating jQuery-classic and jQuery-MS. This would not be good for the jQuery community.

The other way to go, and this is the way I hope it goes, is that Microsoft learns to play nicely in this world, submitting features, changes and bug fixes to the jQuery source tree in a way that’s consistent with the vision from which jQuery sprang, making it work better for Microsoft customers and non-Microsoft customers alike.

If we can learn to do that second thing, then we’ve turned a corner at Microsoft. I’m keeping my fingers crossed.

September 24, 2008

Teasers for this year’s PDC

Do you want to know a tiny bit of what’s going to happen at this year’s PDC? Check these out:

Also, we’re giving away so much good stuff at the PDC that we’re putting it onto a 160GB USB2 hard drive for every PDC attendee. You can’t beat that with a stick!

If you haven’t done so yet, you should register quickly before the whole thing sells out.

September 8, 2008 tools

Custom Window Chrome in WPF

Joe Castro, a developer on the WPF product team, has written a very cool article about how to do custom chrome in your WPF applications. But, what makes it even cooler is that he dissects the various ways that shipping apps do custom chrome on various versions of Windows. It’s amazing the number of techniques there are. Very nicely done, Joe.
September 6, 2008 oslo

Oslo Defined

I’ve spent the last 3.5 years of my life working in various roles on a project that is now called Oslo.” Both Don and Doug have posted definitions.

See you at the PDC!

September 5, 2008 spout

I don’t pretend to understand advertising

I’ve always liked the Mac vs. PC ads. They’re clever, they make me laugh and I like both actors (Accepted is very under rated, IMO). Of course, I actually prefer my PC running Windows to a Macintosh (I had a Mac IIcx back in the day), I prefer Vista to XP and I’m a Microsoft employee, so I don’t have any trouble seeing the exaggeration, but there’s always a kernel of truth, which is what makes them funny. The part that kinda annoys me is that Apple seems to be claiming they have no such problems, which is, of course, not true.

The Mac vs. PC ads I understand: they’re meant to put down the PC by having the PC guy look like an idiot, leaving the Mac guy to seem non-threatening and therefore better by comparison.

On the other hand, I can’t say I understand the latest Windows ad with Jerry and Bill. I did enjoy it, however. Not only did Bill seem much friendlier and more approachable than I’ve ever seen him, but the image of someone in the shower with their shoes and socks on made me laugh, as did the image of Bill wiggling his butt in a Deep Throat sorta way.

And the commercials are having an effect: they’re being talked about and folks are interested in the next one. How often do you hear about folks looking forward to a commercial? That in and of itself is an achievement.

September 4, 2008 spout writing

Programming WPF goes into 3rd printing


← Newer Entries Older Entries →