martes, 7 de enero de 2014

Uso de controles de Servidor


Uso de controles de Servidor
·        ¿Qué es un control de servidor?
·        Tipos de controles de servidor
·        Guardar View State
·        Demostración: convertir controles HTML en controles de servidor
·        Controles de servidor HTML
·        Controles de servidor Web
·        Práctica: identificar el código HTML generado por los controles de servidor Web
·        Seleccionar el control adecuado
·         Demostración: agregar controles de servidor a un formulario Web

¿Qué es un control de servidor?




A)      Runat="server"
B)     Los eventos ocurren en el servidor
C)     View state saved
D)     Have built-in functionality
E)      Common object model
F)      Todos tiene atributos Id y Text
G)    Crear browser-specific HTML

El siguiente ejemplo es el de un control de servidor Button: <asp: Button id="Button1" runat="server" Text="Submit" />

Runat=“server”

Los controles de servidor tienen un atributo runat="server", el mismo atributo que los formularios Web Forms. Esto significa que la lógica del control se ejecuta en el servidor y no en el navegador del usuario. Los controles de servidor se diferencian de los controles HTML en que éstos últimos únicamente se ejecutan en el navegador del cliente y no realizan ninguna acción en el servidor.
Otra característica de los controles de servidor es que el estado de la vista, las opciones de configuración y la entrada de datos de usuario en el control se guardan automáticamente cuando la página viaja entre el cliente y el servidor. Los controles HTML tradicionales no tienen estado y vuelven a su configuración predeterminada cuando la página retorna del servidor al cliente.

Funcionalidad incluida

La funcionalidad de un control es lo que se produce cuando el usuario hace clic en un botón o en un cuadro de lista. A estos procesos se denominan procedimientos de eventos. Como programadores del formulario Web Form, debemos determinar los procedimientos de eventos asociados a cada control de servidor.

Modelo de objetos común

En ASP.NET, los controles de servidor se basan en un modelo de objetos común, y por tanto, comparten varios atributos entre sí. Por ejemplo, cuando deseamos establecer el color de fondo de un control, siempre utilizamos el mismo atributo BackColor, independientemente del control. El código HTML siguiente del botón de un control de servidor Web muestra algunos de los atributos típicos de un control de servidor:

<asp: Button id="Button1" runat="server" BackColor="red"
Width="238px" Height="25px" Text="Web control"></asp: Button>

Crear código HTML específico del navegador

Cuando un navegador interpreta una página, los controles de servidor Web determinan el tipo de navegador que solicita la página, y envía el código HTML adecuado.
Por ejemplo, si el navegador soporta scripting de cliente, como Internet Explorer versión 4.0 o posterior, los controles generan scripts de cliente para implementar su funcionalidad. Sin embargo, si el navegador no soporta scripting de cliente, los controles crean código del lado del servidor y requieren más viajes de ida y vuelta al servidor para obtener el mismo comportamiento.
El siguiente ejemplo es el código HTML de ASP.NET en un formulario Web Form que deberíamos escribir para crear un cuadro de texto con el texto predeterminado: "Introduzca su nombre de usuario"

<asp: Textbox id="TextBox1" runat="server" Width="238px"
Height="25px">Introduzca su nombre de usuario</asp: TextBox>

Cuando un usuario con Internet Explorer 6 accede a esta página, el CLR crea el siguiente código HTML personalizado para Internet Explorer 6:

<input name="TextBox1" type="text" value="Introduzca su nombre de usuario" id="TextBox1" style="height: 25px;width:238px" />
Como el control de servidor crea código HTML personalizado en función de las características disponibles en el navegador del cliente, podemos escribir código para las últimas versiones de navegadores sin tener que preocuparnos de que los usuarios que no estén actualizados puedan ser bloqueados por errores del navegador.


  Tipos de controles de servidor

·         Controles de servidor HTML
·        Controles de servidor Web
·        Controles intrínsecos
·         Controles de validación
·        Controles ricos
·        Controles List-bound
·        Controles Web de Internet Explorer

      Controles de servidor HTML

Por defecto, el servidor no tiene disponibles los elementos HTML de una página de un formulario Web Form; los elementos HTML son tratados como texto opaco que pasa a través del navegador. Sin embargo, al agregar el atributo runat="server" se convierten los elementos HTML en controles de servidor HTML, exponiéndolos por tanto como elementos que podemos programar con código del lado del servidor.

       Controles de servidor Web

Los controles de servidor Web no sólo incluyen controles de tipo formulario, como botones y cuadros de texto, sino también controles con funcionalidad especial, como el control calendario. Los controles de servidor Web son más abstractos que los controles de servidor HTML, porque su modelo de objetos no refleja necesariamente la sintaxis HTML.
Los controles de servidor Web se clasifican como:
A)     Controles intrínsecos
Los controles intrínsecos concuerdan con los sencillos elementos HTML, como botones o cajas de listas. Utilizamos estos controles del mismo modo que utilizamos los controles de servidor HTML.
B)     Controles de validación
Los controles de validación incorporan lógica que permite verificar la entrada de datos de un usuario. Para probar la entrada de un usuario, adjuntamos un control de validación al control de entrada

Módulo “Validar la entrada de datos de usuario”.
A)     Controles ricos estándar
Los controles estándar son controles complejos que incluyen múltiples funciones. Ejemplos de controles estándar incluyen el control AdRotator, que se utiliza para mostrar una secuencia de anuncios o el control Calendar, que proporciona un calendario de citas.
B)      Controles enlazados a listas
Los controles enlazados a listas pueden mostrar listas de datos en una página ASP.NET. Estos controles nos permiten mostrar, reformatear, Vclasificar y editar datos.
C)      Controles Web de Internet Explorer
Los controles Web de Internet Explorer son un conjunto de controles complejos, como MultiPage, TabStrip, Toolbar y TreeView, que pueden descargarse desde Internet e integrarse en el entorno de Visual Studio .NET para ser reutilizados en cualquier aplicación Web con ASP.NET. Estos controles pueden ser interpretados en todos los navegadores utilizados habitualmente, y al mismo tiempo aprovechan las potentes características soportadas por las versiones de Internet Explorer 5.5 o superior. Podemos descargar estos controles desde:
http://msdn.microsoft.com/library/default.asp?url=/workshop/webcontrols/o verview/overview.asp.

Ejemplo de controles equivalentes

Este ejemplo muestra el código HTML de tres controles de tipo botón: un botón HTML, un botón de control de servidor HTML y un botón de control de servidor Web. Todos los controles botón parecen idénticos en el navegador del usuario. El botón HTML únicamente puede invocar eventos del lado del cliente, mientras que el botón de control de servidor HTML y el botón de control de servidor Web producen eventos del lado del servidor.

A)      El siguiente es el código de un control de botón HTML:
           <INPUT type="button" value="HTML Button">
B)      Si agregamos el atributo runat="server" el control de botón HTML anterior se convierte en un control de servidor HTML que se ejecutará en el servidor. Además del atributo runat="server", también debemos agregar un atributo id para que el control funcione como un control de servidor.
            El botón de control de servidor HTML se muestra en el siguiente ejemplo:
          <INPUT type="button" value="HTML Server Control"
             id="button1" runat="server">
C)     El botón de control de servidor Web utiliza código HTML de ASP.NET:
             <asp: Button id="Button1" runat="server" Text="Web control"/>

Guardar el estado de la vista

A)     Control oculto ViewState de pares de nombre y valor almacenados en el formulario Web Form






B)      De forma predeterminada, ajustable a nivel de formulario Web Form y control









Control oculto

El control _VIEWSTATE es un control oculto que contiene el valor de una cadena de pares nombre-valor que lista el nombre de cada control y el último valor de ese control.
Con cada petición, el control _VIEWSTATE se actualiza y se envía al servidor. La respuesta del servidor puede a su vez actualizar el control _VIEWSTATE, que se devuelve con la respuesta. El resultado es que la configuración de la página permanece coherente de una solicitud a la siguiente.
El siguiente ejemplo incluye el código HTML generado por un formulario Web Form y enviado al cliente:

<form name="Form1" method="post" action="WebForm1.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" value="dDw3NzE0MTExODQ7Oz4=" />
</form>

Deshabilitar y habilitar ViewState

De forma predeterminada, un formulario Web Form guarda el estado de la vista de los controles en el formulario Web Form. Para formularios Web Forms con múltiples controles, el tamaño del campo valor de las propiedades _VIEWSTATE puede ralentizar el rendimiento. Para maximizar el rendimiento de la página, podemos deshabilitar el atributo ViewState a nivel de página y habilitar ViewState únicamente para determinados controles.
Para deshabilitar el almacenamiento del estado de la vista a nivel de página Web, estableceremos el atributo EnableViewState de la directiva @Page, como se muestra en el siguiente código:

<%@ Page EnableViewState="False" %>
Para habilitar el almacenamiento del estado de la vista de un control específico, estableceremos el atributo EnableViewState del control, como se muestra en el siguiente código:

<asp:ListBox id="ListName" EnableViewState="true"
runat="server"></asp: ListBox>

Convertir controles HTML en controles de servidor

·        Actualizar controles HTML a controles de servidor HTML
·        Agregar un control de servidor Web
·        Utilizar SmartNavigation
Visual Studio .NET facilita la conversión de controles HTML en controles de servidor.
   A)  Ejecutar esta demostración
1. Visualizar la página HTMLPage.aspx que convertimos de una página HTML en la demostración anterior, en la vista HTML, y agregar un atributo runat="server" a los controles de cuadro de texto, selección y el de envío.
2. Hacer clic en Guardar para guardar el proyecto.
3. Visualizar la página HTMLPage.aspx en el navegador haciendo clic con el botón derecho en la página en el Explorador de soluciones y haciendo clic en Visualizar en el navegador. No es necesario volver a generar el proyecto, ya que no se ha cambiado el código.
4. Visualizar el código fuente de la página para mostrar los cambios realizados. Se ha agregado un atributo name a cada control de servidor.
5. Cerrar la vista del código fuente HTML en el navegador.
6. En el navegador, introducir información en los controles, y hacer clic en Guardar. Los controles todavía pierden sus valores.
7. Editar la página y agregar un atributo runat="server" al formulario.
8. Guardar los cambios y visualizar la página de nuevo en el navegador. No es necesario volver a generar el proyecto ya que no se ha agregado ningún código.
9. Visualizar el código fuente de la página para mostrar los cambios realizados. Entre otros cambios, se han agregado los atributos action y method a la etiqueta del formulario y se ha creado un control oculto denominado __VIEWSTATE.
10. Cerrar la vista del código fuente HTML en el navegador.
11. Introducir información en los controles y hacer clic en Guardar. Ahora, los controles guardan sus valores.

Agregar una etiqueta al formulario Web Form

12. Editar la página y agregar un control de servidor Web Label al formulario Web Form, debajo del botón Guardar:

<asp: label id="lblMessage" runat="server">Label</asp: label>

13. Guardar los cambios y visualizar la página en el navegador.
14. Visualizar el código fuente de la página. El control de servidor Web Label genera un elemento <span>.
15. Cerrar la vista del código fuente HTML en el navegador.

Uso de SmartNavigation
16. Visualizar la página http://localhost/Demos03/HTMLPage.aspx en Internet Explorer y modificar el tamaño del navegador para que muestre verticalmente menos que la página completa. La barra de desplazamiento vertical debería estar visible.
17. Desplazarse hacia abajo y hacer clic en Guardar. Seremos redirigidos a la parte superior de la página debido al postback.
18. Cerrar el navegador.
19. Editar la página en la vista HTML y agregar SmartNavigation= "true" a la directiva @ Page.
El código HTML debería ser parecido al siguiente:
Visual Basic .NET

 <%@ Page SmartNavigation="true" Language="vb"
CodeBehind="HTMLPage.aspx.vb" AutoEventWireup="false"
Inherits="Mod04.HTMLPage" %>
C#
<%@ Page SmartNavigation="true" Language="c#"
CodeBehind="HTMLPage.aspx.cs" AutoEventWireup="false"
Inherits="Mod04.HTMLPage" %>

20. Guardar los cambios y visualizar la página en otro navegador cuyo tamaño se haya modificado.
21. Desplazarse hacia abajo y hacer clic en Guardar. Esta vez, no somos redireccionados a la parte superior de la página durante el postback, la página mantiene su posición actual.
22. Visualizar el código fuente de la página en el navegador. En Internet Explorer 4.0 y posterior, el atributo SmartNavigation crea IFrames para actualizar únicamente la parte modificada de la página.
23. Cerrar la vista del código fuente HTML en el navegador.


Controles de servidor HTML


Ejemplo
El siguiente código de ejemplo muestra un sencillo cuadro de texto HTML que
el navegador procesa en el lado del cliente:
<input type="text" id="txtName" >
Si agregamos el atributo runat="server", el control se convierte en un control
de servidor HTML que ASP.NET procesa en el lado del servidor:
<input type="text" id="txtName" runat="server" />



Controles de servidor Web


                                                                                                                                                         
Los controles de servidor Web son controles de servidor creados específicamente para ASP.NET. A diferencia de los controles de servidor
HTML, los controles de servidor Web no funcionarán si falta el atributo
runat="server".
Los controles de servidor Web se basan en un modelo de objetos común; por ello, todos los controles comparten varios atributos, incluyendo la etiqueta
<asp: TipoControl...>, y un atributo id. Los controles de servidor Web existen
en el espacio de nombres System.Web.UI.WebControls y pueden utilizarse en
cualquier formulario Web Form.



Controles de servidor Web intrínsecos

Los controles de servidor Web intrínsecos corresponden a elementos HTML simples. La siguiente tabla muestra algunos de los controles de servidor Web
intrínsecos utilizados más habitualmente.






Controles de validación
Los controles de validación son controles ocultos que validan la entrada de datos del usuario comparándolos con patrones predeterminados. La siguiente
tabla muestra algunos de los controles de validación que se utilizan más habitualmente.



Controles ricos Estándares

Los controles estándares proporcionan una rica funcionalidad a nuestro formulario Web Form insertando funciones complejas. La siguiente tabla muestra los controles ricos disponibles actualmente.



Controles enlazados a Listas

Los controles enlazados a listas pueden mostrar datos desde una fuente de datos. La siguiente tabla muestra algunos de los controles de lista que se utilizan habitualmente.



Crear un formulario Web Form con Visual Studio .Net

Crear un formulario Web Form con Visual Studio .Net

·         Las nuevas aplicaciones Web ASP.NET crean un formulario Web predeterminado: WebForm1.aspx
·         Crear formularios Web Forms adicionales desde el Explorador de soluciones
·         Actualizar páginas HTML existentes en formularios Web Forms


Aplicaciones Web nuevas
Cuando creamos un nuevo proyecto en Visual Studio .NET, se incluye automáticamente en el proyecto un formulario Web Form predeterminado denominado WebForm1.aspx.

A)     Crear un nuevo proyecto de aplicación Web ASP.NET y un formulario Web Form predeterminado
1. En Visual Studio .NET, en la Página de inicio, hacer clic en Nuevo proyecto.
2. En el cuadro de diálogo Nuevo proyecto, hacer clic en Aplicación Web ASP.NET, escribir el nombre del proyecto en el campo Ubicación y hacer clic en Aceptar.
Visual Studio .NET crea una nueva aplicación Web y un formulario Web Form predeterminado denominado WebForm1.aspx.

Crear formularios Web Forms adicionales
Si estamos expandiendo un proyecto existente, podemos utilizar el Explorador de soluciones para agregar rápidamente formularios Web Forms adicionales.
A)     Agregar formularios Web Forms adicionales a un proyecto de aplicación Web
1. En la ventana del Explorador de soluciones, hacer clic con el botón derecho en el nombre del proyecto, seleccionar Agregar, y hacer clic en Agregar formulario Web Form. Se abrirá el cuadro de diálogo Agregar nuevo elemento - NombreProyecto.
2. En el cuadro de diálogo Agregar nuevo elemento - NombreProyecto, cambiar el nombre del formulario Web Form, y hacer clic en Abrir. Se creará un nuevo formulario  Web Form y se agregará al proyecto.

Actualizar páginas  HTML
Si estamos revisando un sitio Web existente, podemos importar páginas HTML a Visual Studio .NET y actualizar esas páginas a formularios Web Forms.
    A)  Actualizar páginas HTML existentes
1. En el Explorador de soluciones, hacer clic con el botón derecho en el nombre del proyecto, seleccionar Agregar y hacer clic en Agregar elemento existente.
2. En el cuadro de diálogo Agregar elemento existente, navegar hasta la ubicación del archivo HTML, hacer clic en el nombre del archivo y posteriormente en Abrir.
3. Cambiar el nombre del archivo nombreArchivo.htm por nombreArchivo.aspx, y hacer clic en Sí a la pregunta de si estamos seguros de desear cambiar la extensión del archivo.
4. Cuando se nos pregunte si deseamos crear un nuevo archivo de clase, hacer clic en Sí.



Convertir una pagina Html en un Formulario WebForm

Cambiar la extensión .html por la extensión .aspx

Un modo rápido de crear páginas Web ASP.NET es convertir las páginas HTML existentes.
    A)   Ejecutar esta demostración
