c# - ventajas - wpf vs uwp




¿Es mejor usar WPF sobre Windows Forms? (7)

Para una nueva aplicación, ¿es mejor usar WPF sobre Windows Forms? Utilicé Windows Forms antes pero no mucho WPF. Por lo que sé, WPF es el sucesor de Windows Forms, ¿verdad?

La aplicación va a alojar DirectX Windows (no WPF 3D, sino Managed DirectX y SlimDX ) con muchos controles personalizados.

EDITAR: La aplicación es una aplicación relacionada con 3D, editor, como modo :


AFAIK WPF es el sucesor de WinForms, ¿verdad?

No creo que esto sea tan cierto como a la EM le gustaría impulsar esto. Hay demasiado código heredado escrito en Winforms para que sea una cosa realista en el futuro cercano o incluso algo lejano.

Así que con eso en mente, si lo desea, y puede darse el lujo de pasar el tiempo aprendiendo WPF, lo haría. De lo contrario, usaría Winforms.


---- EDITAR 2 -----

Dado que estás tratando de hacer un editor como el que mostraste, te recomiendo que vayas a WPF aún más. Mi proyecto actual también tiene muchas características en ese sentido, y hemos decidido que la capacidad de componer WPF con contenido de Direct3D es extremadamente poderosa. Es bueno poder representar tu escena en cualquier cosa, no solo en una ventana rectangular. En WinForms, prácticamente estaba limitado a un rectángulo, y también tenía problemas con el espacio aéreo allí (sutiles, pero problemas como parpadeo cuando los menús detienen su hwnd, etc.). El compositor de WPF con D3DImage se deshace de todos esos problemas y le permite usar su imaginación para construir una IU muy flexible. Cosas como representar su escena en tiempo real en el lado de un objeto WPF3D son posibles, o usar los controles de WPF directamente en la parte superior de su escena d3d en lugar de intentar realizar la GUI en D3D, etc.

-----Original---------

Si va a alojar DX, es posible que desee considerarlo, especialmente porque le permite realizar la composición de escenas con su interfaz de usuario y no tener problemas con el espacio aéreo si utiliza D3DImage .

Esto funciona con SlimDX y WPF.

----EDITAR-----

Para obtener más información sobre las desventajas de usar Direct3D con Winforms y las ventajas de la integración WPF / DX, consulte:

Artículo de MSDN sobre espacio aéreo

Codeproject arcticle en introducción a D3DImage


En este caso, yo diría que siga el ejemplo de su proveedor (es decir, Microsoft). Su propia producción interna presenta cada vez más WPF; y su alcance (piense en Silverlight) y la profundidad son claramente mayores que los de WinForms. También lo utilizan cada vez más con referencia a las Mejores Prácticas. De todas las pruebas (aquí y en otros lugares), parece estar listo para el desarrollo de Prime Time.

No has expresado ninguna afinidad particular por WinForms (supongo que lo que hay se basa en la familiaridad). Tendrás que cambiar eventualmente. Un nuevo proyecto sería un gran lugar para comenzar el proceso, todo lo demás sería igual.


En tu caso, WPF tiene sentido. Para mí, es una aplicación por elección de aplicación porque hay muchas cosas que puede hacer realmente bien en Windows Forms (como el rápido desarrollo de aplicaciones empresariales). Estoy usando WPF para escribir una GUI agradable para una aplicación del centro de medios (proyecto personal para una consola de medios en mi pantalla de plasma de 50 pulgadas).

Sin embargo, si estoy escribiendo una entrada de datos y una aplicación de visualización, normalmente utilizo Windows Forms para la velocidad de desarrollo. El editor XAML es mejor en Visual Studio 2010 pero aún tiene mucho camino por recorrer. Sin una referencia, no hay ayuda de IntelliSense en muchos de los atributos de la propiedad, por lo que es imposible saber qué incluye (que es donde paso mucho tiempo tratando de encontrar esos valores, ya sea a través de un libro o ejemplos en la web) . Dicho esto, si escribe WPF, puede crear algunas interfaces de usuario muy convincentes.


