Typemock: Past, Present and Future
Eli Lopian of Typemock answers a few questions on Typemock origins and where Typemock is headed.
Tracking change and innovation in the enterprise software development community
Posted by Moxie Zhang on Jun 20, 2008 03:26 PM
On June 9, 2008 Per Olesen, a seasoned Java developer, published a blog post on Tech Per to comparing the two most popular Flex frameworks, PureMVC and Cairngorm, in particular with respect to usability and how they apply patterns of GUI architecture.
Design pattern-based application development has been a mainstay of Java developers for some time. Among Flex or ActionScript developers, this practice is either carried from Java development experience or introduced by a few ActionScript/Flex frameworks. Olesen describes this process as follows:
To help architect such applications, some patterns on GUI architecture have been developed and described. Martin Fowler has some good descriptions of some of the more well-known, like Presentation Model and Supervising Presenter. These are not whole user-interface (UI) architectures, like MVC, but smaller parts of architectural guidance, related to how the logic of the application relates to the API of the view framework.
He explains:
PureMVC has a construct called a Mediator, which is just what it sounds like: an application of the Mediator pattern, to mediate between the apis of the view and the apis of the rest of the application. This is a key construct in how PureMVC implements the view part of the MVC architecture and is introduced to reduce the dependencies between the application and the view, thereby lowering the coupling in the entire system.
Olesen also points out that PureMVC has a document on implementation idioms and best practices that provides an actual example, the LoginPanel. In the example, it shows that only the mediator knows about the view, and that the view does not know about the mediator.
Upon analysis of the source code provided in PureMVC's document, Olesen believes this pattern is what is known as either a Supervising Presenter or a Passive View. These patterns both extract behavior out of the view and into a presentation class coupled with the view. In both patterns, this is done in a “presenter knows the view, but the view does not know the presenter” way. Thus, what differentiates these two patterns from each other is how much logic to extract. Therefore, the PureMVC mediator comes closest to being a Supervising Presenter.
With respect to the Cairngorm framework, Olesen observes:
Cairngorm has no notion of a mediator, a supervising presenter, passive view or anything like it. Actually, it has been bashed by many, as it advocates a solution of simply data-binding of view component state directly into the model. And, to make matters worse, the model is simply a global state, expressed through a singleton.
Looking at the Cairngorm documentation and the examples (both the introductory contact management app and the “advanced” Cairngorm Store), only make this stand out even more. The views have lots of logic and as such operate as what is known as the Autonomous View pattern. So, what is an autonomous view? Martin Fowler describes it as: Putting all presentation state and behavior for a window in a single class.
Olesen thinks this is like having a “no pattern" pattern. He believes that the autonomous views in a Cairngorm-based application are advocated to databind directly into one global model instance, and it makes for really bad separation of concerns between the view and the model.
In the end, Olesen doesn't simply think one of the frameworks is better than another; he concludes:
The UI pattern is just one part of both frameworks, albeit an important one. One could argue that you get more out-of-the-box with PureMVC, the mediators being a built-in concept of the framework. The mediators and the communication from and to mediators through notifications have been nicely worked into the PureMVC framework.
IBM software architect eKit: Grady Booch podcast, whitepapers, articles
SCM Best Practices for Continuous Integration
The End of Middleware: Freedom from IT Stacks as we know it
The Agile Business Analyst: Skills and Techniques needed for Agile
Eli Lopian of Typemock answers a few questions on Typemock origins and where Typemock is headed.
Scott Ambler talks about actual data resulting from surveys made during 2006-2008, showing how Agile is perceived and implemented within organizations.
From QCon 2008, Daniel Moth presents on using Visual Studio 2008 and .NET 3.5 to create compelling rich Windows applications.
Joshua Kerievsky, founder of Industrial Logic, talks about Industrial Extreme Programming which extends XP by including practices dealing with management, customers and developers.
Amazon Web Services (AWS) Evangelist Jeff Barr discusses SimpleDB, S3, EC2, SQS, cloud computing, how different Amazon services interact, origins of AWS, AWS globalization and the March AWS outage.
Cloud services have helped bring virtualization to the forefront. Its full power however, also includes other benefits such as high availability, disaster recovery, and rapid provisioning.
John Lam talks about his path to dynamic languages, some of the problems of making IronRuby run fast, and how the DLR helps with implementing languages.
VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.
No comments
Reply