A Platform for Building RIAs using Domain Specific Languages

A session at WebVisions Portland 2012

Thursday 17th May, 2012

2:30pm to 3:15pm (PST)

As web applications evolve and the use of widget toolkits proliferate, the problems of designing and building scalable front ends has become more and more involved. Web and UI developers spend significant amounts of time authoring and maintaining many thousands of lines of HTML and JS code embedded in one or more web pages. This code is a heady cocktail containing - among other things - the layout of a page, images and CSS, embedded content as well as JS functions, widgets and events. This complex blend of scaffolding, business logic and embedded content can be a challenge (some might say a nightmare), to develop, debug and evolve - even in the best of times. In fact most complex web applications - once built - are fairly immutable and change averse.

The approach being proposed in this session is a departure from this model. It creates a layer above the DOM using the native capabilities of the Browser - including Javascript and JSON - to model and generate web applications and pages. This layer is bounded on all sides by the modules that interact with the user and manage the domain model as well as the services which interact with the application server to provide storage, B-to-B services and business logic. Additionally the domain model treats both layout and content as first class citizens, separate but equal. This separation of display and data is similar, in principle, to the MDV approach being proposed by Google: http://code.google.com/p/mdv.

This declarative approach and layered architecture is based - at its core - on the principles and practices of Domain Driven Design which Eric Evans, Martin Fowler and Neal Ford et al, are promoting. This approach enables developers and designers to author / generate complex layouts in a matter of minutes. These layouts can then be customized to include themes, business logic and data which can be added to, and removed from, any panel in the layout. These complex layouts can be saved, loaded and shared on demand. They can also be continuously re-factored until they are ready for release.

Another feature of the platform is it's service and event model. Based on SOA this plug-able architecture allows services to be added, as needed, into the application. These services communicate with each other as well as their server side counterparts to provide the business logic and rich functionality required for a business application.

This presentation will demonstrate the RIA (Rich Internet Application) platform using its UI and service backend, including an example of a B-to-B interaction with Etsy - an ecommerce application. The takeaways from this presentation are:

* A LayeredArchitecture for the Front End including:
Handlers, Modelers, Builders,
Managers, Services, Events;
* Continuous Refactoring using DSLs;
* A Domain Model for a Web Page / Layout;
* JSON as an internal DSL;
* A JS programming model - based on Douglas Crockfords "Javascript the Good Parts",
* JS Modules and Asynchronous Module Definition - benefits and consequences.

About the speaker

This person is speaking at this event.
John Brinnand


Next session in D133

3:30pm Building Mobile Applications with Web Standards by Kevin Hoyt

Sign in to add slides, notes or videos to this session

Tell your friends!


Time 2:30pm3:15pm PST

Date Thu 17th May 2012

Short URL


Official session page


View the schedule


See something wrong?

Report an issue with this session