2010.05.21 introducing sql server modeling

36
In collaborazione con Introducing SQL Server Modeling » Marco Parenzan

Upload: marco-parenzan

Post on 02-Jul-2015

646 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: 2010.05.21 introducing sql server modeling

In collaborazione con

Introducing SQL Server Modeling

» Marco Parenzan

Page 2: 2010.05.21 introducing sql server modeling

AgendaAgenda

21 maggio 2010 www.xedotnet.org 2

» Attenzione!

» Domain Driver e DSL

» Oslo e il linguaggio “M”

» Gli strumenti “Intellipad” e “Quadrant”

» Esempi e Casi di uso

» Conclusioni

Page 4: 2010.05.21 introducing sql server modeling

21 maggio 2010 www.xedotnet.org 4

» 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

Incubazione

Page 5: 2010.05.21 introducing sql server modeling

21 maggio 2010 www.xedotnet.org 5

» “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

From “Oslo” to “SQL Server Modeling”

Page 6: 2010.05.21 introducing sql server modeling

21 maggio 2010 www.xedotnet.org 6

» 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

Nomi eccellenti

Page 7: 2010.05.21 introducing sql server modeling

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

Page 8: 2010.05.21 introducing sql server modeling

21 maggio 2010 www.xedotnet.org 8

» 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

The Challenge

Page 9: 2010.05.21 introducing sql server modeling

21 maggio 2010 www.xedotnet.org 9

» Domain Specific Languages (DSL)

» Code Generation

» Generative Programming (GP)

» Domain Specific Modeling (DSM)

» Model Driven Architecture (MDA)

» Model Driven Development (MDD)

» Internal DSL

Domain Orientation Trends

Page 10: 2010.05.21 introducing sql server modeling

Perchè questa transizione?

•Meglio comprendere la propria applicazione

Trasparenza

•Modifiche più veloci alla propria applicazione

Flessibilità

•Più essenza, meno fronzoli

Produttività

Page 11: 2010.05.21 introducing sql server modeling

Vertical and Horizontal Domains

• Assicurazioni

• Sanità

• Produzione

• Economia

ISVVertical

Domains

• HTML, XAML (UI)

• XSD, WSDL (Web Services)

• EDMX (Data)

MicrosoftHorizontal Domains

Page 12: 2010.05.21 introducing sql server modeling

Model-driven Platform

COM (+)midl.exe

[Transaction]

DECLARATIVE CONTENT

TIME

.NET 1.0[YourAttributeHere]

app.config

Web Serviceswsdl:definitions

xsd:schema

.NET 3.0wf:StateMachine

wpf:ContentControl

Page 13: 2010.05.21 introducing sql server modeling

In collaborazione con

Introducing SQL Server Modeling

Finally OSLO!

21 maggio 2010www.xedotnet.org 13

Page 14: 2010.05.21 introducing sql server modeling

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

RepositoryIl database per memorizzare e condividere modelli

Page 15: 2010.05.21 introducing sql server modeling

Il linguaggio “M”

Domain-specific grammars

Abstract data model

Domain-specific data models

language GPSLanguage {

syntax Main = h:Integer ("," v:Integer)?

=> Point { X { h }, Y { v }};

}

type Point {X : Integer where X < 100;Y : Integer?;

}

Point { X { 100 }, Y { 200 } }

MSchema

MGrammar

MGraph

21 maggio 2010 www.xedotnet.org 15

Page 16: 2010.05.21 introducing sql server modeling

Da M al RepositoryDa “Oslo” a “SQL Server Modeling”

M.exeDomain Model

Compiler

MX.exeDomain Model

Loader

ModelA.m

ModelB.m

ModelC.m ModelABC.mx

SQLServer

M Framework

M Framework

21 maggio 2010 www.xedotnet.org 16

Page 17: 2010.05.21 introducing sql server modeling

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

Page 18: 2010.05.21 introducing sql server modeling

MGrammar in Intellipad

21 maggio 2010 www.xedotnet.org 18

Input Grammar Output

Errors

TransformText MGraph

Page 19: 2010.05.21 introducing sql server modeling

In collaborazione con

Introducing SQL Server Modeling

Demo

Page 20: 2010.05.21 introducing sql server modeling

Step 1: Definire il Repository

» 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

CurrencyExchanges.m

Page 21: 2010.05.21 introducing sql server modeling

MX files

» Un file MX ha un formato OPC (Open Packaging Conventions)

21 maggio 2010 www.xedotnet.org 21

Page 22: 2010.05.21 introducing sql server modeling

Step 2: Impostare i valori

» 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

CurrencyExchangesValues.m

Page 23: 2010.05.21 introducing sql server modeling

Step 3: Definire una grammatica

» From USD to EUR is 2

» From EUR to USD is 3

» 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

» module XeDotNet

» {

» 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")+;

» }

» }

CurrExch.ce XeDotNet.ExchangeConvs.mg

Page 24: 2010.05.21 introducing sql server modeling

In collaborazione con

Introducing SQL Server Modeling

Conclusioni

Page 25: 2010.05.21 introducing sql server modeling

» Pro

• Tecnologia incredibilmente intuitiva

• È una “libreria”!

• È analoga a Xml

» Cons

• É una tecnologia non ancora disponibile

• Non sappiamo come maturerà

• I presupposti sono comunque buoni

Conclusioni

21 maggio 2010 www.xedotnet.org 25

Page 26: 2010.05.21 introducing sql server modeling

» 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/

“M” Language Specifications

21 maggio 2010 www.xedotnet.org 26

Page 27: 2010.05.21 introducing sql server modeling

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

Page 28: 2010.05.21 introducing sql server modeling

21 maggio 2010 www.xedotnet.org 28

» 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

Martin Fowler

Page 29: 2010.05.21 introducing sql server modeling

» 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

Alternative...nel frattempo...

Page 30: 2010.05.21 introducing sql server modeling

21 maggio 2010 www.xedotnet.org 30

» 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à

ANTLR

Page 31: 2010.05.21 introducing sql server modeling

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

Page 32: 2010.05.21 introducing sql server modeling

21 maggio 2010 www.xedotnet.org 32

» 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

Internal DSL vs. External DSL

Page 33: 2010.05.21 introducing sql server modeling

ActiProSoftware

» http://www.actiprosoftware.com/Products/DotNet/WPF/SyntaxEditor/Default.aspx

» Supporto per Oslo (e ANTLR)• http://blog.actiprosoftware.c

om/post/2009/06/02/Integrating-MGrammar-DSL-parsers-with-SyntaxEditor-to-implement-syntax-highlighting.aspx

• http://blog.actiprosoftware.com/post/2009/08/11/SyntaxEditor-for-WPF-to-add-integration-with-ANTLR-parsers.aspx

Page 34: 2010.05.21 introducing sql server modeling

» 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

DSL e il mercato

Page 35: 2010.05.21 introducing sql server modeling

In collaborazione con

Introducing SQL Server Modeling

Q&A

Page 36: 2010.05.21 introducing sql server modeling

blog:

email:

web:

twitter:

slideshare:

Link

21 maggio 2010 www.xedotnet.org 36

» Marco Parenzan

http://blog.codeisvalue.com/

[email protected]

http://www.codeisvalue.com/

marco_parenzan

http://www.slideshare.com/marco.parenzan