2010-04-21 22 views
64

He estado jugando con aplicaciones de consola C# durante aproximadamente un año y quiero pasar a la creación de aplicaciones de GUI. Nunca he hecho ningún desarrollo de GUI además de las aplicaciones básicas de Java, pero quiero seguir usando C#. ¿Debería comenzar a aprender Windows Forms o ir directamente a WPF? ¿Hay una gran diferencia? ¿WPF se basa en Windows Forms o son totalmente diferentes?WPF o Windows Forms

Respuesta

61

Si recién está comenzando, salte directamente a WPF.

Te permitirá comenzar a crear interfaces enriquecidas mediante el marcado para definir tu interfaz sin enseñarte los posibles malos hábitos (para WPF) que aprenderías de Windows Forms.

+2

1 Estoy totalmente de acuerdo. WPF es mucho más flexible que Windows Forms y es a largo plazo en el desarrollo de GUI. Está muy cerca de HTML en la forma en que utiliza un diseño basado en XML.El mejor argumento para Windows Forms en este momento es si usted tiene un equipo de desarrollo con gran experiencia en su uso. WPF es el futuro, y ya está un paso adelante de Windows Forms. –

+2

+1 pero, WPF solo se puede usar desde .NET 4.0+ debido a los problemas de fuente en versiones anteriores, así que tenlo en cuenta para la implementación de la aplicación. – Josh

+13

@Fauxide WPF se puede usar en .NET 3.5. Se han creado muchas aplicaciones útiles ... Los problemas con las fuentes no son un obstáculo para todos. –

22

Estas dos tecnologías son totalmente diferentes. Ofrecen algunas capas de interoperabilidad en ambas direcciones, pero aparte de eso no tienen nada en común. Windows Forms es más o menos un envoltorio liviano sobre Win32/MFC, lo que significa que su extensibilidad en .NET no es tan buena en todos los casos. WPF es un nuevo marco de interfaz de usuario implementado desde cero. WPF también es mucho más flexible cuando se trata de personalizar los tipos existentes.

Sin embargo, al menos desde mi experiencia, Windows Forms parece ser el marco de interfaz de usuario de escritorio más comúnmente utilizado en la industria. Windows Forms no se puede usar con desarrollo web aunque WPF ofrece aplicaciones Silverlight y XBAP.

Si has hecho algún desarrollo de UI antes, me atrevería a decir que Windows Forms es más fácil de aprender ya que sigue paradigmas de programación más tradicionales. El modelo de programación de WPF es bastante diferente a esto. Si bien WPF se puede usar de la misma manera que Windows Forms, la mayoría de sus beneficios no se logran hasta que acepte el enlace de datos y la encapsulación WPF.

A pesar de afirmar algunos puntos a favor de Windows Forms elegir WPF sobre Windows Forms sería una obviedad para mí si todo lo que desea hacer es aprender un marco de interfaz de usuario. Es superior a Windows Forms en todos los aspectos. ¡Ojalá la industria del software en general lo adapte a una escala mayor! (Aunque no es como si alguien más escribiera aplicaciones de escritorio desde que obtuvimos la web.)

+0

+1 Totalmente de acuerdo. –

3

WPF ofrece instalaciones muy completas para construir interfaces de usuario extremadamente complejas. Simplifica la integración de gráficos acelerados por hardware en su interfaz. Sin embargo, el diseñador de Visual Studio WPF es realmente malo (casi nunca lo uso). También creo que WPF es mucho más complejo y es más difícil comenzar por él. Pero esto es subjetivo, por supuesto.

+0

Escribo xaml a mano: D y uso el diseñador para establecer márgenes y cosas así. Nada más. –

4

Ambas tecnologías tienen sus pro y sus contras.

WPF es mejor para el desarrollo multiplataforma y la creación de GUI 'llamativas'. Sin embargo, requiere un .NET framework más nuevo que WinForms y requiere una GPU compatible dx9 o superior (que la mayoría de la gente tendrá).

Pero es un poco más complicado para crear la interfaz/alambre de seguridad de todos los eventos, etc.

WinForms sigue siendo una potente tecnología que a menudo puede ser desarrollado a un ritmo más rápido que WPF Sin embargo, en el final , ambas tecnologías se pueden usar para lograr lo mismo. Sin embargo, WPF es el estándar 'más nuevo'.

WinForms es comúnmente usado para desarrollar aplicaciones de negocios, mientras que WPF se utiliza a menudo para crear bits de base más para el usuario final de software, aplicaciones, etc.

Cuestiones relacionadas