Nos ocupamos de esta pregunta hace unos 9 meses. Decidimos ir con WPF y hasta ahora estamos contentos con la decisión. Sí, hay una curva de aprendizaje. Es bastante considerable, especialmente cuando se trata de WinForms, donde tienes mucho que desaprender. También le recomiendo que tenga acceso a un diseñador, de lo contrario, su aplicación probablemente se verá un poco en mal estado. También prepárate para algunos errores de WPF que te harán pasar horas rascándote la cabeza diciendo "por qué fue tan difícil".

Pero WPF está un paso adelante. El enlace de datos, las plantillas y el control completo de cómo quieres que se vean tus ventanas te hace pensar que así debería haber sido WinForms originalmente.

Ah, sí, y prepárate para desembolsar un par de dólares por algunos controles faltantes. Hay un par de cosas que faltan, como un selector de fecha y tener casillas de verificación en los controles de árbol (en realidad puede crear una plantilla, pero no es tan simple como las formas de ganancias en ese sentido). 3.5 SP1 incluye un control de cuadrícula ahora, por suerte.

Estoy seguro de que me estoy perdiendo un montón más, pero eso es lo que puedo sacar de la cabeza.

¡Buena suerte!


Sé que este es un post antiguo, pero creo que sigue siendo una pregunta válida.

Usé WinForms durante 3 años en la primera empresa para la que trabajé. Hubo algunos programadores muy buenos allí, y encontraron formas muy inteligentes de hacer cosas muy interesantes. WinForms ha resistido la prueba del tiempo. Es una plataforma sólida, fiable y eficiente. Muchas personas, y muchas compañías grandes y pequeñas, han estado utilizando WinForms durante años, y la tecnología se ha demostrado una y otra vez. La inercia como esa es difícil de combatir, incluso si eres Microsoft.

Aún así, WPF es definitivamente el futuro. Microsoft lo dejó claro al hacer productos como Visual Studio 2010 y Expression Blend con él. (Al usar WPF para proyectos internos, Microsoft se vio obligado a solucionar muchos de los problemas, como el procesamiento de fuentes y la velocidad, que impidieron que las personas lo adoptaran al principio. Visual Studio 2010 muestra que WPF siempre ha estado listo para la producción.

Entonces, ¿es mejor escribir su programa en WinForms o WPF? La respuesta es esta: WPF. Lo digo por dos razones. En primer lugar, dado que Microsoft lo respalda internamente, podemos asumir que estará disponible por mucho tiempo. Microsoft nos ha demostrado que es la siguiente herramienta de elección que me lleva a mi siguiente punto: se ha convertido en superior a WinForms (algunas personas con las que he hablado no están de acuerdo, pero es la verdad, y es cada vez más evidente) . WPF tiene una gran cantidad de características que WinForms (probablemente) nunca se ofrecerán, como el enlace integrado de datos con soporte increíble, y las animaciones basadas en la línea de tiempo que facilitan la creación de temas asombrosos para sus aplicaciones, y contarán con diseñadores que le pedirán que haga el cambio. Hay mucho más en WPF de lo que se puede describir en un comentario, pero estos son dos grandes para mí :)

Dicho esto, sé que no hay nada que pueda hacer en WPF que no pueda hacer en WinForms. Puedes hacer cualquier cosa en cualquier idioma si lo deseas lo suficiente. El punto es que donde WinForm te dejará rastreando google para ver cómo alguien más hizo algo bueno, WPF se entrega con soporte incorporado para todas las características que Microsoft considera el futuro de Windows y las pone al alcance de tu mano.

