« October 2010 | Main | December 2010 »

November 11, 2010

Silverlight 5 vs. HTML 5

Post PDC, this is a topic that has attracted lot of discussion. While it isn't completely an apple to oranges comparison, since both Silverlight (SL) and HTML are web/browser related technologies, to me it isn't a simple apples to apples comparison as well. I think this may more be like having fruits (HTML) vs. having a fruit salad (SL). While you have raw power with fruits, having the salad means that already effort has gone in the preparation (selecting right fruits, washing them, cutting them, arranging them, putting additional spices and all that and serving them) and you can now just sit back and enjoy it, without doing the hard work yourself.

Furor on a new technology replacing earlier isn't new on Microsoft platform. C# will replace C++, .NET will replace COM/DCOM, WPF will replace WinForm, ASP.NET MVC will replace regular ASP.NET and so on. Some of these have materialized to some extent, while in most cases all technologies continue to exit. When Microsoft first released .NET it had created lot of confusion as suddenly MS had started calling all Servers as .NET Servers and people were confused about what's .NET in these Servers? A little later MS changed the naming strategy to Enterprise Servers and there was better acceptance. While Silverlight is relatively new, .NET itself is in its 10th year of existence and it won't be surprising if MS will bring something new at this time to replace .NET. With that wave, Silverlight may get impacted anyway as it is built over .NET. However has it become useless already? I don't think so.

HTML 4 became a standard back in 1997. It is been a while since HTML 5 has been on the table for discussion and while still in draft stage, it is picking up fast. As we all know HTML really is the way the browsers render the content on client side. Each browser vendor typically extends the base HTML standard and with their own tags, which ends up breaking the cross browser compatibility. ASP.NET claimed cross-browser compatibility but it remained more of a claim and had ground challenges in making things really work.

In time people who had liked ASP.NET's code behind and eventing model a lot, now started to dislike the HTML that ASP.NET rendered. Coupled with this the perennial view state problem and people were asking for improvements. Come ASP.NET MVC and everyone thought that it will completely replace normal ASP.NET way of programming. But even with version 2 of MVC out there, people are not finding it easy to jump onto it, due to limited UI control support available. So while people got the raw power to control the HTML that got rendered and addressed cross browser and accessibility needs, the programming suddenly became lot more difficult. With great power comes great 'programming' responsibility !!

On the other side Silverlight addressed the evolving RIA needs that helped address the ever increasing rich content needs by the providers and consumers. Rich content, media, styles, effects, look and feel... you name it and Silverlight brought support for all of this. Of course it has been evolving but at break neck speed and within 3 years we have seen 4 versions. SL 1 with mainly java script support came out in 2007 (earlier code named WPF/E). SL2 (essentially a rename of 1.1) brought lot more of .net support along with many more controls and support for DeepZoom. SL 3 released during Mix09 continued to add to the feature set and SL 4 (beta during PDC 09) released a little after Mix10. We should be looking at Mix11 for announcements for SL 5.

SL has been the cross platform, cross browser and cross device strategy from Microsoft. While it succeeded pretty well on the first two, it didn't penetrate much on the cross device part. In fact MS itself got it working on their mobile devices only with Windows Phone 7, which of course has native support for SL4 and XNA framework. With increased mobile application availability and wide acceptance of iPhone and Android, MS may be left behind as Windows Phone 7 is only just coming out and will a while before there is better acceptance.
 
At this time if anything truly is cross browser, cross platform and cross device, it is HTML, which is supported by everyone and all devices. So as long as your technology helps generate HTML output you are in the game. With SL, this wasn't really true. While SL runs in IE, it runs on the .net engine and has little direct HTML interaction other than the object tag which helps insert it on the page in the first place.

It is hence really not surprising that MS is shifting its strategy a bit in favor of HTML5. As clarified by Bob Muglia post PDC, there isn't anything that is saying that SL5 is not going to happen. It is only that MS will now focus on HTML5 as a way for cross browser, cross platform and cross device strategy. SL will continue to evolve and will still help build compelling RIA applications and is still the platform of choice for building Apps for Windows Phone 7. SL additionally is a client side platform unlike HTML5 which mostly will be powered by some server technology generating HTML5 output. It will have richer client side libraries as well but it will still be a while before it can parallel what SL already offers.

Some additional related information is available here, here and here.

Summary: Silverlight has lot of things going its way, so it isn't going to fade out anytime soon. HTML5 will take more time (couple of years) to become a standard and we sure will see more SL versions by then.

I will keen to hear your views on this.

November 4, 2010

Library Functionality for Media Processing

Mapping of Media processing steps in Dynamics AX ERP presents a challenge. This blog discusses how the library functionality finds relevance in modeling this production process in Dynamics AX.

A Media organization has large number of media (content) assets which are leveraged to produce multiple end-products. So production operation in Media translates to:

  1. Processing of Media masters (movies, music, pictures etc) into a different format for various purposes like broadcasting, webcast, DVDs, online streaming etc.
  2. Processing of Media masters are processed for different runtimes, edits, languages, advertisement breaks etc.
  3. Creating new media files which are combined of single or multiple masters. E.g. Movie trailers, advertisements etc.

Here each production process requires one or more master files which is referred and not really consumed in production. In Dynamics packages (AX and Nav), we can easily map the production process, however, mapping of non-consumable masters remain a challenge. To model this process we will require:

  1. Master of items consumed in the process - which is readily available
  2. Master of reference media - is presently a gap and can be fulfilled by library functionality
  3. Bill of materials - Standard feature of AX. However needs to be enhanced to accommodate reference items
  4. Production routes - which organizes operations and sequences. This is also available, but would need enhancements to accommodate media references
  5. Creation and execution of production order. Additional features are required here to treat the reference items in a different way.

Now in traditional bill of materials the items are only consumables. Also when a production order is executed, all the bill of material items are consumed to produce the final output.
However in our media flow, the reference media is not really consumed, but is again put back into the media master.
Thus to enable the production flow for media processing the following features are needed which I refer as library features for production:

  1. Ability to pull library items into the bill of materials: This could a standard feature added for library functionality
  2. When routes are specified, have flexibility to add one or more library items which could be referred in the operation. This setup will be used to block when an operation is started and to release the library item once it is completed. This could be a standard feature for library functionality
  3. When a production order is scheduled, system should be able to calculate the time for which the library item would be needed - the start and end times. This could be based on the time taken for an operation to complete. This could be a standard feature of library functionality
  4. When an operation is started, if there is a linked library item, system should be able to post "Issue out" journal of library item (ref http://www.infosysblogs.com/microsoft/2010/09/library_functionality_in_erp.html) with reference to the production order.
  5. When an operation step is executed (or whichever flushing principle is used), the library item should not be consumed. This should be standard feature for library item. Once the usage of library item is completed, system should be able to post the "Issue in" journal to put the item back into the library and make it available.
  6. During planning of production orders, system should be able to take into account the availability of library items to appropriately schedule the orders

What these features help us to achieve is:

  1. Leverage the bill of materials to include non-consumable reference items
  2. Have production flow applicable to non-consumable reference items
  3. Ability to plan and schedule production order after considering the availability for reference items

Reports on usage of library items can be drawn and which can be used for storage decisions:
a. Utilization of reference items  - count and total time
b. Reference item's usage and availability dates and times

Thus, by having an explicit library model with enhancements on bill of materials and production functionality, we would be able to leverage Dynamics AX for media processing.

Subscribe to this blog's feed

Follow us on

Blogger Profiles

Infosys on Twitter