SlideShare une entreprise Scribd logo
1  sur  49
DOMAIN-SPECIFIC
  LANGUAGES
    @svenefftinge
DOMAIN-SPECIFIC
       LANGUAGE

A Domain Specific Language (DSL) is
 a computer programming language
   focused on a particular domain.
DOMAIN-SPECIFIC
     LANGUAGE

 Or just a hip term for a very
readable and expressive
programming interface
           (aka API)
IT IS NOT! A WAY TO LET
BUSINESS PEOPLE WRITE SOFTWARE
ABSTRACTION
  "THE ABILITY TO SIMPLIFY MEANS
 TO ELIMINATE THE UNNECESSARY
SO THAT THE NECESSARY MAY SPEAK"
          (HANS HOFMANN)
A TYPICAL WEB APPLICATION

Request



Response
A TYPICAL WEB APPLICATION
A TYPICAL WEB APPLICATION

Http Routing
A TYPICAL WEB APPLICATION

Http Routing   Controller
A TYPICAL WEB APPLICATION

Http Routing   Controller   Domain Model
A TYPICAL WEB APPLICATION

Http Routing   Controller   Domain Model



                             Data Access
A TYPICAL WEB APPLICATION

Http Routing          Controller     Domain Model



    Templates for HTML, CSS and JS    Data Access
A TYPICAL WEB APPLICATION

    ?
Http Routing
                          ?
                      Controller          ?
                                     Domain Model




                  ?
    Templates for HTML, CSS and JS
                                          ?
                                      Data Access
Http Routing
HTTP-ROUTING WITH
    SERVLET API
Java / Xtend
HTTP-ROUTING WITH
      JAX-RS


     Java / Xtend
HTTP-ROUTING WITH
       PLAY!
HTTP-ROUTING WITH
       PLAY!
        Static Typing ?
HTTP-ROUTING WITH
       PLAY!
                 Static Typing ?




   Viewpoint Specific Analysis?
A TYPICAL WEB APPLICATION

Http Routing
                          ?
                      Controller          ?
                                     Domain Model




                  ?
    Templates for HTML, CSS and JS
                                          ?
                                      Data Access
Controller
Controller




Use a General Purpose Language:
        Java, ..., Xtend, ...
A TYPICAL WEB APPLICATION

Http Routing          Controller          ?
                                     Domain Model




                  ?
    Templates for HTML, CSS and JS
                                          ?
                                      Data Access
Templates for HTML, CSS and JS
<%@ page language="java" import="captchas.CaptchasDotNet" %>

<html>
  <head>
    <title>Sample JSP CAPTCHA Query</title>
  </head>
  <h1>Sample JSP CAPTCHA Query</h1>
<% CaptchasDotNet captchas = new captchas.CaptchasDotNet(
  request.getSession(true),     // Ensure session
  "demo",                       // client
  "secret"                      // secret
  );%>
  <form method="get" action="<%=response.encodeUrl("check.jsp")%>">
    <table>
      <tr>
        <td><input name="message" size="60" />
        </tr>
      <tr>
        <td>
          <input name="password" size="16" />
        </td>
      </tr>
      <tr>
        <td>
          <%= captchas.image() %><br>
          <a href="<%= captchas.audioUrl() %>">Phonetic spelling (mp3)</a>
        </td>
      </tr>
      <tr>
        <td>
          <input type="submit" value="Submit" />
        </td>
      </tr>
    </table>
  </form>
</html>
<%@ page language="java" import="captchas.CaptchasDotNet" %>

<html>
  <head>

  </head>       Java Server Pages
    <title>Sample JSP CAPTCHA Query</title>

  <h1>Sample JSP CAPTCHA Query</h1>

                      Velocity
