views:

57

answers:

2

We are planning to develop a Silverlight 'cross platform' application, that is expected to run on both Windows and Mac with elevated permissions. Mono alone is not an option, as the application requires Silverlight specific video features, supported only in SL 4.0

So, here are some considerations.

  • 1 - The 'Application', should interface with a local database (outside Isolated storage)
  • 2 - The application should be able to talk to native libraries for performing some DVD IO operations.
  • 3 - It has to be installed via a custom installer, much like a desktop app

We are trying to identify the best way to to satisfy the requirements, if possible, with a common code base, probably using SQLLite for the database.

In Windows, things are straight forward. You can use sllauncher to install the XAP with elevated permissions, and you can access the SQLLite and other system level operations via probably a COM layer. Not a big deal.

But how to implement interfacing with SQLLite and system level libraries in Mac? Is there a documented/undocumented way to interface with Mac libraries from Silverlight (Mac)? I think no. One option might be to use Mono's XSP web server, and run an ASP.NET site from the local machine, and host the XAP locally, and then implement a handshake with the ASP.NET code running via Mono/XSP, and then do the interfacing from there.

Another option will be to host the Silverlight in the Mono's Winforms browser control (I still need to see if this is possible), and then do the talking between Mono Winforms browser and Silverlight via HTML DOM.

Both are not straight forward options in Mac.

I highly appreciate any inputs you can provide to achieve the objectives in a better way.

A: 

I don't believe the Winforms browser control works on Mac, but you could try MonoMac instead.

mhutch
+1  A: 

Part of the solution could be to define an interface on your database. In windows you could choose to talk directly to it, and for mac you write a soap server. Your silverlight app should be allowed to talk to that. You can implement the soap server in mono, then you have one language all way....

jdv