Introducing Oslo


Published on

”Oslo” is the codename for Microsoft’s forthcoming modeling platform. Modeling is used across a wide range of domains and allows more people to participate in application design and allows developers to write applications at a much higher level of abstraction

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 09-06-08
  • Introducing Oslo

    1. 1. Introducing “Oslo”
    2. 2. Agenda <ul><li>What is a Model </li></ul><ul><li>What is Oslo </li></ul><ul><li>Oslo Architecture </li></ul><ul><li>Deep dive into each piece of Oslo </li></ul><ul><li>Development Domains </li></ul><ul><li>The Big Picture </li></ul><ul><li>Get Ready for Oslo </li></ul>
    3. 3. What is a Model ? A DESCRIPTION OF A GIVEN DOMAIN 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, …
    4. 4. What is Oslo <ul><ul><li>THE PLATFORM FOR MODEL-DRIVEN APPLICATIONS </li></ul></ul>“ Quadrant” The tool for interacting with models & DSLs Repository The database for storing & sharing models “ M” The language for authoring models & DSLs
    5. 5. &quot;Oslo&quot; Architecture XML, Custom Formats, … [Your Models] .Net Models Repository Models REPOSITORY SQL SERVER OTHER TOOLS (VSTS, EXCEL, …) [Your Models] Base Models “ M” Runtime REPOSITO SQL SERVER [Your Models] Base Models “ M” Runtime REPOSITO SQL SERVER RUNTIMES [Your Runtime] “ Dublin” ASP.NET WF WCF SQL/EDM Windows Other ISV Runtimes ADO .NET “ QUADRANT” Composition Generic Viewers Dataflow EDITOR FRAMEWORK [Your Visual DSL] [Your Textual DSL] MSchema MGrammar MGraph LANGUAGE FRAMEWORK XML, Custom Formats, …
    6. 6. Dive into “M” <ul><li>What ? </li></ul><ul><li>“ M” is a language for defining domain models and textual domain-specific languages (DSLs) </li></ul><ul><li>M domain models define schema and query over structured data ( T echnically XSD and XSLT ) </li></ul><ul><ul><ul><li>Values, Constraints, and Views </li></ul></ul></ul><ul><ul><ul><li>Natural projection to SQL </li></ul></ul></ul><ul><li>M DSLs define projections from Unicode text to structured data </li></ul><ul><ul><ul><li>Rule-based transformation </li></ul></ul></ul><ul><ul><ul><li>Grammar-driven text editor integration </li></ul></ul></ul><ul><li>Why ? </li></ul><ul><li>For Creating and interacting with Oslo content to be simple and natural </li></ul><ul><ul><li>Having a box-and-line design experience is an important enabler </li></ul></ul><ul><ul><li>Having a complementary textual experience is equally important </li></ul></ul>
    7. 7. The “M” Language A family of languages for manipulating data DSL &quot; M &quot; Domain-specific grammars Abstract data model Domain-specific data models language GPSLanguage { syntax Main = h:Integer (&quot;,&quot; v:Integer)? => Point { X { h }, Y { v }}; } type Point { X : Integer where X < 100; Y : Integer?; DistanceFromOrigin() { SQRT(X*X + Y*Y) } } Point { X { 100 }, Y { 200 } } Point.m Domain Model DSL Y Domain Grammar DSL X DomainX.m Domain Model DomainY.m Domain Model Domain Grammar Domain Grammar Mschema (Schematizing Data) Mgrammar (Text To Data) Mgraph (Representing Data)
    8. 8. What “M” is Not <ul><li>An object-oriented language </li></ul><ul><ul><li>No polymorphism, virtual dispatch </li></ul></ul><ul><ul><li>“ Is-a” determined based on structural subtyping, not stipulation </li></ul></ul><ul><li>A data access technology </li></ul><ul><ul><li>M domain models compile down to T-SQL </li></ul></ul><ul><ul><li>Tool chain supports course-grained loading/unloading of schemas and values – not an OLTP solution </li></ul></ul><ul><li>A replacement for T-SQL </li></ul><ul><ul><li>Far less expansive feature set </li></ul></ul><ul><ul><li>Tool chain supports linking/invoking T-SQL </li></ul></ul>
    9. 9. Compiling M: Visual Studio
    10. 10. Dive into Quadrant <ul><li>Why? </li></ul><ul><li>As more software becomes more model-driven, the volume of data in the system grows </li></ul><ul><li>We need a tool that lets people query, update, and visualize that data in ways that make sense for the task at hand </li></ul><ul><li>What? </li></ul><ul><li>“ Quadrant ” is a tool for interacting with data </li></ul><ul><ul><li>Flexible, focused design surfaces </li></ul></ul><ul><ul><li>Default experiences over arbitrary data </li></ul></ul><ul><ul><li>Rich declarative customization </li></ul></ul><ul><ul><li>“ Quadrant” connects people to data </li></ul></ul><ul><ul><li>Diverse data sets </li></ul></ul><ul><ul><li>Diverse interaction styles </li></ul></ul>
    11. 11. Quadrant Architecture SHELL AND SURFACE SERVICES COMPOSITION ENGINE Nesting Sizing Layout Snapping 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 REPOSITORY Target Data View State Configuration
    12. 12. Dive into Repository <ul><li>Optimized for storing and sharing models </li></ul><ul><ul><li>designed for extensibility </li></ul></ul><ul><ul><li>allows for query, linkage, impact assessment across models </li></ul></ul><ul><ul><li>supports common tasks such as versioning, access control </li></ul></ul><ul><ul><li>extensible metadata - enables rich tooling </li></ul></ul><ul><li>Includes end-to-end system / lifecycle models </li></ul><ul><ul><li>out of the box models </li></ul></ul><ul><ul><li>design-time, run-time </li></ul></ul><ul><li>‘ Natural’ SQL Server database </li></ul><ul><ul><li>approach leverages database ecosystem: tools, reporting, BI, etc </li></ul></ul>Repository Family of Platform Stores Message Box Platform Instance Data Modeling Language Monitoring Data Work Items Versioned Source Application Metadata
    13. 13. Repository Capabilities <ul><li>Repository features are built on SQL Server </li></ul><ul><ul><li>Repository install also turns on useful features, e.g. replication and mirroring </li></ul></ul>system catalog, Change Data Capture, replication, SSIS, mirroring, security, etc. SQL Server Features Repository catalog, secure views, auditing, versioning, claims-based security, glob/loc, etc. Repository Features
    14. 14. &quot;Oslo&quot; Models <ul><li>Identity </li></ul><ul><ul><li>System.Identity </li></ul></ul><ul><li>Application </li></ul><ul><ul><li>System.Runtime </li></ul></ul><ul><ul><li>System.Application </li></ul></ul><ul><ul><li>Document </li></ul></ul><ul><li>ServiceModel </li></ul><ul><ul><li>System.ServiceModel </li></ul></ul><ul><li>Transactions </li></ul><ul><ul><li>System.Transactions </li></ul></ul><ul><li>WorkflowModel </li></ul><ul><ul><li>System.WorkflowModel </li></ul></ul><ul><ul><li>System.WorkflowModel.Activities </li></ul></ul><ul><li>WorkflowServiceModel </li></ul><ul><ul><li>System.WorkflowServiceModel </li></ul></ul><ul><ul><li>System.WorkflowServiceModel.Activities </li></ul></ul><ul><li>Messaging </li></ul><ul><ul><li>System.Messsaging.Adapters </li></ul></ul><ul><li>Security </li></ul><ul><ul><li>System.Security </li></ul></ul><ul><li>Management </li></ul><ul><ul><li>System.Management.Commands </li></ul></ul><ul><ul><li>System.Management.Environment </li></ul></ul><ul><ul><li>System.Management.Lifecycle </li></ul></ul><ul><ul><li>System.Management.Localization </li></ul></ul><ul><li>Hosting </li></ul><ul><ul><li>Microsoft.Management.Environment </li></ul></ul><ul><ul><li>Microsoft.Management.Environment.Was </li></ul></ul><ul><li>Language </li></ul><ul><ul><li>Language.Schema </li></ul></ul><ul><li>Repository </li></ul><ul><ul><li>Item </li></ul></ul><ul><ul><li>Microsoft.Repository </li></ul></ul><ul><ul><li>System.Globalization </li></ul></ul>CORE
    15. 15. Data Access Options <ul><li>You can program against the generated SQL with whatever data access technology makes you happy, e.g. </li></ul><ul><ul><li>sqlcmd.exe </li></ul></ul><ul><ul><li>ADO.NET </li></ul></ul><ul><ul><li>LINQ to SQL </li></ul></ul><ul><ul><li>Entity Framework </li></ul></ul><ul><ul><li>Access </li></ul></ul><ul><ul><li>Excel </li></ul></ul><ul><ul><li>ODBC </li></ul></ul><ul><ul><li>OLEDB </li></ul></ul><ul><ul><li>EIEIO… </li></ul></ul>
    16. 16. Development Domains TEXTUAL DSLs VISUAL DSLs RUNTIMES “ Quadrant” Web Editor “ MWeb” ASP.NET WEB “ Quadrant” Service Editor “ MService” WCF/WF (“Dublin”) SERVICES “ MEntity” EF ENTITIES “ Quadrant ” Schema Editor “ MSchema ” SQL DATABASE “ MService” WCF/WF (“Dublin”) “ MEntity” EF “ Quadrant” Entity Editor
    17. 17. The Big Picture How Oslo is part of future Application Development Lifecycle ? Cloud Services A set of Microsoft hosted services including a service bus and a process server Service Bus Model Repository Modeling Tools (Quadrant) Process Server (Dublin) Modeling Language (M) Bus Analyst Arch Dev IT Pro Cloud Services
    18. 18. Getting Ready for Oslo… <ul><ul><li>Use a model-driven runtime (WF, WPF, EF, …) </li></ul></ul><ul><ul><li>Use XML or a database to drive your application or service </li></ul></ul><ul><ul><li>Embrace model-assisted development (VSTA, DSL Toolkit, …) </li></ul></ul><ul><ul><li>Visit and Try Oslo January 2009 CTP @ Oslo Developer Center </li></ul></ul><ul><ul><li> </li></ul></ul>If You Are A Microsoft .NET developer
    19. 19. Questions
    20. 20. Thank You