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