The “Oslo” Back Story - PowerPoint PPT Presentation

the oslo back story n.
Skip this Video
Loading SlideShow in 5 Seconds..
The “Oslo” Back Story PowerPoint Presentation
Download Presentation
The “Oslo” Back Story

play fullscreen
1 / 40
The “Oslo” Back Story
Download Presentation
Download Presentation

The “Oslo” Back Story

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. The “Oslo” Back Story

  2. “Oslo” 2007: Multi-year, Multi-product vision

  3. “Oslo” 2008: Modeling Platform

  4. “Oslo” 2009: SQL Server Modeling


  6. A DESCRIPTION OF A GIVEN DOMAIN 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, …

  7. Model-driven Platform DECLARATIVE CONTENT .NET 3.0 wpf:ContentControl wf:StateMachine Web Services xsd:schema wsdl:definitions .NET 1.0 app.config [YourAttributeHere] COM (+) [Transaction] midl.exe TIME

  8. Model-driven Applications Textual domain specific language (CAML) Visual designer (SharePoint Designer) Application definition stored in database Textual domain specific language (X++) Visual designer (MorphX) Application definition stored in database

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

  10. Data and Modeling Visual Studio “Quadrant” Entity Framework Data Services ADO.NET “M”/EDM SQL Azure SQL Server … SQL Server Modeling Services

  11. THE PLATFORM FOR MODEL-DRIVEN APPLICATIONS What is "Oslo"? “M” Modelling language “Quadrant” Modelling tool SQL Server Modeling Services Model store


  13. "Oslo" Architecture “QUADRANT” RUNTIMES [Your Textual DSL] [Your Visual 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 [Your Models] OTHER TOOLS (VSTS, EXCEL, …) XML, Custom Formats, … “M” Runtime “M” Runtime .Net Models Repository Models


  15. SQL Server Modeling Services

  16. To provide a database designed for models • Focuses on application metadata • Optimizes storing many models in one database • Supports secure data sharing and reuse • To provide common model schemas • Build models that relate to the application lifecycle • Enable Microsoft and third-party solutions

  17. Modeling Services Database: A SQL Server 2008 database with the Base Domain Library (BDL) Base Domain Library BDL SQL ServerModeling Services Database

  18. Modeling Services database features: • Contains each model in its own SQL Server schema • Organizes data hierarchically • Implements fine-grained security (row-level) • Supports localized strings and resources • Supports change tracking and audit trails • Uses a “natural” database structure that supports standard data access technologies and ad hoc queries BDL Modeling Services Database

  19. Repository Capabilities • Repository features are built on SQL Server • Repository install also turns on useful features, e.g. replication and mirroring Repository catalog, secure views, auditing,versioning, claims-based security, glob/loc, etc. Repository Features system catalog, Change Data Capture,replication, SSIS, mirroring, security, etc. SQL Server Features

  20. Types of Models • Structural Models • Model definitions • Represented by table structure • Instance Models • Model instances • Represented by data in structural model tables

  21. Repository Summary • Repository is optimized for many reads, few writes • Contains models for “Oslo” app domains • Can be extended with M • Models can be deployed, secured and versioned

  22. The modelling Language

  23. Why “M”? • Interacting with Oslo content needs to be simple and natural • Textural based modelling language

  24. 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

  25. codename “m”: a language for data “M” T-SQL Specification Grammar Specification EDMX Specification

  26. The "M" Language DSL DSLX DSLY Point.m Domain Model DomainX.m Domain Model DomainY.m Domain Model Domain Grammar Domain Grammar Domain Grammar "M" Domain-specific data models • type Point { • X : Integer; • Y : Integer; • } MSchema Domain-specific grammars • language PointLanguage { • syntax Main = h:Integer "," v:Integer • => Point { X { h }, Y { v }};} MGrammar Abstract data model • Point { X { 100 }, Y { 200 } } MGraph

  27. Your Models “M” Code Microsoft.Uml2 “M” Command-Line Tools System_Runtime BDL System.Identity Modeling Services Database

  28. IntelliPAD

  29. IntelliPad Editing Tool • Simple text based code editor • Supports “M” languages • Provides instant feedback of code compilation • Great for learning “M” languages • Visual Studio can also be used for “M” • Most likely scenario in real projects

  30. IntelliPad Editing Tool Modelling data in IntelliPad TSQL code is created instantly

  31. M: Visual Studio

  32. DEMO


  34. What is "Quadrant"? • Graphical tool used for managing instance models • Targeted at architects and business analysts • Loads model definitions from repository database • Allows management of instances • Changes are saved to database immediately

  35. Quadrant Modelling Tool

  36. SERVICES SHELL AND SURFACE COMPOSITION ENGINE Nesting Sizing Layout Snapping "Quadrant" Architecture Core Services Undo/Redo Commands Drag/Drop Selection Activation Error Handling General Services Search Validation Annotations Relationship Highlighting DATAFLOW ENGINE Caching, Virtualization, Change tracking, and Notification Target Data View State Configuration REPOSITORY

  37. Summary

  38. pit of success • start with the database • “database is the truth” • why? it already exists, or you want low level control over the database • what? import model into edmx and tweak • start with an edmx model • “edmx is the truth” • why? you want separation from code and database in a declarative format • what? create a model and tweak • start with .net classes • “code is the truth” • why? primarily focused on code shape, database is an implementation detail • what? define classes in code, adjust shape using contextbuilder

  39. Future Domain Models

  40. Bits • • SDK Download • SDK Contains • Repository database • “M” modelling language (MSchema, MGrammer) • IntelliPad editor • NOW WITH ADDED “Quadrant” • Community • • Use “Oslo” today • Use “M” to model a database! • MGrammar • Language for creating textual DSLs • Specification will be released under OSP