2008-09-16 14 views
6

Tengo una aplicación que he escrito en C#/WinForms (my little app). Para hacerlo multiplataforma, estoy pensando en rehacerlo en Adobe AIR. ¿Hay algún argumento a favor de WinForms como una aplicación multiplataforma? ¿Existe un futuro multiplataforma para Winforms (por ejemplo, Mono, etc.)? Sugerencias para el desarrollo de UI multiplataformaHacer una aplicación C#/Winform multiplataforma: ¿debería usar AIR, Mono u otra cosa?

Por multiplataforma Quiero decir, actualmente, Mac OSX, Windows y Linux.

Esta pregunta es asked again and answered with better success.

+0

Déjame mirar en mi bola de cristal ... – GEOCHET

+0

Una bola de cristal sería agradable, pero la especulación basada en los hechos también es genial. –

Respuesta

5

Estoy pensando en hacer de nuevo en Adobe AIR

No haber pasado mucho tiempo con el aire, mi opinión personal es que es mejor para traer una aplicación web para el escritorio es y proporcionar una cáscara de o ejecute su proyecto flash/flex existente en el escritorio.

Por cierto, si no conoces ActionScript, me refiero a sus detalles, peculiaridades, etc., no olvides tener en cuenta el tiempo que tarda Google en buscar respuestas.

¿Hay algún argumento a favor de WinForms como aplicación multiplataforma? ¿Existe un futuro multiplataforma para Winforms (por ejemplo, Mono, etc.)?

Siempre es difícil predecir lo que sucederá, pero hay al menos un proyecto (Plastic SCM) que conozco que usa Mono Winforms en Win, Mac y Linux, por lo que es ciertamente factible. Sin embargo, dicen que construyeron la mayoría de sus controles desde cero (y afirman que quieren liberarlos como fuente abierta, pero no están seguros si o cuándo), por lo que necesitarán poner algo de trabajo para que las cosas se vean "bonitas" .

Jugué con Winforms en plataformas que no son de Windows y, lamentablemente, no es exactamente "maduro" (especialmente en Mac). Entonces, lo que obtienes de la caja puede o no ser suficiente para tus necesidades.

Si decide que una aplicación de escritorio no es la mejor manera de proporcionar una solución multiplataforma, siempre puede tomar su lógica empresarial escrita en C# y crear una aplicación web completa con ASP.NET o ir con Silverlight, muchas otras opciones existen con C#.

+0

Gracias por su respuesta informada, ent ana. No sé POR QUÉ la gente piensa que AIR es "lo mejor para llevar una aplicación web al escritorio". ¿Hay algún límite en particular para las aplicaciones de AIR? Triste pero cierto, sin duda, sus conclusiones sobre WinForms que no son de Windows. Sí, re: Silverlight. Gracias por la respuesta. –

+1

Meses después: sí, hay límites serios para AIR. Por un lado, no puede ejecutar código arbitrario, ni manipular grandes XML con facilidad. Son dos ... –

3

WinForms son totalmente compatibles con Mono, por lo que son multiplataforma.

1

Bueno, creo que la única forma de para plataforma cruzada confiablemente con C# es Microsoft Silverlight, pero no es realmente WinForms, y basado en navegador. Aparte de eso, sí Mono es una oportunidad.

+0

Se minimiza demasiado. – GEOCHET

+0

Y irónicamente upplay moonlight, ya que se basa en Mono y aún no está terminado. Si te refieres a plataforma cruzada == Windows y Mac entonces tal vez Silverlight. –

+0

¡Interesante! Nunca pensé en eso, pero tienes razón ... aunque es posible que Silverlight nunca tenga una buena adopción, probablemente no sea peor que Adobe AIR en este momento. –

0

No creo que haya un futuro para WinForms en absoluto. Dado que parece haber sido una solución provisional, incluso en el mundo de MSFT (una envoltura muy delgada alrededor de Win32). Y prácticamente no hay cambios parecen haber sido hechos a System.Windows.Forms tanto en .NET 3.0 y 3,5

