Your SlideShare is downloading. ×
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Beyond The MVC
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Beyond The MVC

1,133

Published on

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,133
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Beyond the MVC: EWD and Design-oriented Web Development Rob Tweed M/Gateway Developments Ltd
  • 2. Web Application Development
    • The industry-accepted state of the art:
      • The equivalent of expecting programmers to use assembler and for database developers to access disc blocks
  • 3. Web Application Development
    • One of the great developments in computing was the development of high-level programming languages
  • 4. Web Application Development
    • One of the great developments in computing was the development of high-level programming languages
      • By adding a level of abstraction, they provide an illusion
      • You can describe what you want to do at a much higher conceptual level
      • How it all works in machine code is looked after for you
        • How it actually works may be very different from the conceptual abstraction
  • 5. Web Applications
    • Programs that:
      • Generate HTML
      • Are accessed via HTTP
  • 6. Web Applications
    • Or….web pages:
      • That have some content fetched from a database
      • Whose flow is determined in part by the user’s interaction and/or content in the database
  • 7. Web Applications
    • Programs that generate HTML
      • Actually what happens!
    • Web pages:
      • That have some content fetched from a database
      • Whose flow is determined in part by the user’s interaction and/or content in the database
  • 8. Web Applications
    • Programs that generate HTML
      • Actually what happens!
    • Web pages:
      • That have some content fetched from a database
      • Whose flow is determined in part by the user’s interaction and/or content in the database
      • Conceptual view only
  • 9. Web Application Development
    • The industry is focused on web applications being programs that generate HTML
      • Web application development is the exclusive domain of programmers
      • Give them the design
      • They’ll make it work for you
  • 10. Why web development toolsets?
    • The web was never designed as an application platform:
      • Stateless
        • No built-in concept of a meaningful ongoing dialogue between browser and web server
      • HTTP protocol
        • Simple request/response protocol
        • Wide open, simple URL + name/value pair structure
        • Inherently insecure and open to abuse
  • 11. Why web development toolsets?
    • Programmer’s responsibility to:
      • Create the illusion of a session
      • Provide the navigation between generated pages in response to user activity
      • Provide a consistent and adequate layer of security around the URL requests within a session
  • 12. Why web development toolsets?
    • Rather than everyone re-inventing wheels, tools have developed that automate these mechanisms
    • Almost all are based on the concept of the Model View Controller (MVC)
  • 13. Web Application: MVC View Web Page 1 Step 1: User decides what to do: eg clicks button or link
  • 14. Web Application: MVC View Web Page 1 Step 2: URL sent to controller Controller
  • 15. Web Application: MVC View Web Page 1 Step 3: URL analysed and mapped to corresponding business logic Controller Business logic URL map
  • 16. Web Application: MVC View Web Page 1 Step 4: Business logic selects next view Controller Business logic URL map View Database (model)
  • 17. Web Application: MVC View Web Page 1 Step 5: View is generated Controller Business logic URL map View Web Page 2 Database (model)
  • 18. Web Application: MVC View
    • Web pages are programmatically-generated markup = the “view”
    • The URL is the focus of attention
    • Closely reflects how it actually works
      • Only a very slight level of abstraction
    • Totally programmer orientated paradigm
      • Focuses on the how
      • The what and the design gets lost in a ton of code
  • 19. What’s the problem?
    • Design
  • 20. What’s the problem?
    • Design: the single most important criterion that determines whether or not a web application will be successfull
  • 21. What’s the problem?
    • Design: the single most important criterion that determines whether or not a web application will be successfull
    • In the MVC paradigm:
      • Designer storyboards the application
      • Design agreed
      • Handed over to programmers
  • 22. The “Eh?” Team
    • Design: the single most important criterion that determines whether or not a web application will be successfull
    • In the MVC paradigm:
      • Designer storyboards the application
      • Design agreed
      • Handed over to programmers
      • From this point onwards, designer can no longer participate in the life-cycle of the application
        • What the programmers develop is incomprehensible
  • 23. What’s the problem
    • To make matters worse:
  • 24. The “Eh?” Team again
    • Little discipline applied by MVC environment
    • MVC “plumbing” isn’t automated:
      • How to submit, post and validate forms is left to each programmer
      • In-page coding is a free-for-all
      • Cut, paste and modify components
    • 1 or more years later, nobody can understand their own code, let alone another developer’s
      • Quicker to rewrite pages than figure out how they work
  • 25. The industry solution?
    • AjaxWorld: Yakov Fain (Farata Systems), Mar 30, 2008:
      • Do We Need to Teach Designers Programming?
      • “ Adobe invited professors from different schools to discuss what has to change in the curriculum of Visual Design and Software Engineering disciplines so designers can understand programming better and software developers would be better at designing the user experience”
      • “ Do we need to breed new creatures called d-e-s-i-g-n-o-p-e-r and d-e-v-i-g-n-e-r? “
      • “ Developers are from Mars; designers are from Venus”
  • 26. The industry solution?
    • They don’t actually have one
  • 27. What’s the problem again?
    • Web application development tools are the equivalent of assembler:
      • Marginally less of an abstraction than machine code
    • Web application development needs to be abstracted
      • Design-focused paradigm
      • Automate the MVC right out of the equation
  • 28. Design-oriented development
  • 29. “ Static” web sites Web Page 1 Next Page Web Page 2 Next Page Web Page 3 Next Page
  • 30. Web Application Web Page 1 From a designer’s point of view: Database Step 1: Run a method that fetches the data needed for the page fetchData()
  • 31. Web Application Web Page 1 From a designer’s point of view: Step 2: Display the page
  • 32. Web Application Web Page 1 From a designer’s point of view: Step 3: User decides what to do: eg clicks button or link
  • 33. Web Application Web Page 1 From a designer’s point of view: Database Step 4: Method called that validates and saves data into database saveData()
  • 34. Web Application Web Page 1 From a designer’s point of view: Step 5: Move to next page Next Page Web Page 2
  • 35. Web Application From a designer’s point of view: Repeat the process…. Web Page 2 Database fetchData2()
  • 36. Design-focused Web Applications
    • Page content and navigation is the primary focus
      • No programming code in pages
    • “ Fetch data” method called when page loads
    • “ Save/validate” methods linked with user-triggered events (eg submit buttons)
    • Technical stuff should “just work”:
      • Invocation of methods
      • Session and security management
  • 37. “ Static” web sites Web Page 1 Next Page Web Page 2 Next Page Web Page 3 Next Page
  • 38. Design-focused Web Applications Web Page 1 Next Page Web Page 2 Next Page Web Page 3 Next Page Database fetch fetch fetch save save save
  • 39. Great idea but can it be done?
  • 40. Great idea but can it be done?
    • Yes!
    • Enterprise Web Developer (EWD)
  • 41. EWD’s view of a web Application Web Page 1 Next Page Web Page 2 Next Page Web Page 3 Next Page Database fetch fetch fetch save save save
  • 42. EWD’s Ajax Framework
    • Event-driven DOM manipulation:
      • replacement of innerHTML
    • Page fragments
      • EWD pages that just contain the replacement markup
      • Pre-page and action scripts
    • Just specify 3 key things:
      • Event
      • Page fragment name
      • Target Id
  • 43. EWD’s view of a web Application Container Page Fetch data Pre-page Script EWD State & Session Management Cach é/ GT.M Server Front-end technology (WebLink, PHP, CSP etc)
  • 44. EWD’s view of a web Application Container Page Fetch Page Fragment Page Fragment Fetch data Event Replaces DOM content Pre-page Script Pre-page Script EWD State & Session Management Cach é/ GT.M Server XMLHttpRequest
  • 45. EWD’s view of a web Application Container Page Fetch Page Fragment Page Fragment Fetch data Event Replaces DOM content Pre-page Script EWD State & Session Management Cach é/ GT.M Server
  • 46. EWD’s view of a web Application Container Page EWD State & Session Management Cach é/ GT.M Server
  • 47. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html>
  • 48. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Pretty normal web page apart from <ewd:config> tag
  • 49. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData” > <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd“> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Method that will fetch data for this page
  • 50. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd“ > <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Use EWD’s virtual MVC
  • 51. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*“ ></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Data values automatically populate the forms at run-time No programming in the page
  • 52. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Method that will validate and save data if this button is clicked
  • 53. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d“ ></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Next page to display if no errors occur during validation. Equivalent to selecting next view
  • 54. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd &quot;>Log out</a> </body> </html> Next page if hyperlink clicked
  • 55. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Note: No coding in the page No language-specific constructs apart from call-outs to pre-page and action scripts
  • 56. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData”> <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>This is a simple EWD form</p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> EWD will compile this page to the technology of your choice (eg PHP, JSP etc) EWD will look after handling the appropriate MVC run-time environment for your selected technology
  • 57. The “A” Team
    • Designer stays in control throughout the lifecyle
    • Designer doesn’t need to have any knowledge of programming, business logic or database structure/content
    • Programmer just focuses on business logic to fetch/validate/process/save data
      • doesn’t waste any time on the “plumbing”
      • Isolated from design issues
      • Standardised processes
      • Discipline occurs because it’s the line of least resistance during development
  • 58. Interfacing design and programming
    • Clearly need a conceptual interface through which the designer and programmer can inter-operate
    • This is provided by the “EWD Session”
  • 59. The EWD Session EWD Page EWD Session Database Provides the interface between the designer and the programmer Programmer Using APIs provided By EWD Designer Using special syntax to refer to Session values or EWD custom tags
  • 60. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData” > <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>Today’s date and time is <?= #dateTime ?> </p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Programmer creates session variable in pre-page script setSessionValue()
  • 61. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData” > <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>Today’s date and time is <?= #dateTime ?> </p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> Designer uses the session variable in the page
  • 62. A simple form in EWD <ewd:config isFirstPage=&quot;true&quot; prepageScript=“fetchFormData” > <html> <head> <title>EWD Workshop: Simple Form</title> </head> <body> <p>Today’s date and time is <?= #dateTime ?> </p> <h3>Please enter your username and password:</h3> <form method=&quot;post&quot; action=&quot;ewd&quot;> <table border=0> <tr> <td>Username: </td> <td><input type=&quot;text&quot; name=&quot;username&quot; focus=&quot;true&quot; value=&quot;*&quot;></td> </tr> <tr> <td>Password: </td> <td><input type=&quot;password&quot; name=&quot;password&quot;></td> </tr> <tr> <td><input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Login&quot; action=“logMeIn&quot; nextpage=&quot;Page2d&quot;></td> </tr> </table> </form> <br><br> <a href=&quot;ewdLogout.ewd&quot;>Log out</a> </body> </html> When form is submitted EWD will automatically persist username as a session variable. Value will be whatever was typed by the user <?= #username ?> can be used by designer in any other page
  • 63. Security Management
    • EWD’s compiler and run-time automatically tokenises all URLs
      • Randomly-generated character strings
    • Controller rejects URLs with invalid tokens
    • Tokens provide pointer to the user’s session
    • Completely automatic
    EWD creates at runtime, eg: <a href=“Example1b.php?ewd_token=U3FPqTKSi6tr7kMtT8bNMhmG2iMnT1&n=qXLT6jwFvlSUhO4ZBRu7Ol1leYVjCp&quot;> Designer just specifies: <a href=“Example1b.ewd”>
  • 64. Custom Tags
    • EWD’s functionality can be extended by defining XML-based custom tags
    • You define the XML DOM transformations that the compiler will make to a page when encountering an instance of your custom tag
    • Hugely powerful
    • Has been used to create very easy-to-use custom tags for ExtJS, Emprise JS Charts, Dojo and YUI
      • Describe what you want, eg a grid
      • Not how , ie the associated complex Javascript
    • Further encourages standardisation and discipline because they save time
  • 65. Multi-lingual Deployment
    • EWD’s compiler can automatically detect all text in a page
      • Creates and maintains text/phrase database
      • Substitutes call-backs in run-time page
      • Just get text/phrases translated
      • At run-time, call-backs in page retrieve translated text
    • Developers continue to design using their native language
      • No impact on development
      • Can be done retrospectively for existing EWD pages
    • Built-in contextual review mode
  • 66. Design-focused Development
    • Immediate benefits:
      • Much higher productivity compared with conventional techniques
      • Applications are focused on design requirements
        • designer retains control throughout the life-cycle
      • Cuts out all the complexity of Ajax
      • Integrates with most UI/widget libraries
        • Leverage “best of breed” instead of reinventing wheels
      • Significantly lower maintenance than conventional techniques
        • Because you just describe the what , not the how
        • Build an “A” team, not an “eh?” team!
  • 67. Conclusions
    • Design-focused web application development is an essential step forwards
    • EWD is unique in being the only toolset that has adopted this approach
    • Create an “A” team and leave your “Eh?” team behind!
  • 68.  

×