<% CaptchasDotNet captchas = new captchas.CaptchasDotNet(
  request.getSession(true),     // Ensure session
  "demo",                       // client

                    Freemarker
  "secret"                      // secret
  );%>
  <form method="get" action="<%=response.encodeUrl("check.jsp")%>">


                      Hamlets
    <table>
      <tr>
        <td><input name="message" size="60" />


                       Scalate
        </tr>
      <tr>
        <td>
          <input name="password" size="16" />
        </td>
      </tr>
      <tr>
                  StringTemplate
        <td>
                     Thymeleaf
          <%= captchas.image() %><br>
          <a href="<%= captchas.audioUrl() %>">Phonetic spelling (mp3)</a>


                       Jamon
        </td>
      </tr>
      <tr>


                    WebMacro
        <td>
          <input type="submit" value="Submit" />
        </td>
      </tr>
    </table>
  </form>
</html>
                         ...
html [
  head [
    title [$("XML encoding with Xtend")]
  ]
  body [
    h1 [$("XML encoding with Xtend")]
    p [$("this format can be used as an alternative to XML")]

        // an element with attributes and text content
        a("http://www.xtend-lang.org") [$("Xtend")]

        // mixed content
        p [
          $("This is some")
          b[$("mixed")]
          $("text. For more see the")
          a("http://www.xtext.org")[$("Xtext")]
          $("project")
        ]
        p [$("some text")]

        // content generated from arguments
        p [
          for (arg : args)
            $(arg)
        ]
    ]
]
A TYPICAL WEB APPLICATION

Http Routing          Controller          ?
                                     Domain Model



    Templates for HTML, CSS and JS
                                          ?
                                      Data Access
Data Access
DATA ACCESS WITH
JPA QUERY LANGUAGE
.NET LINQ

  val namesWithFiveCharacters = from name in names
                                where name.Length < 5
                                     select name;
SCALA QUERY

val q1 = for(u <- Users if u.first === "Stefan")
            yield u.id ~ u.last
A TYPICAL WEB APPLICATION

Http Routing          Controller          ?
                                     Domain Model



    Templates for HTML, CSS and JS    Data Access
Domain Model
@Entity
public class Customer implements Serializable {
  private Long id;
  private String name;
  private Address address;
  private Collection<Order> orders = new HashSet<Order>();
  private Set<PhoneNumber> phones = new HashSet<PhoneNumber>();

    public Customer() {}
    @Id
    public Long getId() {
      return id;
    }
    public void setId(Long id) {
      this.id = id;
    }
    public String getName() {
      return name;
    }
    public void setName(String name) {
      this.name = name;
    }
    public Address getAddress() {
      return address;
    }
    public void setAddress(Address address) {
      this.address = address;
    }
    @OneToMany
    public Collection<Order> getOrders() {
      return orders;
    }
    public void setOrders(Collection<Order> orders) {
      this.orders = orders;
    }
    @ManyToMany
    public Set<PhoneNumber> getPhones() {
      return phones;
    }
    public void setPhones(Set<PhoneNumber> phones) {
      this.phones = phones;
    }
}
ABSTRACTION
  "THE ABILITY TO SIMPLIFY MEANS
 TO ELIMINATE THE UNNECESSARY
SO THAT THE NECESSARY MAY SPEAK"
          (HANS HOFMANN)
@Entity
public class Customer implements Serializable {
  private Long id;
  private String name;
  private Address address;
  private Collection<Order> orders = new HashSet<Order>();
  private Set<PhoneNumber> phones = new HashSet<PhoneNumber>();

