You are on page 1of 10
‘182021 ‘Curso de CH - Formulatios web Curso de C# Formularios web Formularios Controles Funcionamiento de las paginas ASP.NET Formularios Visual Studio .NET proporciona un entorno de programacién visual orientado a objetos mediante el cual pademos crear aplicaciones web utilizando componentes ASP.NET (por derivacién y por composicién). Esto nos permite desarrollar aplicaciones web prestando poca atencién al HTML en si, ya que este no es mas que el mecanismo a través del cual los distintos controles de nuestra Interfaz se presentan al usuario final de nuestras aplicaciones. ASP.NET, en realidad, es una DLL ISAPI que encapsula al Common Language Runtime (CLR) de la plataforma .NET y permite utilizar ésta en el desarrollo de aplicaciones web para el Internet Information Server (11S) de Microsoft Internet Cliente (navegador) Las aplicaciones web ASP.NET estén formadas por formularios web, que usualmente se dividen en un fichero .aspx, en el que se especifica la interfaz del formulario, y un fichero de cédigo parte .aspx.cs, en el que se implementa la légica de la aplicacién. A partir de le versién 2.0 de la plateforma .NET, que permite la implementacion parcial de clases (con la palabra reservada partial), el fichero de cédigo se divide en dos: un fichero aspx.cs en el que el programador implementa sus manejadores de eventos y lun fichero .aspx.designer.cs en el que se recoge todo el cédigo generado automaticamente por el Visual Studio. De esta forma, se ellmina una fuente de error bastante comin en versiones del Visual Studio anteriores al VS2005; a saber, el borrado ‘elvex ugresidecsaicsharpiwebiwebforms.xmi sno er2021 Curso de CH Formularios web accidental del cédigo generado automsticamente, lo que provocaba que la aplicacién dejase de funcionar correctamente. Para poder acceder a una aplicacién web, basta con poner esos los ficheros necesarios, fen algin lugar accesible a través del IIS (el directorio raiz wwwroot, por ejemplo). Al acceder a [a pagina .aspx, el cédigo se compila automaticamente y se genera un assembly en la caché del CLR. Si el texto de la pagina cambia, el cédigo se recompila utomaticamente. Si no cambia, las solicitudes que se reciban a continuacién utlizaran directamente la versién compilada que se halla en la caché, lo que mejora notablemente la eficiencia de las aplicaciones web ASP.NET con respecto a las versiones previas de ASP. NOTA: En el Visual Studio 2005, pademos usar el servidor web de desarrollo que lleva integrado para probar nuestras aplicaciones sin tener que recurrir al 1S. Fichero .aspx &% @Page Language="Ch" Inherits ‘odayPage” Sr Today.cs" %> ‘chi align="center"> Hoy es cyhtel> Fichero .cs using systes; using Systes.Web.UZ; public class Todaypage:?age "protected void outputday() * Response. Wnite(oaterine.Now.Tostring( > » “Acédigo fuente (Visual Studio NET 2003) "Acédigo fuente (Visual Studio NET 2005) En el fichero aspx se puede incluir cédigo, si bien lo habitual seré utilizar controles predefinidos. Técnicamente, a pagina .aspx hereda de la clase definida en el fichero de cédigo, la cual a su vez hereda de System.Web.UT.Page, De forma que basta con definir los métodos de esta clase como protected para poder acceder a ellos desde el fichero aspx. Controles Las aplicaciones web ASP.NET, usualmente, emplean controles predefinidos de la biblioteca de clases de la plataforma .NET. Estos controles proporcionan un modelo orientado a objetos de los formularios web ASP.NET. Los controles se indican en el fichero .aspx utilizando etiquetas de la forma , mientras que la légica de la aplicacién se programa especificando la respuesta de nuestra interfaz a los distintos eventos que puedan producirse (exactamente igual que en cualquier entorne de programacién visual). El servidor web se encargard de interpretar las etiquetas correspondientes a los controles ASP.NET para que éstos se visualicen correctamente en el navegador del usuario, Nosotros no tenemos que preacuparnos de cémo generar el documento HTML que se visualiza en el navegador web del usuario. Aparte de proporcionar un modelo orientedo a objetos de la aplicacién, que evite el cédigo. "spaghetti" tipico de ASP, los controles web proporcionan compatibilidad automatica con distintos tipos de navegadores (aprovechando la funcionalidad de los navegadores modernos, como JavaScript 0 HTML dindmico, sin dejar de funcionar en navegadores mas antiguos, las que se limitan @ soporter HTML 3,2). ASP.NET generard el HTML que resulte mas apropiado para el navegador concreto que utllice cada usuario. Bésicamente, existen tres tipos de controles ASP.NET: + Controles HTML (que representan etiquetas HTML tradicionales), + Controles web (Ios controles asociados a las etiquetas ASP.NET) slvex.ugras/decsailosharpivebiwebforms.xm! ana er2021 Curso de CH Formularios web + Controles de validacién (que permiten validar entradas de una forma cémoda, aunque no siempre resulte la mas adecuada) Los controles anteriores se pueden agrupar para construir controles definidos por el Usuario, que nos permitiran reutiizar con comodidad fragmentos de nuestra interfaz de Controles HTML Las etiquetas HTML esténdar, por defecto, se tratan como texto en el servidor y se envian tal cual al cliente, Para hacerias programables hay que efiadiries un atributo runat="server”. En el siguiente ejemplo podemos ver cémo podemos hacer que un enlace HTML (control HtmlAnchor) apunte dinémicamente a la URL que nos convenga sélo tenemos que establecer un valor adecuaco para su propiedad HRef en el cédigo, asociado a alguno de los eventos de la pigina ASP.NET (p.ej. Page_Load): En la pagina ASP.NET: ‘ehtml> Sedy> ‘
ca id="enlace" runat="server"> |Visite nuestra paginal
‘entnl> En el fichero de cédigo que hay detrés: public class HTMLControl : Systen.Web.UI-Page { protected Systen.Wed.UI_HtmlControls.HtmlAnchor enlaces private void Page_Load(object sender, Systen.Eventérgs ¢) enlace.}Ref = “http://esharp.ikor.org/": > overnice protected void oninit(Eventargs e) * this.toad += new Systes.EventHandler(this.Page_Load); base.oninie(e); ? > En Visual Studio .NET, para poder utilizar un control HTML en el Servidor sélo tenemos que seleccionar la opcién “Ejecutar como control del servidor" en el mend contextual asociado a la etiqueta HTML en el cisefiador ce formulerios web, Esto hace que se afada la declaracién correspondiente a la clase que define nuestro formulerio, con lo cual ya podemos programar el comportamiento del control HTML. "codigo fuente (Visual Studio .NET 2003) codigo fuente (Visual Studio NET 2005) ‘Todos los controles en una pagina ASP.NET deben estar dentro de una etiqueta
con el atribute runat="server Ademés, ASP.NET requiere que todos los elementos HTML estén correctamente anidados y_cerrados (como en XML). De hecho, una pagina ASPNET es un fichero XHTML (Extensible HyperText Markup Language), un esténdar de HTML compatible con la sintaxis de XML, controt Tmt FERRE Descripetén Mtminnchor asc Himibuton button» Batén Amer cform> Formule Hemicenereconvol cuslauler ‘elemento HTML no cublerto por slvex.ugras/decsailosharpivebiwebforms.xm! ana Curso de CH Formularios web Un control HTML cespecifico Htmitmage Imagen Distintos tipas de ‘entradas en un formulario HTML: botones ("button", 'submit” y reset"), texto (text y password"), ("checkbox” y radio"), imagenes Cimage" ficheros ("fle") y ‘entradas ocultas hidden") Htmiinput, Htmiselect