Your SlideShare is downloading. ×
0
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

2010.05.21 introducing sql server modeling

638

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
638
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introducing SQL Server Modeling In collaborazione con » Marco Parenzan
  • 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. 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. 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. 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. 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. 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. 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. 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. Perchè questa transizione? • Meglio comprendere la Trasparenza propria applicazione • Modifiche più veloci alla Flessibilità propria applicazione • Più essenza, meno Produttività fronzoli
  • 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. 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. Introducing SQL Server Modeling Finally OSLO! In collaborazione con 21 maggio 2010 www.xedotnet.org 13
  • 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. 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. 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. 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. MGrammar in Intellipad Input Grammar Output Text Transform MGraph Errors 21 maggio 2010 www.xedotnet.org 18
  • 19. Introducing SQL Server Modeling Demo In collaborazione con
  • 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. MX files » Un file MX ha un formato OPC (Open Packaging Conventions) 21 maggio 2010 www.xedotnet.org 21
  • 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. 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. Introducing SQL Server Modeling Conclusioni In collaborazione con
  • 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. “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. 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. 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. 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. 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. 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. 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. 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. 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. Introducing SQL Server Modeling Q&A In collaborazione con
  • 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

×