As a software developer I spend a great deal of my time implementing various design patterns to solve common problems. As I explore a particular problem domain I can easily identify which pattern or patterns can be applied in order to create a viable solution.There are currently 23 common software design patterns around today. These 23 patterns can be organized into three separate categories: Creational, Structural and Behavioral.
Many of these standard patterns are commonly used by developers in all areas of programming and many apply to RIA development. The greatest thing about design patterns is that they are typically not much more than an efficient, structured way of doing things that most of us have already been doing for a long time. Design Patterns allow us to simplify common design problems into standard, common named solutions. By implementing common design patterns and best practices we can keep our applications consistant without re-inventing the wheel every time. They allow us to solve the same problems over and over again in the same way. Design patterns also allow us to write code that is common amongst other developers. This is helpful as it allows other developers who are familiar with these patterns to easily and intuitively work with our code, and vice-versa.
Personally, when designing an application I prefer to use the Adobe Cairngorm micro-architecture, whereas there are various patterns combined to create an architectural framework which can be implemented to provide a common solution. An Architectural framework is a framework that does not provide additional services or API’s (such as the Flex framework) but instead provides a consistent, generic architectural framework that an application can be built upon.
Over the course of the next few weeks I will be posting examples of various pattern implementations in ActionScript 3 and how these patterns can be utilized in order create solutions to common problems.
Hi Eric,
I am looking around to try and find out which flex architectural framwork I should start looking at. Most people say either Cairngorm or PureMVC. Do you have any hints or the like on any of them. I currently have no practical use-knowledge on any of them, and would like to hear any recommondations or thoughts on the issue, that you might have.
In regards to architectural frameworks for Adobe Flex there are quite a few options available. However I would advise anyone looking to build Flex applications on top of an existing framework to utilize Adobe Cairngorm for a number of reasons, but mainly because Cairngorm is the defacto standard architecture for Adobe Flex. This means you are more than likely going to need a to have a solid understanding of Cairngorm one way or another simply because it is the industry standard, and for good reason as it is very scalable and provides a robust framework for Flex applications of all sizes.
When I conduct technical interviews I make it a requirement that a candidate has expert knowledge of Adobe Cairngorm in order to be eligible for a Senior role within our organization. They could be an expert in many other frameworks for Flex but at the end of the day it is all about standards, and Cairngorm is the standard.
Hope that helps.
Eric
Hi Eric!
Thanks for the reply. I guess it does make sense, to take a look at the most widely used. But that is not neccessarily the best, always. In Java-land, everyone was using EJB 2.x, even though there were much better, lighter weight, technologies at hand, just because, well, it was the standard.
Given what you say, I *will* take a look at Cairngorm too. But, do you have experience with both Cairgorm and PureMVC, and as such can give me advice on which is better? I see some comparisons of the two here and there, but none of them seem to be very detailed.
?