Archive for November, 2004

Finding a suitable onLoad() replacement for Flex forms

We just returned from a wonderful two-week excursion to South Africa and now that I can no longer swing from trees (albeit with a harness) in Tsitsikamma or fling myself from a cliff (albeit with a rope) in Knysna, I've returned to the less life-threathening pursuits of my never-ending quest for best practices Flash and Flex development! And with that, here's my article for today, which I just posted to the Flex forums at the London Macromedia User Group:

Finding a suitable onLoad() replacement for Flex forms.

Off to South Africa!

Emilie and I are leaving for a three week trip to South Africa today and, of course, my notebook's hard-drive picks this day to die! All I can say is thank goodness for backups, source control and VPN!.. the poor thing is already booked in at the repair shop in Cape Town for tomorrow so hopefully it will make a full recovery before my MMUG presentation next week!

Aside from my talk at the MMUG and the three-day workshop I'm planning to use the time to finalize the roadmap for our newly open-sourced Ariaware RIA Platform. The first update, it appears, will be a Flash Communication Server service module for ARP, which we will be releasing shortly with aYo Binitie. You can catch a preview of it at aYo's talks on best-practices pattern-based RIA development with Flash and Flash Communication Server on Tuesday at IBM Bedfont Lakes.

Of course, it's not going to be all work and no play and from what I understand, we've got some great sightseeing planned for us including trips to wine farms, a bit of horse-riding and walking with elephants. I wonder if the elephants have Wi-Fi?

MMUG SA Presentation Update

I'm going to be leaving for South Africa on Thursday and it's just been confirmed that I'll be presenting my Best Practices Flash Development talk at the MMUG in Cape Town, South Africa on November 18, 2004. Come on down for 90 minutes of best practices Flash, ActionScript 2 and Design Patterns!

You can get more details from the MMUG SA Cape Town Chapter's web site.

SA Workshop Date Change!

Just a heads up to those of you in SA planning to attend my Best Practices Flash Development workshop in Cape Town: The dates have been changed to November 22-24, 2004.

Ariaware Optimizer Explained (Simply!)

I just responded to a thread on Ultrashock wherein one of our members was confused as to how Ariaware Optimizer works so I thought a simple explanation with an example might make it clearer. Here goes:

Flash compiles your AS classes into bytecode (instructions that the Flash player can read and understand) and places this bytecode inside your SWF file.

When you can multiple SWF files in your application that use the same classes, the bytecode for these classes is included in every SWF file.

So, for example, you have three classes, A, B and C and three SWF files SWF 1, SWF 2 and SWF 3. The compiled sizes of classes A, B and C are given below (this is the size of the bytecode that is generated)

A: 20kb
B: 15kb
C: 35kb

SWF 1 uses class A and B
SWF 2 uses class A, B and C
and SWF 3 uses class A and C

Now think about the size of your application. Assuming for a second that these are the only classes used by the SWFs:

Size of SWF A = 20kb + 15kb = 35kb
Size of SWF B = 20kb + 15kb + 35kb = 70kb
Size of SWF C = 20kb + 35kb = 55kb

Total size of application before Optimizer = 35kb + 70kb + 55kb = 160kb.

Now, what Optimizer does is it goes into each SWF, takes out the bytecode for the classes and makes a SWF out of each class. It then makes sure that each class is included *only once* for each application.

So, the total size of our fictitious application after Optimizer would be equal to the sum of the sizes of the classes or:

20kb + 15kb + 35kb = 70kb.

So, in this fictitious example, Optimizer would reduce the size of your application from 160kb to 70kb.

That, in a nutshell, is how Optimizer works!

Ariaware to present at IBM, Bedfont Lakes for MX Days

aYo Binitie, Lead Engineer for Flash Communication Server at Ariaware will be presenting two sessions at the MX Days training event at IBM Bedfont Lakes (UK) on November 16th.

His first session will be on Flash Video with Flash Communication Server, wherein he will be showing best-practices methods of integrating Flash Communication Server into a pattern-based Flash application. He will also be covering the development of scalable Flash Communication Server applications, based on our experiences in creating a clustered Flashcom solution.

