Saturday, January 30, 2010

RIA

Silverlight... Flex...

I've gotten my hands dirty with Flex 3 and didn't particularly like it. The emphasis on doing binding and pushing some of the dynamic functionality to the markup is unappealing. Furthermore, Flex, if you are not doing a mash up of services, tends to push you towards a 6-tier solution (unless you are using Adobe Air). You will need to have 3-tiers for developing your web services and a quasi-3 tiers (I managed to create 3 separate projects and link them with much effort) for your Flex application. Regardless, I didn't like it.

Enter Silverlight. I'm installing Silverlight 4 beta right now. Over the next few weeks, I plan to report back to you on how good (or bad) it is. However, Silverlight does look promising. If you are an idiot... err... I mean someone who likes to push binding to the markup it seems to support that, but it also allows you to do stuff programmatically, or so it seems. I'll let you all know shortly.

I'm still a fan of CSS/HTML/Javascript for most website development. Let's see if Silverlight can convince me the future is now.

Feeling Optimistic

3 comments:

  1. I'm a big fan of flex, it's my go-to framework for small applications and I can usually whip up something functional in an hour or so. It's far from perfect I'll agree, but how did you end up with three tiers in your client application? That seems excessive to me.

    I've never tried Silverlight, but I would be hesitant to release something that required it because of the small install base. I went looking for some figures to back up my assumption and found that Statowl says only 40% of people have Silverlight installed: http://www.statowl.com/silverlight.php

    Still, I'm looking forward to reading what you think about it :)

    ReplyDelete
  2. I totally agree about Flex projects ending up with too many layers. For anything large-scale you practically need Flex to be its own MVC on top of whatever separation you're already using. I'd be interested to see how Silverlight works in that regard; hopefully the back-end integration will be a bit more fluid.

    ReplyDelete
  3. David - I ended up with three tiers because I wanted strong separation of permissions from the view and the data.

    To do this, I created a 'business' layer project that was referenced from the main flex application. The business layer would then have a reference to the data layer (not a true data layer as it was just adapters to consume services and push to services). This prevents getting lazy and just going to the data/model directly from the presentation layer.

    However, without much built in support for connecting directly to commercial databases, (realistically it's necessarily a good idea to do this since we are talking client-side) flex solutions tend to be bloated, you always need to build a giant application server to expose services etc...

    ReplyDelete