Ctrl-Alt-Del on FlexMonkey

Posted in FlexMonkey, Jon Rose on November 23rd, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

I thought I would post a holiday treat.  I’ve been hard at work on “FlexMonkey Reloaded.”  It should be out there for use soon.  Here is a screen shot:

New FlexMonkey User Interface

Book Review: Flex 4 Fun

Posted in Jon Rose on September 27th, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

I’ve been working with Flex since 2007, starting with version 2.0.1. Also, I’ve been working with Flex 4 for a few months. So, recently, when I went looking for a Flex 4 book, I wanted something that gave me depth and clarity around the latest API’s and features. Chet Haase’s Flex 4 Fun is perfect for this, as he writes it for the existing Flex developer who wants to learn how to harness the power of Flex 4.

Chet begins the book with an excellent tutorial on the concepts of graphics and filters, which are largely foreign to developers, like myself. After reading Chet’s book, I feel like I can finally take advantage of much more of the power of underlying Flash player when building Flex applications. And, that is key because these concepts have become very important with the latest Flex 4 features, like skinning. Chet proceeds to teach about those features, like skinning and animations (his baby – he worked on animations as part of the Flex 4 SDK team).

Overall, I found the book enjoyable and it really help me to add a depth of understanding around the latest Flex 4 features. In addition to the technical content, Chet, the master of the pun, always makes his content fun to read.

You can find the book on Amazon.com or Artima.com.

Chimp Flex 4 Update / Flex Security Framework

Posted in Jon Rose on September 7th, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

What is Chimp?

Chimp is a simple component for doing role based permissions in Flex.  It uses metadata and a generic ArrayCollection of permission strings to display the proper components for a given set of user roles.  You can find more info about the project at: http://www.gorillalogic.com/chimp.

Flex 4 Update

Shortly after I posted Chimp in 2009, Adobe began releasing early versions of Flex 4.  Every since then, I am occasionally asked about Chimp’s Flex 4 compatibility.  Well, I finally stopped procrastinating and posted a Flex 4 sample on the google code site.  It’s a conversion of the existing Flex 3 sample.  Everything worked with no updates to the existing Chimp swc.

Please let me know if you are having in Flex 4 specific issues.

Updated: BlazeDS & Spring Refcard

Posted in Jon Rose on June 14th, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

James Ward and I have updated our Dzone Refcard on using BlazeDS & Spring.  You can check it out at: http://refcardz.dzone.com/refcardz/flex-4-and-spring-3

Article: A Deep Dive into Flash Builder 4

Posted in Jon Rose on March 22nd, 2010 by jonr

jonr originally posted this on Jon Rose's Blog.

Dzone.com / JavaLobby has published my ‘A Deep Dive into Flash Builder 4‘ article.  I wrote it over Christmas on the beta 2 release of Flash Builder, so hopefully everything is still up-to-date now that Flash Builder is finally out for production.

Give it a read and let me know if you have any feedback.

Talk Back: How do you test your Flex applications?

Posted in Jon Rose on December 20th, 2009 by jonr

jonr originally posted this on Jon Rose's Blog.

At Gorilla Logic we are proud of using our FlexMonkey tool to test the enterprise Flex applications we are building, but my curiosity has been growing at how others in the community are testing their Flex & AIR applications.

  • What are you using (FlexMonkey, FlexUnit, Mercury QTP, Selenium, RIATest, FunFX, etc)?
  • Have you run into major pitfalls with your Flex testing?
  • Are the tools you are using allowing your team to achieve your testing goals?
  • How would you rate the state of testing in Flex development?

Thanks! I look forward to hearing from you.

Why FlexMonkey is Game Changing for Flex Developers

Posted in FlexMonkey, Jon Rose on December 6th, 2009 by jonr

jonr originally posted this on Jon Rose's Blog.

What is FlexMonkey?

FlexMonkey is an open source Adobe AIR application used for testing Flex and AIR applications.  It provides the functionality to record, playback, and verify Flex UI interactions.  It also generates ActionScript / fluint tests that you can easily include within a continuous integration environment.

Who is FlexMonkey for?

Like many in the Flex community, we came to Flex development after many years of developing traditional web applications, where there are multiple tools that allow a developer to simulate a UI client for testing (like HTMLUnit).  For testing our Flex user interfaces, we had a strong desire to continue using this paradigm for our developer level testing.

As software consultants, ensuring quality is an important part of what we do.  So, we created FlexMonkey to fill the gap between a unit test and what’s really needed to ensure quality (and protect against regression) when developing user interfaces.  While we initially created FlexMonkey for developers, many in the FlexMonkey community have found it just as valuable for use in creating QA / Functional tests.

So, we believe that FlexMonkey is useful to both software developers and quality control engineers on Flex development projects.

So, what’s so game changing about it?

If you ask Mike Labriola (one of the Fluint/FlexUnit 4 guys), ‘How do I unit test my Flex user interfaces?’  He will quickly respond, ‘You don’t.’  He won’t tell you this because he doesn’t believe in unit testing (as I can assure you that he strongly believes in Unit Testing), but because there are parts of a user interface that cannot be sufficiently tested with unit tests.