1. Iniciar Visual Studio .NET.
2. Crear un nuevo Proyecto de aplicación Web ASP.NET y establecer la ubicación en http://localhost/Demos03.
3. Hacer clic en Agregar elemento existente en el menú Archivo.
4. En el cuadro Archivos de tipo del cuadro de diálogo Agregar elemento existente, hacer clic en Todos los archivos (*.*).
5. Seleccionar la página HTMLPage.htm y hacer clic en Abrir. Este archivo se puede encontrar dentro del fichero demos03.zip.
6. Abrir la página HTMLPage.htm y cambiar a la vista HTML.
7. Agregar una cuarta opción al cuadro de lista que contenga Lead Program Manager para mostrar que la ayuda de contexto IntelliSense® está funcionando en el archivo HTML.
El código debería ser parecido el siguiente:
<option>Lead Program Manager</option>
8. Guardar los cambios de la página.
9. En el Explorador de soluciones, hacer clic con el botón derecho en HTMLPage.htm y hacer clic en Cambiar nombre. Cambiar la extensión .htm de la página por .aspx, hacer clic en Sí cuando se nos pregunte si se estamos seguros, y hacer clic en Sí de nuevo cuando se nos pregunte si deseamos crear un nuevo archivo de clase.
10. En la página HTMLPage.aspx, observamos que se ha añadido una directiva @Page a la página.
11. Hacer clic en Mostrar todos los archivos en el Explorador de soluciones para mostrar la página de código subyacente que se ha creado.
12. Hacer clic en Guardar para guardar el proyecto.
13. Hacer clic con el botón derecho sobre HTMLPage.aspx en el Explorador de soluciones, clic en Generar y examinar para generar el proyecto y visualizar la página en el navegador de Visual Studio .NET. Debemos generar el proyecto puesto que Visual Studio .NET necesita compilar la nueva página de código subyacente.
14. Escribir un nombre en el cuadro de texto Nombre, hacer clic en una profesión en la lista Profession y hacer clic en Guardar. Cuando se muestre la página de nuevo, la información en los controles se habrá perdido. Es el comportamiento predeterminado de los formularios
HTML.
15. Hacer clic con el botón derecho en la página y clic en Ver fuente para mostrar el HTML fuente en el cliente. El HTML enviado al cliente es el mismo que el HTML creado en el servidor.
16. Cerrar la vista del código fuente HTML en el navegador.

Crear formularios Web Forms

 Crear formularios Web Forms 

1.     ¿Qué es un formulario Web Form?
2.     Crear un formulario Web Form con Visual Studio .NET
3.     Demostración: convertir una página HTML en un formulario Web Form

·         Extensión .aspx
·         Atributos de página
·         Directiva @ Page
o   Atributos de cuerpo
o   Atributos de formulario







Los formularios Web Forms están formados por una combinación de HTML, código y controles que se ejecutan en un servidor Web ejecutando Microsoft Internet Information Services (IIS). Los formularios Web Forms muestran una interfaz de usuario que genera HTML y que se envía al navegador, mientras que el código de soporte y los controles que la componen permanecen en el servidor Web. Esta división entre el interfaz en el cliente y el código en el servidor es una importante diferencia entre los formularios Web Forms y las páginas Web tradicionales. Mientras una página Web tradicional requiere que todo el código se envíe y se procese en el navegador, los formularios Web Forms únicamente necesitan enviar al navegador los controles de la interfaz, y el proceso de las páginas se mantiene en el servidor. Esta división entre IU y código aumenta el número de navegadores soportados e incrementa la seguridad y funcionalidad de la página Web.


Extensión .aspx

Los formularios Web Forms se denominan habitualmente páginas ASP.NET o páginas ASPX. Los formularios Web Forms tienen una extensión .aspx y funcionan como contenedores para el texto y los controles que deseamos mostrar en el navegador. Las páginas ASP.NET (.aspx) y Active Server Pages (ASP) (.asp) pueden coexistir en el mismo servidor. La extensión del archivo determina si la página la procesa ASP o ASP.NET.
Los formularios Web Forms están frecuentemente formados por dos archivos distintos: el archivo .aspx contiene la IU para el formulario Web Form, mientras que el archivo .aspx.vb o .aspx.cs, denominado página de código subyacente, contiene el código de soporte.


                Atributos de la página

Las funciones de un formulario Web Form están definidas por tres niveles de atributos. Los atributos de página definen las funciones globales, los atributos de cuerpo definen cómo se mostrará una página y los atributos de formulario definen cómo se procesarán los grupos de controles.
La etiqueta <@Page> define atributos específicos de la página que utiliza el parseador de páginas ASP.NET y el compilador. Únicamente podemos incluir una etiqueta <@ Page> por archivo .aspx. Los siguientes ejemplos son etiquetas <@ Page> típicas para Microsoft Visual Basic® .NET y para Microsoft Visual C#™ .NET:

