Saltar al contenido

¿Es mejor usar WPF sobre Windows Forms?

Deseamos compartirte la mejor información que encontramos on line. Esperamos que te sea de mucha utilidad y si deseas aportar cualquier detalle que nos pueda ayudar a crecer hazlo con total libertad.

Solución:

Tratamos esta cuestión 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 viniendo de WinForms, donde tiene mucho que desaprender. También te recomiendo que tengas acceso a un diseñador, de lo contrario tu aplicación probablemente se verá un poco gastada. También prepárate para algunas trampas de WPF que te harán pasar horas rascándote la cabeza diciendo “¿por qué fue esto tan difícil?”.

Pero WPF está un paso por delante. El enlace de datos, las plantillas y el control completo de cómo desea que se vean sus ventanas le hacen pensar que así debería haber sido WinForms originalmente.

Oh, 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 winforms en ese sentido). 3.5 SP1 incluye ahora un control de cuadrícula, afortunadamente.

Estoy seguro de que me faltan muchos más, pero eso es lo que se me ocurre.

¡Buena suerte!

Sé que esta es una publicación antigua, pero creo que sigue siendo una pregunta válida.

Usé WinForms durante 3 años en la primera empresa para la que trabajé. Había algunos programadores realmente buenos allí, y encontraron algunas formas muy inteligentes de hacer cosas muy interesantes. WinForms ha resistido la prueba del tiempo. Es una plataforma sólida, confiable y eficiente. Muchas personas y muchas empresas, tanto grandes como pequeñas, han estado utilizando WinForms durante años, y la tecnología ha demostrado su eficacia una y otra vez. Una 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 crear 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 la representación de fuentes y los problemas de velocidad, que impidieron que las personas lo adoptaran al principio. Visual Studio 2010 muestra que WPF ha estado listo para la producción durante mucho tiempo.

Entonces, ¿es mejor escribir su programa en WinForms o WPF? La respuesta es esta: WPF. Digo esto por dos razones. En primer lugar, debido a que Microsoft lo está apoyando internamente, podemos suponer que estará disponible durante mucho tiempo. Microsoft nos ha demostrado que es la próxima herramienta de elección que me lleva al siguiente punto: se ha vuelto superior a WinForms (algunas personas con las que he hablado no están de acuerdo, pero es la verdad, no obstante, y se está volviendo más obvio cada día) . WPF tiene una gran cantidad de características que WinForms (probablemente) nunca recibirá, como soporte integrado increíble enlace de datos y animaciones basadas en la línea de tiempo que facilitan la creación de temas asombrosos para sus aplicaciones, y hará que los diseñadores rueguen por hacer 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. El punto es que donde WinForm’s te dejará buscando en Google cómo alguien más hizo algo genial, WPF viene con soporte integrado 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 funciones integradas directamente en Windows y esperarán que estén disponibles en todas las aplicaciones que utilizan. Esto llegará al punto en el que cualquier cosa que no los admita se sentirá torpe, menos utilizable y parecerá menos digno de gastar dinero. (Veo la integración táctil como el ejemplo más obvio de esto. Aunque existen soluciones de pantalla táctil que se sujetan a un monitor y emulan un mouse, en cualquier computadora, la tecnología de pantalla táctil ha recorrido un largo camino, y con Windows 8 borrando la línea entre el escritorio y los dispositivos móviles, la gente probablemente querrá 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 de WinForms se detendrá, y todos los que se quedaron atrás se verán obligados a migrar, y rápidamente. Sin embargo, hay demasiados programas que dependen de WinForms para que Microsoft pueda eliminarlo en un 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 hay mejores soluciones disponibles. (http://arstechnica.com/business/news/2011/06/ask-ars-why-itaniumask-ars-with-xeons-improvement-why-bother-with-itanium.ars)

Entonces, mi consejo sería este: con respecto al nuevo desarrollo, cambie a WPF. Envíe a algunos miembros del personal a cursos de capacitación o déjelos jugar un rato para que puedan familiarizarse mejor con la tecnología. La curva de aprendizaje será empinada, pero hacer esto aumentará el conjunto de habilidades de su equipo porque al aprender WPF, también estarán en camino de aprender SilverLight, que es lo suficientemente similar a WPF para que las personas familiarizadas con WPF puedan para aprenderlo rápidamente, pero está diseñado para la web en lugar del escritorio. Esto es valioso porque las aplicaciones reescritas en WPF serán mucho más fáciles de convertir en aplicaciones web más adelante. WPF es nuevo, pero se hizo por una razón, no simplemente para 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 hacer que sus aplicaciones encajen en la nueva era de las computadoras.

Con respecto a las aplicaciones escritas en WinForms: creo que es seguro asumir que WinForms seguirá siendo compatible durante bastante tiempo simplemente por la cantidad de soporte que ha ganado. Recomendaría dejar que su equipo se familiarice con WPF y comenzar lentamente a mover sus aplicaciones a WPF. Tómese todo el tiempo que le permita Microsoft y no apresure el proceso, pero siempre tenga en cuenta que, de una forma u otra, 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 justificarse. Incluso si las aplicaciones de WinForms se mantienen durante muchos años, es importante recordar que los tiempos están cambiando y todos debemos cambiar con ellos.

—- 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 combinar WPF con contenido Direct3D es extremadamente poderosa. Es bueno poder convertir tu escena en cualquier cosa, no solo en una ventana rectangular. En WinForms, estaba prácticamente limitado a un rectángulo, y también tenía problemas con el espacio aéreo allí (sutiles, pero cosas como problemas de parpadeo cuando los menús se detienen en su hwnd, etc.). El compositor de WPF con D3DImage elimina todos esos problemas y le permite usar su imaginación para construir una interfaz de usuario muy flexible. Cosas como renderizar su escena en tiempo real en el lado de un objeto WPF3D son posibles, o usar controles WPF directamente en la parte superior de su escena d3d en lugar de intentar hacer la GUI en D3D, etc.

—–Original———

Si va a alojar DX, es posible que desee considerarlo, especialmente porque le brinda la capacidad de hacer la composición de la escena con su interfaz de usuario y sin problemas de espacio aéreo si usa 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 de WPF / DX, consulte:

Artículo de MSDN sobre espacio aéreo

Artículo de Codeproject sobre la introducción a D3DImage

Nos encantaría que puedieras difundir esta noticia si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *