Download presentation
Presentation is loading. Please wait.
Published byEric Booth Modified over 9 years ago
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
MODEL-ASSISTED Models used to understand or manipulate code Examples: Static Structure, Sequence, … DRAWINGS Models used to communicate with others Examples: Dataflow, Use Case, … MODEL-DRIVEN Models executed by runtimes directly Examples: HTML, CSS, XAML, BPEL, … What is a Model?
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 MODELS TEXTUAL DSLs VISUAL DSLs 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
[Your Models] Base Models “M” Runtime REPOSITORY SQL SERVER [Your Models] Base Models “M” Runtime REPOSITORY SQL SERVER "Oslo" Architecture RUNTIMES [Your Runtime] “Dublin” ASP.NET WF WCF SQL/EDM Windows Other ISV Runtimes ADO.NET XML, Custom Formats, … “QUADRANT” Composition Generic Viewers Dataflow EDITOR FRAMEWORK [Your Visual DSL][Your Textual DSL] MSchema MGrammar MGraph LANGUAGE FRAMEWORK [Your Models].Net Models Repository Models REPOSITORY SQL SERVER OTHER TOOLS (VSTS, EXCEL, …) XML, Custom Formats, …
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://msdn.microsoft.com/oslo – http://www.mindscape.co.nz http://www.mindscape.co.nz Email: jeremy@mindscape.co.nzjeremy@mindscape.co.nz Blog: http://turtle.net.nz/bloghttp://turtle.net.nz/blog
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.