Maik Klein
Maik Klein

Reputation: 16148

Silverlight / Moonlight / WPF for cross-platform GUI's?

I need to write a cross platform GUI in F# and it doesn't seem that I have too many choices. I have two questions.

1.) Silverlight is a subset of WPF and is also runnable as a desktop app, which would probably suffice for my needs. But I always had to install the silverlight runtime for any browser based silverlight application. Does this also apply for desktop apps, or does it suffice to have the .NET/Mono installed?

2.) I just read that it is possible to run WPF inside a browser, does this mean I could use WPF for cross-platform GUI's?

Upvotes: 1

Views: 463

Answers (1)

Fede
Fede

Reputation: 44048

XAML based technologies are Windows only.

Moonlight is discountinued and not supported, thus not really recommendable for any new projects.

XBAP (Browser-hosted WPF) is still WPF. It requires the .Net Framework and is Windows only. It is also not recommended due to the fact that you gain literally nothing by using it. Use a pure WPF GUI with it's own Window instead of using Internet Explorer as a Window.

If you need 100% cross-platform and are willing to sacrifice User Experience quality and general code maintainability, create a Web Application using ASP.Net, which delivers HTML content to the client (browser).

if you need a native, high quality User Experience in all devices, then:

  • Put your Business Logic in Portable Class Library.
  • Create separate client applications which all reference the shared business logic:
    • for Windows Desktop, use WPF.
    • for Windows Metro, use WinRT XAML.
    • for Android and iOS, use Xamarin.Android and Xamarin.iOS respectively.

Upvotes: 4

Related Questions