Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sitemule.com/ d. 3 February 2016: DMD, XPD, Node.js, IceBreak Niels Liisberg – Sitemule.com Öresund Sencha & HTML5 Meetup Model Driven Development With.

Similar presentations


Presentation on theme: "Sitemule.com/ d. 3 February 2016: DMD, XPD, Node.js, IceBreak Niels Liisberg – Sitemule.com Öresund Sencha & HTML5 Meetup Model Driven Development With."— Presentation transcript:

1 sitemule.com/ d. 3 February 2016: DMD, XPD, Node.js, IceBreak Niels Liisberg – Sitemule.com Öresund Sencha & HTML5 Meetup Model Driven Development With ExtJS

2 sitemule.com/ Our challenge

3 sitemule.com/ What is model driven development? How can we use it Is ExtJs a good candidate for the UI? Tooling How we are using it Pitfalls and benefits Agenda

4 sitemule.com/ Is a design paradigm that: Defines data Behaviors Rules Roles Business logic … dynamically ! / ? Model driven software development

5 sitemule.com/ Enterprise architect Unified Modeling Language (UML) The “classical” approach

6 sitemule.com/ Unified Modeling Language

7 sitemule.com/ Unified Modeling Language Class diagram

8 sitemule.com/ Unified Modeling Language Component diagram

9 sitemule.com/ Enterprise Architect

10 sitemule.com/ EA is a great tool! Good for code generators Easy to create SQL tables/views from Complex. Of cause it does a lot. Not as “dynamic” as we like Not easy to adapt the model in web ui. Not available on client systems Our findings

11 sitemule.com/ A simple JSON file defining the model: Easy to handle from ExtJs: Dynamic ExtJs component factories on the fly Grid components and forms almost to easy. Easy to create SQL tables and views Creating server side proxies for ExtJs data stores on the fly. No code generators Abstract modeling Very agile What we came up with We called it: DMD – Domain model definition

12 sitemule.com/ The agile process Developer

13 sitemule.com/ DB/2 database Create Model SQL: Alter / create tables + views etc. Create Model SQL: Alter / create tables + views etc. The agile process Developer DMD

14 sitemule.com/ DB/2 database Create Model SQL: Alter / create tables + views etc. Create Model SQL: Alter / create tables + views etc. The agile process Proxy application Administrator ExtJs Developer WebSite jQuery IceBreak - webserver DMD

15 sitemule.com/ The agile process Proxy application Administrator ExtJs WebSite jQuery IceBreak - webserver DMD

16 sitemule.com/ No tooling Very proprietary No documentation To static What we came up with We called it: DMD – Domain model definition

17 sitemule.com/ An “item” does not always look the same

18 sitemule.com/ Placing properties in JSON directly in BLOB Adding UTF jsonGetStr(propcolumn, ‘key’) to DB/2 Row level dynamic Even more abstract design Need to be more dynamic, so: We called it: XPD – Extendable Property definition

19 sitemule.com/

20 Configuration over coding DMDDomain model definition XPDExtendable property definition Same code on all implementations No customer specific code ( Or rather: customized code can be isolated) Integration to existing systems (ERP) Inherit ERP tables as entities – like in OO What does that provide?

21 sitemule.com/ How does it intergrate to an ERP solution? Database challenges: 1.Missing columns 2.Different fields pr records 3.Product families and relations

22 sitemule.com/ DB Relations & Affiliations Field Properties, Values & Presentations File Definitions & Permissions Domain Model Definition (DMD) Read Read/Update

23 sitemule.com/ XPD (DB2)DB2 Extendable Property Definition (XPD) Item#TextPriceType 10Lorem ipsum dolor750,00A 20Cras eu magna650,00B 30Morbi quis arcu550,00B 40Duis tincidunt450,00C 50Quisque vitae350,00A 60Nunc sed turpis250,00C 70Sed vehicula lacus150,00D Length: 3Color: RedActive: TrueMark: X Weight: 1.5Active: False Color: YellowWeight: null Volume: 2 Color: BlueLength: 3Active: FalseMark: Y Volume: 2.5 Properties

24 sitemule.com/ What we came up with We called it: DMD – Domain model definition

25 sitemule.com/ http://portfolio.icebreak.org/admin/services/ip2dmdProxy.aspx?payload= { "batch":[{ "type": "sqltpl", "tplpath": "/www/portfolio/Public/samples/sqltpl/ getCustomer.sqltpl ", "parms": { "customerKey": "AIR002" } }] } Same service layer for admin ( ExtJs) and website SQL Template: getCustomer.sqltpl { "sql": "SELECT CUSTREF, NAME, SHORTNAME, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, POSTCODE, PHONE, WEBSITE, CONTACT FROM PORTFDEMO/CUSTMAST WHERE CUSTREF = ' $customerKey '" } { batch: [ { totalRows: 1, rows: [ { CUSTREF: "AIR002", NAME: "Air Products Plc.", SHORTNAME: "AIR PRODUCT", ADDRESS1: "2 Millennium Gate", ADDRESS2: "Westmere Drive", ADDRESS3: "Crewe", ADDRESS4: "London", POSTCODE: "CW1 6AP", PHONE: "08457 020202", WEBSITE: "http://www.airproducts.co.uk/", CONTACT: "Douglas Fairbanks" } ] } ], success: true }

26 sitemule.com/ Deploy component changes system wide Streamlining customer implementations Time to market Messing with the model – messing with the entire system Learning curve First project startup time Pitfalls and benefits

27 sitemule.com/ Creating an ORM from our DMD/XMP Node.js Waterline (npm) Make it open source Next step

28 sitemule.com/ Peter Nøbbe Working with sitemule.com for one year Demo: filemanager Questions …. Using the domain model


Download ppt "Sitemule.com/ d. 3 February 2016: DMD, XPD, Node.js, IceBreak Niels Liisberg – Sitemule.com Öresund Sencha & HTML5 Meetup Model Driven Development With."

Similar presentations


Ads by Google