SlideShare una empresa de Scribd logo
1 de 14
An Evening of DSLs: ‘Oslo’ James Lynch
Whatis Microsoft ‘Oslo’? Difficult to define Connecting Visual and TextualDSLs and SQL Server on the stack Questionablemerits/benefits An immature technology – ‘nascent’ (3rd CTP)
An ‘Oslo’ Use Case:<plug>bdUnit</plug>
Whatis Microsoft ‘Oslo’? Create a new language, parser and compiler… BDD Style DSL with C# Unit Tests output WPF IDE Agnostic Unit Tests -> Structure Map to the Rescue!
bdUnit IDE Demo
The Parser: MGrammar
MGrammar and Intellipad Intellipad Tokens and Syntaxes Language Projection(verb, noun, adjective...?) Syntax Delegation Functional Expressions
IntellipadDemo
LowLevel Projection When a @User(Chris) ~Username is "chriscanal"          and a @Post(DSLs) ~Title is "An Evening of DSLs"         and @Blog(ScotAltNet) ~Author is Chris         and @User(Chris) #Publish a @Post(DSLs) 	@Blog(ScotAltNet) should have more than0~Entries 	and @Blog(ScotAltNet) ~Entriesshould contain a @Post with DSLs ~Title 	and @Post(DSLs) ~PublicationDateshould belater than@Blog(ScotAltNet) ~CreatedDate 	and @User(Chris) ~PostCountshould be equal to1 Object/Entity Token Property Token Method Token Constraint Token Operator Syntax Value Syntax
Projection at a HigherLevel When a @User(Chris) ~Username is "chriscanal"   and a @Post(DSLs) ~Title is "An Evening of DSLs" and @Blog(ScotAltNet) ~Author is Chris and @User(Chris) #Publish a @Post(DSLs) @Blog(ScotAltNet) should have more than 0 ~Entries and @Blog(ScotAltNet) ~Entries should contain a @Post with DSLs ~Title and @Post(DSLs) ~PublicationDate should be later than @Blog(ScotAltNet) ~CreatedDate and @User(Chris) ~PostCount should be equal to 1 WhenStatement Syntax TargetList Syntax Constraint Syntax
Textual DSL Pipeline
‘Oslo’ DSL Pipeline    ‘M’ Language Framework and Tooling You’re on your own!
bdUnit Project: 	http://assembla.com/spaces/bdunit Blog: 			http://lynchjames.co.uk Email: 		lynchjames@gmail.com Twitter: 		lynchjames

Más contenido relacionado

Destacado

Códigos de identificación
Códigos de identificaciónCódigos de identificación
Códigos de identificaciónNicoZ14
 
Vhdl semineri
Vhdl semineriVhdl semineri
Vhdl seminerisersld80
 
Desain interior
Desain interiorDesain interior
Desain interiormeaarrayan
 
Hizli ogrenme-egitim
Hizli ogrenme-egitimHizli ogrenme-egitim
Hizli ogrenme-egitimzeynep_zyn41
 
tchernobil
tchernobiltchernobil
tchernobilhome
 
Taller De Disfresses
Taller De DisfressesTaller De Disfresses
Taller De Disfressescpnapenyal
 
Descobrint el reciclatge
Descobrint el reciclatgeDescobrint el reciclatge
Descobrint el reciclatgeEdprimaria2013
 
Unidad iv -_seguridad
Unidad iv -_seguridadUnidad iv -_seguridad
Unidad iv -_seguridadWhaleejaa Wha
 
Tema 2: El planeta Terra
Tema 2: El planeta TerraTema 2: El planeta Terra
Tema 2: El planeta Terraadaura
 
Knowledge Management (NALAS, 11-09-14)
Knowledge Management (NALAS, 11-09-14)Knowledge Management (NALAS, 11-09-14)
Knowledge Management (NALAS, 11-09-14)Wiebke Herding
 
The Path to Engagement is Paved with Purpose
The Path to Engagement is Paved with PurposeThe Path to Engagement is Paved with Purpose
The Path to Engagement is Paved with PurposeFusionspark Media, Inc.
 
What people think: explaining urban cycling
What people think: explaining urban cyclingWhat people think: explaining urban cycling
What people think: explaining urban cyclingRobin Lovelace
 
Ud 3 Els recursos de la natura
Ud 3 Els recursos de la naturaUd 3 Els recursos de la natura
Ud 3 Els recursos de la naturamarcapmany
 

Destacado (17)

Códigos de identificación
Códigos de identificaciónCódigos de identificación
Códigos de identificación
 
Vhdl semineri
Vhdl semineriVhdl semineri
Vhdl semineri
 
Dossier Pirates a la vista!
Dossier Pirates a la vista!Dossier Pirates a la vista!
Dossier Pirates a la vista!
 
Desain interior
Desain interiorDesain interior
Desain interior
 
Narinan
NarinanNarinan
Narinan
 
Psiae 11 12
Psiae 11 12Psiae 11 12
Psiae 11 12
 
naturals-10
naturals-10naturals-10
naturals-10
 
Hizli ogrenme-egitim
Hizli ogrenme-egitimHizli ogrenme-egitim
Hizli ogrenme-egitim
 
tchernobil
tchernobiltchernobil
tchernobil
 
Taller De Disfresses
Taller De DisfressesTaller De Disfresses
Taller De Disfresses
 
Descobrint el reciclatge
Descobrint el reciclatgeDescobrint el reciclatge
Descobrint el reciclatge
 
Unidad iv -_seguridad
Unidad iv -_seguridadUnidad iv -_seguridad
Unidad iv -_seguridad
 
Tema 2: El planeta Terra
Tema 2: El planeta TerraTema 2: El planeta Terra
Tema 2: El planeta Terra
 
Knowledge Management (NALAS, 11-09-14)
Knowledge Management (NALAS, 11-09-14)Knowledge Management (NALAS, 11-09-14)
Knowledge Management (NALAS, 11-09-14)
 
The Path to Engagement is Paved with Purpose
The Path to Engagement is Paved with PurposeThe Path to Engagement is Paved with Purpose
The Path to Engagement is Paved with Purpose
 
What people think: explaining urban cycling
What people think: explaining urban cyclingWhat people think: explaining urban cycling
What people think: explaining urban cycling
 
Ud 3 Els recursos de la natura
Ud 3 Els recursos de la naturaUd 3 Els recursos de la natura
Ud 3 Els recursos de la natura
 

Similar a An Evening of Microsoft 'Oslo' DSLs and bdUnit BDD

Wire It 0.5.0 Presentation
Wire It 0.5.0 PresentationWire It 0.5.0 Presentation
Wire It 0.5.0 PresentationEric Abouaf
 
DSL in test automation
DSL in test automationDSL in test automation
DSL in test automationtest test
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introductionPeter Gfader
 
Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Vitaly Baum
 
Runtime Environment Of .Net Divya Rathore
Runtime Environment Of .Net Divya RathoreRuntime Environment Of .Net Divya Rathore
Runtime Environment Of .Net Divya RathoreEsha Yadav
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...Maarten Balliauw
 
C++ 11 Style : A Touch of Class
C++ 11 Style : A Touch of ClassC++ 11 Style : A Touch of Class
C++ 11 Style : A Touch of ClassYogendra Rampuria
 
OntoDSL: An Ontology-Based Framework for Domain-Specific Languages
OntoDSL: An Ontology-Based Framework for Domain-Specific LanguagesOntoDSL: An Ontology-Based Framework for Domain-Specific Languages
OntoDSL: An Ontology-Based Framework for Domain-Specific LanguagesTobias Walter
 
Wire It Presentation
Wire It PresentationWire It Presentation
Wire It PresentationEric Abouaf
 
Scalable database, Scalable language @ JDC 2013
Scalable database, Scalable language @ JDC 2013Scalable database, Scalable language @ JDC 2013
Scalable database, Scalable language @ JDC 2013Maciek Próchniak
 
Description and Discovery of Type Adaptors for Web Services Workflow
Description and Discovery of Type Adaptors for Web Services WorkflowDescription and Discovery of Type Adaptors for Web Services Workflow
Description and Discovery of Type Adaptors for Web Services WorkflowMartin Szomszor
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Ary Borenszweig
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Ary Borenszweig
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)Crystal Language
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLsintelliyole
 
TI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesTI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesEelco Visser
 
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...Mickael Istria
 
Lecture 1 slides
Lecture 1 slidesLecture 1 slides
Lecture 1 slidesamarprabhu
 

Similar a An Evening of Microsoft 'Oslo' DSLs and bdUnit BDD (20)

Wire It 0.5.0 Presentation
Wire It 0.5.0 PresentationWire It 0.5.0 Presentation
Wire It 0.5.0 Presentation
 