</speculation> 

me gustaría utilizar Java o aire.

+1

¿por qué se votó? ¿Hubo cambios en Winforms en .net 3.0 y 3.5? –

6

En lo que respecta a mi experiencia en Flex/AIR/Flash actionscripting, el entorno de desarrollo Adobe AIR y los juegos de herramientas de codificación/depuración son muy inferiores a los de Visual Studio y .NET SDK a partir de ahora. Sin embargo, los conjuntos de herramientas UI son superiores.

Pero como ya tiene un # código de trabajo C, portarlo a ActionScript fuerza requiere un rediseño debido a ActionScript tener una forma diferente de pensar/programación, que utilizan diferentes tipos de datos primitivos, por ejemplo, utilizan sólo una Number en lugar de int float double etc. y las herramientas de depuración son silenciosas en comparación con VS IMO.

Y escuché que Mono's GtkSharp es una plataforma silenciosa y decente.

Pero si no te molestan los problemas de herramientas de codificación/depuración, AIR es una gran plataforma. Me gusta cómo Adobe integra la experiencia Flash en ella, p. puede iniciar una instalación de la aplicación de AIR con un clic de botón en un clip de película flash, ese tipo de integración.

+0

Lo siento, acabo de cambiar la pregunta: Necesito algo para Mac, PC y Linux. Al mismo tiempo, descubrí que construir componentes de interfaz de usuario y cualquier tipo de trabajo de IU serio es 20 veces más fácil en Flex (con Flash puro como opción) que en .Net. Pero esa es una opinión. –

+0

Ah, punto bien tomado. Pero mi punto es que ya tiene código C# en funcionamiento, por lo que un puerto a AIR podría ser _big_ rewrite comparado con solo portarlo a Mono. – chakrit

+0

Y sobre las herramientas, me refiero a las herramientas de depuración/codificación. La plataforma Flash sin duda tiene herramientas UI superiores sin dudas :-) editando mis respuestas ahora – chakrit

1

Si desea utilizar .net Framework, Microsoft Silverlight es una buena (¿la única?) Opción. El navegador hace un buen trabajo como shell, pero también puede escribir su propio shell de aplicaciones para él. Por ejemplo, Scott Handelman mentions el NY Times Reader escrito en Silverlight y hostet en Cocoa en una Mac.

+0

Disculpe mi ignorancia, pero ¿Silverlight ejecuta C# dlls reales? –

3

¿Por qué irías con Air?

Use GTK#, y tiene un motor de formularios multiplataforma y puede mantener su código C#.

+0

Lo siento, esta respuesta en septiembre pasado. que hice un puerto a Winforms on Mono en 3 días, está trabajando 90% para mí ... ahora estoy comprando el resto. GTK # podría hacerlo ... Gracias de nuevo. –

+0

GTK # rocks! –

0

Creo que siempre que se asegure de que el código de lógica de negocios que escribe sea multiplataforma (es decir, usar barras invertidas en las rutas solo funciona en Windows, las barras diagonales funcionan en todos los sistemas operativos), Mono no debería tener mayor problemas al ejecutar un programa WinForms sin modificaciones. Solo asegúrate de probar fallas gráficas.

+0

si construye sus rutas con System.IO.Path.Combine, usa un valor apropiado para las O/S subyacentes automáticamente. – TheoJones

0

Hice una pregunta similar la semana pasada.He estado usando Mono todo el tiempo, y no he tenido problemas al ejecutar las aplicaciones que compilo en IL para ejecutar en SuSE Linux (normalmente ejecuto KDE) o Windows, sin embargo, no he salido y tengo un Mac aún por probar Encendido. Sin embargo, pronto lo estaré haciendo en un par de semanas. Pero todo el desarrollo en Mono ha sido muy bueno en la creación de aplicaciones que se ejecutarán en múltiples plataformas.

+0

Una aplicación que ejecuta ¿cómo? Como una aplicación de línea de comando? –

Cuestiones relacionadas