views:

1404

answers:

4

Hi,

I'm thinking of developing a desktop app in C#. Although windows will be my main target, later I'll try and run the app in MacOS X and linux. Can I do this today, in a simple way? I'm aware of the mono project, but it is not clear to me if I can do this in a simple way.

Also, what is the relation between WPF and Silverlight? AFAIK Silverlight follows a plugin model much like Flash or Java. Can I develop my desktop app with Silverlight and deploy it on windows, linux and os x without much changes?

Any pointers will be greatly appreciated.

A: 

WPF is used to build desktop applications for Windows only. Currently no other platforms are supported. If cross-platform support is a must, you can create a browser-based application and use Silverlight. Silverlight runs applications in the browser, though, so you cannot make a "desktop" application using that.

Charlie
You can make applications that run outside of browser with Silverlight 3. However, they are still limited by Silverlight sandbox.
Pavel Minaev
+6  A: 

The Mono project does not support .Net 3 and WPF yet, and it will probably been some time before that happens.

Silverlight might be sufficient for your needs. As of Silverlight 3.0 you can run Silverlight outside the browser, even create a shortcut to it on the desktop.

Arkain
NB: Moonlight currently only stably supports Silverlight 1.0, and only has a pre-alpha release of 2.0.
supercheetah
So I can't deploy Silverlight 3 apps on linux, right?
Miguel Ping
Mono does support a number of .net 3.x capabilities, but not WPF.
kenny
As Supercheetah said, the monoproject (moonlight) does only fully support SL 1.0, and partially SL 2.0. But if you need to win SL outside the browser then they can only run on Mac and Windows. If you really need to support linux, you may have to look into other technologies, such as Adobe AIR or Java Applet.
Arkain
+1  A: 

Mono is working hard to make sure that Silverlight runs cross platform (as mentioned on one of the stack overflow podcasts). So that seems to be a good way to go.

Jim Wallace
+2  A: 

Last I heard, the Mono project has no plans to implement WPF, however they are working on other .NET 3.5 features, especially LINQ and ASP.NET MVC. The problem with implementing WPF in Mono (beyond the size and complexity of the API) is that on Windows it uses DirectX for rendering, so an implementation for Mono would need to use OpenGL. Definitely not a trivial undertaking.

Whyaduck