Archive for August, 2008

Grey Line

Just finished teaching a week long online class using the book “Flex 3: Training From the Source”.  Now I feel obligated to write (immediately!) that this is a really great text book for both teaching and learning Flex.   Well organized,  each lesson was timed, each lesson’s source code is included in the CD.  And here’s something that it’s hard to believe in:   THE BOOK SAMPLES WORK!  I know you won’t trust me, but I’m telling you… eight people in my class just went through them!  

Actually, here’s the funny story. We are on lesson 18. One student complains that an example with the WebService doesn’t work. I look at the error code – it’s an issue with the Flex SDK – one of the SOAP supporting classes is missing. It took me a couple of minutes to figure out that she was able to make it through the first three days of training using Flex Builder 2 as this is the license their organization has…

In general  – teaching a live hands on class where people are located all around the world is not for the faint of heart.    Forget about the fact that I taught hundreds of Java and Flex classes in the real classrooms. This is different. Teaching online requires good technical tools too. The audio conference on Skype went  well.  Adobe Acrobat Connect did a decent job with screen sharing.  But this book was a really big help for me.  Easy to follow, gives students and the instructor lots of flexibility – want to do all the exercises , go ahead. Want to skip one or two – just copy provided completed solution from the previous lesson.  The students/readers have successfully built and deployed an online grocery store.

The book has some room for improvement too. The chapter  18 has to be re-written and expanded – Flex RemoteObject deserves more than a couple of pages.  Plus, using Coldfusion as an illustration of the  server site technology  is a not the right choice .  I had to add a unit on my own explaining how this works in the Java world.   I hope that the next edition of this book will include additional lesson giving an overview of LCDS and BlazeDS too.  The timing provided for the lessons is real only if you are using this book in the instructor-led class. If you  are planning to learn Flex on your own with this book, you’d need to double the time. 

But overall it’s a great text book. At work,  I wear different hats –  developer, architect, trainer… but let me take all my hats off  to the authors of this book!

Yakov Fain

Comments

 

Grey Line

I’ve created a group at Linkedin.com for people who consider themselves Adobe Flex experts. To join this group, you must be Flex hands-on developer and have a Flex-related blog. Here’s direct URL of this group: http://www.linkedin.com/groups?gid=152226

Having a Flex-related blog is a must as a proof that you give back to the community.

Yakov Fain

Comments

 

Grey Line

360Flex got a little brother now. It’s called 360|Flex Camp. The first camp will take place in a month in New Jersey.  I knew this for a while but kept a secret – folks from New Jersey Flex Users Group had to take care of logistics of the event. Now it’s official, see details here. They are planning to add another 6 or 7  speakers.

As a part of this event, I’ll be running a full day hands-on Flex training on Friday. When I asked the organizers if they want it to be advanced or intro class, they simply answered, “It has to be an advanced introduction to Flex”. Sounds challenging, but I’ll come up with something to turn my students from “Flex, Who?” to people considering job offers for Flex positions. BTW, Farata Systems is hiring – we need a person who know Flex and Java for a very prestigious Wall Street company in New York City ($80-$85 p/h). Get in touch with me by sending an email at yfain at farataystems.com.

Yours truly,

Yakov Fain

P.S. I’m going to MAX, yey!   No speaking this time. During the day time, I’ll be sitting in the classrooms absorbing the knowledge, and in the evenings will be absorbing beer and networking with fellow Flex developers.

Comments

 

Grey Line