So, as we jump into the reasons why FlexMonkey matters for you, I’ll note that we do not believe that FlexMonkey replaces the need for traditional unit tests.  There are still parts of a Flex application that are best tested this way (e.g. service clients, business logic, etc.).  If you are building a framework, it’s likely that the majority of your testing will be done through unit tests, but if you are focusing on features and functionality you will likely be able to achieve upwards of 80% of your testing goals with FlexMonkey.  Nevertheless, here are the high level places where FlexMonkey changes the game:

  1. FlexMonkey fills the gap left between unit testing and a truly successful test suite,  as it provides a tool for doing developer level functional tests that replace traditional unit testing activities that developers perform in other tiers of application development.
  2. FlexMonkey allows developers to write their user interface code in the most natural way. Typically, when developing a user interface application without a tool to simulate a client of the running application, the code has to be written differently to support testing.  This often leads to many unnatural acts, which can be avoided when using FlexMonkey.

    For the Java folks, I like to bring up the SpringFramework here, as it provides us with a powerful example of a framework that largely succeeded because it allows developers to write their code in a natural way.  Over the long run, the frameworks and tools that make it possible for developers to work in the most natural way will always win out.

    Tools like FlexMonkey are able to facilitate this simply through the paradigm they provide for testing user interfaces, as they allow developers to test applications without any knowledge of the underlying code.

  3. Cost. FlexMonkey is free.  So, even though it’s not a perfect tool, it does enable one to build and deploy a successful test suite, a task that is extremely difficult and costly in Flex development without FlexMonkey.

You can find the FlexMonkey project at: http://flexmonkey.gorillalogic.com/

FlexMonkey is built and open-sourced by Gorilla Logic, Inc.

Cairngorm: All the worst parts of Java

Posted in Jon Rose on November 17th, 2009 by jonr

jonr originally posted this on Jon Rose's Blog.

Like many Flex developers, I came to Flex development after a long stay in the Java world. For many years, Java and the surrounding community provided an exciting technical playground. Overall, the community gave developers like myself an amazing set of tools and an excellent group of thought leaders. Yet, we can look back now and realize how many silly ideas there were at the height of Java. I have long thought that Cairngorm borrows on some of my least favorite of these bad ideas, and now it looks like they are continuing down that road.

Now, they are attempting to expand from just a framework to some sort of Flex MVC framework think-tank. Yakov Fain’s reaction to this is priceless:

First, let me ask Java developers a question. Imagine that one day you wake up and read the following announcement, “As of today, Spring framework is the foundation for delivering of successful J2EE projects. In contrast to earlier versions, many parts apply across frameworks. So, if you are using Struts, JSF, and especially Tapestry, just forget about all these complex to pronounce names. From now on, no matter what framework you use, you are actually using Spring’.

Some of you would think, “Yakov is either out of his mind or is writing this blog sitting in one of the coffeshops in Amsterdam”. Wrong! I’m just reading an announcement about the upcoming release of the popular Adobe framework Cairngorm 3: http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm+3

When I first saw Cairngorm (post), it was easy to understand what they were trying to do, as the framework is so heavily influenced by the original version of Struts and the Core J2EE Patterns. Unfortunately, Struts was barely a fit for the original problems it was attempting to solve, and are completely inappropriate for building client-side applications within a real runtime. Struts used an adaptation of the MVC pattern called MVC2/Model 2, which was created to deal with building user interface within request/response model. This model is completely at odds with building a rich Internet application.

So, obviously, I find the move to hold Cairngorm up as a template for architecting Flex applications a bit concerning. Beyond that, one of the other things in the Java community that never proved to bring fruit was the desire to standardize anything and everything, which this idea seems born out of.  I am actually foggy at best with what they are trying to accomplish, and find it completely bizarre that they would try and morph a framework into this “thing.”  Do we really need some sort of Flex specific think tank on a long established pattern?  Also, it seems very bold to attempt to group the work of so many others under their umbrella.

Is this just an attempt to keep the brand name relevant of a framework whose time has come and gone?

Flash Player 10.1 and AIR 2.0

Posted in Jon Rose on November 17th, 2009 by jonr

jonr originally posted this on Jon Rose's Blog.

I haven’t been very active with writing for InfoQ.com lately. My lack of activity has been primarily due to time constraints, but has also been because I have been a bit bored with the recent RIA news. So, I was excited to get ‘back in the saddle’ with a post on the release of Flash Player 10.1 and AIR 2.0, as both releases are cause for excitement to anyone developing RIAs. The release will improve the development experience for Flex and AIR developers, but will also serve to move the ball forward in the space.

Here is my write up: http://www.infoq.com/news/2009/11/flash-10.1-and-air-2.0

Drunk on Software Special Episode from Adobe Max (Best Ever)

Posted in Drunk On Software, Jon Rose on November 6th, 2009 by jonr

jonr originally posted this on Jon Rose's Blog.

We have posted a special Drunk on Software episode from Adobe Max 2009. I personally find this to be one of our most entertaining episodes (not overly useful, but entertaining). So, hopefully it will make you smile on this Friday.

Honestly, this episode makes me wonder if our recipe for Drunk on Software success is more of Chet and less of James and I.

Original Post