aYo will also be presenting a session on Best Practices Flash Development -- the same presentation I gave earlier this year at Flashtival and the Belgian and Netherlands MMUGs (and will be presenting at around the same time in South Africa.) Of course, I'm sure it will be sprinkled with aYo's own unique wit and charm so I wish I was there to see it myself!

If you haven't done so already, you can sign up online to attend (it is quite a deal at £150 for the day) or get more information about the event from Macromedia's web site.

ARP: The Vision for RIAs

One of the biggest problems facing Rich Internet Application (RIA) developers today is how to architect their applications so that they are maintainable, scalable and can be efficiently developed in a team team-environment. Using the Ariaware RIA Platform (ARP) and the ARP methodology you applications will immediately benefit from the lightweight, pattern-based best-practices architecture provided by ARP. In essence, ARP answers the most difficult questions for you and provides you with a solid, tested foundation to build your applications upon.

Modern RIA teams contain an eclectic mix of developers, including UI designers, Flash and Flex developers, J2EE (or PHP, .NET, .etc.) developers, database developers, etc. In such teams, communication is a key factor in determining project success. Many Flash developers know only how to communicate in Flash-centric concepts such as the timeline and code scattered on movie clips. This makes it difficult for other members of the team, who have more traditional OOP knowledge in languages such as Java or C#, to communicate with client-side developers. The pattern-based structure of ARP makes it easy to talk about the client in standard patterns that are instantly recognizable to seasoned software engineers familiar in other OOP environments.

The pattern-based architecture of ARP also makes it possible for large teams to work effectively on the same project, allowing for the clear delegation and demarcation of responsibilities and communication through familiar patterns. It even allows server-side developers to help with certain sections of the client (for example to create the Value Objects and Business Delegates) and provides a strong contract between the client and server to make development and debugging easier across teams.

Badly structured, unmaintainable and unscalable Flash clients and lack of communication and understanding in development teams raises development risk and the risk of user rejection of your product. Implementing ARP following the guidelines in the ARP Developer's Manual, combined with adherence to an Agile development methodology such as eXtreme Programming (XP) and with elements of a User-Centered Product Development (UCPD) process will help you lower these risks and thus lower the overall risk of your project. (At Ariaware we call our combination of XP and UCPD, UCAPD or User-Centered Agile Product Development. I presented on UCAPD last year at CF-Europe and will be presenting on it again at MX-Europe in January.)

We have taken great pains to ensure that ARP is lightweight and does not impose unnecessary constraints upon the developer. Although intuitive and non-intrusive, ARP is a structural framework and proper use of ARP will ensure that the foundations of your application are solid. Built upon solid foundations, your application will be easy to maintain and scale.

ARP Version 2.0 is a fifth generation framework, having its roots in the framework originally created in Flash 5 following work on the world�s first virtual school in the year 2000. With each release, we were happy to be able to simplify ARP further, many times replacing functionality which we had built into an earlier version with built-in functionality introduced by Macromedia with each new release of Flash. Also, we took the decision to remove our utility library from ARP, thereby leaving a purely architectural framework able to interoperate with any AS2-based utility library. Subsequently, ARP has actually become less complex with each release � a trend that we hope will continue in the future.

ARP tries to capture a delicate balance in adapting current best practices to Flash in a performant manner that suits the limits of Flash while guaranteeing maintainability and scalability of the application.

ARP also supports Flex. In fact, all that is necessary to port a Flash application using ARP to Flex is to re-do your forms as Flex forms. This, of course, makes migrating between Flash and Flex a breeze (no pun intended!) :) More documentation on using ARP with Flex will be made available shortly.

ARP removes the uncertainty and risk involved in developing Rich Internet Applications. In releasing ARP as open source, we believe that we have removed the final barrier of entry into RIAs -- a move that we hope will boost this fledging industry into the mainstream of Internet applications.

