8. Able to use a RIA plug-in at client-side for avoiding multi-version problems(2)
9. Comparison with traditional Web MVC(3) The architectural shift from server-side web MVC towards RIA represented by Struts and still the world of Server-side MVC It is not problem free: Computation for tasks requiring access to the server-side MVC are slow Difficult to program and maintain client-side Model (necessary to deploy different code per client platform like browser, OS, other devices) Over-heading on communication among MVC design elements
10. RIA MVC 1)User -> Controller -> View -> User 2) User -> Controller -> Model (Client ) -> View-> User 3) User -> Controller -> Model (Client) -> Model (Server) -> View -> User Advantage: The page is sent once and quick response to the user Updating the model at client minimizes the bandwidth usage Communication of Models between client and server sides is able to asynchronous and transparent to the user(client-side model take the decision) Take full advantage of the processing capabilities and resources at client-side Update part of the View at client-side easier Deficiency: Remain the problem of multiple client-side platforms Plug-ins may solve this situation extending browsers capabilities
11. Service-Side Implicationin RIAs(best practice) turn the server into an generic API provide RESTful web-services open up the application for other clients Enable: Development of other GUIs Integration with other tools Scriptability and automation Easier to develop clients with different capabilities(different clients that use the same server services)
12. Current RIA MVC Frameworks http://www.flickr.com/photos/joost-ijmuiden/
21. Current RIA MVC Frameworks -javaScriptMVC(2) Strength: Enhance code quality, performance, and maintainability Locally separate javascript files Library interdependence->light enough to change to another libraries such as jQuery or Prototype Testing->Provide browser-based and command-line approach to perform unit/functional test to facilitate the UI test Error handling->Plenty of plugins support in firefox to check errors(e.g. typing error or grammar) It is about how to build an application Weakness: based on jQuery, maybe some issues evoked by jQuery Not suitable for small applications
22. Current RIA MVC Frameworks-PureMVC(1) PureMVC provides the model, view, and controller just as expected but hides them behind a global Facade layer with mediators and proxies to manipulate them
23. Current RIA MVC Frameworks-PureMVC(2) Benefits: can be used for 11 kinds of language(e.g. c#,java,javascript,python,as2/as3) Avoid platform dependencies Pattern-based(implemented in any OOP env and easy to understand) Facade class provides a single collaborator for communication with the core framework Loosely-coupled framework(e.g. publish/subscribe style notifications) Well-documented However, PureMVC does not leverage native Flex features(e.g. event delegation model, Flex binding) PureMVC is not tied to Flex or even ActionScript
24.
25.
26. Conclusion A general guidelines to choose a RIA MVC framework: Help build complex applications faster Support team development Support code reuse Support maintainability and extensibility Short learn curve Well-document support On the basis of: Business requirement Target platform Experience of the development group
27. Reference Morales-Chaparro, R.; Linaje, M.; Preciado, J. C.; Sánchez-Figueroa F. “MVC Web design patterns and Rich Internet Applications.” Actas del IV Taller en SistemasHipermediaColaborativos y Adaptativos, asociado a JISBD’2007. Zaragoza, September 2007. Y. Fain, V, Rasputnis and A. Tartakovsky, Enterprise Development with Flex: Best Practices for Flex Jupiter IT - JavaScriptMVC Training and Support Futurescale, Inc. PureMVC framework, 2011. http://puremvc.org/ Cairngorm Docs Borrowed contents from Calinlepure’s slide