about
framework & approach
knowledge network
news & events
technology council
why join?

Friday, March 07, 2008

Mix 08 - Day 3

SilverLight / Ajax integration

Some good ideas there, like how to integrate your siliverlight app with the Ajax history manager. I was impressed with how transparent the integration is.

Not only can you can access any DOM element or JS object from SilverLight, but you can even register managed code event handlers for javascript events. That's pretty cool. The JS to SilverLight integration is really good, too. Just mark any method as Scriptable, register it, and JS will be able to access it. The JS proxy converts CLR types to javascript objects automatically. I believe you can register javascript event handlers to CLR events as well.

It did give me a bunch of ideas in terms of expanding my Ajax code without breaking the good old HTML page metaphor. For apps other than email clients and intranet apps, Flash and Silverlight apps just look weird. When developing apps for the masses, you have to always weigh usability vs what users are used to. The Office Ribbon may look nice, and for all I know it may be more usable, but it is so different from the traditional menu system it took employees a long time to get used to it. That can be OK in an enterprise environment where people are paid while trained, but in the web world, this can kill your business right there. Areas that could benefit from Ajax support may be file system access, local storage, rich media display (project management Gant chart etc)... tons of possibilities there.

The one thing I'm still going to use Flash for for a while is audio/video capture. Silverlight doesn't have that capability yet.

Creation internation apps

Not much new here- use resource files, place resources in satellite assemblies etc...
A few good points though.
  • Avoid the conpt of "Countries' for liability reasons
  • Don't create maps and deal with border problems.
  • Don't show flags.
  • Avoid text in images.
  • Of course, build a UI that can accomodate for varying string sizes.
  • Make sure fonts have full Unicode character coverage.
  • Localize javascript and CSS files.

0 comments: