Sunday, March 30, 2008

AJAX vs RIA's and Flash vs. Silverlight

In a question from the audience, I was asked to describe the differences between various technologies AJAX, Flex and Silverlight.

To start, AJAX is not a new concept, some of the elements such as the XML HTTP were available in very early versions of browsers.  That said, you needed quite a bit of skill to and effort to implement.  Specification and creation of JSON and WSDL have helped to mature this technology and actually make it not "rocket" science to implement.

AJAX vs RIA

Comparing these is quite difficult and full of debates, but here are a few items of note:

AJAX Pros

  • does not require any browser side plug-ins to work
  • Cross browser capable
  • Server-platform neutral
  • ASP.NET provides a fully integrated developer experience
  • provides enhanced user experience.

AJAX Cons

  • cross browser behavior is complex, new features and browser caps change with every version.
  • very limited local storage (using cookie only)
  • no pixel level support
  • other IDE behaviors is not
  • Limited mobile support

RIA Pros

  • Rich and sophisticated user interface possibilities
  • local and disconnected state
  • network API (other than HTTP)
  • Extensive development environment and debugging

RIA Cons

  • rich graphics still require work from designers
  • requires an browser plug-in
  • Network download is sometimes large

With all things considered, there are pros and cons how each technology can applied. As such, it is important to understand the business requirement and strategy when making these choices.

I my humble opinion, RIA represents the next evolutionary step of user interfaces for the web, mobile and other alternative user interface technologies to desktop.

Flex/Flash vs Silverlight  or RIA's

Flex and Silverlight are a new generation of technologies that we have began to commonly refer to as Rich Internet Applications or RIA technologies. 

Today there are a few choices when you develop RIA applications.  You can use Flex to develop Flash based RIA's, or Visual Studio 2008 can be used to develop Silverlight applications.

In an effort to not say what have already been said, a few months ago as I was doing some evening reading, I have stumbled upon a very interesting (although lengthy post) which compares the two technologies.

http://silverlight.net/forums/p/634/1076.aspx

This is a fantastic post, in part because it provides great detail regarding both technologies but also because it is being responded to by evangelists from from Adobe Flex team and Microsoft Silverlight.  The initial question as you can see came from a regular developer, but the conversation quickly turned technical and non-hostile from both specialists covering the technology.

An absolute great read....

I am a huge proponent of app lifecycle, developer capability and platform maturity.  That said, when you compare technologies to be used on the project, you need to take into consideration how many times will the developer be switching between IDE's to accomplish a maintenance task.

Switching between different applications for the development causes a shift in context and a loss of focus... which ultimately translates into loss of productivity.  Usage of multiple development environments also causes fragmentation in the upgrade and maintenance cycles.

Microsoft has the made the winning decision here by allowing the developer to concentrate on a single IDE with a single technology (.NET) that can be used both in the client and on the server.  This is not the case for Flash/Flex combo.

 

I3 =  Inspire, Innovate, Implement.

Tuesday, March 18, 2008

SQL Server Data Services (SSDS) - a powerful proposition...

As most of the attendees would agree, I can honestly say, information presented at MIX08 was very powerful.  From the announcements, to keynotes, to sessions it is really tough to say what created a more powerful message.

Many blogs have written about the nice bits announced at the MIX such as IE8, Silverlight Mobile, Silverlight 2.0 Beta, among others.   The session that was not given high level of attention, the SQL Data Services sent a really powerful message.

"WHY?" you ask, I look at the world as an architects' buffet.  Choices are about, from Sliverlight and Flex, WinForms or ASP.NET, OBA vs VBA.  The point is, anywhere you look you have choices that really make up the alphabet soup we call Application Architecture.  

So reason with me for a moment, lets say that you are choosing your next best platform for your business. You are inevitably faced not only with technical choices, but also with realities of the business (otherwise known as time-to-market and financial constraints) that cause you to make hard and careful decisions.  The business exec tells you that he is forecasting organic growth and adoption, but can't really pin-point how much or even how fast.

As a person of reason (which most Architects are), that kind of problem would make you think "Lots of hardware, fully distributed, redundancy in all places".  While that kind of quick thinking works for web and app servers, database scalability and management created a larger and more complex set of problems. So there you are arguing that you need $200K in hardware and infrastructure prior to making even a single dollar of sales revenue.   Interesting to note that many business execs have a hard time parting with their money prior to some assurance that what you are delivering will work and scale to their SLAs.

(Note: if $200K does not strike you as much, make it $2M to make it a better point)

Here comes the SQL Server Data Services....

Architects, as do business managers like to play out the what-ifs.  There are a number of "what ifs" examples, lets take a look at a few:

  • What if you could decide how and when to start hosting your own infrastructure?
  • What if you could decide to save your money and not hire a DBA, or get a SQL license, or worry about backup and redundancy?
  • What if you needed the kind of capacity that is nearly impossible to provide for a fixed budget as it is not getting used all year long (think seasonal load, Shopping trending in Dec, or Tax Jan-Apr)
  • What if you could bet on a platform that removes the risk of paying up front just in case it does not pan out?
  • What if you wanted to have your data geographically co-located for faster access?

These are just some of the ideas that are going to be possible with the SQL Server Data Services.

Microsoft has long been a leader in redefining what the “ultimate development experience” is.  This has been proven again, and again, and again (this time with with VS 2008). 

There has not been as much fanfare on the Data side of the isle since the introduction of Strongly Typed DataSet, but technologies such LINQ, ADO Entities and SSDS are set to redefine how developers interact with data.

From my perspective, we are at the dawn of next generation of architectures that will bring incredible possibilities and limitless potential. 

This will truly revolutionize how developers perceive data connectivity and availability, how applications work with data, and how end users will be empowered by the new breed possibilities.