Pld Archive

Flex 3 vs Silverlight 3: Enterprise Development

With the recent release of Silverlight 3 and Flash 10 / Flex 4, the Flash vs Silverlight debate has been stoked yet again.  The debate has been raging on twitter using the tags #flex #silverlight.  Links to articles are posted almost every day and retweeted endlessly.

The latest two most talked about articles fall squarely on each side.   On the Silverlight front, a blog post from a coder with a lot of experience in .NET and some Flex experience shares his insights on enterprise development.  His experience with C# colors his opinion of Flex development however, and his inexperience with Flex is evident through his omission of development tools such as FDT and Flex frameworks such as Mate.  His biggest arguments revolve around language features (C# is a more robust, full featured language), AS3’s lack of a native decimal type, and the Flex IDE.  In regards to Silverlight’s penetration, the author claims that since Enterprise apps work within a company, it’s easier to get Silverlight installed.   He finishes the blog post with a nod towards Flex: “this particular Flex application is the best looking application I’ve ever seen!”

On the Flex side, Tim Anderson writes about the release of Morgan Stanley’s Matrix application in his blog.  In it he highlights a few points made during the presentation on why Flash / Flex was chosen over Silverlight.  The main points of the article highlight Flash Player 9’s penetration and Silverlight’s lack-there-of, the application’s speed, and allowing the designers on the project to use products they wanted during development.   The most insightful quote of the presentation was regarding the design tools:

“You have to look at the people that use that technology. The design community. That’s the biggest problem that Microsoft has. The designers all carry around Apple laptops, they all use the Photosuite [sic] set of software tools. It’s like asking structural engineers to stop using CAD applications. That’s the tool that they use, and if you can’t convince them to switch away from your software suite you are going to get a limited number of designers that will use Microsoft’s toolset … if you can’t get the designers to switch, to learn a new language, then how can you possibly ever get some traction?”

So there you have it, one article by a seasoned .NET developer decrying Flex’s lack of language features and another decrying Silverlight’s inability to win over designers.

I have also straddled the fence between .NET and Flex developer for a number of years and have worked a little bit with Silverlight, so I tend to agree with both articles.  They are both right.  AS3 is an inferior language and it’s default IDE is definitely no match for VS.NET, however Flex/AS3’s speed isn’t as bad as is made out and it’s a platform that is ubiquitous and has a VERY low barrier of entry for designers and other non-developers.

So this debate boils down to form vs function.  It’s harder to write a large application with a lot of business logic in Flex, however it’s easier to make it look good.  The opposite is true for Silverlight.  So just like a with any other technology, you have to make a choice based on your audience, the design, and the lifetime of the application.

So I’d recommend Silverlight if:

  • your audience is a small and you have control over the environment they are going to use the app in

  • the design isn’t complex (like heavy use of blend modes, interactive 3d elements)

  • you need tight integration with a .NET backend

  • there is a lack of Presentation Layer Developers

I’d recommend Flash if:

  • you are serving a large, diverse audience

  • you have a complex design with animation (3D, webcam integration, etc)

  • your application uses mainly webservices to communicate to a backend

  • sufficient presentation layer development resources

You can duplicate most sites built in Flex in Silverlight and vice-versa (with a few exceptions).  It’s just a matter for the right tool or the right job.  I lean towards Flex because I feel it has the most flexibility (no pun intended), but I do like XAML / WPF / Silverlight and am excited to see it evolve and be a competitor to Adobe.

Everyone wins when there is competition.

Taming IE6 and a "Drop IE6" rebuke

During the development of any project that involves HTML, there’s always a nagging question in the back of your mind:  “How broken will this site be in IE6?“  Here’s an article that will reduce the amount of worrying you do when fixing your site to work in IE6.  It covers the majority of issues you’ll encounter when working with IE6.

Definitive Guide to Taming the IE6 Beast

The article covers:

  • conditional comments

  • target IE6 CSS Hacks

  • Transparent PNG-fix

  • double margin on float

  • clearing floats

  • fixing the box model

  • min/max-width/height

  • overflow issues

  • magic-list-items appearing

It’s probably the last article on IE6 specific CSS techniques you’ll ever need to read.  Required reading for all PLD’s.

On the topic of IE6 and whether or not we should still be supporting it, here are some thoughts.

IE6 support seems to be waning, but we still have plenty of clients that are still running IE6 exclusively on their work machines, so until they upgrade to Windows Vista / 7 we’ll continue to have to support them.

In the past year there have been a few campaigns to get people to upgrade like hey-IT.com, www.bringdownie6.com, and www.end6.org.   Also, Google just announced that YouTube wouldn’t support IE6 anymore in the near future.

Sadly, the more I thought about just saying “no more IE6 support”, the more I realized that the people that were running IE6 at this point couldn’t upgrade.  They are usually either on older machines (Windows 2000 or earlier) or their IT won’t upgrade because of a legacy web-based application depends on it, like a CRM or ERP app.    These applications aren’t upgraded often, and they are definitely not upgraded during a recession.

Full IE6 support is vital for any site that caters to business users (IT issues / older computers), international users (older computers), or a large percentage of the public (lots of people don’t upgrade their computers/OS when all they do is browse the web with them).

Here’s a good chart that shows the trends for various browsers / versions from Oct-04 to May-09 based on data from NetApplications.com

It shows IE6 usage just below Firefox usage in May-09.

As much as I dislike “fixing” the sites I work on to work with IE6, I think we’re going to have to do it at an agency level for another year or so.