Links News Contact Us About us Privacy Terms FAQ Add feedback Invite a friend Bookmark
Home Members Blogs Photos Groups Events Polls Forums Articles Boards chat
RIAguy's blog / technology - Posts
June 17, 2008June 17, 2008 Add comment1 comments technology technology

I have a problem with design patterns. I know - I should be thrown out the window by the development police. Design patterns are there to help developers use tested and appropriate ways of building software which includes tasks that are common to many programs. In that respect - they are just super.

My problem is that they are often, like many technologies, inappropriately applied. I was recently reving some javascript code which did a simple Ajax call to get some JSON data and stick it into a list. The developers (and yes there were more than one) built a complex, difficult to debug MVC (Model View Controller) framework for this task.

"Oh yes," I can hear you say, "but now that component can be reused and it has a known interface...etc...etc...etc." Sure, but I could have built a reusable component that did the same thing, with a known interface, with aboout 1/10th of the code. It would be easier to maintain, and it would perform better.

I can't tell you how many conversations about Flex I've had that began with someone asking me about PureMVC or Carngorm. They are both great frameworks, but they are not meant for every Flex application.

The wrong way to apply design patterns is to look for opportunities to apply them. You can honestly figure out how to apply almost any design pattern to any problem. The one and only right way to apply a design pattern is to start with a problem and find the best way to solve that particular problem. If the design pattern is the best way - then it's good. If it can be simpler, easier to maintain, requires less code, and more performant - then fantastic.

I personally find that a lot of MVC frameworks get totally out of hand and, rather than reducing complexity, make applications more complex.

Understanding design patterns is an impotant part of a devlopers knowledge set. Knowing when to apply them is wisdom. 

June 12, 2008June 12, 2008 Add comment3 comments technology technology

With so many RIA options out there, many people get confused about which technology to hitch their wagon to in order to build an RIA. Unfortunatley many RIAs are built with the wrong stuff. Here are some general guidelines to help you make better choices.

  1. Performance is still important. Consumers are even less patient now with poorly performing web sites. Just because a lot of people have broadband-speed Internet access is no excuse for building poorly performing web sites.
  2. Maintainability is important. The more complex your technology the higher the risk and cost of maintainability.
  3. Most applications need to support multiple platforms. IE, Firefox, Safari, Opera, the iPhone, Windows, Mac, Linux - are all major market segments. Understand which platforms you ned to support.
  4. Accessibility is important and may be legally mandated for your RIA.
  5. Re-use may be important from a cost management perspective.

Taking these things into account I try to use the strategy of choosing the simplest technical solution, with the least amount of code to maintain, that works on most browsers, that will support my requirements.

My technology ladder usually looks like this:

  1. Plain Old Semantic HTML (POSH) +  JavaScript
  2. Hand written DHTML / Ajax
  3. Flash
  4. Some Ajax toolkit (like Dojo, or Prototype)
  5. Flex
  6. A custom plugin (which I have never done)

Even though Flex is #5, it's sometimes the best solution for dynamic charting. Even though the toolkits like Dojo handle Ajax beautifully, I don't always want that much code to do a simple XHR. Flash is great for a lot of controls, and some charting applications.

I sometimes find that developers choose a technology merely because they are more comfortable with it. That is a compelling reason, however it doesn't lead to the best technology decisions.

TagsTags: ajax dhtml flash flex ria dojo toolkit 
June 9, 2008June 9, 2008 Add comment0 comments technology technology

I have had the unique opportunity recently to participate in several "proof of concept" tests building essentially the same application in Flex and in Silverlight. What I found were some interesting distinctions, rarely discussed, that should be helpful when choosing a technology.

One of the main advantages Silverlight has over Flex is that it is multi-threaded (note that this could be a disadvantage if you don't code properly). This means that highly performant web applications that rapidly update and receive tons of streaming data may perform better in Silverlight than in Flex.

Most web applications do not update quickly enough that this would matter, save for real time stock or news tickers.

With the same speed of data streaming in, Silverlight was able to update faster, and with less taxation on the CPU. Both Flex and Silverlight can handle a huge number of updates per second, and of course updates to the display are ultimately limited to monitor refresh rate and human perception.

One of the major advantages Flex has over Silverlight is visual display. Flex descended from Flash, an engine built for animation and graphics. It's animation smooth, graphics clean, and gradients smooth.  I personally find Flash CS3 to work a lot smoother than Expression Blend 2.5 March 2008 Prieview Edition. However, Blend 2.5 is still in Beta, so I will judge when I see the release edition.

JavaFX is severely lagging behind all engines.  You also have to be a Java programmer to design apps, because no good visual tools exist (although there is a declarative language for UI so one may not be far behind). However, a friend who just returned from JavaOne 2008 gave me some the lowdown on a very cool feature of JavaFX: With JavaFX, you can write an app that lives in a browser, can be torn-off onto the desktop, the browser can be closed, and the app is still running. This is a pretty impressive feat, that could have many uses.  I'd like to see it in action.

I should note that Flash Player 10 has just been released in Beta. It incorporates a lot of cool things including hardware based graphic acceleration. I haven't tested it yet. Also look for the project codenamed Adobe Thermo - which will help with the design of Flex applications. It's not yet in Beta.

Description
RIAguy
Posts: 5
Comments: 4
Rich Internet Applications and the Human experience. I write about technology I use - notable Flash / Flex / Silverlight and Ajax, and the way those technologies can make life better for humans.
Tags
2 ria (2)
2 ajax (2)
2 flash (2)
2 flex (2)
1 dhtml (1)
1 toolkit (1)
1 dojo (1)
1 design (1)
1 mvc (1)
1 cairngorm (1)
1 puremvc (1)
1 json (1)
1 patterns (1)
1 web (1)
1 gui (1)
1 microsoft (1)
1 javafx (1)
1 rich (1)
1 adobe (1)
Copyright © 2008 RIAspot.com