So, to make it more visible, here's a link to that:
How to work with external forms (external SWF files) in Arp.
The code in there is for Flex 1.5 but the technique is the same regardless of whether you're using Flash, AS2, AS3, Flex 1.5 or Flex 2.
Aral on Flash, SWX, Flex, ActionScript, and life.
So, to make it more visible, here's a link to that:
How to work with external forms (external SWF files) in Arp.
The code in there is for Flex 1.5 but the technique is the same regardless of whether you're using Flash, AS2, AS3, Flex 1.5 or Flex 2.
I'm going to be presenting a session called Memo to the CEO. This is the session I've wanted to present for the longest time but somehow I kept finding myself presenting on some technical aspect of Flash development or other (AS2, AS3, Flex 2, etc.) Don't get me wrong -- I love developing and I love Flash and Flex but there's much more to creating web applications than typing code till it's done. Much more, in fact.
In my session, I talk about the high-level decisions that development houses can take to make the development process a fun and relaxed experience. Topics covered include User-Centered Development, usability design, user interface design patterns and usability testing, agile development, eXtreme Programming (XP), and software design patterns and application architecture.
Anyone who has anything to do with development will benefit from the session but the person who will get the most out of it -- and the person who can actually implement these processes, by allocating a budget for them -- is the CEO. So, people, grab your CEOs and come down to Flash on Beach!
If your CEO resists, give her my memo:
From: Aral Balkan
To: CEO, Web App Construction CO. (WACCO)
Houston we have a problem: According to recent studies, 50-70% of all IT projects fail. Development teams toil under unrealistic deadlines and implicit expectations for usability and accessibility that are impossible to satisfy. Many of us are stressed out and unhappy on a daily basis. And it doesn't have to be this way.
If you want happy developers and projects that succeed, there are three simple things you can ask them to do:
1. Use an agile development methodology such as eXtreme Programming (XP) and work in iterations.
2. Use a user-centered development process. Your teams must capture quantifiable usability requirements and you must budget to cover usability testing in every iteration of development.
3. Use software design patterns in the architecture of your applications to provide a common high-level language for your developers and take advantage of time-tested solutions to common problems.
All the best,
Aral
I wanted to play with the .NET version of the ARP PizzaService application by Mark Piller on WebOrb for .NET so I thought I'd try it out under Mono on OS X. Unfortunately, WebOrb for .NET only appears to be available as an MSI and thus I don't seem to have a way of installing it on OS X. (Not that it was guaranteed to work under Mono but I was hoping it would.) In any case, Mono is very cool. It's basically .NET for Linux/OS X/etc.
To test out ASP.NET on OS X, install Mono on OS X, then open up a terminal window and go to /Library/Frameworks/Mono.framework/Home/lib/xsp/test. There, type xsp to start a development server and open up http://localhost:8080 on your machine to view the ASP.NET samples.
Cool, huh? I'm off to play with WebOrb for Ruby on Rails with Flex 2.

