![]() |
|
|
Good Enough MVC
Project Home • Blog • Forums • Known Issues • Contact Project
Author: Christopher Dean (All RIAForge projects by this author) Description:
GEMVC is a simple architectural framework for Flex that provides basic Model-View-Controller constructs for your applications. The basic tenet is that separating the Model (the data) from your views (GUI code) and your control logic (business logic and service calls that affect the model) provides for easier maintenance since you can modify one portion of the application without affecting the other. The notion of a service and gateway layer that is commonly used with this architectural pattern is also useful in that the data storage mechanism can change without affecting the application because the service layer insulates the application from the data layer.
GEMVC is similar to Cairngorm from Adobe Labs but takes a slightly different approach. (It is also a little bit of an MVC hybrid in that the controller commands can access the views directly if necessary thus the logic is in the events not controller, although both may be available in the future). When I first looked at Cairngorm I had already created my own service layer and Coldfusion gateway singleton for backend services (the remoting destination info is read in at run-time via a config file so there is no compile-time dependency on the services-config.xml file). I wanted to continue to use that layer but also leverage Cairngorm as well. I had no problem with the model aspect of Cairngorm (but didn’t like the required use of a singleton) and the service layer was functionally equivalent. The controller piece is where I wanted something different and thus decided just to write my own and combine it with my existing service layer. That being said, Cairngorm is a fine framework and the only real difference between my framework and Cairngorm is a matter of style. Cairngorm prefers singletons for its model and services where GEMVC extends the application class and puts them there (you can get the application anywhere by casting Application.application to your class). Cairngorm also has its own command dispatcher where GEMVC piggybacks on Flex’s existing event mechanism. Furthermore, GEMVC allows you to have one controller per component for better encapsulation as opposed to one global controller if you wish.
Recent Blog Entries:
2/2/10 Watchable Events added to GEMVC trunk
10/9/09 Initial Web Service and HTTP support in GEMVC trunk 10/9/09 auto control enabling and disabling on services called added to trunk 10/9/09 Logging support added to GEMVC trunk 4/25/09 Call for volunteers to create SOAPGateway
Requirements:
Adobe Flex 3
Issue Tracker: There are no issues for this project. To enter issues for this (or any other) project, you must be logged in. Subversion Access: You may access this project's Subversion repository with your client here: http://svn.riaforge.org/gemvc. To view files and changelists associated with this repository, go here: http://gemvc.riaforge.org/index.cfm?event=page.svnbrowse. You may download the latest set of files from Subversion as a zip file. Anonymous users have read access to the repository while the administrator has write access. This project is sharing its code via Subversion. Subversion is an open source source control method. You may find more information about Subversion here: http://subversion.tigris.org/ |
||||||||||||||||||||||||||||||||
Adobe and the Adobe product names are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries.