Marquee de Sells: Chris's insight outlet for category 'oslo' via ATOM 1.0 csells on twitter

You've reached the internet home of Chris Sells, who has a long history as a contributing member of the Windows developer community. He enjoys long walks on the beach and various computer technologies.




Designing a language is hard; implementing it shouldn't be

Frans Bouma has an interesting point: Designing a language is hard, and M won't change that. And he's right.

For many domains, a DSL can make expressing what's important easier so that the developers using the DSLs can communicate between themselves and to a computer with fewer lines of code, making it easier to read, check and maintain. Many (arguably most) domains live without a DSL, instead encoding design decisions into general purpose languages, adding unnecessary ceremony to the essence of what's being decided, thereby obscuring it.

Does M making designing a language easier? No. It's still hard to design the syntax of a language. Does the M family of languages and the associated tools make it possible for more developers to add DSLs to their domains, letting them concentrate on the essence their language and reducing the Weird Science-like ceremony to bring it to life? We hope so. You'll have to let us know.

0 comments




More Oslo Reactions: What “Oslo” is and is not

Lars Corneliussen (not the wonderful Lars that did a cameo at the Repository & Schemas PDC talk about 8 minutes in) did a nice overview of Oslo. It's amazing to me how well the vision and details of the platform came through at the PDC. General-purpose modeling is a new thing for mainstream developers, but at least the developers that we've heard from so far seem to be open to the idea.

0 comments




Ted Neward Explores M

When I was an external to Microsoft, I used to see new Microsoft technologies and have several reactions: wonder, awe, lust, hate, confusion, apathy. Really, Microsoft was a harsh mistress that caused all kinds of reactions.

I've been heads down for 3.5 years working on Oslo, so seeing other peoples' opinions from inside of Microsoft is very enlightening. Ted Neward has an Oslo opinion that I enjoyed reading, even if it wasn't all positive. Thanks, Ted.

0 comments




News: How modeling will change programming

Burley Kawasaki is a Microsoft marketing person, it's true, but he also really understands the point of Oslo. Enjoy.

0 comments




Three-Pane MGrammar Development in Intellipad

Roger Alsing has posted a discussion of how Intellipad's support for MGrammar development makes writing DSLs easier but showing you what parsers and how as you update the input file and the grammar file itself.

Personally, I'm a huge fan of seeing something work as I type. Think of it as "holistic intellsense." The SQL generation in Intellipad works the exact same way. I find it a huge help.

0 comments




Another Oslo MGrammar Sample: WatiN

Torkel Ödegaard has done a very nice, detailed look at created a DSL in MGrammar for the WatiN browser automation library, including a look at the code he used to parse the Abstract Symbol Tree produced by MGrammar to do something useful.

0 comments




Generating code from M

On the Oslo team, we think of three kinds of models:

  1. Drawings: This is modeling to communicate from human to human, e.g. on a white board or in Visio. An architecture diagram in a design document is an example of such a thing.
  2. Model-Assisted: This is modeling where we're talking to a computer, most often to generate code, e.g. the .edmx file used by Visual Studio to generate C# data access code.
  3. Model-Driven: Here we're also communicating from a human to a computer, but instead of doing it at development-time to generate code, the model is actually used at run-time to drive a run-time, e.g. a Workflow definition to drive the Workflow engine.

I've seen various samples around the interweb on model-driven aka "executable models" (some of which we've supplied on the Oslo DevCenter), but Kirill Chilingarashvili has done a nice little sample of combining Visual Studio's T4 codegen language with a custom DSL in MGrammar. Enjoy!

0 comments




MisBahaving with M

The M family of languages is meant for all kinds of things, from executable models, e.g. defining a workflow and executing it via the Workflow runtime, to allowing a business person to express something in a language, either visual or textual, that they understand so that it can be communicated as formally as desired to another human. As an example of the latter, Claudio Perrone has implemented a DSL in MGrammar for Behavior-Driven Development.

It is amazing to me how many of these little DSLs have popped in M just since the PDC. Keep 'em coming!

0 comments




MSchema and Decorator Tables

The one where Shawn Wildermuth explores the MSchema syntax that looks like inheritance but isn't (since inheritance has no meaning in a structurally type language).

0 comments




Vim Support for MGrammar

From Fredrik Eriksson.

0 comments




Big, Juicy Video on M from Jon Flanders

Jon Flanders from pluralsight has posted a 39 minute screencast video introducing M to .NET developers. Enjoy!

0 comments




Oslo: Using Mg to Define a To-Do Language

Justin Bailey has built a little language in MGrammer to create tasks and even better, he's provided a very tutorial on how he did it. Following along with him would make a great way to learn the basics of Mg. Plus, I love his conclusions:

"Mg is clearly a powerful technology for defining languages. The above is a trivial use, but already we have bypassed most simple file parsing techniques. Quoted strings and balanced parentheses are the bane of non-parsing techniques and it appears that Mg will be placing those abilities within reach of most .NET developers."

Good work, Justin!

0 comments




Aaron Skonnard on "Oslo"

Aaron Skonnard of pluralsight has provided a very nice overview of "Oslo," including the major pieces and most importantly, why you care. Enjoy!

0 comments




Oslo Week One Wrap-Up

Oh my lord above. I have been working towards last week for about 3.5 years altogether. It started with an incubation in the Connected Systems Division (CSD -- the folks that own WF, WCF, BizTalk, etc) doing work to see if modeling was a feasible way to build applications and we just announced the work so far along these lines at the PDC last week. It's called "Oslo" and here are the top places you should look to get up to speed on it:

Microsoft "Oslo" Resources

But don't take my work on "Oslo." Check out what the world is saying (in no particular order -- honest!).

The World's Take on "Oslo"

Whew. We just announced "Oslo" last week and it's crazy how much there is on it already. Enjoy!

0 comments




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:

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:

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

0 comments




6 older posts       90 newer posts