2010.05.21 introducing sql server modeling

801 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
801
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2010.05.21 introducing sql server modeling

  1. 1. Introducing SQL Server Modeling In collaborazione con » Marco Parenzan
  2. 2. Agenda » Attenzione! » Domain Driver e DSL » Oslo e il linguaggio “M” » Gli strumenti “Intellipad” e “Quadrant” » Esempi e Casi di uso » Conclusioni 21 maggio 2010 www.xedotnet.org 2
  3. 3. The bits » SQL Server Modeling CTP - Nov 2009 Release 3 (formerly “Oslo”) • .NET 4.0, Visual Studio 2010 RTM • http://www.microsoft.com/downloads/details.aspx? FamilyID=29e4ead0-fd81-42ba-862b- f3589378466a&displaylang=en » È certo che ci saranno DIVERSE ALTRE CTP... » ... e saranno tutte diverse... 21 maggio 2010 www.xedotnet.org 3
  4. 4. Incubazione » Il progetto è in uno stato di “sospensione” • Non verranno rilasciate altre versioni sino alla fine dell’anno • Il rilascio finale può arrivare anche anche nel 2012 » Impatto su tanti prodotti Microsoft » Microsoft deve capire come usare questa tecnologia 21 maggio 2010 www.xedotnet.org 4
  5. 5. From “Oslo” to “SQL Server Modeling” » “Oslo” è stato rinominato in “SQL Server Modeling” » “M” è una tecnologia per i dati, e dati, in Microsoft, significa SQL Server • Questa è la “scusa ufficiale” • Il team della Connected System Division è confluita nella Data Platform » “M” ha comunque il suo utilizzo generico, indipendentemente dal repository • Anzi, la tecnologia per i DSL è quella che maggiormente è stata recepica dalla Community • Importante reazione (negativa) da parte della Community 21 maggio 2010 www.xedotnet.org 5
  6. 6. Nomi eccellenti » Steve Lucco • Creatore della JVM poi acquisita da Microsoft e alla base del CLR • Responsabile della Connected System Division » Don Box • Essential COM • Essential .NET • Specifiche SOAP • Indigo (WCF) » Kraig Brooksmith • Inside OLE2 » Chris Sells • Evangelist » Chris Anderson • WPF » Giovanni Della Libera • M Compiler 21 maggio 2010 www.xedotnet.org 6
  7. 7. Douglas Purdy » CTO, Data and Modeling in Microsoft’s Business Platform Division. » He is responsible for the technical strategy of Microsoft’s data and modeling development efforts. » His vision is to broaden the franchise of people building applications, allowing non- professional developers and end-users to harness the full power of computing » “make everyone a programmer” 21 maggio 2010 www.xedotnet.org 7
  8. 8. The Challenge » Il business ha bisogno di accellerare l’innovazione » Il software è il principale veicolo per l’innovazione » L’innovazione attraverso il software avviene nella comunicazione tra esperti di dominio e programmatori » L’obiettivo è quello di integrare gli esperti di dominio nello sviluppo del software 21 maggio 2010 www.xedotnet.org 8
  9. 9. Domain Orientation Trends » Domain Specific Languages (DSL) » Code Generation » Generative Programming (GP) » Domain Specific Modeling (DSM) » Model Driven Architecture (MDA) » Model Driven Development (MDD) » Internal DSL 21 maggio 2010 www.xedotnet.org 9
  10. 10. Perchè questa transizione? • Meglio comprendere la Trasparenza propria applicazione • Modifiche più veloci alla Flessibilità propria applicazione • Più essenza, meno Produttività fronzoli
  11. 11. Vertical and Horizontal Domains ISV • Assicurazioni • Sanità Vertical • Produzione Domains • Economia Microsoft • HTML, XAML (UI) Horizontal • XSD, WSDL (Web Services) • EDMX (Data) Domains
  12. 12. Model-driven Platform DECLARATIVE CONTENT wpf:ContentControl wf:StateMachine .NET 3.0 xsd:schema wsdl:definitions Web Services app.config [YourAttributeHere] .NET 1.0 [Transaction] midl.exe COM (+) TIME
  13. 13. Introducing SQL Server Modeling Finally OSLO! In collaborazione con 21 maggio 2010 www.xedotnet.org 13
  14. 14. Cos’è OSLO? La piattaforma per applicazioni “Model-Driven” “M” Il linguaggio per creare modelli e DSL “Quadrant” Lo strumento per interagire con modelli e DSL Repository Il database per memorizzare e condividere modelli
  15. 15. Il linguaggio “M” Domain-specific data models type Point { X : Integer where X < 100; Y : Integer?; } MSchema Domain-specific grammars language GPSLanguage { syntax Main = h:Integer ("," v:Integer)? => Point { X { h }, Y { v }}; } MGrammar Abstract data model Point { X { 100 }, Y { 200 } } MGraph 21 maggio 2010 www.xedotnet.org 15
  16. 16. Da M al Repository Da “Oslo” a “SQL Server Modeling” ModelA.m M.exe MX.exe Domain Model Domain Model ModelB.m Compiler Loader ModelC.m ModelABC.mx SQL M M Framework Framework Server 21 maggio 2010 www.xedotnet.org 16
  17. 17. IntelliPad » Chiamato inizialmente EMACS.NET » Editor testuale, non ha funzioni visuali » Buffer interni interagiscono con runtime • Parsing in tempo reale • Generazione risultati in finestre side-by-side 21 maggio 2010 www.xedotnet.org 17
  18. 18. MGrammar in Intellipad Input Grammar Output Text Transform MGraph Errors 21 maggio 2010 www.xedotnet.org 18
  19. 19. Introducing SQL Server Modeling Demo In collaborazione con
  20. 20. Step 1: Definire il Repository CurrencyExchanges.m » module XeDotNet » { » type CurrencyExchange » { » From: Text; » To: Text; » Value: Double; » } » » CurrencyExchanges: { CurrencyExchange* }; » } » m CurrencyExchanges.m » mx CurrencyExchanges.mx » mx install CurrencyExchanges.mx /server:.SQL2008 /d:Repository /trustedConnection:SSPI 21 maggio 2010 www.xedotnet.org 20
  21. 21. MX files » Un file MX ha un formato OPC (Open Packaging Conventions) 21 maggio 2010 www.xedotnet.org 21
  22. 22. Step 2: Impostare i valori CurrencyExchangesValues.m » module XeDotNet » { » CurrencyExchanges » { » { » From => "EUR", » To => "USD", » Value => 1.25 » }, » { » From => "USD", » To => "EUR", » Value => 0.80 » } » } » } » m CurrencyExchangesValues.m -r:CurrencyExchanges.mx » mx install CurrencyExchangesValues.mx /server:.SQL2008 /d:Repository /trustedConnection:SSPI 21 maggio 2010 www.xedotnet.org 22
  23. 23. Step 3: Definire una grammatica CurrExch.ce XeDotNet.ExchangeConvs.mg » From USD to EUR is 2 » module XeDotNet » From EUR to USD is 3 » { » language ExchangeConvs » { » syntax Main = s:Statement* => CurrencyExchanges {valuesof(s)}; » syntax Statement = » "From" from:CurrencyCode "to" to:CurrencyCode "is" value:Double => { From => from, To => to, Value => value }; » » token CurrencyCode = ('A'..'Z')+; » token Double = double:('0'..'9')+ => double; » » interleave WhiteSpaces = » (" "|"t"|"r"|"n")+; » } » } » m XeDotNet.ExchangeConvs.mg » c:mgx CurrExchanges.ce -r:XeDotNet. ExchangeConvs.mx » m CurrencyExch.m -r:CurrencyExchanges.mx » mx install CurrencyExchanges.mx /server:.SQL2008 /d:Repository /trustedConnection:SSPI 21 maggio 2010 www.xedotnet.org 23
  24. 24. Introducing SQL Server Modeling Conclusioni In collaborazione con
  25. 25. Conclusioni » Pro • Tecnologia incredibilmente intuitiva • È una “libreria”! • È analoga a Xml » Cons • É una tecnologia non ancora disponibile • Non sappiamo come maturerà • I presupposti sono comunque buoni 21 maggio 2010 www.xedotnet.org 25
  26. 26. “M” Language Specifications » http://msdn.microsoft.com/en- us/library/dd285282.aspx » Specifiche rilasciate sotto Open Specification Promise (OSP) • Esiste una implementazione di “M” in Javascript • http://code.google.com/p/jsmeta/ 21 maggio 2010 www.xedotnet.org 26
  27. 27. Dalla CTP di Novembre 2008 (PDC 2008) » DSL per i servizi WCF » È una funzione non più disponibile nella corrente CTP • Verrà probabilmente introdotta in una futura CTP 21 maggio 2010 www.xedotnet.org 27
  28. 28. Martin Fowler » Martin Fowler è un autore e speaker internazionale sullo sviluppo del software, specializzato in analisi e design OO, UML, patterns, metodologie agili e XP » Sta scrivendo (da tre anni) un libro sui DSL • Speriamo di averlo in mano entro il 2010 21 maggio 2010 www.xedotnet.org 28
  29. 29. Alternative...nel frattempo... » ANTLR • http://www.antlr.org/ • Scritto da Terence Parr (professore dell’Università di San Francisco), in Java, ma genera anche il parser in C# (oltre che Java, Python, Ruby) • Attualmente il suo autore lo spinge nella direzione dei DSL • http://www.pragprog.com/titles/tpdsl/language- implementation-patterns
  30. 30. ANTLR » Genera codice da inserire nel proprio progetto » Usa grammatiche EBNF • L’autore ha scritto lavori che evolvono la teoria dei linguaggi formali (linguaggi LL(*), sia LL(k) che LR(k)) » Nota. Oslo è un parser LR(k) • Bottom-Up • Supporta le ambiguità, risolvendole con una “priorità” » Più complesso il parser, più semplice la grammatica • Non bisogna risolvere le ambiguità 21 maggio 2010 www.xedotnet.org 30
  31. 31. ANTLRWorks » Editor grafico di grammatiche e debugger » Evidenzia errori di sintassi » Mostra il diagramma sintattico di una regola 21 maggio 2010 www.xedotnet.org 31
  32. 32. Internal DSL vs. External DSL » Internal DSL • Pro • Facile...nessun parser da scrivere • Supporto degli IDE • Cons • Limiti imposti dalla sintassi dei linguaggi Host » External DSL • Pro • Espressività illimitata • Definire il proprio runtime • Cons • Richiede molto più lavoro • Nessun supporto IDE 21 maggio 2010 www.xedotnet.org 32
  33. 33. ActiProSoftware » http://www.actiprosoftwar e.com/Products/DotNet/W PF/SyntaxEditor/Default.asp x » Supporto per Oslo (e ANTLR) • http://blog.actiprosoftware.c om/post/2009/06/02/Integra ting-MGrammar-DSL-parsers- with-SyntaxEditor-to- implement-syntax- highlighting.aspx • http://blog.actiprosoftware.c om/post/2009/08/11/Syntax Editor-for-WPF-to-add- integration-with-ANTLR- parsers.aspx
  34. 34. DSL e il mercato » Scrivere un DSL è una attività “affrontabile” » Le aziende che vendono software possono rendere “scriptabili” le proprie applicazioni » La personale esperienza: • Proposto a qualche azienda (nel pordenonese) • Risposta positiva • Esecuzione “lunga” dovuta al momento economico • Progetto da 200-400 ore • 6-9 mesi per l’analisi, anche con i clienti/futuri utenti, e l’implementazione
  35. 35. Introducing SQL Server Modeling Q&A In collaborazione con
  36. 36. Link » Marco Parenzan blog: http://blog.codeisvalue.com/ email: marco.parenzan@libero.it web: http://www.codeisvalue.com/ twitter: marco_parenzan slideshare: http://www.slideshare.com/marco.parenzan 21 maggio 2010 www.xedotnet.org 36

×