5 Replies Latest reply on Jun 4, 2007 8:31 AM by sandersky

    Is Flex for me?


      We have a large application that does project management, time sheets and collaboration (calendars, web folders, etc.) written in Spring and Hibernate and we are looking to move it to a new UI framework. Flex looks interesting but I have a few questions and I hope some flex gurus help me out:

      1) Size
      I noticed that a simple hello world swf file is about 200K. Should I be concerned about size... since the server could be on the internet and not necessarily on a local machine. If a person on the internet is going to face several lag times... say when he moves from his "View Project Tasks" screen to "My Calendar"... then flex is not for me.

      2) IDE
      IDE is not cheap but worth buying for $500. But works only on Windows... any plans for Linux? I have tried the linux hacks on the net.. works some times... not enough for writing a serious application.

      2) Remoting.

      Flex introduces a new set of issues with its web services model. Web Services today suck. Nobody can write serious applications using them... maybe a blog reader or some intranet apps for fun. I have tried XFire and I couldn't get it to run with Java generics and it had probems handling my object model (circular references through getParent(), lazy proxies etc.). I have not written my object model so that I can dumb it down again.. so that it works with a web service. What's the point?

      The only option being Remote Objects. Now there is a catch. The open source alternatives have a BIG QUESTION MARK ATTACHED TO THEM. GDS is 0.2 and looks like a couple of people are working on it. OpenAMF has no news for the last one year and their documentation sucks... both of them good for fun but not for real stuff. I cannot invest time and energy in things that could crash in the future. I have got burnt once big time... chasing will-o-the-wisps.

      I don't need the advanced features of FDS, just remoting but FDS is no option because we sell our product and customers install it thems elves. It would be ridiculous to make them pay for FDS since our product sells for about 2.5k USD on average... and asking them to install it on a one CPU machine...is taking them back to the computer stone age.

      My question comes down to whether Flex is meant for "fun" or "small time" web applications or for some real serious ones and if the answer is latter, then what are my alternatives? I got quite excited reading Bruce Eckel's article and was even more excited reading the components and getting started guide but it seems to me that I am bound in chains.

      Maybe it's not what I think it is and there is a nice path out there. Can some one show me the light?


        • 1. Re: Is Flex for me?
          JKohn99 Level 1
          Here's my 2 cents based on your questions:
          1) size
          Typically a flex app is a single download so so once downloaded moving from page to page is very fast. Don't think like a web app where you do a trip to the server for every page. Flex also supports modules so you can control what is loaded more precisely.

          2) IDE
          I'm not a command line type guy so I thing the ide is worth the money. I use visual design mode alot when first laying out my applications. Also the features built into eclipse (like code hinting etc) are really key for me. It boils down to a personal choice and development style. I've certainly met lots of developers who are happy to code in Notepad, so if you're one of those then may be the ide is not worth the $. I don't know if Adobe plans a Linux version but they do support windows and mac.

          3) Web Services
          We use webservices alot and don't think they suck. Our interfaces are all xml based and we are quite happy with how it works. If you want to go with remoting because of the binary protocol then you're kind of stuck with fds or one of the open source alternatives. We've found that because the trips to the server are only for data the more verbose web services calls do not impose a performance issue.

          • 2. Re: Is Flex for me?
            JKohn99 Level 1
            Let me add:

            Flex is for serious development and not to play around. There are lots of examples of serious apps emerging built in Flex.
            • 3. Re: Is Flex for me?
              ngdaddikar Level 1
              Thanks for your comments. I am a newbie as you must have figured out so some questions can be really dumb.

              1) Size.
              So I will/should have only one SWF file for my entire app? Won't it mean that the app will be "loading" for a long time?

              3) Web Services
              Didn't you have to dumb down your object model to get it to work with Web Services? I know there is the "DTO" or "valueObject" pattern but there is lot of code-duplication and I have to dumb down even my Service methods. Don't you use hibernate, Java generics? I am very interested in how you got it to work.

              Thanks again.
              • 4. Re: Is Flex for me?
                davidmedifit Level 1
                Regarding #1: Alot of people see "hello world" as a 200k app, and figure twice the text would be 400k - it doesn't work that way. No matter how large or small your application, a certain overhead is incurred.

                I would advise one SWF per application, but that would depend on your particular situation, business rules, etc.

                There is good documentation on the Adobe site, and on the blogosphere for speeding up apps - it comes down to good coding practices (just like in any language).

                Also, you can stagger the items that are loaded, and when they are loaded - all at once, or when needed. Because Flex is asynchronous (unlike the traditional html web based apps we have right now), you can load some design items and get the users attention, while other items are loading in the background.

                I don't know about dumbing down web services - depepnding on whicha language you serve them in, they can be quite complex (I use ColdFusion). They are public, though, and that may not be what you want. You can look at the other manners of communication such as HTTP headers (get, post, etc, look up REST - it's turning out to be quite popular these days). You can call Java objects, or, if you are a ColdFusion shop, get a direct link, if you are running version 7.0.2+

                Hope that helped some.

                • 5. Re: Is Flex for me?
                  I am new to Flex but I am designing a pretty big app that loads really quick as of right now, even if I add a lot more it will still load relatively fast so speed shouldn't be a big concern in my mind. As far as IDEs go FlexBuilder is really easy to understand and use which makes it worth the cost if you can afford it. Good luck.