Monday, December 29, 2008

One RIA Framework to Rule Them All

I took some time on this holiday break to start experimenting with Silverlight and Flex, neither of which I have any experience with. While I was toying around with them I started thinking about the dizzying number of the RIA framework options.

With Silverlight I really liked developing in Visual Studio, it was intuitive and fast. I also liked that fact that I could use XAML to markup the layout, then back it up with C# for the event handling.

Flex looks good too. I especially like the fact that you can mark up your presentation in an XML format (MXML), similar to XAML. I am not a fan of ActionScript though, but I will have to see how east the IDE makes editing the code when I get that far.

Then there is GWT. Well, I liked that so much that I wrote a book about it. I like the fact that I can used my editor of choice (Eclipse), code in Java, and it is open and free.

I once used Ext-JS on a large project, and although it looked great it was extremely painful. When I got done the code was completely unmaintainable.

I have also dealt with Scriptaculous, Prototype, DWR, and other tools over the years, but for smaller projects that probably can't be considered RIAs.

Then there is Wicket, Echo2, blah, blah, blah... so many to choose from!

So which is best? I am partial to GWT, mostly because I know it the best, and it is free and has a great community. On the other hand, I could get used to Silverlight (although the cost can be prohibitive).

If you have an opinion I would like to hear it.


Justin Rudd said...

I like GWT as well. I've also found jQuery to be very nice especially with a few choice plug ins.

As for Silverlight being expensive, you can actually do everything with the free tools that come from Microsoft - Visual C# Express and Visual Web Developer Express. It's too bad there isn't a free Blend tool, but I've found I'm more productive just with XAML than Blend.

Anonymous said...

We use both Ext GWT and Ext JS. Both products produce great applications. Not sure about your code, but we got trained by Aaron C. With Ext best practices under our belts (before undertaking our project) we had great success. Given that you liked the end product of using Ext JS, give Ext GWT a try its very impressive and might be more manageable for your organization.

Robert Hanson said...

> It's too bad there isn't a free Blend tool


I didn't actually try out the MS Blend tool yet (only read about it), so I don't know how comparable it is, but I found out that Inkscape (free) can export to MXML. I found it a little buggy, but a good start.

> Not sure about your code, but we got trained by Aaron C. With Ext best practices


We are not a JS shop, which may be part of the problem, but I find that large JS projects are difficult to maintain due to the lack of good tools (refactoring, documentation, etc). I did recode the app using GWT-EXT (Not EXT-GWT), and it is was far cleaner, but I still had to deal with annoying CSS issues and it just wasn't "snappy" because due to the size. I ended I recoding it (again) as a Swing WebStart app and it solved a lot of UI and maintenance issues for me (e.g. I was able to use Spring). WebStart made sense for my specific audience, but if it had to be a web app, Ext-GWT would have been the way to go.

Anonymous said...

Curl is the best!

Vinmaster said...

I've been toying around with other RIA frameworks and so far Flex is the one to beat. I would have really loved to use GWT but the lack of a declarative UI and its shoddy documentation were a major turn-off for me.

It's new UiBinder tool is coming along nicely, but I would still like to see it more developed in the eclipse plugin.

I make mention of GWT's documentation because of my exposure to Flex's API documentation. GWT's API docs are so confusing and lazily put together IMHO

Robert Hanson said...

Hi Kevin,

> I would still like to see it more
> developed in the eclipse plugin.

Have you looked at Google's GWT Designer? It has been around as a paid app for years and is now free.

Also ... Flex doesn't work on the iPod/iPad/iPhone. I am slowly watching my mobile users rise every month. At some point Flash just won't be viable unless Apple allows it to run on their devices (or Apple takes a plunge).