Winforms está muriendo y usar XAML y sus diseñadores es como sacarse los dientes. ¿Ahora que?

programación


Estoy acostumbrado a poder crear una aplicación de Windows de simple a moderadamente complicada usando Windows Forms y poder lograr que diseñe todo sin demasiado problema. Puedo dedicar la mayor parte de mi tiempo a la lógica. Esto es bueno.

Ahora, con XAML, UWP, etc., usar los diseñadores es como visitar al dentista, pero ¿es tan necesario?

No estoy seguro de a dónde ir desde aquí, porque a menos que lo esté haciendo mal, estos diseñadores no me aceleran en absoluto. Son inútiles. No son dignos de RAD.

Prefiero simplemente codificarlo en C#.

Que hacen todos ustedes? No puedo ser el único.

Lo que he probado:

Paciencia. Sustancias recreativas. Renunciar a toda esperanza.

Los diseñadores son simplemente horribles. Horrible, horrible, horrible. Son más difíciles de usar que escribir el XML a mano y eso también es simplemente horrible.

Solución 2

Roger Deutsch escribió una serie de artículos sobre el tema: Programación de Windows 10: UWP Focus (1 de N)[^]. Trabajé en todo y construí los ejemplos con éxito. Pero como toda mi programación es sólo por diversión, no creo que la use mucho en el futuro.

Solución 3

Mi respuesta, cruz publicada desde el salón[^].

Si todavía estuviera usando XAML, usaría Blend con él. Se necesita un poco de tiempo para acostumbrarse, pero es muy superior a trabajar con los diseñadores de diseño en VS. Cuando tengo que escribir una aplicación de escritorio pura, uso AvaloniaUI. Es mucho mejor que Maui. La mayor parte del tiempo ahora uso Blazor. La capacidad de ejecutarse tanto en el navegador como como PWA para aquellos que quieran ejecutarlo en el escritorio.

Solución 4

Prueba Flutter, no te decepcionarás
Me enfrenté al mismo dilema que tú: elegir el marco adecuado para mi próximo proyecto.
Evalué numerosas opciones y finalmente me decidí por Flutter: ¡cambió las reglas del juego!
La velocidad de desarrollo y las impresionantes imágenes que ofrece tanto para aplicaciones de escritorio como móviles son realmente notables.
Incluso para un programador experimentado como yo (¡que ama C/C++!), la curva de aprendizaje de Flutter fue sorprendentemente rápida.

Solución 5

Además de las muchas soluciones que ya existen, me hice esta pregunta recientemente.
Para un cliente, necesito reemplazar aplicaciones VB6 antiguas en toda una fábrica.
La Web no es una opción ya que necesito comunicarme con el hardware de las máquinas (aunque eso no parece un problema ahora que estamos trabajando en ello…).

De todos modos, un contendiente obvio sería WinFormspero como dijiste, eso es morir.
Microsoft transfirió WinForms a .NET, por lo que aún no está muerto, pero quería que el nuevo software fuera moderno.

Por lo que entonces WPF (Fundación de presentación de Windows) podría ser el sucesor lógico, ya que también está portado a .NET.
Sin embargo, WPF es XAML y, como dijiste, eso es como sacarse los dientes.
Así que estaríamos sacando dientes de un marco antiguo que fue portado recientemente para mantener contentos a algunos viejos desarrolladores gruñones (supongo).

He visto UWP (Plataforma universal de Windows) mencionado aquí, pero Microsoft ya oficialmente dejó de admitirlo, por lo que ya ni siquiera es una opción.

Sin embargo, UWP usó WinUI 2 bajo las sábanas y WinUI 3 es el sucesor oficial que también sigue siendo compatible.
Es XAML, ¡pero al menos es moderno!

Mirando más allá de la pila de Microsoft, tenemos más soluciones basadas en web, como Aleteo y Plataforma Uno.
Me destacaron dos, que son realmente alternativas a Flutter y Uno respectivamente, Electrón y Interfaz de usuario de Avalonia.
Visual Studio Code se creó con Electron, por lo que puede tener una idea de lo que puede hacer y su apariencia.
Utiliza tecnologías basadas en web, como HTML, CSS y JavaScript y de alguna manera las compila (?) como aplicaciones de escritorio multiplataforma.
Avalonia UI usa XAML (de hecho, se considera el sucesor espiritual de WPF), pero también produce aplicaciones de escritorio multiplataforma.
Si su elección se reduce a Avalonia UI o Uno, Avalonia es el claro ganador con una comunidad más grande en GitHub.
Como ventaja, el equipo de Avalonia tiene (ex)desarrolladores del equipo de WPF.
Mi problema con estas tecnologías, si bien parecen funcionar y verse muy bien, es que no son aplicaciones nativas, lo que significa que hacen su propio diseño en lugar de dejárselo al sistema operativo.
El resultado es que pueden verse y sentirse como si no fueran aplicaciones de escritorio/Windows/Apple en absoluto.

Al final, fui por .NET FIJO.
.NET MAUI es el sucesor de Xamarin, que por supuesto es un marco móvil.
Sin embargo, .NET MAUI puede crear aplicaciones multiplataforma que funcionan en dispositivos móviles y de escritorio.
Al menos en teoría, porque en la práctica te enfrentarás a muchos desafíos.
.NET MAUI, al igual que Xamarin, también usa XAML.
Entonces, ¿por qué elegí .NET MAUI?
Por ahora solo apuntamos a Windows y para Windows se compila en WinUI 3, que son aplicaciones nativas de Windows.
WinUI 3 tiene más opciones ya que no tiene que funcionar también para dispositivos móviles, pero .NET MAUI es lo último y ya preveo algo de trabajo móvil en el futuro también.
Dicho esto, .NET MAUI también es un poco arriesgado, ya que Microsoft no parece actualizarlo tan bien y para algunos errores graves en .NET 7 simplemente dijo “tendrás que esperar hasta .NET 8 porque no estamos parcheando .NET MAUI para .NET 7.”
Como resultado, muchos desarrolladores de Xamarin no han adoptado .NET MAUI y están buscando alternativas.
Hasta ahora nos parece bastante bien, sólo espero que tanto Microsoft como la comunidad lo adopten un poco más.

Por último, pero no menos importante, puedes utilizar .NET MAUI con Blazorque le permite ejecutar una aplicación web (HTML, CSS y JavaScript mezclado con .NET) en su escritorio en una aplicación de shell .NET MAUI.
Fue una consideración seria, pero, francamente, tampoco quería preocuparme por las tecnologías web y tampoco se compilará como una aplicación nativa de Windows.

Lo descubrí todo a principios de este año, así que considere esto como el resumen de mi investigación.

[Add]

Para responder a la pregunta de cómo manejar XAML, no es tan diferente de HTML, ¿verdad?
Sólo aguanta, supongo.
[/Add]

Solución 1

Si quieres despotricar, disparar la brisa, etc., entonces usa El salón[^] foro. Esto es para aquellos que están estancados o perplejos y necesitan ayuda con el código.

コメント

タイトルとURLをコピーしました