¿Es WPF en Linux (ya) posible?


Me encanta programar con.NET, especialmente C# 3.0,. NET 3.5 y WPF. Pero lo que me gusta especialmente es que con Mono. NET es realmente independiente de la plataforma.

Ahora me enteré del Proyecto Olive en Mono. No pude encontrar algún tipo de Beta.

¿Ya funciona? ¿Alguno de ustedes ha hecho alguna experiencia con él?

Editar: Sé sobre la Luz de la luna. Pero quiero una aplicación WPF independiente. Y debido a Moonlight espero que WPF en Linux se convierta en realidad.

Author: Hades32, 2009-01-07

8 answers

Tendrá mejor suerte trabajando con Moonlight, que se dirige a la API Silverlight, que es un subconjunto de WPF completo.

Editar: Claro, Silverlight no está "destinado" para el escritorio, pero no hay razón por la que no pueda incrustar un motor silverlight en su aplicación. Se ha hecho antes, como para el Mac NY Times Reader

Más editar: ver el post de Miguel en Aplicaciones independientes de Silverlight

 20
Author: Jimmy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-07 21:11:17

Mono está en una posición un poco incómoda cuando se trata de API de Microsoft como Winforms y WPF. Un subconjunto de la tecnología.Net es un estándar ECMA, pero las implementaciones libres de estas API probablemente estén en un terreno legal más inestable. Creo que este fue un factor importante en el pacto entre Novell y Microsoft, que es bueno para los clientes de Novell. Pero las personas que usan Mono que no son clientes de Novell no están protegidas. Por esta razón, muchas personas en la comunidad de F/OSS miran con recelo en Mono a pesar de sus méritos técnicos.

Por esta razón, Gtk# siempre será preferido, ya que es verdaderamente Gratis. Muchas personas consideran que es superior a Winforms de todos modos. En lo que respecta a WPF, es casi seguro que será una prioridad baja para Novell. Pueden implementarlo eventualmente, pero esperaría que la Luz de la Luna sea lo más cercano que pueda estar para el futuro previsible.


Desde que publicó esto, Microsoft ha extendido su pacto a cualquiera que implemente el Normas ECMA 334 y 335.

 12
Author: Adam Lassek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-30 20:57:36

Desde el sitio web mono

En este punto, el proyecto Mono hace no tiene planes para implementar Windows Presentación Foundation APIs as parte del proyecto.

Moonlight es una implementación de silverlight, que es un flash basado en navegador como la tecnología basada en un subconjunto de WPF.

En mi opinión, la elección de no implementar WPF es el mayor error de monos. Como WPF se está convirtiendo rápidamente en la opción predeterminada para las nuevas interfaces de usuario.net. Véase este blog para más .

 7
Author: trampster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-07 20:36:04

Existe una biblioteca llamada Silverform SDK que tiene como objetivo proporcionar implementación multiplataforma de WPF y Silverlight.

La biblioteca está implementada en código administrado y actualmente funciona con OpenTK y Unity3D como motores de renderizado. La funcionalidad principal, como el enlace, el diseño, los controles principales y las primitivas, ya se ha implementado (consulte Unity web player demos aquí). Inicialmente se ha centrado en el renderizado Unity3d, mientras que el soporte para aplicaciones Mono independientes se agregará como una construcción separada en el futuro.

Descargo de responsabilidad: Soy uno de los desarrolladores de la biblioteca.

 3
Author: Sergii Volchkov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-21 17:19:20

Si comprueba los errores conocidos de este enlace(también incluye los pasos necesarios para instalar.NET en Ubuntu)o este puede encontrar que alguna versión(puede tener errores) de WPF funciona en Wine como por ahora. No encontré ninguna prueba definitiva hecha por ahora, pero vale la pena intentar ejecutar WPF "Hello world".

ACTUALIZACIÓN 2:

He ejecutado latest IlSpy en latest Wine para Ubuntu 16.04. Con la versión de 32 bits de dotnet45 y corefonts instalado a través de winetricks con compatibilidad con Windows 7.

Para esta vez no hay accidentes y todas las cosas funcionan bien. Las fuentes se ven muy bien.

IlSpy se muestra a través de WPF y para la persona que loves programming with .NET es herramienta esencial - el decompiler.

He descargado el último portable SharpDevelop(construir usando WPF) sin extra. Empezó. Error al crear el proyecto WPF. Creado WinForms. Después de abrir algunos archivos cs y evidenciar algunos fallos, trató de escribir-y se estrelló.

ILSpy a través de Wine en Ubuntu

ACTUALIZAR

Seguí los pasos y obtuve la última ILSpy.exe ejecutándose en Ubuntu 14.4.

introduzca la descripción de la imagen aquí

Siguientes puntos a tener en cuenta:

  1. Wine declaró que dotnet40 no es compatible con la configuración 64, cambiado a 32 bit

  2. Las fuentes son feas, pero legibles

  3. Funcional básico funciona bien - Puedo ver código descompilado-que es lo suficientemente bueno para algún desarrollo, pero Ver - > Buscar y Ver - > Opciones - > Bloqueo de pantalla.

Conclusión:

WPF en Linux es posible. Pero necesita alguna manera de abordar los problemas.

 3
Author: Dzmitry Lahoda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-18 19:12:19

De la página de inicio de Olive :

Oliva no es compatible, debe ser considerado como software experimental, y ya que implementa una API cambiante no hay garantías de ningún tipo sobre la estabilidad de la API.

Dudo que alguien lo hubiera usado en un proyecto real.

 2
Author: Kent Boogaart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-28 00:46:38

Sí, es posible usar NoesisGUI una implementación XAML multiplataforma en tiempo real. Hay algunos juegos ya lanzados usando esta tecnología en Linux, como VoidExpanse

Divulgación : Soy uno de los desarrolladores de este producto.

 2
Author: jsantos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-13 20:46:32

Escuché un podcast entrevistando a miguel de icaza (el líder mono) tal vez hace unas semanas, así que eso habría sido tal vez a mediados de diciembre de 2008, y dijo que todavía no tenían soporte de WPF.

 0
Author: Orion Edwards,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-07 19:46:36