Esto es en parte un argumento razonado, y parcialmente una queja sincera ....
Windows Forms se basa en la tecnología de user32/GDI que ha existido desde el amanecer de Windows moderno. No va a ir a ninguna parte, en todos los sentidos de la frase: no obtendrá nuevas características; no se eliminará 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 las nuevas tecnologías que se parece a lo siguiente:
- inventar nuevas API.
- Innovar con esa API para 2 o 3 ciclos de productos.
- Tenga en cuenta que seguir innovando significa hacer concesiones irrazonables a la compatibilidad con versiones anteriores o tener realizaciones que la tecnología no abordaba originalmente.
- Inventa nueva API al envolver o abandonar la API existente. La API existente no desaparece, pero las cosas nuevas tampoco la usan.
RDO -> DAO -> ADO -> ADO.NET -> LINQ a SQL -> Entity Framework, echar en algunos ODBC ... hay un tesoro de tecnologías "muertas" y envueltos que aún están usable y todavía existe hoy. Estas son tecnologías de acceso a datos, pero se aplica la misma idea; Los marcos de interfaz de usuario duran un poco más porque son las áreas más visibles de las aplicaciones.
Si me pongo el sombrero Nostradomus, puedo decir con seguridad que cuando .NET, oh, 6.0 sale en 2015, lo que suena muy lejos, pero está lo más cerca que estamos de 2003, WPF será como " dead "como Windows Forms 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 diciendo hoy será obsoleto para entonces. (Algo va a tener que dar en .NET 5.0 de todos modos porque el framework se está volviendo cómicamente grande.)
En todo caso, lo que Windows Forms está buscando es que se basa en la tecnología que ha existido para bien más de una década, y esa inercia no está muriendo pronto: el navegador que estás escribiendo está usando GDI, la barra de tareas está usando GDI, tu aplicación de mensajería instantánea está usando GDI, el nuevo control Ribbon en Windows 7 está usando GDI, los $ 60 La impresora sentada en su escritorio usa un controlador de impresora GDI, las aplicaciones 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 usa Windows Forms y hay una gran comunidad de componentes de terceros detrás de la plataforma de Windows Forms: WPF es un producto pequeño y de nicho que solo existe en el mundo administrado, que a su vez es más pequeño que su cou no administrado nterpart.
Para este fin, creo que todas estas discusiones de "WinForms vs. WPF" están desbordando cosas; las tecnologías no son mutuamente excluyentes o inferiores/superiores, tanto como el marketing de Microsoft podría hacernos creer, y los desarrolladores de Microsoft son lo suficientemente inteligentes como para darse cuenta de esto. Simplemente son diferentes y uno de ellos pasa a ser mayor. Si no lo consideramos periódicamente, todos hubiéramos escuchado a Gartner en 2005 y detuviéramos completamente las aplicaciones de Windows y moviéramos todo a AJAX en la Web ... con nuestras interfaces SOA ... que exponen una interfaz REST alternativa. que usan un modelo TDD DDD en ese backend ... abstraído de la base de datos por un ORM.
Tener tantas ganas de 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 mira para ver si WPF "lo hace" en el sentido tecnológico de la interfaz de usuario que las tecnologías anteriores de acceso a datos no tienen, aunque Visual Studio 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, del mismo modo que uno mejora un sitio web regular ocasionalmente con un objeto Flash. Pero para cualquier otra cosa, le debes a tu cliente que presente una Buena Razón para hacer la transición de todo el equipo y el 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 que son, y la mayor parte del mundo (incluido Microsoft) todavía está aprendiendo sobre WPF.
Posible duplicado: * [WPF versus Windows Forms] (http://stackoverflow.com/questions/202079) * –
Otros cinco posibles duplicados: 1. [¿Es mejor usar WPF en Windows Forms?] (Http : //stackoverflow.com/questions/640633), 2. [Migrar de Windows Forms a WPF ... ¿valió la pena?] (http://stackoverflow.com/questions/534205), 3. [Cuando ¿Windows Forms es la elección correcta frente a WPF?] (http://stackoverflow.com/questions/388711), 4. [WPF, Windows Forms u otra cosa?] (http://stackoverflow.com/questions/504014) y 5. [¿Cuáles son los beneficios de usar WPF en Windows Forms?] (http://stackoverflow.com/questions/897945). –