Elegir entre formularios Windows Forms y formularios Web Forms

Actualización: noviembre 2007

Para comenzar a desarrollar aplicaciones con una interfaz de usuario, puede utilizar tanto formularios Windows Forms como formularios Web Forms. Ambos disponen de compatibilidad total en tiempo de diseño dentro del entorno de desarrollo y pueden proporcionar una interfaz de usuario completa y funciones de aplicación avanzadas para solucionar problemas de la empresa. Debido a esta paridad de características, podría resultarle difícil decidir qué tecnología es adecuada para una aplicación determinada.

Algunas consideraciones de la aplicación podrían hacer obvia la opción. Por ejemplo, si está desarrollando un sitio Web de comercio electrónico accesible al público en Internet, puede desarrollar la aplicación utilizando las páginas de formularios Web Forms. Si está generando una aplicación muy receptiva y de alto rendimiento que necesite funcionalidad total del equipo de cliente, como una aplicación de productividad para la oficina, utilice formularios Windows Forms. Sin embargo, en otros casos es posible que la elección no esté tan clara.

Las secciones siguientes describen las características de cada tecnología para ayudarle a determinar qué es mejor para su aplicación.

Cuándo utilizar formularios Windows Forms

Desarrolle las aplicaciones con formularios Windows Forms cuando desee que la aplicación cliente sea responsable de la mayoría de las tareas de procesamiento de una aplicación. Estas aplicaciones cliente incluyen aplicaciones de escritorio de Win32 desarrolladas tradicionalmente en versiones anteriores de Visual Basic y Visual C++. Ejemplo de ello son las aplicaciones gráficas o de diseño, los sistemas de entrada de datos, los sistemas de punto de venta y los juegos.

Estas aplicaciones se basan en la eficacia del equipo de escritorio al procesar y presentar el contenido de alto rendimiento. Algunas aplicaciones de Windows Forms pueden estar completamente autocontenidas y ejecutar todo el proceso de la aplicación en el equipo del usuario. A menudo, los juegos se escriben de este modo. Otras aplicaciones pueden formar parte de un sistema mayor y, fundamentalmente, utilizan el equipo de escritorio para procesar los datos proporcionados por el usuario. Por ejemplo, un sistema de punto de venta normalmente necesita una interfaz de usuario rápida y sofisticada que se crea en el equipo de escritorio, pero está enlazado a otros componentes que ejecutan el procesamiento en segundo plano.

Dado que una aplicación para Windows que utilice formularios Windows Forms se genera en un marco de trabajo Windows, tendrá acceso a los recursos del sistema del equipo cliente, que incluyen los archivos locales, el Registro de Windows, la impresora, etc. Se puede restringir este nivel de acceso para eliminar cualquier riesgo para la seguridad o problema potencial que pueda provocar un acceso no deseado. Además, los formularios Windows Forms pueden utilizar las clases gráficas GDI+ de .NET Framework para crear una interfaz gráficamente eficaz, que suele ser un requisito de las aplicaciones de extracción de datos o de juegos.

Cuándo utilizar formularios Web Forms

Utilice formularios Web Forms de ASP.NET para crear aplicaciones que principalmente tienen una interfaz de usuario del explorador. Naturalmente, entre ellas se incluyen las aplicaciones que se ponen a disposición del público a través del World Wide Web como, por ejemplo, las aplicaciones de comercio electrónico. Sin embargo, puede utilizar formularios Web Forms no sólo para crear sitios Web; muchas otras aplicaciones se prestan a utilizar también una "interfaz fina", por ejemplo un manual del empleado basado en una intranet o una aplicación de beneficios. Un ventaja importante de cualquier aplicación de formularios Web Forms es que no tiene ningún costo de distribución. Los usuarios ya tienen instalada la única parte de la aplicación que necesitan, el explorador.

Las aplicaciones con formularios Web Forms son, por definición, independientes de la plataforma; es decir, son aplicaciones "de envergadura". Los usuarios pueden interactuar con la aplicación independientemente del tipo de explorador que tengan e, incluso, del tipo de equipo que utilicen. Al mismo tiempo, las aplicaciones de formularios Web Forms pueden optimizarse para aprovechar las características incorporadas a los exploradores más modernos, tales como Microsoft Internet Explorer 6.0, a fin de mejorar su rendimiento y velocidad de respuesta.

Nota:

En muchos casos, esta optimización está integrada en los componentes de formularios Web Forms que utiliza. Estos componentes automáticamente pueden detectar los niveles del explorador y representar las paginas en consecuencia.

Los formularios Web Forms proporcionan algunas características útiles incluso en contextos que no son Web. Puesto que se basan en HTML, las aplicaciones Web Forms son las indicadas para aplicaciones que hacen un uso intensivo de recursos de texto del tipo que sean, sobre todo en las que el formato del texto es importante. Mientras que las aplicaciones basadas en explorador suelen tener un acceso limitado a los recursos del sistema de usuarios, esta limitación hace que las aplicaciones Web Forms sean útiles en casos en los que se desea evitar el acceso de los usuarios a partes de la aplicación.

Comparación entre formularios Windows Forms y Web Forms

En la siguiente tabla se proporciona una comparación punto por punto de los distintos criterios de la aplicación y cómo las tecnologías de los formularios Windows Forms y Web Forms tratan estos criterios.

Característica/Criterio

Formularios Windows Forms

Formularios Web Forms

Implementación

