Presentation: An Introduction to M
During PDC 2008, David Langworthy, Architect at Microsoft, and Don Box, Distinguished Engineer at Microsoft, held a presentation about Oslo, focusing especially on the modeling language M, explaining what is and what is not, and also demonstrating using M to create a data model.
According to Don, Oslo is constituted by the following components:
- M Language - a modeling language
- Quadrant - a modeling tool
- Repository - a model storage
Don explains they chose a modeling language because they wanted to offer a design tool which allows working with models textually. M allows one to create a model by typing like creating a program in other languages.
According to Don, M is:
- “M” is a language for defining domain models and textual domain-specific languages (DSLs)
- M domain models define schema and query over structured data
Values, Constraints, and Views
Natural projection to SQL
- M DSLs define projections from Unicode text to structured data
Grammar-driven text editor integration
"M is about capturing, schematizing and transforming data", says Don. M offers only a representation of data, has no data related behavior, so there is no polymorphism. Typing is done by structural typing, the way represented data is structured.
M is not an OOP language. M is not a data access technology. While all the data can be transported to/from a database, M is not an OLTP solution, and it is not a T-SQL replacement.
In a live demonstration, David creates a data model, stores the data to a database and retrieves it later from there. He shows some features of the language like constraints, identity, value types, functions, and others.
The Oslo SDK can be downloaded from MSDN.