Codename "Oslo" - A little bit of this – a little bit of that


Published on

Deck from my Codename "Oslo" talk held in June for NNUG Stavanger

  • 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

Codename "Oslo" - A little bit of this – a little bit of that

  1. 1. Slides in English.Foredrag på norsk <br />Codename ”Oslo”A little bit of this – a little bit of that<br />Lars Wilhelmsen<br />Senior Consultant, Miles AS<br />NNUG Stavanger<br />2009/06/10<br />
  2. 2. What to expect<br />Get an overview of the ”Oslo” universe<br />Vision<br />Main technologies<br />Types, languages, & values<br />Framework<br />Repository<br />Intellipad<br />Quadrant<br />Some slides – some code<br />My apologies up front; I can’t cover all the nitty gritty details in an one hour talk <br />
  3. 3. Lars Wilhelmsen<br />Works with Miles AS as a Senior Consulting<br />Country Lead of NNUG<br />Specializing in architecture, development & advisory on the Microsoft platform<br />I’m ”Non-UI Guy” – focusing on enterprise & distributed systems<br />Microsoft Connected Systems MVP<br />Microsoft Connected Technology Advisor<br />The Connected Systems Division owns products like WCF, WF, BizTalk, ”Oslo”, ”Dublin”<br />
  4. 4. Me & ”Oslo”<br />Well, I’m ”Lars from Oslo”...<br />Cameo stunt together with csells & gudge @ Microsoft PDC 2008; TL28 ”Oslo” Repository & Models<br />Sceptic but optimistic<br />Active in the MSDN/Oslo forum<br />Featured blogger on the ”Oslo” Development Center<br /> <br />
  5. 5. The vision<br />Microsoft November 2007<br />”Oslo” Q & A<br />Microsoft promise (-d?) a tenfold increase in developer productivity...... the statement is now removed from the ”Oslo” Developer Center<br />
  6. 6. ”Oslo” from a 10.000 feet view<br />Microsoft’s next generation platform for Model-Driven Development<br />Consists of:<br />A textual DSL for modelling ( ”M” )<br />A visual DSL & tool for modelling ( ”Quadrant” )<br />A repository<br />Framework & tools<br />
  7. 7. Intellipad<br />Lightweight – focus on the code<br />”Emacs.NET”<br />Most the UI commands built with IronPython<br />Extensibility is α - ω<br />Built on the Dev10 text editor control<br />
  8. 8. ”M”<br />Types & Values<br />
  9. 9. M: the modelling language<br />M domain models define schema and query over structured data<br />Values, Constraints, and Views<br />Natural projection to SQL<br />M DSLs define projections from Unicode text to structured data<br />Rule-based transformation<br />Grammar-driven text editor integration<br />
  10. 10. Commonly used ”M” Types<br />Number, Decimal, Integer, Double<br />Date, DateTime, Time<br />Text<br />Logical<br />Binary<br />Collection<br />Entity<br />
  11. 11. ”M”: One-to-Many relationships<br />Company<br />1<br />*<br />Employee<br />
  12. 12. ”M”: Many-to-Many relationships<br />BlogPost<br />*<br />*<br />Tag<br />
  13. 13. ”M”: One-to-One relationships<br />Company<br />1<br />1<br />Employee<br />
  14. 14. ”M”: Self-referencing relationships<br />TreeNode<br />*<br />
  15. 15. MGrammar: Hello World<br />
  16. 16. MGrammar: Overview<br />Simple answer: Language for creating Languages<br />Is the ”Oslo” equivalent of Lex/Yacc, ANTLR etc.<br />Processing of source code (DSL input) can be done with m.exe or programmatically with a reference to Microsoft.M.dll<br />Access to Lexer & Parser objects, classifications etc.<br />Traversal of MGraph/AST with Graphing API<br />
  17. 17. MGrammar: Classifications<br />Keyword<br />Identifier<br />Whitespace<br />Comment<br />Operator<br />Delimiter<br />Literal<br />String<br />Number<br />Unknown<br />
  18. 18. Command-line tools pipeline<br /><br /><br />MyFabSuperDeck.pp<br />m.exe<br />mgx.exe<br />Slides.m<br />Compiled ”M” Image<br />Repository<br />mx.exe<br />
  19. 19. Repository<br />Optimized for storing & sharing models<br />designed for extensibility<br />included end-to-end system / lifetime models<br />”Natural” SQL Server database<br />Built on SQL Server 2008<br />Data access: Your normal data access options; vanilla ADO.NET, EF, L2S, NHibernate (fill in your favorite ORM here).<br />
  20. 20. Repository: Main features<br />Catalog<br />SQL Server has a catalog - Repository has its own catalog<br />Extends SQL Server catalog<br />Adds information about relationships modules, types and extends<br />Useful for Rich export, Impact analysis & Enriched SQL data access code generation<br />Deployment<br />mx.exe packages SQL for deployment to Repository nodes<br />Packages can come from M files<br />Packages can be exported from Repository nodes<br />Versioning<br />Data change synchronization<br />Between nodes using SQL Server Replication and Occasionally Connected Systems (OCS)<br />Import/Export using SQL Server Change Tracking, e.g. repository&lt;-&gt;file system<br />Schema evolution<br />Extend M type and provide backwards compatibility for old clients w/ computed values<br />SQL Server Integration Services for data migration<br />Security<br />Claims-based security<br />”Folders” – row-level security.<br />
  21. 21. Quadrant<br />
  22. 22. Quadrant: Overview<br />Visual tool for interacting with the Repository (and other data sources)<br />Query, visualize & manipulate data<br />Extensible<br />The”Oslo” technology that is most immature (in my opinion)<br />The current version in the May 2009 CTP is not really usable for any serious work<br />Currently supports only read-only viewing of data<br />
  23. 23. Demo: Quadrant <br />
  24. 24. Key takeaways<br />Microsoft *will* provide a end-to-end solution<br />Scope changed since the initial announcement<br />The scope is probably not fixed yet<br />Open Specification Promise<br />More than one way lead to Rome<br />History shows that 1.0 versions of MSFT’s product aren’t ”done”. <br />Go home and play with the current bits!<br />
  25. 25. Q & A<br />
  26. 26. The Namedropping Slide*<br />Brad Lovering<br />Don Box<br />Chris Sells<br />Chris Anderson<br />Douglas Purdy<br />David Langworthy<br />Paul Vick<br />Martin Gudgin<br />Anthony Bloesch<br />Jeff Pinkston<br />Hoop Somuah<br />Michael Murray<br />Vijaye Raji<br />Jeffrey Schlimmer<br />Giovanni Della-Libera<br />Clemens Szyperski<br />* Notable MSFT employees working on different parts of ”Oslo”<br />
  27. 27. Resources<br />”Oslo” Dev Center<br /><br />Contains everything you need to get started<br />Get the ”Oslo” May 2009 CTP now!<br />Contains the framework, repository, Intellipad & Quadrant<br />Stuff for the pointy-haired guys<br /><br />Oslo MSDN Forum<br /><br />”Oslo” on Twitter: #msoslo<br />”M” Specification Community<br /><br />
  28. 28. Thank you!<br /><br />Feedback, please!<br />