Подтвердить что ты не робот

Возможно ли WPF на Linux (уже)?

Мне нравится программирование на .NET, особенно на С# 3.0,.NET 3.5 и WPF. Но мне особенно нравится то, что с Mono.NET действительно независима от платформы.

Теперь я услышал о проекте Olive в Mono. Я не мог найти какую-то бету.

Он уже работает? Кто-нибудь из вас сделал с ним какие-либо переживания?

Изменить: я знаю о Лунном свете. Но я хочу автономное приложение WPF. И из-за Moonlight Я надеюсь, что WPF на Linux станет правдой.

4b9b3361

Ответ 1

Вам будет лучше работать с Moonlight, который нацелен на Silverlight API, который является подмножеством полного WPF.

edit: Конечно, Silverlight не "предназначен" для рабочего стола, но нет причин, по которым вы не можете внедрить механизм Silverlight в ваше приложение. Это было сделано раньше, например, для Mac NY Times Reader

more edit: см. сообщение Мигеля на Автономные приложения Silverlight

Ответ 2

Обновление: так как люди продолжают голосовать против этого, я хочу отметить, что это давно устарело. Mono приобрели MS много лет назад, и их позиция в отношении открытого исходного кода изменилась, поэтому считаю этот пост устаревшим. (Столь же устарел, как сама структура WPF, хе).

Mono находится в немного неудобном положении, когда дело доходит до API-интерфейсов Microsoft, таких как Winforms и WPF. Подмножество технологии .Net является стандартом ECMA, но бесплатные реализации этих API-интерфейсов, вероятно, находятся на более легком юридическом основании. Я считаю, что это было важным фактором в соглашении между Novell и Microsoft, что хорошо для клиентов Novell. Но люди, которые используют Mono и не являются клиентами Novell, не защищены. По этой причине многие люди из сообщества F/OSS косо смотрят на Mono, несмотря на его технические достоинства.

По этой причине Gtk # всегда будет предпочтительным, поскольку он действительно бесплатный. В любом случае, многие считают, что он превосходит Winforms. Что касается WPF, то это почти наверняка будет низким приоритетом для Novell. Они могут реализовать это в конце концов, но я ожидаю, что Лунный свет будет самым близким, который вы можете получить в обозримом будущем.


С момента публикации этой статьи Microsoft распространила свое соглашение на всех, кто внедряет стандарты ECMA 334 и 335.

Ответ 3

Из монографического веб-сайта

В этот момент проект Mono нет планов по внедрению Windows API-интерфейсы Foundation Foundation часть проекта.

Moonlight - это реализация Silverlight, основанной на браузере, такой как технология, основанная на подмножестве WPF.

По-моему, выбор не реализовывать WPF - самая большая ошибка monos. Поскольку WPF быстро становится выбором по умолчанию для новых пользовательских интерфейсов .net. Подробнее см. в этом блоге.

Ответ 4

Если вы проверили известные ошибки эту ссылку (также включают шаги, необходимые для установки .NET на Ubuntu) или this, вы можете обнаружить, что некоторая (может быть багги) версия WPF работает над Wine на данный момент. На данный момент я не нашел определенного теста, но стоит попробовать запустить WPF "Hello world".

UPDATE2:

Я запустил последний IlSpy в последнем Wine для Ubuntu 16.04. С 32-разрядной версией dotnet45 и corefonts, установленной через winetricks с совместимостью с Windows 7.

За это время никаких сбоев и всего не получилось. Шрифты выглядят очень хорошо.

IlSpy показан через WPF и для человека, который loves programming with .NET является важным инструментом - декомпилятором.

Я загрузил последнюю версию SharpDevelop (сборку с использованием WPF) без дополнительных затрат. Началось. Не удалось создать проект WPF. Созданы WinForms. После открытия некоторых файлов cs и выявления некоторых сбоев попытался ввести - и он разбился.

IlSpy через Wine on Ubuntu

ОБНОВЛЕНИЕ

Я выполнил шаги и получил последнюю версию ILSpy.exe на Ubuntu 14.4.

enter image description here

Следующие пункты, чтобы отметить:

  • wine заявила, что dotnet40 не поддерживается конфигурацией 64, измененной на 32 бит

  • шрифты уродливые, но читаемые

  • Базовый функционал отлично работает - я могу видеть декомпилированный код, который достаточно хорош для некоторой разработки, но View → Search and View → Options → Display crash.

Вывод:

Возможно WPF на Linux. Но нужно как-то решить проблемы.

Ответ 5

Существует библиотека под названием Silverform SDK, целью которой является предоставление кросс-платформенной реализации WPF и Silverlight.

Библиотека реализована в управляемом коде и в настоящее время работает с OpenTK и Unity3D в качестве рендеринга. Основные функции, такие как привязка, макет, основные элементы управления и примитивы, уже реализованы (проверьте демонстрации веб-плееров Unity здесь). Первоначально он был ориентирован на рендеринг Unity3d, в то время как поддержка автономных приложений Mono будет добавлена ​​в отдельную сборку в будущем.

Отказ от ответственности: я являюсь одним из разработчиков библиотеки.

Ответ 6

От главной страницы :

Оливковое масло не поддерживается, должно быть рассматриваемый как экспериментальное программное обеспечение, и поскольку он реализует смену API нет никаких гарантий об устойчивости API.

Я сомневаюсь, что кто-то использовал его в реальном проекте.

Ответ 7

Да, можно использовать NoesisGUI в многоплатформенной реализации XAML в режиме реального времени. Есть несколько игр, уже выпущенных с использованием этой технологии в Linux, например VoidExpanse

Раскрытие информации. Я являюсь одним из разработчиков этого продукта.

Ответ 8

Я слышал, что подкаст, интервьюявший miguel de icaza (mono lead), возможно, несколько недель назад, так что это было бы, возможно, в середине декабря 2008 года, и он сказал, что у них еще нет поддержки WPF.

Ответ 9

Теоретически урезанная версия WPF МОЖЕТ быть скомпилирована для WinPR или LibWine для работы в Linux.

В настоящее время такой настройки не существует, поэтому кто-то должен ее сделать. Надеюсь, это может скоро измениться.

Что касается работы в или в полной среде Wine, я думаю, что это серьезно излишне и приведет к слишком большому раздутию, чтобы стоило заставить работать очень небольшое количество дополнительных программ.