que - ¿Se rechazarán los formularios de Windows a favor de WPF?
wpf vs windows forms (7)
Ciertamente no llamaría muertos a WinForms ... pero tampoco escribiría un nuevo proyecto en él. Escribiría todos los proyectos nuevos usando WPF por una variedad de razones. Lo más importante es que si usa WPF / XAML, sus esfuerzos de transferencia a Silverlight serán mucho más fáciles.
Estamos comenzando un nuevo proyecto y estamos tratando de decidir usar Windows Forms o WPF.
He leído algunas de las otras publicaciones de desbordamiento de pila, y me doy cuenta de que WPF tiene algunas ventajas en las áreas de enlace y aspecto de datos, pero también tiene una curva de aprendizaje empinada y herramientas y controles bastante inmaduros.
Nos gustaría comprender mejor si Microsoft planea detener el desarrollo nuevo de la tecnología Windows Forms y obligar a que todos los nuevos desarrollos vayan finalmente a WPF, o si ambas tecnologías se mantendrán y mejorarán. (¿O simplemente van a esperar y ver cómo va antes de decidirse?)
Actualmente, parece que WPF no es necesariamente la mejor manera de elegir aplicaciones de línea de negocios que no necesitan alarmas adicionales en la interfaz de usuario. Sin embargo, sería bueno saber si WPF es algo que tendremos que adoptar antes o después.
Creo que Microsoft seguirá manteniendo los formularios de Windows, pero que se mejorará solo en pequeñas formas. Todas las nuevas innovaciones en caliente irán a WPF. Windows Forms se encuentra en una posición similar a LINQ to SQL . LINQ to SQL es un ORM ajustado, compacto y rápido que es impresionante, pero Microsoft está haciendo valer su apoyo al Entity Framework .
Windows Forms es excelente para lo que es, y para qué se utiliza, que es aplicaciones pequeñas y bien ajustadas. Todavía le quedan muchos años de vida.
Si desea una aplicación que pueda (más) fácilmente portar entre una interfaz web, una interfaz WPF o una interfaz Silverlight (o incluso una interfaz Flex), es probable que Windows Forms no sea para usted. Estas otras interfaces utilizan marcado basado en estándares y una arquitectura que se presta mejor al desarrollo empresarial.
Esto es, en parte, un argumento razonado y, en parte, una perorata sincera ...
WinForms se basa en la tecnología user32 / GDI que ha existido desde los albores de Windows moderno. No va a ir a ninguna parte, en todos los sentidos de la frase: no obtendrá nuevas características; no se dejará caer el soporte.
O tal vez todavía lo hará. La API de gráficos en .NET 4.0 es nueva y está escrita para GDI, no para WPF.
En general, Microsoft tiene una historia con nuevas tecnologías que se parecen a las siguientes:
- Inventar nueva API.
- Innovar con esa API para 2 o 3 ciclos de producto.
- Tenga en cuenta que seguir innovando significa hacer concesiones irrazonables a la compatibilidad con versiones anteriores o darse cuenta de que la tecnología no se había dirigido originalmente.
- Inventa una nueva API envolviendo o dejando la API existente alrededor. La API existente no desaparece, pero las nuevas cosas tampoco la usan.
RDO -> DAO -> ADO -> ADO.NET -> LINQ to SQL -> Entity Framework, agregue un poco de ODBC ... hay un tesoro de tecnologías "muertas" y envueltas que aún se pueden usar y que todavía existen. Estas son tecnologías de acceso a datos, pero se aplica la misma idea; Los marcos de IU duran un poco más porque son las áreas más visibles de las aplicaciones.
Si me pongo el sombrero de Nostradomus, puedo decir con seguridad que cuando .NET, oh, 6.0 salga en 2015, lo que parece muy lejano pero está tan cerca como lo estamos en 2003, WPF estará tan "muerto" como Windows Formas porque se habrá creado otra interfaz ingeniosa que suaviza todos los errores e inconvenientes aún no descubiertos de WPF. ¿A quien le importa? Todo lo que estamos hablando hoy será desaprobado para entonces. (De todos modos, algo tendrá que ceder en .NET 5.0 porque el marco se está volviendo cómicamente grande).
En todo caso, lo que Windows Forms tiene a su favor es que se basa en la tecnología que ha existido durante más de una década, y que la inercia no está muriendo en el corto plazo: el navegador que está escribiendo usa GDI, la barra de tareas es usando GDI, su aplicación de mensajería instantánea usa GDI, el nuevo control Ribbon en Windows 7 usa GDI, la impresora de $ 60 que está en su escritorio está usando un controlador de impresora GDI, las aplicaciones de Windows CE que se ejecutan en su teléfono ejecutan un puerto de Windows Forms y GDI, el nuevo Visor de eventos en Windows Vista está utilizando Windows Forms, y hay una gran comunidad de componentes de terceros detrás de la plataforma de Windows Forms: WPF es un producto muy pequeño y exclusivo que solo existe en el mundo administrado, que es en sí mismo. Más pequeño que su contraparte no administrada.
Para este fin, siento que todas estas discusiones sobre "WinForms vs. WPF" están desbordando las cosas; las tecnologías no son mutuamente excluyentes ni inferiores / superiores, por mucho que el marketing de Microsoft nos haga creer, y los desarrolladores de Microsoft son lo suficientemente inteligentes como para darse cuenta de esto. Son simplemente diferentes y uno de ellos es más viejo. Si no lo tuviéramos en cuenta periódicamente, todos habríamos escuchado a Gartner en 2005 y habíamos dejado de construir aplicaciones de Windows por completo y habíamos trasladado todo a AJAX en la Web ... con nuestras interfaces SOA ... que exponen una interfaz REST alternativa ... . que utilizan un modelo TDD DDD en ese backend ... abstraído de la base de datos por un ORM.
Estar tan ansioso por abandonar una tecnología por temor a su desaprobación solo garantiza a nuestros clientes que mantendremos un nivel constante de inexperiencia e incompetencia en las soluciones de software de programación.
WPF es parte del futuro, sin duda, pero no es EL futuro. Personalmente, estoy en la valla para ver si WPF "lo hace" en la tecnología de interfaz de usuario tiene la sensación de que las tecnologías de acceso a datos anteriores no lo han hecho, aunque Visual Studio que lo adoptó en 2010 es una señal bastante reconfortante de que Microsoft realmente lo toma en serio. Dogfooding en un producto estrella.
En resumen: si está creando una aplicación LOB, no me sentiría culpable por usar WinForms. Si necesita un escenario de diseño avanzado, la interoperabilidad de WPF siempre está disponible para usted, al igual que uno mejora un sitio web normal de vez en cuando con un objeto Flash. Pero para cualquier otra cosa, le debe a su cliente encontrar una Buena razón para hacer la transición de todo el equipo y la shell a WPF; Windows Forms tiene sus problemas, pero la mitad de la batalla con cualquier plataforma es saber cuáles son los problemas y las limitaciones, y la mayor parte del mundo (incluido Microsoft) todavía está aprendiendo WPF.
Fui a un campamento de vista previa de WPF en Redmond un par de años, y le hice esta misma pregunta a una de las personas que trabajan en Crossbow (interoperabilidad de WPF / Windows Forms). Su respuesta fue que los formularios de Windows serán compatibles en el futuro inmediato, pero no podrían ofrecer garantías.
Dado eso, creo que estará bien basando su aplicación en Windows Forms, sabiendo que tendrá algún nivel de soporte para la próxima versión o dos de .NET (por ejemplo, 3-5 años).
Personalmente apostaría más de 10 años considerando el soporte continuo de Microsoft para Win32. Es posible que no obtenga un montón de nuevas funciones con cada lanzamiento, pero tampoco se le eliminará.
En cualquier caso, en realidad estaría más preocupado por el cambio de Microsoft de tecnologías de cliente rico a tecnologías basadas en web, pero no lo suficiente como para ignorar las oportunidades de crear aplicaciones atractivas en ambos casos.
La política de soporte de Microsoft para .NET Framework y todas las clases dentro de él son 5 + 5: 5 años de soporte general después de un lanzamiento, y luego hay 5 años de soporte extendido disponible, o una tarifa.
Con la actualización de .NET 4.0, incluida toda la información sobre WinForms, que se lanzará en 2009, obtendrá 5 años de soporte general, hasta 2014 para cualquier aplicación de WinForms basada en .NET 4.0.
Es probable que lo que venga después de .NET 4.0 también incluya WinForms, en cuyo caso el reloj se reinicia.
Esta política 5 + 5 se aplica a todo el software de infraestructura relacionado con la empresa: Windows, Windows Server, SQL Server, Visual Studio, .NET, etc.
El punto es que no tendrá que preocuparse por la falta de soporte para WinForms.
Pero, los pósters anteriores son correctos: los avances se están realizando en WPF.
No me preocuparía demasiado por el apoyo a largo plazo. WPF puede estar recibiendo todo el amor últimamente, pero hay demasiado código de WinForms para abandonar el soporte. Después de todo, incluso MFC sigue recibiendo actualizaciones con cada versión de Visual Studio.
WinForms no estará en desuso hasta que Win32 esté ... ¡lo que podría ser bastante en algún momento!
(Recordando que WinForms es básicamente una abstracción sobre Win32)
Por otro lado, WPF tiene pocas dependencias directas en Win32, por lo que potencialmente podría formar la base de una capa de IU de "nuevo comienzo" en una versión futura de Windows. En ese momento, me imagino que Win32 (y, por tanto, WinForms) estará completamente abandonado y solo estará disponible a través de la virtualización. Como dije, esto podría estar muy lejos :)