1 / 32

Introduction to “Oslo”

Introduction to “Oslo”. Jeremy Boyd Director – Mindscape MSDN Regional Director http://turtle.net.nz/blog. Agenda. What is “Oslo”? M Language MSchema MGraph MGrammar So what does this all mean?. What is “Oslo”?. “Platform for Model Driven Applications”

dianne
Download Presentation

Introduction to “Oslo”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to “Oslo” Jeremy Boyd Director – Mindscape MSDN Regional Director http://turtle.net.nz/blog

  2. Agenda • What is “Oslo”? • M Language • MSchema • MGraph • MGrammar • So what does this all mean?

  3. What is “Oslo”? • “Platform for Model Driven Applications” Capture the intent of the business in terms that are equally understood by humans and computers aka Next Generation Application Platform  • Language for describing Data and DSL’s • Repository for Models • Tools for building models

  4. What is a Model? DRAWINGS Models used to communicate with others Examples: Dataflow, Use Case, … MODEL-ASSISTED Models used to understand or manipulate code Examples: Static Structure, Sequence, … MODEL-DRIVEN Models executed by runtimes directly Examples: HTML, CSS, XAML, BPEL, …

  5. Domain Models • Complex Domain Designs should be based on a model • If we can decouple from infrastructure • Underpins other patterns • Sits well in an Object Oriented world “An object model of the domain that incorporates both behaviour and domain” - Martin Fowler

  6. Why is this happening? TRANSPARENCY Better understanding of your application FLEXIBLITY Faster changes to your application PRODUCTIVITY “More essence, less ceremony”

  7. Domain Driven • Both a way of thinking, and a set of priorities when building software • Encourages/requires tighter collaboration between development team and domain experts • Evolved by continuous learning “For most software projects the primary focus should be on the domain and the domain logic” - Eric Evans

  8. What is "Oslo"? “M” The language for authoring models & DSLs “Quadrant” The tool for interacting with models & DSLs Repository The database for storing & sharing models

  9. Key "Oslo" Concepts VISUAL DSLs TEXTUALDSLs MODELS RUNTIMES

  10. Domain Specific Languages • A programming or specification language dedicated to a particular problem domain • Less comprehensive as a language • More expressive about the domain • At the level of abstraction of the domain • Enhances reuse and maintainability • Can be used by “lay-programmers”

  11. "Oslo" Architecture RUNTIMES “QUADRANT” [Your Visual DSL] [Your Textual DSL] EDITOR FRAMEWORK LANGUAGE FRAMEWORK Composition [Your Runtime] Generic Viewers MSchema “Dublin” Dataflow MGrammar ASP.NET MGraph XML, Custom Formats, … WF WCF REPOSITORY SQL SERVER REPOSITORY SQL SERVER SQL/EDM ADO .NET Windows Other ISV Runtimes REPOSITORY SQL SERVER [Your Models] [Your Models] Base Models Base Models OTHER TOOLS (VSTS, EXCEL, …) [Your Models] XML, Custom Formats, … “M” Runtime “M” Runtime .Net Models Repository Models

  12. Agenda • What is “Oslo”? • M Language • MSchema • MGraph • MGrammar • So what does this all mean?

  13. What Is “M”? • “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 • Rule-based transformation • Grammar-driven text editor integration

  14. Why “M”? • We want creating and interacting with Oslo content to be simple and natural • Having a box-and-line design experience is an important enabler • Having a complementary textual experience is equally important • “M” is how we achieve the latter

  15. 3 Basic Concepts • A value is simply data that conforms to the rules of the M language • A type describes a set of values • An extent provides dynamic storage of values

  16. What is “M”? • MSchema • Describes types • What XSD is to XML for MGraph • MGraph • Describes instance data (Entities) • Similar to JSON format • MGrammar • Allows authoring of DSLs over your type system/data

  17. MSchema type Address { Street: Text; City: Text; State: Text; ZipCode: Integer32; } where identity Street;

  18. Demo

  19. MGraph Products { LightSpeed { Id = 1, Name = "LightSpeed", Description = “A Domain Modelling Framework" }, WPFPropertyGrid { Id = 2, Name = "WPF Property Grid", Description = “A Property Grid for WPF" } };

  20. Demo

  21. MGrammar • Tokens define the “words” of your language • Syntax defines the “sentences” of your language 1,2 e.g. syntax Number = “0”..”9” or h:Number("," v:Number)?               => Point { X { h }, Y { v }};

  22. language DemoCoder { syntax Main = Prefix “, “ Suffix; syntax Prefix = “Hello”; syntax Suffix = “World” | “Oslo”; syntax Greetings(pre, suf) = pre suf; syntax Foo = “Foo” => Product { 1 }; };

  23. What “M” Is Not • An object-oriented language • No polymorphism, virtual dispatch • A data access technology • M domain models compile down to T-SQL • Tool chain supports course-grained loading/unloading of schemas and values – not an OLTP solution • A replacement for T-SQL • Far less expansive feature set

  24. “Quadrant” • Tool for building and manipulating visual models and DSLs. • Design workflows, processes and generally manipulate instances of models • Not currently available except on PDC VPC • Has been shown in relation to WF 4.0 editing experience

  25. “Quadrant”

  26. Agenda • What is “Oslo”? • M Language • MSchema • MGraph • MGrammar • So what does this all mean?

  27. So what does this mean? • Its all about this whole Model Driven Development idea.. • Nicely complements all the other code gen/automation we are likely to be doing currently • Brings the business closer to the software

  28. Some words of warning..

  29. What are others doing? • Microsoft • “Dublin” process server provides a runtime for hosting workflow models • Windows Workflow 4.0 describes models in M • ISV’s • Leveraging M and Quadrant for CASE style tools • Mschema/Mgraph as input to code generation / software factories within existing tool sets

  30. What we are doing? • Domain Model / ORM Framework • Using M as inputs for domain modelling • Infer validation constraints etc from schema • Mgraph as input for in test data sets

  31. Quick Demo

  32. Thank you!  • Links: • http://msdn.microsoft.com/oslo • http://www.mindscape.co.nz • Email: jeremy@mindscape.co.nz • Blog: http://turtle.net.nz/blog

More Related