Tomorrow, I’ll be speaking in New York City at Enterprise Flex symposium.  If you can’t make it, on Wednesday, I’ll be speaking in the evening at New Jersey Flex Users group (see http://www.njflex.com/ for details).

Regards,

Yakov Fain

Comments

 

Grey Line

If you use Flex remoting and the server side Java sends DTOs (a.k.a. value objects), check out our new free Eclipse plugin called DTO2FX. I’ve recorded and published a screencast (17 minutes, 10MB), showing you how it works.

You can download the user guide of DTO2Fx at http://www.myflex.org/documentation/DTO2Fx.pdf.

DTO2Fx is a part of Clear Toolkit created by Farata Systems and is currently in beta. Please let us know if you run into any bugs by filling the contact form at faratasystems.com

Enjoy your DTOs,
Yakov Fain

Comments

 

Grey Line

As a part of our release of the Clear Toolkit 3.0 Beta, we made available  an Eclipse plugin called DTO2Fx. This is code generator for the ActionScript  data transfer objects used for Flex remoting based on their Java peers.

The tool also generates ActionScript interfaces from the Java ones.

You can download the documentation at http://www.myflex.org/documentation/DTO2Fx.pdf.
DTO2Fx  is available free of charge under the Mozilla Public License (MPL) as Farata’s contribution to Flex community.

DTO2Fx also supports working with enum types on both sides, but we just did not have time to document this feature. If you are interested in implementing enumerations in ActionScript, please read my blog on the subject.

We’d appreciate your comments.

Thanks,
Valery Silaev

Comments

 

Grey Line

Clear Toolkit 3.0 is a set of components, code generators, and plugins created by software engineers of Farata Systems that we were using internally in multiple Flex enterprise projects.  In September of 2008, we’ll release its private beta.  This toolkit will be available free of charge.

Clear Toolkit is not an architectural framework. It consists of a set of components that extend Flex framework and tools built on top of these components that substantially increase productivity of the enterprise Flex developers. Each of these components can be used independently when needed. Here’s what’s included in Clear Toolkit:

Components library is an swc file that includes a number of enhanced Flex components like Datagrid, ComboBox et al.

Clear Data Builder 3.0 is an Eclipse plugin that allows to generate CRUD applications for BlazeDS or LCDS based on an SQL statement or a Java data value object.

DTO2Fx is a utility that automatically generates proper ActionScript classes based on their Java peers.

Log4Fx is an advanced logger (Eclipse plugin) that is built on top of Flex logging API but automates and make the logging process more flexible and user friendly.

Fx2Ant is a generator of optimized ANT build scripts for your Flex Builder projects.

ClearBI 3.0 is a Web reporter for smaller businesses.  It includes an AIR-based report designer and flexible report generator that can be used by IT personnel as well as end users.

The beta version of Clear Toolkit will be demonstrated next week at the Enterprise Flex Symposium in New York City.  If you are interested in participating as a tester in private Beta program, please drop me a line at yfain at faratasystems.com

Yakov Fain

Tags:

Comments

 

Grey Line

We need to replace a consultant at one of our Wall Street clients.  This position requires onsite presence in downtown Manhattan.  Possible relocation to Jersey City, NJ. Compensation: $80-$85 per hour corp to corp. Can consider candidates that prefer working full time at Farata Systems.

Please send me your resume if interested at yfain at faratasystems.com.

Yakov Fain

Comments

 

Grey Line

I finally finished the slides for one day Enterprise Flex Symposium on August 19, 2008 in New York City. The first session I will be presenting goes through the differences between BlazeDS and LCDS and explains how to get all the functionality offered by LCDS with BlazeDS combined with some open source solutions.

The idea of this presentation came to me during one of the Flex conferences about 6 months ago. The presenter asked the audience of about 100+ Flex developers if they used Data Management Services. Only handful of them did. Hefty price, learning curve and general attitude toward payware seem to be  winning over advantages of excellent productivity and robustness of LCDS solution that is years ahead of commonly used techniques. Interesting enough, during subsequent conferences, similar question revealed that many more developers lean toward using BlazeDS.

So in that first session I will cover how to fill the BlazeDS gaps in the most important areas for enterprise developers:

– how to get virtually unlimited push scalability ( AMFStreamingEndpoints using new Servlet 3 NIO API )

– how to create Managed Data Collections and provide seamless integration of the data update / push through multiple clients

– enabling server-to-client RPC –  “the server calls the client”

– How to add quality of service, reliability and application protocols to both LCDS and BlazeDS

– how to generate PDF on the client ( I may move this part to another session devoted to reporting and data entry solutions for application developers)

All my code examples work with Adobe’s sample applications, with minimal changes on the server side  thus minimizing the need to re-train developers and providing an easy migration path.

I will post the slides after the event.

Hope to see you there,

Anatole Tartakovsky

Comments (1)

 

Grey Line

Three of the Farata’s Flex architects are working on the book “Enterprise Application Development with Flex” that will be published by OReilly in Spring of 2009. Even though we are always reviewing chapters of each other, we need one more external technical editor for this book (we already have one).

Check out the book outline below, and if interested, please write me an email at yfain at faratasystems.com explaining why do you think you can do this job. If you are selected, OReilly will sign a contract with you.

Thanks,
Yakov Fain

Update. This blog post helped us in finding qualified tech. editors for this book. Thank you all.
===

Book Outline

Ch1. Comparison of Flex Frameworks
The goal of any framework is to make the process of software development and maintenance easier. There are different ways of achieving this goal. Some people prefer working with frameworks that are based on the Model-View-Controller pattern, while other like dealing with class libraries of components. Each approach has its pros and cons. In this chapter we’ll build the same of how to build the same application using the frameworks listed below.

Ch 2. Selected Design Patterns
Design patterns suggest solutions to a common problems that arise during software development. Flex is domain specific tool that’s aimed for creating rich UI for the Web, and in this chapter we’ll discuss specifics of selected design patterns when applied to creation of UI with Flex.
Mediator
Observer
Data Transfer Object
MVC
Singleton
Class Factories
AsyncToken
Proxy
Code Behind

Ch 3. Building Enterprise Framework
Development of enterprise applications can be drastically simplified by providing framework to integrate work of programmers, business analysts, designers, DBAs and power users. Designers and programmers have well defined separation using CSS and skinning. Using Business Style Sheets (BSS) and business skinning techniques you can enjoy the level of customization and simplicity. That approach also provides high level of reusability of developed artifacts across enterprise applications. In this chapter we build framework that radically simplifies data entry and browsing applications by introducing and developing a component called BSS runtime manager.
Business Annotations
Extending DataGrid and Advanced DataGrid

Ch 4. Life Cycle of Enterprise RIA Projects
Typical Enterprise RIA projects are developed by mixed teams of the client and server side developers. This chaptercoversa varietyoftopics that development managers andteam leaders are facing: what skill sets are required for the project, how to set up a version control repository, is there a way to automate creation of build and deployment script. We’ll also cover the best practices for dealing with technical issues like memory and CPU utilization, logging errors across the tiers to make production support of the users more efficient.
Staffing the project team
Build Cycle (Automation of Ant scripting, deployment optimization)
Profiling
Logging
Flex coding conventions

Ch 5. Live Cycle Data Services. Best practices.
LCDS is Adobes’s implementation of Rapid Application Development environment for J2EE application servers. It automates data entry persistence, provides collaboration solutionsand makesfoundation forextending enterprise messaging to theendDusers browsers. In this chapter we will uncover LCDS innerworking and provide examples of building high performance solutions.
LCDS under the hood
Server push with Real Time Messaging Protocol

Ch 6. Open Source Networking Solutions for Flex Applications
Open sourcing of Flex framework in general and its communication protocols and server side components in particular play an important role in adoption of Flex by enterprises. While large scale applications most likely will be empowered by LCDS, the smaller ones will find open source server side components very useful. BlazeDS is an open source implementation of the highly compressed AMF communication protocol by Adobe, and this chapter will unleash its power illustrating both polling and server side push techniques with this cost effective and efficient solution for RIA. Third parties offer their versions of AMF implementation and we’ll provide a brief review of such software.
Communication protocol AMF
Data polling with BlazeDS
Server Side Push with BlazeDS
Third party AMF implementations

Ch 7. Flex Modularization and Enterprize Portals
While RIA with Flex are more engaging and user friendly than their DHTML peers, they have to be architected not as monolithic slow loaded monsters, but rather as modularized applications that initially load only the minimal amount of code with lazy loading of the rest of the modules on as needed basis. An enterprise portal is a natural container that can load these modules, but building RIA Flex based portals require deep understanding of Flex modules, challenges of the modules such as multiple initialization. On the other hand, Flex libraries can be constructed as self initialized entities that can be reused across portals and other applications. This chapter will offer portal solutions for cases when you have the luxury of building Flex portals from scratch as well as integrating into existing enterprise portals.

Ch 8. Performance improvements: perceived vs. real
This chapter continues the conversation started in Chapter 7. We’ll talk about actual vs. perceived performance of RIA, take a deep dive into self initializing libraries, discuss the use of application preloaders to make the first page of your RIA appear as soon as possible. Finally, we’ll make some suggestions on writing more efficient code in MXML and ActionScript.
Project Modularization with Self Initialized Libraries
Optimization of the Application Loading
Code Performance Tips

Ch 9. Workforce Automation with AIR
Enterprises are actively looking for cheap, reliable and secure ways to automate workforce. Adobe AIR is a new cross platform run time that combines conventional Flex applications with desktop API and embedded browser / database. In this chapter we will show how to develop Flex and AIR applications side by side, enable offline mode and develop mashups utilizing both AIR and server technologies.
Data Synchronization (connected/disconnected modes)
Google Maps and email integration

Ch 10. Developing Flex applications for LiveCycle ES
LiveCycle is an SOA platform that runs on Java EE application servers, and this chapter is about creating enterprise workflows using this tool. The reader will learn how to use a Web browser based UI written in Flex to streamline the part of the workflow that requires user interaction. We’ll cover the process of extending LiveCycle with your application specific services, and creation of complex PDF document. The large portion of this chapter explains how to integrate LiveCycle ES functionality with your existing Flex based applications.

Rebuilding workspace from sources
Developing and debugging flexlets
Configuring remote destinations and mapping them to the Assign Task service.
Using Task Manager Service API in Flex applications
Extending LC by plugging in your own services
Mastering LiveCycle ES Process Management
Creation complex multi document PDFs with LC Output
Service with further rendering them to Flex applications

Ch 11. Enterprise Reporting with Flex
Reporting is often one of the most time consuming tasks in developing of many enterprise application. Just using Flex printing API would require allocation of substantial budget and human resources. In this chapter we’ll cover the basic printing techniques as well as introduce ClearBI, a freely available Web reporter for Flex applications.
Printing in Flex
Working with PDF from Flex
Advanced reporting with ClearBI

Comments (2)

 

Grey Line

I’d like to share with you my experience of working with LiveCycle ES 8.2. This version has been released  in July of 2008. The letters ES stand for Enterprise Suite.   This tiger can do a lot of things.

LiveCycle ES server is deployed under a J2EE server of your choice utilizing EJB and Java servlet containers.  Its metadata repository  is stored in a DBMS.  But all this is hidden from people developing business processes.   It includes Eclipse based IDE called LiveCycle Workbench that allows them to create and configure business processes using graphic designer. For example, you can design a process of applying for a mortgage as shown below.  You connect users and processes by dragging line between the boxes – these connections are called activities, i.e. Approve, Reject.

Depending on the results of execution of each of the sub-processes hidden behind these boxes, the process goes into appropriate state and performs various activities.
The user interaction can be configured with minimal or no coding at all. For example, you can design a PDF form using LiveCycle Designer. A form is an interactive PDF file – the user fills out a mortgage application, and presses the button Submit on the form, which automatically sends an  email to one of the approving officers based on the requested mortgage amount.  Email end points are also configurable.   By the way, a process can be automatically invoked just by sending an email.
If you don’t like the user interface based on PDF forms, you can configure it as HTML or Flex-based UI. Again, you don’t have to program in Flex, the UI is auto-generated – just configure so called form guides with inclusion of audio/video fragments if needed.  If you  don’t want to deal with these code generators, write Flex  code yourself, and using API invoke the sub-processes in your own code.
The same form designed in LiveCycle Designer  can be rendered to the user either as PDF or as HTML or inside  Flash player. You can create custom renderers too. The augmenter service allows to enable PDF forms for online and offline use of PDF forms.

Interaction with the database is also as simple as  adding yet another box to the process in the Workbench.  On the property sheet configure the JDBC driver for your DBMS and enter an SQL statement. The rest is the same – the plumbing between the boxes is done via input/output variables. The results of one box execution goes  into a set of output variables through which the data is poured into another box via its set of matching input variables.
Another interesting feature of LiveCycle is the rights management service. You can configure document protection on various levels – for a user or for a group.  You can restrict access to the entire document or just not allow copy/paste its text.  And this can be done not only with PDFs, but also with Microsoft Office documents (.doc, .docx, .xslx, .xsl, and others).
An HTML based administrative UI offer you pretty intuitive administration and configuration  of processes.

I just mentioned some features of this powerful enterprise platform, but there is more: designing processes with events, branching out a process with so-called gateways (i.e. more than one person has to approve an application), digital signatures in your PDF forms, embedding  bar codes in your PDF forms to name a few.
Even though LiveCycle is a good product, it has room for improvement, that’s for sure.
LiveCycle Workbench  is slooow. If in the past I was complaining about Flex Builder, LiveCycle Workbench is even slower.  The startup of the server is slow. Adobe offers several turnkey downloads of preconfigured LiveCycle ES 8.2 with JBoss, WebLogic and some other J2EE servers.   I’m running LiveCycle on a server with 3Gb RAM and 2.8Ghz CPU, but restarting JBoss that runs LiveCycle ES can take 20 minutes.

The user interface of LiveCycle development tools is not great.   I’m surprised that Adobe, the company that creates excellent tools for designers, lags behind  in the area of tools for developers. The Workbench has quite a few things that cry for a good UI designer.

But despite these annoyances, LiveCycle ES is a very serious platform that helps in creating and managing long and short running business processes.  If you need to automate a business process such as  new account offering, secure work with customer documents  or an internal business workflow you can either configure it using a commercial BMP tool or build it yourself.  Based on our company’s experience, manual programming of just one activity like arranging and processing of user email notifications with attached documents can easily take a couple of months of for a senior developer.  With LyveCycle it can be done within a day.

The good part about LiveCycle ES is that you don’t have to use it as is. You can manually program your own front end in Flex that will invoke the processes, but reuse the other functionality that is readily available from LiveCycle ES 8.2.  Application developers will be more productive, if equipped with quad CPU machines and 4Gb of RAM.  I know that the LiveCycle Enterprise Suite  is  expensive, but  try to negotiate a deal and purchase only those components that you need rather than buying the entire package.

If you’d like to see a demo of an  application created with LiveCycle, attend a one day Enterprise Flex Symposium on August 19, 2008 in New York City. We are including a chapter on using LiveCycle in the upcoming book “Enterprise Application Development with Flex” that will be published next Spring by OReilly.

Overall,  I like the product.  Give it a shot a see for yourself.

Yakov Fain

Comments