We will also be maintaining, developing and supporting ARP in close collaboration with the best minds in the industry and providing commercial support and training for enterprises, development houses and individual developers. Further details of available support and training options is available in the comprehensive ARP Developer's Manual.

I will also be continuing my world tour on Best Practices Flash Development, giving talks at MMUGs around the world (next stop, South Africa). If you would like to arrange for an MMUG talk, workshop or consulting, please contact me.

Our vision for ARP is that it will become the defacto platform, a standard, for Flash and Flex-based Rich Internet Applications -- a common high-level language and methodology for RIAs allowing not just team members but disparate teams to communicate and interoperate efficiently.

The risk of developing RIAs has just been considerably lowered: What are you waiting for? Let's start the RIA Revolution! :)

Best Practices Flash Development hits South Africa!

[Update - note the new dates!] I'm going to be giving a 3-Day workshop in South Africa (Cape Town) from 22-24th of November on Best Practices Flash Development.

The workshop -- first presented in its 3-day form earlier this year to a very warm reception at the Swedish National Lottery -- is in some ways an extension of the 1hr presentation I gave at Flashtival and which I've been giving at other MMUGs in Europe. It covers Agile development process, User-Centered Product Development and pattern-based RIA development using ActionScript 2 and the newly open-sourced Ariaware RIA Platform.

By the way, I've gotten some more great feedback from my Best Practices Flash Development talk in Belgium last week. Here are some quotes that Peter Elst from their forum:

"Congratulations, once again a great night! You've really raised the treshold for next time, Aral is a fantastic speaker."

"Just one word for it: wow! Mike Chambers was cool, but Aral Balkan was the icing on the cake."

"First Mike Chambers, who was able to withstand any question that was thrown at him and then Aral Balkan ... wow! If he is ever in the neighbourhood to give a workshop, I'll be the first to sign up. That guy is simply a genius!"

You can read all the feedback on the Belgian MMUG forums.

By the way, I had a blast both in Belgium and the Netherlands last week and I'm really looking forward to my tour of South Africa. I will be speaking the MMUG there as well as giving a seminar at a university and doing the workshop in Cape Town. If you're in the area, check it out!

Ariaware RIA Platform Goes Open Source!

First Open-Source Pattern-Based RIA Platform promises new era of low-risk RIAs

Brighton, UK - November 2, 2004 - Ariaware today announced the immediate availability of their newly open-sourced Ariaware RIA Platform (ARP). Version 2.02 of the platform is the first best-practices, pattern-based RIA platform to be released and is already causing ripples of excitement in the Flash community.

For the first time ever, Flash-based RIA developers have a lightweight, structural, pattern-based framework for lowering the risk and development time of their applications and web sites. ARP makes it possible to quickly create maintainable and scalable RIAs and allows developers and development teams to overcome the initial stumbling block of how to structure their applications.

ARP is a 5th generation platform that has already been put to the test in numerous real-world RIAs. Earlier this year, the Swedish National Lottery was trained on ARP and ARP has been adopted and used by companies such as Pixl8 in London, Werk3AT in Austria and Eight Media in the Netherlands.

ARP is written completely in ActionScript 2.0 and supports form-based RIA development with Flash MX 2004 Professional Forms or the lightweight ARPForm alternative. ARP also supports Flex development and allows for the easy migration of Flash projects to Flex and vice-versa.

Ariaware announced that it will be providing commercial support and training for ARP effective immediately.

Availability

Ariaware RIA Platform version 2.02 is available immediately at:
http://ariaware.com/products/arp

Licensing

All ARP source code, including sample applications, is released under the MIT license. A copy of the license may be found in the ARP Developer's Manual as well as in the source code.

The ARP Developer's Manual and the content of the ARP web site is released under the Creative Commons Attribution-NonCommercial-ShareAlike 2.0 license.


Creative Commons License

About Ariaware

Ariaware is a UK-based provider of Rich Internet Application tools, training, consulting and development. http://www.ariaware.com






Bad Behavior has blocked 0 access attempts in the last 7 days.