Кросс-платформенные приложения с WPF

Я думаю о разработке настольного приложения на C#. Хотя windows будет моей главной целью, позже я попробую запустить приложение в MacOS X и linux. Могу я сделать это сегодня, простым способом? Я знаю о проекте mono, но мне не ясно, могу ли я сделать это простым способом.

кроме того, какова связь между WPF и Silverlight? AFAIK Silverlight следует модели плагинов, как Flash или Java. Могу ли я разработать настольное приложение с Silverlight и развернуть его в windows, linux и os x без особых изменений?

любые указатели будут высоко оценены.

4 ответов


проект Mono еще не поддерживает .Net 3 и WPF, и это, вероятно, будет некоторое время, прежде чем это произойдет.

в Silverlight может быть достаточно для ваших нужд. Начиная с Silverlight 3.0 вы можете запускать Silverlight вне браузера, даже создавать ярлык для него на рабочем столе.


последнее, что я слышал, проект Mono не планирует реализовывать WPF, однако они работают над другими функциями .NET 3.5, особенно LINQ и ASP.NET MVC. Проблема с реализацией WPF в Mono (помимо размера и сложности API) заключается в том, что в Windows он использует DirectX для рендеринга, поэтому реализация для Mono должна использовать OpenGL. Определенно не тривиальное предприятие.


WPF используется для создания настольных приложений для только для Windows. В настоящее время другие платформы не поддерживаются. Если необходима кросс-платформенная поддержка, можно создать браузерное приложение и использовать Silverlight. Silverlight запускает приложения в браузере, поэтому вы не можете сделать "настольное" приложение с помощью этого.


Mono упорно работает, чтобы убедиться, что Silverlight работает на кросс-платформе (как упоминалось в одном из подкастов переполнения стека). Так что, кажется, это хороший путь.