    public Customer() {}
    @Id
    public Long getId() {
      return id;
    }
    public void setId(Long id) {
      this.id = id;
    }
    public String getName() {
      return name;
    }
    public void setName(String name) {
      this.name = name;
    }
    public Address getAddress() {
      return address;
    }
    public void setAddress(Address address) {
      this.address = address;
    }
    @OneToMany
    public Collection<Order> getOrders() {
      return orders;
    }
    public void setOrders(Collection<Order> orders) {
      this.orders = orders;
    }
    @ManyToMany
    public Set<PhoneNumber> getPhones() {
      return phones;
    }
    public void setPhones(Set<PhoneNumber> phones) {
      this.phones = phones;
    }
}
entity Customer {
    id Long id
    String name
    Address address
    onetomany Collection<Order> orders
    manytomany Set<PhoneNumber> phones
}
com.springsource.roo.pizzashop roo> entity --class ~.domain.Topping --testAutomatically
~.domain.Topping roo> field string --fieldName name --notNull --sizeMin 2
~.domain.Topping roo> entity --class ~.domain.Base --testAutomatically
~.domain.Base roo> field string --fieldName name --notNull --sizeMin 2
~.domain.Base roo> entity --class ~.domain.Pizza --testAutomatically
~.domain.Pizza roo> field string --fieldName name --notNull --sizeMin 2
~.domain.Pizza roo> field number --fieldName price --type java.lang.Float
~.domain.Pizza roo> field set --fieldName toppings --type ~.domain.Topping
~.domain.Pizza roo> field reference --fieldName base --type ~.domain.Base
~.domain.Pizza roo> entity --class ~.domain.PizzaOrder --testAutomatically
~.domain.PizzaOrder roo> field string --fieldName name --notNull --sizeMin 2
~.domain.PizzaOrder roo> field string --fieldName address --sizeMax 30
~.domain.PizzaOrder roo> field number --fieldName total --type java.lang.Float
~.domain.PizzaOrder roo> field date --fieldName deliveryDate --type java.util.Date
~.domain.PizzaOrder roo> field set --fieldName pizzas --type ~.domain.Pizza
LAYERS
ABSTRACTION
ONE SIZE FITS ALL?
Know your toolbox, be creative and have fun!
               Thank you!

Contenu connexe

Tendances

jQuery : Talk to server with Ajax
jQuery : Talk to server with AjaxjQuery : Talk to server with Ajax
jQuery : Talk to server with Ajax
Wildan Maulana
 
Jscript Fundamentals
Jscript FundamentalsJscript Fundamentals
Jscript Fundamentals
rspaike
 
JavaScript and jQuery Fundamentals
JavaScript and jQuery FundamentalsJavaScript and jQuery Fundamentals
JavaScript and jQuery Fundamentals
BG Java EE Course
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
tutorialsruby
 
RESTful SOA - 中科院暑期讲座
RESTful SOA - 中科院暑期讲座RESTful SOA - 中科院暑期讲座
RESTful SOA - 中科院暑期讲座
Li Yi
 
RESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkRESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP Framework
Bo-Yi Wu
 
Php tips-and-tricks4128
Php tips-and-tricks4128Php tips-and-tricks4128
Php tips-and-tricks4128
PrinceGuru MS
 

Tendances (20)

jQuery : Talk to server with Ajax
jQuery : Talk to server with AjaxjQuery : Talk to server with Ajax
jQuery : Talk to server with Ajax
 
Javascript2839
Javascript2839Javascript2839
Javascript2839
 
CSS selectors
CSS selectorsCSS selectors
CSS selectors
 
Jscript Fundamentals
Jscript FundamentalsJscript Fundamentals
Jscript Fundamentals
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
 
Kief Morris - Infrastructure is terrible
Kief Morris - Infrastructure is terribleKief Morris - Infrastructure is terrible
Kief Morris - Infrastructure is terrible
 
JavaScript and jQuery Fundamentals
JavaScript and jQuery FundamentalsJavaScript and jQuery Fundamentals
JavaScript and jQuery Fundamentals
 
When RSS Fails: Web Scraping with HTTP
When RSS Fails: Web Scraping with HTTPWhen RSS Fails: Web Scraping with HTTP
When RSS Fails: Web Scraping with HTTP
 
Web Scraping with PHP
Web Scraping with PHPWeb Scraping with PHP
Web Scraping with PHP
 
Web Scraping with PHP
Web Scraping with PHPWeb Scraping with PHP
Web Scraping with PHP
 
Introduction to Google API - Focusky
Introduction to Google API - FocuskyIntroduction to Google API - Focusky
Introduction to Google API - Focusky
 
Ajax
AjaxAjax
Ajax
 
RIA and Ajax
RIA and AjaxRIA and Ajax
RIA and Ajax
 