Visual Basic .NET

<%@ Page Language="vb" Codebehind="WebForm1.aspx.vb"
SmartNavigation="true" %>

C#
<%@ Page Language="c#" Codebehind="WebForm1.aspx.cs"
SmartNavigation="true" %>
Los atributos de una etiqueta <@ Page> incluyen:
A)      Language
            El atributo Language define el lenguaje en el que está escrito el script de la página Web. Algunos de los valores de este atributo son: vb, c# y JScript.
B)     Página Codebehind
           El atributo de página Codebehind identifica la página de código subyacente que tiene la lógica que soporta el formulario Web Form. Cuando Visual Studio .NET crea un formulario Web         Form, como WebForm1.aspx, también crea una página de código subyacente, WebForm1.aspx.vb o WebForm1.aspx.cs.
C)     SmartNavigation
           El atributo SmartNavigation de ASP.NET permite al navegador actualizar únicamente las secciones del formulario que han cambiado. Las ventajas de SmartNavigation son que la pantalla            no parpadea mientras se actualiza; en lugar de ello, se mantiene la posición de desplazamiento y se mantiene la "última página" en el historial. Smartnavigation únicamente está disponible para los usuarios con Microsoft Internet Explorer 5 o superior.


Atributos del cuerpo

Los atributos de la etiqueta <Body> definen el aspecto de los objetos que se  muestran en el navegador del cliente. La siguiente es una etiqueta <Body> típica:
<body ms_positioning="GridLayout">
Los atributos de una etiqueta <Body> incluyen:
A)     PageLayout
           El atributo pageLayout (etiquetado como ms_positioning) determina cómo se posicionan los controles y el texto en la página. Existen dos opciones para pageLayout:
           • FlowLayout
               En FlowLayout, el texto, las imágenes y los controles fluyen por la pantalla, dependiendo del ancho de la ventana del navegador.
           • GridLayout
               En GridLayout, los campos de texto, las imágenes y los controles de una página están fijados por coordinadas absolutas. GridLayout es el valor de pageLayout predeterminado para    Visual Studio .NET.
El siguiente código de ejemplo muestra cómo implementar GridLayout y situar un cuadro de texto:

<body ms_positioning="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:textbox id="txtField1" style="Z-INDEX: 101;
LEFT: 65px; POSITION: absolute; TOP: 98px"
runat="server" Height="26px" Width="194px">
</asp:textbox>
</form>
</body>

             Atributos del formulario
La etiqueta <Form> define cómo se procesarán los grupos de controles. La etiqueta <Form> es diferente del término Web Form utilizado para definir la página Web completa. Los atributos de la etiqueta <Form> definen cómo se procesarán los controles. Aunque podemos tener muchos formularios HTML en una página, únicamente podemos tener un formulario del lado del servidor en una página .aspx.
El siguiente ejemplo es de una etiqueta <Form> típica:

<form id="Form1" method="post" runat="server">
...
</form>

Los atributos de una etiqueta <Form> incluyen:

A)     Method
            El atributo Method identifica el método para enviar valores de control de retorno al servidor. Las opciones de este atributo son:
          • Post
            Los datos se pasan en pares nombre/valor dentro del cuerpo de la petición HTTP (Hypertext Transfer Protocol).
          • Get
            Los datos se pasan en una cadena de consulta.
B)     Runat
Una de las principales características de un formulario Web Form es que los controles se ejecutan en el servidor. El atributo runat="server" hace que el formulario publique información de control de retorno a la página ASP.NET en el servidor donde se ejecuta el código de soporte. Si el atributo runat no está establecido en "server", el formulario funciona como un formulario
HTML normal.

 Ejemplo con Visual Basic .NET

El siguiente código procede del formulario Web Form predeterminado de Visual Studio .NET al crear un nuevo proyecto de aplicación Web ASP.NET con Visual Basic .NET:

<%@Page Language="vb" AutoEventWireup="false"
Codebehind="WebForm1.aspx.vb"
Inherits="WebApplication1.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual
Studio.NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic 7.1">
<meta name="vs_defaultClientScript"
content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
'HTML y controles aquí
</form>
</body>
</html>


         Ejemplo de C#
El siguiente código procede del formulario Web Form predeterminado de Visual Studio .NET al crear un nuevo proyecto de aplicación Web ASP.NET con Visual C#:

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs"
AutoEventWireup="false" Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual
Studio 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript"
content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</head>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
'HTML y controles aquí
</form>
</body>
</html>