Con el tiempo, las personas se acostumbrarán a las nuevas características integradas directamente en Windows y esperarán que estén disponibles en todas las aplicaciones que utilizan. Esto alcanzará el punto en el que cualquier cosa que no los soporte se sentirá torpe, menos utilizable y parecerá que no vale la pena gastar dinero. (Veo la integración táctil como el ejemplo más obvio de esto. Aunque hay soluciones de pantalla táctil que se fijan en un monitor y emulan un mouse, en cualquier computadora, la tecnología de pantalla táctil ha avanzado mucho, y con Windows 8 desenfocando la línea entre el escritorio y los dispositivos móviles, las personas probablemente querrán usar las aplicaciones de una manera que será excepcionalmente difícil de implementar si su aplicación usa WinForms.)

Tarde o temprano, creo que el soporte y el desarrollo para WinForms se detendrán, y todos los que se dejaron atrás se verán obligados a virar hacia el puerto y rápidamente. Sin embargo, hay demasiados programas que confían en WinForms para que Microsoft pueda dejarlo en el futuro cercano. Quién sabe lo que va a pasar. Quizás WinForms sea para Microsoft lo que los Procesadores Itanium son para Intel, el producto que tiene suficientes usuarios para mantenerlo en funcionamiento, aunque haya mejores soluciones disponibles. ( http://arstechnica.com/business/news/2011/06/ask-ars-why-itaniumask-ars-with-xeons-improvement-why-bother-with-itanium.ars )

Así que mi consejo sería este: con respecto al nuevo desarrollo, haga el cambio a WPF. Envíe a algunos miembros del personal a cursos de capacitación, o permítales jugar por un tiempo para que puedan tener una mejor idea de la tecnología. La curva de aprendizaje será pronunciada, pero al hacerlo aumentará el conjunto de habilidades de su equipo porque al aprender WPF, también estarán en el buen camino para aprender SilverLight, que es lo suficientemente similar a WPF para que personas familiarizadas con WPF puedan para aprenderlo rápidamente, pero está diseñado para la web en lugar de para el escritorio. Esto es valioso porque las aplicaciones reescritas en WPF serán mucho más fáciles de convertir a aplicaciones web más adelante en la línea. WPF es nuevo, pero fue creado por una razón, no simplemente por hacer algo más para que la gente aprenda. Fue diseñado para hacer que las aplicaciones sean más fáciles de usar, intuitivas y portátiles. Fue diseñado para ayudar a los desarrolladores a adaptar sus aplicaciones a la nueva era de las computadoras.

Con respecto a las aplicaciones escritas en WinForms: creo que es seguro asumir que WinForms seguirá siendo soportado por mucho tiempo simplemente por la cantidad de soporte que ha ganado. Recomendaría que su equipo se familiarice con WPF y que comience a mover sus aplicaciones lentamente a WPF. Tómese todo el tiempo que Microsoft permita y no apresure el proceso, pero siempre tenga en cuenta que, de una u otra forma, los días de WinForms han terminado, y aunque nadie puede estar seguro de lo que sucederá, se eliminará el soporte para el producto heredado Tan pronto como pueda ser justificado. Incluso si las aplicaciones de WinForms se mantienen durante muchos años, es importante recordar que los tiempos están cambiando y que todos debemos cambiar con ellos.


También pasamos por esto ... iniciamos un cambio a WPF sobre WinForms. Creo que en estos días es una decisión bastante fácil dejar atrás a WinForms. Las herramientas están mejorando cada vez más y, si puedes conseguir un verdadero diseñador en tu equipo, hay muy pocas cosas que no puedes armar.

Estamos empezando a darnos cuenta de que nuestro futuro en realidad no es WPF, pero es Silverlight. A medida que Silverlight madura, se está volviendo más y más a la par con WPF y le permite ejecutar plataformas cruzadas. El camino de Silverlight se parece más a Adobe Air y algún día vivirá fuera del navegador (en realidad, puede hacerlo ahora, pero es un dolor). Realmente creo que el futuro para .NET UI será Silverlight.







user-interface