DSL explained _
DSL explained _DSL explained _
DSL explained _
 
DSL in test automation
DSL in test automationDSL in test automation
DSL in test automation
 
.NET and C# introduction
.NET and C# introduction.NET and C# introduction
.NET and C# introduction
 
Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)
 
Runtime Environment Of .Net Divya Rathore
Runtime Environment Of .Net Divya RathoreRuntime Environment Of .Net Divya Rathore
Runtime Environment Of .Net Divya Rathore
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
C++ 11 Style : A Touch of Class
C++ 11 Style : A Touch of ClassC++ 11 Style : A Touch of Class
C++ 11 Style : A Touch of Class
 
OntoDSL: An Ontology-Based Framework for Domain-Specific Languages
OntoDSL: An Ontology-Based Framework for Domain-Specific LanguagesOntoDSL: An Ontology-Based Framework for Domain-Specific Languages
OntoDSL: An Ontology-Based Framework for Domain-Specific Languages
 
Wire It Presentation
Wire It PresentationWire It Presentation
Wire It Presentation
 
Scalable database, Scalable language @ JDC 2013
Scalable database, Scalable language @ JDC 2013Scalable database, Scalable language @ JDC 2013
Scalable database, Scalable language @ JDC 2013
 
Description and Discovery of Type Adaptors for Web Services Workflow
Description and Discovery of Type Adaptors for Web Services WorkflowDescription and Discovery of Type Adaptors for Web Services Workflow
Description and Discovery of Type Adaptors for Web Services Workflow
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Crystal internals (part 1)
Crystal internals (part 1)Crystal internals (part 1)
Crystal internals (part 1)
 
Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
 
TI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesTI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific Languages
 
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
 
Perl5 VS JSON
Perl5 VS JSONPerl5 VS JSON
Perl5 VS JSON
 
Lecture 1 slides
Lecture 1 slidesLecture 1 slides
Lecture 1 slides
 

Último

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Último (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

An Evening of Microsoft 'Oslo' DSLs and bdUnit BDD

  • 1. An Evening of DSLs: ‘Oslo’ James Lynch
  • 2. Whatis Microsoft ‘Oslo’? Difficult to define Connecting Visual and TextualDSLs and SQL Server on the stack Questionablemerits/benefits An immature technology – ‘nascent’ (3rd CTP)
  • 3.
  • 4. An ‘Oslo’ Use Case:<plug>bdUnit</plug>
  • 5. Whatis Microsoft ‘Oslo’? Create a new language, parser and compiler… BDD Style DSL with C# Unit Tests output WPF IDE Agnostic Unit Tests -> Structure Map to the Rescue!
  • 8. MGrammar and Intellipad Intellipad Tokens and Syntaxes Language Projection(verb, noun, adjective...?) Syntax Delegation Functional Expressions
  • 10. LowLevel Projection When a @User(Chris) ~Username is "chriscanal" and a @Post(DSLs) ~Title is "An Evening of DSLs" and @Blog(ScotAltNet) ~Author is Chris and @User(Chris) #Publish a @Post(DSLs) @Blog(ScotAltNet) should have more than0~Entries and @Blog(ScotAltNet) ~Entriesshould contain a @Post with DSLs ~Title and @Post(DSLs) ~PublicationDateshould belater than@Blog(ScotAltNet) ~CreatedDate and @User(Chris) ~PostCountshould be equal to1 Object/Entity Token Property Token Method Token Constraint Token Operator Syntax Value Syntax
  • 11. Projection at a HigherLevel When a @User(Chris) ~Username is "chriscanal" and a @Post(DSLs) ~Title is "An Evening of DSLs" and @Blog(ScotAltNet) ~Author is Chris and @User(Chris) #Publish a @Post(DSLs) @Blog(ScotAltNet) should have more than 0 ~Entries and @Blog(ScotAltNet) ~Entries should contain a @Post with DSLs ~Title and @Post(DSLs) ~PublicationDate should be later than @Blog(ScotAltNet) ~CreatedDate and @User(Chris) ~PostCount should be equal to 1 WhenStatement Syntax TargetList Syntax Constraint Syntax
  • 13. ‘Oslo’ DSL Pipeline ‘M’ Language Framework and Tooling You’re on your own!
  • 14. bdUnit Project: http://assembla.com/spaces/bdunit Blog: http://lynchjames.co.uk Email: lynchjames@gmail.com Twitter: lynchjames