Monday, September 1, 2008

Desklighter - The Silverlight to exe converter

Lastweek Identitymine released its new product called Desklighter.It's a tool to convert silverlight application / site to a standalone windows exe application.ie A silverlight to exe converter.One can use this it they are in a situation which demands a standalone silverlight application.


Application areas
  1. Presentations :
    Since Silverlight is a rich presentation technology one can easily create presentations and publish in their sites.But currently that cannot be viewed without an internet connection.But Desklighter allows you to store Silverlight presentations in your hard disk and view it without internet connection.Very much useful in marketing,education..
  2. Games :
    Silverlight games can be played offline.(Unless they are networked to store scores or multiuser)
  3. Offline Silverlight browsing :
    Developers can create entire sites using Silverlight and if they handle the online and offline conditions it can be converted using Desklighter to use it as standalone application.The network operations ie data loading and saving should be programmed to be done whenever the net connection is available.
Currently desklighter is in identitymine blendables labs as a free download.More technical details can be found here.The future releases may extend support on Linux and Mac desktop machines where the current version supports only windows desktop.

Tuesday, August 5, 2008

A Silverlight 2 Beta 2 Bug related to Uri type

Again I struck in a framework bug which doesn't allow us to declare and use a dependency property of Type Uri.ie If you declare a dependency property of type Uri and try to set from xaml , will throw an error at runtime.Here is scenario.

You are creating a custom control and you need to have a dependency of type Uri Named Source.

You declared as follows.

public Uri Source
{
get { return (Uri)GetValue(SourceProperty); }
set { SetValue(SourceProperty, value); }
}
public static readonly DependencyProperty SourceProperty =
DependencyProperty.Register("Source", typeof(Uri), typeof(MediaItem), new PropertyMetadata(OnSourceChanged));

static void OnSourceChanged(object sender, DependencyPropertyChangedEventArgs args) { }

Fine.But If you create its instance in xaml as follows and run the application it will throw an error.

<ctrl:MediaItem x:Name="item" Source="dock.jpg" />

The error is AG_E_PARSER_BAD_PROPERTY_VALUE.
Microsoft has identified this error and rectified.Details here
Until the next version change the property type into string and use converters in xaml.

Or in the setter of a dummy property convert the value into Uri and keep in actual property.