Download presentation
Presentation is loading. Please wait.
Published byAllison O’Brien’ Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.