Intentional Software - Democratizing Software Creation
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Tracking change and innovation in the enterprise software development community
Posted by Moxie Zhang on Jan 15, 2008 10:41 PM
Adobe Flex and the technologies surrounding it are becoming mainstream in the RIA space. Even though the Flex community is still much smaller than those of Java or Microsoft platform, it's growing steadily with significant contributions from dedicated Flex RIA developers. This has resulted in the creation of a number of open source developer frameworks:Cairngorm is the oldest and the most mature Flex framework. It's currently owned and opensourced by Adobe and is used extensively by Adobe's RIA consulting services. The team at Adobe Consulting who built Cairngorm have been the earliest advocates of design pattern frameworks for RIA development. Cairngorm adapters feature many MVC based design patterns widely seen in JEE world, even though it's a micro-architecture framework that resides and serves exclusively for RIA user interface development.
Cairngorm is considered a enterprise RIA development framework. Its layered MVC implementation helps development a scalable RIA application with complex business logics. On the asynchronous communication, event driven and none-threaded Flex platform, Cairngorm provides a rapid and reliable way of construct a serious business application.
The nature of Cairngorm also determines that it may not suite a small or quick prototype application. As Adobe states:
The Cairngorm microarchitecture is intended as a framework for Enterprise RIA developers. If you are writing a very simple application (such as a prototype application) or an application with only a single view, then you might consider a "Model 1" solution that doesn't strive for the same separation of model, view, and control that Cairngorm advocates. The benefits of the Cairngorm architecture are realized when developing complex RIA applications with multiple use-cases and views, with a team of developers, and with a multi-disciplinary development team that includes designers as well as creative and technical developers.
This is actually an ActionScript 3 framework. Unlike Cairngorm, It has no dependency on any Flash, Flex or other Adobe's AS3 classes, therefore, it can be used to develop any Flash based or ActionScript 3 application.
As its name suggested, PureMVC is implemented according to the MVC design pattern, which includes three layers, model, view and controller. This framework is very well documented and its web site contains very rich information to help developers get started.
Since PureMVC is implemented purely on ActionScript, which is a strongly-typed, fully object-oriented language based on the same standard as JavaScript (ECMAScript), it can be relatively easier to be ported to other OO languages. In fact, according to PureMVC,
I'm happy to announce that there are ports to 4 different languages in progress: AS2, C#, Java, and ColdFusion, nearing public readiness. This puts PureMVC on FlashLite, .NET, Windows Mobile, Silverlight, J2ME, SE, EE, and well... ColdFusion :)
These ports as well as lots of demos and utilities are being written by a dedicated group of contributors spread all over the world. Translators are also signing on and being sought to help expand the PureMVC documentation into other spoken languages, such as French, German, Russian, Chinese, Japanese, etc. Their tireless efforts are turning what was a simple, one man project into a truly global open-source effort. Soon, you'll know them and love them for the quality of work that they are committing to the repositories as I write this. Later, when you see one of these people, by them a beer!
Considering that ActionScript (ECMAScript) will be built into next generation Firefox along with the same Flash engine Adobe is using, PureMVC can be a very useful handy tools for RIA developers to develop cross platform rich applications.
Model-Glue:Flex is another simple MVC based Flex framework. Joe Rinehart, the author of original Model-Glue for ColdFusion port it to Flex. There are positive comments about Model-Glue: Flex. It's design to be more lightweight than framework such as Cairngorm and PureMVC, which makes it easier for quick prototyping or simple Flex application development.
The ServeBox Foundry ( sbasfoundry ) is an ActionScript 3 / Java framework designed for Flex 2 applications development. Its design is based on several design patterns, and includes tools built to resolve some of the recurrent Flex 2 development issues : Model-View sync, screen-browsing, Access-Control Lists (currently in development), localization and labels externalization, etc.
Foundry is designed and implemented for mid to large scale enterprise RIA system development. It includes Java common module to tight integration between Foundry flex plug-in and server side processes.
Guasax Flex Framework (download)
Guasax is an ease of use programming framework to provide ordered and scalable Flex applications.
Life cycle of guasax framework is based in the MVC pattern to take on our program actions. One uniqueness of Guasax is that they use a XML file to configure the actions in the business logic, which reassemble some aspects of Java Struts framework. Guasax can be extended by developing guasax components.
Aral Balkan initially developed ARP (Ariaware RIA Platform) a ActionScript based framework and now it's hosted as one of Open Source Flash projects. ARP currently supports Macromedia? Flash? and Flex based RIA Development in ActionScript 2 and ActionScript 3.
ARP could be the oldest framework developed for the Flash community. The first version of ARP, in Flash 5, was created in 2000 and parts were released under the open-source FC-Lib library. This evolved, in time, to Flash MX and parts were again released as open source as part of the Moose library. Since it's evolved from Flash, ARP can be used in Flex or AIR now. Its codes directly access Flash classes so that it's reported having better performance comparing to other Flex based frameworks.
Flest is an ActionScript3 / Flex application framework for building enterprise level RIAs. It uses such design pattern as Controller, Factory, Command, etc. High efficiency, simplicity and practicality were set as its mandatory design features. Flest Framework was designed and built to be a lightweight and easy to use toolset that helps to structure the deveopment environment on the one hand, and gives a developer maximum freedom in making his/her own decisions on the other.
Besides the frameworks listed above, there are a few others that are not as widely used. You can check out EasyMVC, Adobe FAST and Joeberkovitz's framework.
In addition to the development framework for building RIA UI, there are other frameworks and resources offer helping hands to RIA developers, such as FlexUnit (a unit test framework for ActionScript 3), FlexLib(an Open Source Flex 2 Component Library), AS3CoreLib (an ActionScript 3.0 library for several basic utilities with great JSON package) and Granite DS (a free, open source, alternative to Adobe Data Services for J2EE application servers with EJB3/Spring/Pojo services support), to name a few.
InfoQ will continue reporting new development among Flex open source development community.
IBM Web 2.0 Developer eKit: Free Tutorials, Webcasts, Whitepapers
Hibernate without Database Bottlenecks
Introducing the SpringSource Application Platform
Info 2.0: IBM's vision for the world of Web 2.0 and enterprise mashups (Webcast)
SpringSource Launches New Application Server without Java EE
We are currently building a large scale system that has a Flex front end and a J2EE back end. Initially, we were uncertain how to design the flex front end component since we had little experience in anything other than Java web presentation technologies. We found Cairngorm to be a fantastic micro-architecture that guided us through our design and implementation, yet allowed us to deviate when we needed a different approach.
You might argue that this isn't the same thing but in my mind Wrapper http://code.google.com/p/htmlwrapper/ is very much a framework to consider when building a web server based application. If you believe in the idea that the logic should be on the server and your view should simply be displaying your content Wrapper can be a great tool to build RIAs that has many advantages over the other concepts. It is still early in its development but there is a lot there.
I'm gonna come right out and say that the use of a framework with Flex may be a little overkill. If you compare it to the construction of an application using something like Swing, Flex is much simpler and, IMO, more productive approach. Flex has a very capable event system and very robust uses for data binding. Most of these frameworks try to re-write the event system in Flex and add a lot of boiler plate code that spawn code generator tools and so on. I actually find it kind of amusing that I encounter more material on the web about Flex frameworks rather than good practices for coding in Flex. Also, I'd like to throw Simeon Bateman's easyMVC (http://projects.simb.net/easyMVC/) framework out there as well. It's the only Flex framework I've seen thus far that takes advantage of Flex's built in event system. I still don't advocate the use of frameworks in Flex, but if you have to use one, it looks much simpler than the rest. That being said I haven't used it, sorry Sim :)
Business users doing programming? Simonyi and Kolk presents how Intentional Software offers a radical new software approach that separates business knowledge from software engineering knowledge.
Jason Rudolph discusses Java/Grails integration, Grails plugins, creating a Grails sample application, Grails app structure, data querying and persistence, validation, controllers and tag libraries.
The Scrum Product Owner role is powerful, valuable and challenging to implement. It brings healthier relationships between customers and developers, and competitive advantage - if you do it right.
Effective Java, Second Edition by Joshua Bloch is an updated version of the classic first edition, which won a 2001 Jolt Award. InfoQ asked Bloch questions about the areas that the new edition covers.
A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.
In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.
Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.
Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.
3 comments
Reply