Cgi
CgiCgi
Cgi
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
RESTful SOA - 中科院暑期讲座
RESTful SOA - 中科院暑期讲座RESTful SOA - 中科院暑期讲座
RESTful SOA - 中科院暑期讲座
 
HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?HTML5: friend or foe (to Flash)?
HTML5: friend or foe (to Flash)?
 
RESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP FrameworkRESTful API Design & Implementation with CodeIgniter PHP Framework
RESTful API Design & Implementation with CodeIgniter PHP Framework
 
REST and AJAX Reconciled
REST and AJAX ReconciledREST and AJAX Reconciled
REST and AJAX Reconciled
 
Php tips-and-tricks4128
Php tips-and-tricks4128Php tips-and-tricks4128
Php tips-and-tricks4128
 

En vedette (8)

Getting the most out of Java [Nordic Coding-2010]
Getting the most out of Java [Nordic Coding-2010]Getting the most out of Java [Nordic Coding-2010]
Getting the most out of Java [Nordic Coding-2010]
 
Chromosomes
ChromosomesChromosomes
Chromosomes
 
Film Independent's 2009 Spirit Awards
Film Independent's 2009 Spirit AwardsFilm Independent's 2009 Spirit Awards
Film Independent's 2009 Spirit Awards
 
Happy New Year!
Happy New Year!Happy New Year!
Happy New Year!
 
2009 LA Film Festival
2009 LA Film Festival2009 LA Film Festival
2009 LA Film Festival
 
Presentation To Cumbria Cim
Presentation To Cumbria CimPresentation To Cumbria Cim
Presentation To Cumbria Cim
 
Xtext Webinar
Xtext WebinarXtext Webinar
Xtext Webinar
 
Challenges In Dsl Design
Challenges In Dsl DesignChallenges In Dsl Design
Challenges In Dsl Design
 

Similaire à Domain Specific Languages (EclipseCon 2012)

03 form-data
03 form-data03 form-data
03 form-data
snopteck
 
Rest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.js
Carol McDonald
 
Bd conf sencha touch workshop
Bd conf sencha touch workshopBd conf sencha touch workshop
Bd conf sencha touch workshop
James Pearce
 

Similaire à Domain Specific Languages (EclipseCon 2012) (20)

Servlets intro
Servlets introServlets intro
Servlets intro
 
RESTEasy
RESTEasyRESTEasy
RESTEasy
 
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
[WSO2 Integration Summit Madrid 2019] Integration + Ballerina
 
03 form-data
03 form-data03 form-data
03 form-data
 
Summer - The HTML5 Library for Java and Scala
Summer - The HTML5 Library for Java and ScalaSummer - The HTML5 Library for Java and Scala
Summer - The HTML5 Library for Java and Scala
 
Ws rest
Ws restWs rest
Ws rest
 
May 2010 - RestEasy
May 2010 - RestEasyMay 2010 - RestEasy
May 2010 - RestEasy
 
A mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutesA mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutes
 
Building a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to SpaceBuilding a friendly .NET SDK to connect to Space
Building a friendly .NET SDK to connect to Space
 
Rest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.jsRest with Java EE 6 , Security , Backbone.js
Rest with Java EE 6 , Security , Backbone.js
 
Rest
RestRest
Rest
 
Bare-knuckle web development
Bare-knuckle web developmentBare-knuckle web development
Bare-knuckle web development
 
Os Pruett
Os PruettOs Pruett
Os Pruett
 
Broadleaf Presents Thymeleaf
Broadleaf Presents ThymeleafBroadleaf Presents Thymeleaf
Broadleaf Presents Thymeleaf
 
CDI, Seam & RESTEasy: You haven't seen REST yet!
CDI, Seam & RESTEasy: You haven't seen REST yet!CDI, Seam & RESTEasy: You haven't seen REST yet!
CDI, Seam & RESTEasy: You haven't seen REST yet!
 
Bd conf sencha touch workshop
Bd conf sencha touch workshopBd conf sencha touch workshop
Bd conf sencha touch workshop
 
Html5 For Jjugccc2009fall
Html5 For Jjugccc2009fallHtml5 For Jjugccc2009fall
Html5 For Jjugccc2009fall
 
