FlashPlatformist
Articles, Information, News, & Tutorials for Adobe Flash Platform Developers and Architects

New Article Featured at Adobe Developer Connection

Could Swiz be the Best Micro-architecture for Enterprise Flex Applications?

It has been four years since Adobe Flex 1.0 was released. Since then, many API’s, libraries, and frameworks have been released, most of which have been open source.  There is one key facet that is central to the evolution of any programming language, and when it comes to Adobe Flex, this important element required for mass adoption of the framework has been severely neglected; architectural frameworks for the enterprise. See, in order for a programming language to receive mass adoption, it must be capable of supporting enterprise grade applications, which by their very nature, often consist of millions of lines of code. For 4 years, enterprise Flex and AIR developers had only two choices of microarchitecture: Cairngorm and PureMVC; both of which fell far short of being viable solutions for the enterprise. It is for this reason that despite extensive efforts, Adobe has struggled – and in many cases failed – to effectively inject Flex into the enterprise space. The common response from enterprise executives has been that it is “unproven technology”.

A technology is usually characterized as “unproven” when it lacks the ability to fulfill the unique needs of enterprise application development. There has been a lot of talk about the number of enterprise application projects that have recently failed miserably, costing the company a lot of company (and some companies to go under) as a result of not having the right tools to meet the needs of application development in the enterprise.

Recently, a brilliant man by the name of Chris Scott released a framework on Google Code, which he developed to solve this problem. He called his framework “Swiz”.  Not surprisingly, very few people are aware that this architectural framework even exists. This framework advances RIA development by escalating the viability of Flex in the enterprise ten-fold.  It does so by taking a different approach than the alternatives. Instead of force-fitting J2EE design patterns into the event-driven Flex framework, Swiz uses the Inversion of Control pattern, which put very simply: reverses the “wiring” of dependent objects within the application.

After listening to podcast interviews and reading through Chris’ blog, he is clearly thinking along the same lines as a lot of us right now who have been unhappy with the set of choices available for Flex micro-architecture frameworks. It was refreshing to find Swiz, as I had taken on the endeavor of constructing my own micro-architecture which coincidentally modeled Swiz very closely. And yet, Swiz is a whole lot farther along than I was. What is amazing to me is how this just sort of popped up out of nowhere. I consider this a major advancement in Flex and AIR enterprise development.

Additional Information

The framework is open source on Google code here:
http://code.google.com/p/swizframework/

Additionally, a very useful article on Swiz was published on InsideRIA here:
http://www.insideria.com/2008/12/frameworkquest-2008-part-4-ioc.html

Chris’ blog can be found here:
http://cdscott.blogspot.com/

A podcast interview with Chris explaining the underlying concepts and why he created Swiz:
http://www.theflexshow.com/blog/index.cfm/2008/6/19/The-Flex-Show–Episode-45-Interview-with-Chris-Scott-talking-about-the-Swiz-Framework

Possibly Related Posts:



Posted by Dan Orlando on April 27th, 2009 :: Filed under General
Tags :: , , , ,

FlexDen.net Opens for Business

Piggybacking off the success of FlashDen.net and the Adobe Exchange, a group of guys out of Massachusetts led by expert Flash Platform Architect Brandon Broga have deployed FlexDen.net; the latest online resource to join the party for Flash Platform designers and developers. FlexDen.net provides a centralized location where Flex and AIR developers can browse a wide selection of reusable Flex and AIR components and applications.

FlexDen.net Home Page Screenshot

FlexDen.net Home Page Screenshot

The popularity and high demand of Rich Internet Applications mean short development cycles where RIA programmers are required to crank out applications faster than ever before. Despite the economic situation, the online developer marketplace continues to thrive without showing even a hint of letting up. In fact, it is expected that the demand for solutions that speed up the workflow for designers and developers will continue to increase at an exponential rate as the web continues to evolve and become more cohesive with the desktop by providing Software as a Service (SaaS). By providing the ability to quickly locate a component or application to fulfill a particular need, resulting in large projects that finish in time and under budget, FlexDen.net is an invaluable resource for Flex and AIR developers.

Adobe continues to lead the way in the RIA arena by providing the most utilized platform for RIA development. With the next major release of Flex coming, followed closely by the much-anticipated release of Flash Catalyst – a program designed to streamline the workflow between designers and developers – its interesting to note that the closest competitors, Microsoft Sliverlight and now JavaFX, are still at least two years behind Adobe. FlexDen.net is a testament to the work that Adobe has put into advancing technology, and serves as the first independent community dedicated to Flex and AIR developers. Flex developers can not only collaborate amongst each other, they can earn income by selling the Flex and AIR components and Applications that they have created.  This is big news for Flex freelancers that are having trouble finding work right now because of the recent developmental slow-down due to the economy. FlexDen.net provides a way for Flex and AIR developers to create a stream of passive income just by publishing their work on the site.

