sitemule.com/ d. 3 february 2016: dmd, xpd, node.js, icebreak niels liisberg – sitemule.com...

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

If you can't read please download the document

Upload: allison-obrien

Post on 18-Jan-2018

225 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

sitemule.com/ d. 3 February 2016: DMD, XPD, Node.js, IceBreak Niels Liisberg Sitemule.com resund Sencha & HTML5 Meetup Model Driven Development With ExtJS sitemule.com/ Our challenge 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 sitemule.com/ Is a design paradigm that: Defines data Behaviors Rules Roles Business logic dynamically ! / ? Model driven software development sitemule.com/ Enterprise architect Unified Modeling Language (UML) The classical approach sitemule.com/ Unified Modeling Language sitemule.com/ Unified Modeling Language Class diagram sitemule.com/ Unified Modeling Language Component diagram sitemule.com/ Enterprise Architect 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 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 sitemule.com/ The agile process Developer 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 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 sitemule.com/ The agile process Proxy application Administrator ExtJs WebSite jQuery IceBreak - webserver DMD sitemule.com/ No tooling Very proprietary No documentation To static What we came up with We called it: DMD Domain model definition sitemule.com/ An item does not always look the same 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 sitemule.com/ 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? 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 sitemule.com/ DB Relations & Affiliations Field Properties, Values & Presentations File Definitions & Permissions Domain Model Definition (DMD) Read Read/Update 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 sitemule.com/ What we came up with We called it: DMD Domain model definition sitemule.com/{ "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: " ", WEBSITE: "http://www.airproducts.co.uk/", CONTACT: "Douglas Fairbanks" } ] } ], success: true } 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 sitemule.com/ Creating an ORM from our DMD/XMP Node.js Waterline (npm) Make it open source Next step sitemule.com/ Peter Nbbe Working with sitemule.com for one year Demo: filemanager Questions . Using the domain model