views:

966

answers:

10

My group is about to start doing a big web based project/application. The app. itself will not be used by many people and it is basically only for Intranet use for managers and application developers. Our boss wants our programmers to use the following tech. stack: FLEX -> Cairngorm -> BLAZEDS -> JAVA (EJB3 + POJO) -> ORACLE DB Some of the developers are saying that it is hard to use FLEX stuff (because they need to learn FLEX and Action Script) but others are saying that FLEX is the only best solution (just because they like how flex works and they saw a lot of examples).

Do you think it's worth it to use flex or we should use some frameworks (ex.: JSF) instead.

+3  A: 

Flex is a pretty powerful UI presentation technology. What it seems from your question is that you would have lots of data being presented in the UI layer, where Flex seems to be the perfect choice (except in case where you want to handle all the pains of doing it via JSPs etc.).

Caringorm helps you apply MVC pattern to Flex UI layer - similar to what Struts/Spring MVC does to JSP layer.

For JAVA, I would recommend using Spring-enabled services and POJO instead of EJB3 to achieve the effect. Using spring-enabled services and/or webservices would help you scale better and lead to lower cost of maintenance, as you business logic is in POJOs.

Again this is a personal opinion based on my own experience.

Sandy
EJB 3 is awesome, I am using without any pain. And there are cases where other techs like Spring suits better. But can't push it down by saying high-maintenance-cost, don't-scale-well.
Adeel Ansari
I agree EJB3 has a lot of power specially with distributed transactions, which you can't achieve through webservices. But scalability is easier with webservices in place with clients detached in terms of technology. POJOs are always easier to maintain and are very loosely coupled.
Sandy
+5  A: 

Flex has a markup piece (MXML) and a programming language piece (ActionScript). There isn't much of a learning curve for the MXML part. It's completely straightforward. ActionScript is a different story but I guess it's tough for me to take seriously the idea that Java developers (I'm one myself) would find Flex in general or ActionScript in particular "hard". I and a team of about five or six other Java developers were creating basic UIs on the very first day, and within a week we were doing some pretty functional stuff.

Totally subjective opinion I know, but it's completely worth trying out. Flex is just really fun.

Willie Wheeler
+1  A: 

keep in mind that there is a very large Flex user community out there to lean on and if you're thinking Flex, you may as well look at Air as well which will provide you out of browser deployment

jottos
+1  A: 

You should check out Exadel Flamingo. It allows you to easily hook Flex into a Java backend (eg. Spring, Seam etc)

I'd recommend Jboss Seam for EJB3+POJO.

Damo
+2  A: 

Check out the Tour de Flex for examples of what Flex can do and how to do it. It has some Java integration samples in it as well.

James Ward
+2  A: 

It's not hard to learn MXML and Actionscript. But the data binding and all of the various classes and components can be kind of obscure sometimes. Also, learning to customize components and do more advanced stuff can have a learning curve.

Learning Flex and Cairngorm at the same time is not recommended, even by the the Cairngorm folks themselves. It is definitely a very fast and easy way to deploy applications, but learning the best way to use Flex is hard enough, and throwing Cairngorm into the mix when you don't know how flex works might be frustrating, but very rewarding. I am using Cairngorm in my latest project, and I wish I had used it in some of my previous applications.

Here are some resources:

Good article to help decide whether to use Cairngorm

"Introducing Cairngorm" written by Adobe Customer Training

Adobe's 6 part series introducing Cairngorm with an example walk through

Osman
+1  A: 

You might also want to look into Grails as an integration point. There has been a lot of recent work being done here at it can save you a lot of time. Specially take a look at the graniteDS plugin for Grails and the Flex Scaffold Plugin

http://www.grails.org/plugin/flex-scaffold http://www.grails.org/GraniteDS+Flex+Plugin

+4  A: 

I wouldn't jump into a whole new technology based on seeing some examples. It sounds like a major Risk Factor for your project, at least based on your (surely unbiased) description.

There is, however, a generally accepted course of action. Your group should at least start with a Proof Of Concept microproject and draw your own conclusions based on what you find out, your skills, and the project.

(I might do it if the boss says I must, however. Although that in itself is a noxious odor.)

le dorfier
+2  A: 

I would recommend SEAM Framework with Granite-DS and Flex.

The only problem with this is the steep learning curve, but technically from my point of view its the best combination.

A: 

I think you'll find way more support for using a Java Applet in the user interface instead of Flex. By support I mean libraries, forums, and tutorials. I've been looking at Flex for only a little while so far, and the search results I'm finding are geared less towards developers, and more towards non-developers trying to make pretty things. I'm of the opinion that there's nothing wrong with Java applets as a front-end, and I think more people will come around once Java shortens the VM's launch times (a current priority for the next release).

If Java applets are a point of contention, then there's the Google Web Toolkit (GWT). It allows for full development and testing and debugging within your Java development environment, but then deploys automatically to an HTML / JavaScript. Absolutely Fantastic. Their third party components have really come a long way, and their user support makes the choice an easy one.

Less languages = less mind-stack swaps.

Kieveli