Los formularios Windows Forms permiten una implementación "sin contacto" con ClickOnce, donde las aplicaciones se pueden descargar, instalar y ejecutar en los equipos de los usuarios sin que el Registro sufra modificaciones. Para obtener más información sobre ClickOnce, vea Información general sobre la implementación de ClickOnce.

Los formularios Web Forms no se implementan en el cliente; éste sólo requiere un explorador. En el servidor se debe estar ejecutando .NET Framework de Microsoft. Las actualizaciones de la aplicación se realizan mediante la actualización del código del servidor.

Gráficos

Los formularios Windows Forms incluyen GDI+, que habilita gráficos complejos para juegos y otros entornos con muchísimos gráficos.

Los gráficos interactivos o dinámicos requieren acciones de ida y vuelta en el servidor para las actualizaciones cuando se usan en formularios Web Forms. GDI+ se puede utilizar en el servidor para crear gráficos personalizados.

Capacidad de respuesta

Los formularios Windows Forms se pueden ejecutar totalmente en el cliente; pueden proporcionar la velocidad de respuesta más rápida en aplicaciones que requieren un grado alto de interactividad.

Si sabe que los usuarios tendrán Internet Explorer 5 o posterior, una aplicación Web Forms puede utilizar las funcionalidades HTML (DHTML) dinámicas del explorador para crear una interfaz de usuario (IU) eficaz y de respuesta rápida. Si los usuarios tienen otros exploradores, la mayor parte del procesamiento (incluidas las tareas relacionadas con la interfaz de usuario, tales como la validación) requerirá una acción de ida y vuelta al servidor Web, lo que puede afectar a la capacidad de respuesta.

Formularios y control de flujo de texto

Las funciones de posición de cuadrícula de formularios Windows Forms proporcionan un preciso control bidimensional (coordenadas x e y) para la colocación de controles.

Para mostrar texto en los formularios Windows Forms, inserte el texto en controles (por ejemplo, el control Label, el control TextBox o el control RichTextBox). Las posibilidades de formato son limitadas.

Los formularios Web Forms se basan en diseño de flujo de estilo HTML y, por tanto, admiten todas las funciones del diseño de páginas Web. Son muy compatibles con los distintos formatos de texto.

La distribución de los controles se puede administrar bastante bien (con algunas limitaciones, como la de no superponer controles). Si los usuarios tienen exploradores compatibles con DHTML, podrá especificar de forma mucho más precisa el diseño de forma bidimensional (coordenadas x e y).

Plataforma

Los formularios Windows Forms requieren que se ejecute .NET Framework en el cliente.

Los formularios Web Forms sólo requieren un explorador. Los exploradores compatibles con DHTML pueden usar características adicionales, pero los formularios Web Forms se pueden diseñar para funcionar con todos los exploradores. En el servidor Web se debe estar ejecutando .NET Framework.

Acceso a recursos locales: sistema de archivos, Registro de Windows, etc.

Las aplicaciones, si se les permite, pueden tener acceso total a los recursos del equipo local. Si se precisa, se puede evitar que la aplicación use recursos específicos, con precisión.

La seguridad del explorador impide que la aplicación tenga acceso a los recursos del equipo local.

Modelo de programación

Los formularios Windows Forms se basan en un modo de suministro de mensajes Win32 en el cliente, donde el desarrollador crea, utiliza y descarta instancias de componentes.

Los formularios Web Forms se basan en un modelo básicamente asincrónico, desconectado, en el que los componentes no se corresponden estrictamente con la interfaz de usuario de la aplicación. Normalmente, los componentes de la aplicación se invocan a través de HTTP. Este modelo puede no ser adecuado para aquellas aplicaciones que requieran una productividad extrema por parte del usuario o que realicen transacciones de grandes volúmenes. De forma similar, las aplicaciones de formularios Web Forms pueden no ser adecuadas para aplicaciones de base de datos que requieran altos niveles de control de concurrencia (por ejemplo, bloqueo pesimista).

Seguridad

Los formularios Windows Forms utilizan permisos en su implementación de la seguridad de acceso a código con el fin de proteger los recursos del equipo y la información confidencial. Esto permite exponer cuidadosamente la funcionalidad al mismo tiempo que se conserva la seguridad. Por ejemplo, el permiso de impresión, que en un nivel sólo permitiría imprimir en la impresora predeterminada, en otro nivel podría permitir la impresión en cualquier impresora. Si se usa ClickOnce, los desarrolladores pueden configurar fácilmente los permisos que sus aplicaciones deben o no deben solicitar del cliente. Para obtener más información, vea Implementación y seguridad con ClickOnce.

La autorización para obtener acceso a los recursos de una aplicación Web se suele controlar por dirección URL mediante la autenticación de las credenciales (por ejemplo, un para nombre-contraseña) del solicitante. Los formularios Web Forms permiten que el desarrollador controle la identidad en la que se ejecuta el código de la aplicación servidor. Las aplicaciones pueden ejecutar código con la identidad de la entidad solicitante, lo que se conoce como suplantación. Las aplicaciones también pueden ajustar el contenido dinámicamente, basándose en la identidad o función del solicitante. Por ejemplo, un administrador podría recibir acceso a un sitio o a un nivel superior de contenido que un usuario que disponga de permisos inferiores.

Vea también

Conceptos

Información general sobre la implementación de ClickOnce

Referencia

Información general sobre formularios Windows Forms