It is also noteworthy to point out that FlexDen.net serves as a means for freelance Flex developers to find work. It is not uncommon for the buyer of a component or application to hire the developer at an hourly rate to customize the work to fit the specific needs of the purchaser. Additionally, creating a profile at FlexDen.net is free, and even developers that don’t have components or applications that they can sell yet can at least create a profile on the site in order to advertise themselves to potential employers.

Being that the site is so young, now is a better time than ever to get in, because if I am correct in my prediction, FlexDen.net will likely grow even faster than FlashDen, which currently has 162,468 members and 7,420 Flash components and applications available for purchase. I’ve personally learned quite a bit simply by purchasing interesting components and applications and just taking a look at the source code. It’s amazing what you can learn by studying the work of other developers, even if you don’t end up ever using the componenent. There is a lot of open source libraries available, and they provide for an excellent learning tool as well. However, one thing is for sure – I’ve been in a position many times before, where I needed some sample code and couldn’t find anything available that was similiar enough and of high enough quality through open source.  Its times like those that the 10 or 15 bucks that I paid for the source code on a site like FlexDen.net went a long way in terms of the knowledge I gained and the speed at which I was able to deliver the product to the client as a result.

Possibly Related Posts:



Posted by Dan Orlando on April 24th, 2009 :: Filed under Announcements, Flash Platform News
Tags :: ,

Peter deHaan on using Spark controls in Flex Gumbo

For those who are currently playing with Gumbo (the beta of Flex 4), Peter deHaan, member of the Flex SDK team, has published a series of tutorials on working with the Gumbo Spark DropDownList control. Here are some of the highlights from this series that I have found particularly interesting:

Setting a content background color on a Spark DropDownList control in Flex Gumbo
Posted:
Mon, 20 Apr 2009 06:59:38 +0000
This example shows how you can set the content background color on a Spark DropDownList control in Flex Gumbo by setting the contentBackgroundColor style.

Creating a tile layout Spark DropDownList control in Flex Gumbo
Posted:
Thu, 16 Apr 2009 06:59:24 +0000
This example shows how you can create a Spark DropDownList with a tile layout in Flex Gumbo by setting the layout property to a TileList object.

Displaying images in a Spark DropDownList control in Flex Gumbo
Posted:
Wed, 15 Apr 2009 02:52:16 +0000
This example shows how you can display images in a Spark DropDownList control in Flex Gumbo by creating a custom skin and setting the itemRenderer property.

Possibly Related Posts:



Posted by Dan Orlando on April 20th, 2009 :: Filed under Tutorials
Tags :: , ,

What is User Experience Design?

Recently I’ve been on an endeavor to define “User Experience Design”. This is a concept that is tightly knit with RIA, because RIA places a certain value on user experience that the web has simply never seen before. As a result, there is a lot of confusion surrounding User Experience Design.

An associate sent me a link to a presentation that he attended titled “The 10 Most Common Misconceptions about User Experience Design”, and I found it to be particularly interesting, so I decided to post it here:

Possibly Related Posts:



Posted by Dan Orlando on April 16th, 2009 :: Filed under User Experience
Tags ::

New Papervision3D Portfolio

In response to a number of recent requests that I’ve gotten for an online portfolio, I have posted a “rough draft” preliminary version that uses Papervision3D for a “cover flow” type of effect that is reminiscent of what is probably the most famous addition to Apple’s OSX 10.5 Leopard operating system. Anyway, I plan to add a 5th section for Audio/Video production, but since I want to play the audio and videos directly from the app, I haven’t gotten that far yet. Nonetheless, although this isn’t necessary unique and original (3D carousels and cover flow components and apps have been swimming around the AS3 underground for a little while now), I think this is a pretty neat way to present an online portfolio if you ask me. It sure beats a typical 2D slideshow! 

Since I expect this will be changing a lot over the coming months, I am definitely open to feedback. Click HERE to take a look at it and let me know what you think by leaving comments here.

Here’s a screenshot (click for full size):

 

Papervision3D cover flow portfolio screenshot

Papervision3D cover flow portfolio screenshot

Possibly Related Posts:



Posted by Dan Orlando on April 14th, 2009 :: Filed under Announcements, Tools & Innovation, User Experience
Tags :: ,

Thinking Outside the IDE: Ideas for Flex Architects