servlets
servletsservlets
servlets
 
08 ajax
08 ajax08 ajax
08 ajax
 
Cutting Edge Data Processing with PHP & XQuery
Cutting Edge Data Processing with PHP & XQueryCutting Edge Data Processing with PHP & XQuery
Cutting Edge Data Processing with PHP & XQuery
 

Plus de Sven Efftinge

Xtext at MDD Day 2010
Xtext at MDD Day 2010Xtext at MDD Day 2010
Xtext at MDD Day 2010
Sven Efftinge
 
Dependency Injection for Eclipse developers
Dependency Injection for Eclipse developersDependency Injection for Eclipse developers
Dependency Injection for Eclipse developers
Sven Efftinge
 
Xtext @ Profict Summer Camp
Xtext @ Profict Summer CampXtext @ Profict Summer Camp
Xtext @ Profict Summer Camp
Sven Efftinge
 
Vermisste Sprachfeatures in Java (german)
Vermisste Sprachfeatures in Java (german)Vermisste Sprachfeatures in Java (german)
Vermisste Sprachfeatures in Java (german)
Sven Efftinge
 

Plus de Sven Efftinge (20)

Parsing Expression With Xtext
Parsing Expression With XtextParsing Expression With Xtext
Parsing Expression With Xtext
 
Language Engineering With Xtext
Language Engineering With XtextLanguage Engineering With Xtext
Language Engineering With Xtext
 
Future of Xtext
Future of XtextFuture of Xtext
Future of Xtext
 
Auto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with XtendAuto-GWT : Better GWT Programming with Xtend
Auto-GWT : Better GWT Programming with Xtend
 
Functional programming with Xtend
Functional programming with XtendFunctional programming with Xtend
Functional programming with Xtend
 
Codegeneration With Xtend
Codegeneration With XtendCodegeneration With Xtend
Codegeneration With Xtend
 
Gwt and Xtend
Gwt and XtendGwt and Xtend
Gwt and Xtend
 
Xtend @ EclipseCon 2012
Xtend @ EclipseCon 2012Xtend @ EclipseCon 2012
Xtend @ EclipseCon 2012
 
Eclipse Xtend
Eclipse XtendEclipse Xtend
Eclipse Xtend
 
This Is Not Your Father's Java
This Is Not Your Father's JavaThis Is Not Your Father's Java
This Is Not Your Father's Java
 
Xtext at MDD Day 2010
Xtext at MDD Day 2010Xtext at MDD Day 2010
Xtext at MDD Day 2010
 
Dependency Injection for Eclipse developers
Dependency Injection for Eclipse developersDependency Injection for Eclipse developers
Dependency Injection for Eclipse developers
 
Code Generation in Agile Projects
Code Generation in Agile ProjectsCode Generation in Agile Projects
Code Generation in Agile Projects
 
Xtext Eclipse Con
Xtext Eclipse ConXtext Eclipse Con
Xtext Eclipse Con
 
Generic Editor
Generic EditorGeneric Editor
Generic Editor
 
Eclipse Banking Day
Eclipse Banking DayEclipse Banking Day
Eclipse Banking Day
 
Bessere Softwareentwicklung (Itemis Wintercon)
Bessere Softwareentwicklung (Itemis Wintercon)Bessere Softwareentwicklung (Itemis Wintercon)
Bessere Softwareentwicklung (Itemis Wintercon)
 
Domain-Specific Languages in der Praxis
Domain-Specific Languages in der PraxisDomain-Specific Languages in der Praxis
Domain-Specific Languages in der Praxis
 
Xtext @ Profict Summer Camp
Xtext @ Profict Summer CampXtext @ Profict Summer Camp
Xtext @ Profict Summer Camp
 
Vermisste Sprachfeatures in Java (german)
Vermisste Sprachfeatures in Java (german)Vermisste Sprachfeatures in Java (german)
Vermisste Sprachfeatures in Java (german)
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Domain Specific Languages (EclipseCon 2012)

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n