I've committed the first working version of Arp with AS3 and Flex 2 support into the Arp SVN repository.
You can check out just the AS3 version of the framework from:
http://svn1.cvsdude.com/osflash/arp/trunk/as3/
See just the code for the Flex 2 version of the PizzaService sample application here:
http://svn1.cvsdude.com/osflash/arp/trunk/samples/PizzaService/client/flex2/
(You can use Import... -> Existing Projects into Workspace to import both of those into your Flex Builder 2 workspace.)
The current Flex 2 version of the PizzaService sample application is a port of the Flex 1.5 version. While migrating it, I found that there wasn't support in Flex 2 for migrating applications that use AMF0 remoting (i.e., those built in Flex 1.5 and lower that use Flash Remoting). Instead of using the
The PizzaService application in Flex 1.5 defines a service in the ServiceLocator as shown below:
[as]var pizzaService:Service = new Service ( gatewayURL, null, "PizzaService", null, null );[/as]
In Flex 2, the call is slightly different and you use the new AMF0Service class in Arp 3:
[as]var pizzaService:AMF0Service = new AMF0Service ( gatewayURL, "PizzaService", null );[/as]
Similarly, in Flex 1.5 you call a server-side method through Remoting as shown below:
[as]var pizzaService:AMF0Service = ServiceLocator.getInstance().getService ( "pizzaService" );
var pendingCall:AMF0PendingCall = pizzaService.order( orderVO );
pendingCall.responder = new AMF0RelayResponder(this, "onResult", "onStatus");[/as]
To do the same thing in Flex 2 is as easy as replacing the Service, PendingCall and RelayResponder classes with the new migration classes provided in Arp 3 -- AMF0Service, AMF0PendingCall and AMF0RelayResponder -- as shown below:
[as]var pizzaService:AMF0Service = ServiceLocator.getInstance().getService ( "pizzaService" );
var pendingCall:AMF0PendingCall = pizzaService.order( orderVO );
pendingCall.responder = new AMF0RelayResponder(this, "onResult", "onStatus");[/as]
I want to thank Mike Potter for his RemotingConnection class, which extends NetConnection and makes AMF0 work in ActionScript 3. Arp 3 makes use of Mike's class.
This is a preview release of AS3 and Flex 2 support in Arp. As such, I'm releasing it without having tested it extensively. Please feel free to report issues in the comments of this post or to contact me directly with bug reports, etc. I am planning on creating another version of the PizzaService application that makes extensive use of Flex 2 features such as data binding, states, the
Known issues:
I got back from presenting at the Multi-Mania conference yesterday and, after taking part in three sessions (including the OSFlash panel) and partying all night, I proceeded to sleep the day away, waking up only to join Andy and the rest of the troops at ClearLeft for their one-year birthday party. (Where, I'm proud to report, I stuck mostly -- mostly -- to water!)
My first session was marred by a spat between the projector and my computer (some sort of lover's quarrel, I believe, from what I overhead and could make out with my limited knowledge of Binary) which meant that I was forced to improvise the session using Ronald's computer. In retrospect, it gave me the chance to cover the architecture of the View in Flash applications, stress the importance of encapsulation, and muse on inheritance and composition at greater length than I would have been able to otherwise. And thanks to Ronald taking the initiative, I got the chance to present my original session later in the day in a different room with a different projector. (Two sessions for the price of one?)
At my second session, I demonstrated the ActionScript 3 version of Arp for the first time ever (having finally gotten time in Belgium to hack it out and get it working at 3am before the day of the talk) and showed the audience how Arp allows you to reuse your knowledge across every technology on the Flash Platform, including ActionScript 1 and 2 with the Flash IDE (outputting to Flash 6,7,8, and soon 9), Flex 1.5, AMES and now, ActionScript 3, and Flex 2.
As part of porting Arp to ActionScript 3 and Flex 2, I created a migration layer for Flash remoting that allows Arp applications written in ActionScript 2 to be ported to ActionScript 3 without huge interface changes (you basically replace the standard Service, PendingCall and RelayResponder classes in AS2 with the AMF0Sevice, AMF0PendingCall, and AMF0RelayResponder AS3 classes in Arp.) The Flex 2 version of the PizzaService sample application, for example, uses these classes to talk to the same AMFPHP back-end that all of the other versions of the application talk to.
Even if you do not use the rest of the Arp framework you can still use these classes to keep talking to your existing remoting back-end when migrating your application to ActionScript 3.
I will be checking in the new code to the Arp repository over the weekend and I'll make another blog post when I do.
Here's a big thank-you to Ronald and Koen and the rest of the Multi-Mania crew from Departement PIH of the Hogeschool West-Vlaanderen for organizing such a wonderful conference and for taking such good care of us while we were there. Belgium is very lucky to have such a world-class technical university staffed by the youngest, most motivated faculty I've seen (I thought that the volunteers I saw at Multi-Mania were students and they all turned out to be lecturers and professors at the programme.) You guys have truly altered my preconceptions of higher education in our field -- it apparently is possible to have a cutting-edge university programme in multimedia. I only wish I had attended such a programme while doing my own undergrad and grad degrees.
Can't wait to see you guys again -- you rock!
[Update] Christophe Herreman and Nicolas Lierman have also blogged about the event.

Andrew Eatherington recently shared his Arp success story with the OSFlash mailing list. Andrew used Arp in his project to build the Nutrition Counter RIA for the McDonald's UK web site. I may not eat at McDonald's or support their business model but the application itself is a very good example of a clean, good-looking and useful RIA.
The application was built using Arp and the WebServiceConnector. It is published for the Flash 6 player.
To quote Andrew, "Its a first for me and I have enjoyed trying out ARP in the 'real world'. Look forward to many more."
You can view the Nutrition Counter in the "Eat Smart" Section of McDonald's UK.
You can learn more about Arp and other open source Flash projects on OSFlash.
The Arp and OSFlash mailing lists have been getting a couple of success stories recently and I thought I'd share the latest two with you.
Sander Wichers recently wrote to the Arp mailing list to tell us of his sucess in using Arp to build the Netherlands web site for Heineken:
I've used ARP extensively in a project of mine (www.heineken.nl); ARP was one of the main reasons I was able to split the workload between a couple of developers! The entire site is feeded with data from a service oriented CMS and all the backend communication is done using ARP. Another big thing in this project was the way it has been split up. Each module is responsible for it's own communication and can be run and debugged on it's own. To keep the files small we've used Asigen (osflash.org/asigen) for the generation of intrinsic classes, so there is no redundant code within the modules, this gives us very (yes, very) small files!
It's great to see Arp being put to such good use. What I love to hear most is how using Arp improves the daily experience of developers. Because, at the end of the day, it's all about having a good time developing, instead of getting frustrated and losing hair. I guess you could say that I see Arp as a wellfare enhancer!
The second success story was sent to the OSFlash mailing list yesterday, by João Saleiro. He is a student in the Computers and Telecommunications Engineering program at ISCTE in Portugal and decided to create a Flash-based RIA for managing modeling agencies as his graduation project.
We were using the Flash IDE, but at 29th March,2006 I’ve seen a post on the king Aral Balkan’s site [flattery will get you everywhere, João, *blush* - Aral], titled “Open Source Flash Case Study for TradingPost.com.au”. Quoting: “In the study, Edwards mentions how their use of open source tools saved them over 110 hours in compile time”. I’ve got curious and started investigating on open source flash technologies.
Today, after two months, I’m proud to present an almost finished prototype of our application, at http://www.webfuel.pt/castingoffice/ . After cleaning for bugs, the current version is for presenting at faculty on July, and the final version of the application will only be finished on October. Probably the application will be a bit slow depending on your internet connection, but it is intended to be run on a LAN, so connection speed will not be a problem.
What can I say? Congratulations João! It's looking good! ![]()
In his email João says "I hope you like it (opinions are very welcome)… if you do, our teachers will surely like too! (as we hope so)". Well, I for one definitely believe you deserve an A+.
The login for the site, by the way, is osflash/test.
The list of open source applications that João used for the project include MTASC, AMFPHP, Eclipse+ASDT+ANT+AnyEdit, ASWING, ARP + extensions (Herreman’s Configuration and Locale; Grant Davies’ Command,System Controller and ServiceDelegate; and some modifications we’ve made), PHPThumb, PHP and MySQL.
Go, OSFlashers! I keep saying it, but I'll say it again, you guys rock!
Bad Behavior has blocked 0 access attempts in the last 7 days.
Recent Comments