After completing the planning phase of the software design lifecycle, it is usually a good idea to test your architecture before the programming begins. You might be wondering – how do you test an architecture without doing any programming? Well, here’s one way you can do it:

Try conducting a series of role-playing exercises with the development team.  This should be a fun exercise, so be careful not to impose any rigid rules on the game. First, give each person a piece of construction paper and markers. Next, conduct the exercise by providing the team with a use-case scenario that fits the context of the application that has been assigned to the team.  Allow them to brainstorm the solution using the architecture that you created as a guide. They should decide who plays what role, based on the elements of your architectural diagram. A role could be an object, a data or series of data packets, an event, an event dispatcher, etc. Each person should then write down the name of their role on the piece of construction paper they were given and hold it up while acting out the use case scenario.  The only requirement is that the developers involved need to first understand the architecture, or it will result in confusion and frustration.  They must also be familiar with basic object-oriented principles so they may communicate effectively, especially if they run into a situation where your architecture fails.  The team must then brainstorm possible solutions to the problem.

This is a solid, low-cost way of putting your architecture to the test before the application development process starts.  During their performance, you will likely find them discovering what will and will not work for the application while they interact with each other. Expect to be surprised by unexpected results that the team will encounter during the performance (like bumping into each other while performing a task, being in the wrong place at the right time or vice versa, etc…).

This type of multi-sensory problem solving has proven to enhance learning and problem solving skills at an incredibly rapid rate in education, and a number of related studies have been conducted in the field of Psychology to fully understand just why this works so well. What researchers have found, is that it facilitates a “rewiring” of the brain, effectively bridging the gap between the right and left hemispheres.

Development Styles and Methodologies

Enterprise level application development is extremely complex and researchers have had a terrible time identifying the specifics of why so many large-scale software projects fail.  However, a more generalized approach would suggest that it is due to having a constantly changing environment. This includes: changes in business requirements in the middle of the project, swapping developers in and out of projects like monkeys that bang on keyboards all day, budget cuts, and a lopsided team with regard to skill sets. With regard to the latter, it is common to find small development teams with too many “experts”.  Remember, you need people to worry about the trees too, not just the forest.

The latest development methodology (warning: buzzword ahead) is commonly referred to by the term agile development.  Agile development is a “best practices” type of approach that supersedes prior attempts at creating a universal development model such as “extreme programming” and “Rational Unified Process”, among others.  Every time I hear a Technical Lead or Project Manager say “we use the agile development method”, I am reminded of Einstein’s definition of insanity: doing the same thing over and over, yet expecting a different result each time.

As a science, computer programming is quite immature, and it therefore suffers from the same concepts and theories right now that once existed in the early years of every science, each of which we now look at as being totally ridiculous. For example, it was once thought that the earth was the center-point of the universe.  We can even find some disturbing theories and practices in the field of Medicine. In the 1400’s, it was believed that bringing the sick back to health meant “bleeding” the illness out the individual.  As a result, a mere sinus infection could cost you your life thanks to what was then considered “modern medicine”.

The history of other sciences and what was considered to be “best practices” must be taken into account considering the age of the science of computer programming. Agile development, for example, favors experts in the field to a great extent, which is comprised of maybe 2% to 5% of the computer programmer population. By definition, Agile Development uses feedback to make constant adjustments in a highly collaborative environment.  The problem with this is that the ability to self-correct based on previous experiences is only possible at higher skill levels, where the developer is able to observe an application as an objective whole, not just the little pieces that she constructed. According to Andy Hunt in his book Pragmatic Thinking and Learning, “Advanced beginners and competent practitioners often confuse design patterns for recipes, often with disastrous results.”

Possibly Related Posts:



Posted by Dan Orlando on April 5th, 2009 :: Filed under Enterprise Flex

Tour de Flex Component Explorer

I came across one of the coolest things I’ve seen in a while, the “Tour de Flex Component Explorer”. This is an AIR application that also has a corresponding web-based version. This is something that both newbies and gurus alike will find most interesting. You can install the application by clicking the install badge below:

The coolest thing about this application is that Flexers are invited to submit their work to be included in the application. What an ingenious way for Flexers to collaborate on ideas! It gets better though; it seems that Adobe has created a plugin for Eclipse as well that allows you to browse the Tour de Flex components right from the Eclipse IDE.

Here are some additional Tour de Flex links:

The web-based version of the application can be viewed HERE

Additional info on the application can be found HERE

The sample submission to have your work included can be found HERE

Possibly Related Posts:



Posted by Dan Orlando on April 1st, 2009 :: Filed under Announcements, Flash Platform News, Tools & Innovation
Tags :: ,