500 likes | 688 Views
Clase XI. [nombre instructor] [fecha]. Agenda. ASP.NET Introducción Modelo de Código de Página Web ASP.NET Manejo de Estado Controles WebControls & HTMLControls UserControls & CustomControls CallBacks en Clientes Acceso de Datos. Agenda. ASP.NET Introducción
E N D
Clase XI • [nombre instructor] • [fecha]
Agenda • ASP.NET • Introducción • Modelo de Código de Página Web ASP.NET • Manejo de Estado • Controles WebControls & HTMLControls • UserControls & CustomControls • CallBacks en Clientes • Acceso de Datos
Agenda • ASP.NET • Introducción • Modelo de Código de Página Web ASP.NET • Manejo de Estado • Controles WebControls & HTMLControls • UserControls & CustomControls • CallBacks en Clientes • Acceso de Datos
Client-Side Event Procedures • Típicamente usado solo con controles HTML • Interpretado por el explorador y ejecutado sobre el cliente • No tiene acceso a los recursos de servidor • Usa <SCRIPT language="language"> .HTM Pages Internet ASP.NET
Server-Side Event Procedures • Usado con controles de servidor Web y HTML • El código es compilado y ejecutado sobre el servidor • Se tiene acceso a los recursos del servidor • Usa <SCRIPT language="vb" runat="server"> o <SCRIPT language=“cs" runat="server"> .ASPX Pages Internet ASP.NET
La pagina es desechada Entendiendo el ciclo de vida de una pagina Page_Init Page_Load Control events Textbox1_Changed Evento Change Button1_Click EventoAction Page_Unload ASP.NET
El proceso Postback ASP.NET
ASP.NET Web Application ASP.NET Web Server Clients Web Forms Web.config Page1.aspx Code-behind pages Output Cache Internet Page2.aspx machine.config global.asax WebServices Database Components XML Data ASP.NET
ASP.NET Execution Model ASP.NET
Las aplicaciones Web ASP.NET componentes • Formularios Web o páginas .ASPX: Proveen de la interfase visual. No tienen código ejecutable. • Páginas de Código por detrás: Están asociadas con cada formulario y son las que proveen del código ejecutable. • Archivos de Configuración: Son archivos que permiten configurar la aplicación, por ejemplo el archivo Web.config y el servidor por ejemplo el archivo machine.config. • Global.asax: Es un archivo que contiene código. Este código responde a eventos que se disparan en la aplicación Web. ASP.NET
Proyecto Web • Formulario Web ASP.NET (.aspx): Es la interfase visual de la aplicación Web. Puede tener código por detrás., cuyo nombre es Formulario.aspx.vb o Formulario.aspx.cs • Clases y código por detrás (.cs y .vb): Son las clases que utiliza el proyecto y el código de soporte de los formularios y los servicios. • Clase Global (.asax):Es un archivo que contiene código de eventos a nivel de aplicación. • Web.config: Es un archivo XML con información de configuración. • Archivos ensamblados del proyecto (.dll):Todas las paginas de código por detrás de una aplicación son compilados en un solo DLL que se guarda en el directorio /bin con el nombre de NombreDeProyecto.dll • VsProj o CsProj:Vs Proj es la extensión de un proyecto si usted escribió la aplicación en Visual.NET. CsProj es la extensión si utilizo c# ASP.NET
<%@ Page Language="vb" Codebehind="WebForm1.aspx.vb" SmartNavigation="true"%> <html> <body ms_positioning="GridLayout"> <form id="Form1" method="post" runat="server"> </form> </body> </html> Que es un Web Form? • Extensión .aspx • Atributos de pagina • Directiva @ Page • Atributos de Body • Atributos de Formularios ASP.NET
Repositorio central de configuración de la aplicación Web Definición de settings personaliados Configuración de Autorización y Autenticación Web.config
Creando un Web Form con Visual Studio .NET - Demo • Creación de nuevos Web Form • Agregar nuevos Web Forms desde el explorador de soluciones • Actualizar paginas HTML existentes dentro de Web Forms ASP.NET
Modelo de Código de Página Web • Una Página Web ASP.NET consta de dos partes: • Elementos visuales, que incluyen controles del servidor y texto estático. • Programación lógica para la página, que incluye manejador de eventos y el resto del código. • Modelos de Página • Modelo de Página Single-File • Modelo de Página Code-Behind ASP.NET
El modelo Code-Behind • Toma ventajas del nuevo Partial Classes • El archivo Code-behind no es una definición completa de clase. Un archivo code-behind podría ser el siguiente using System; public partial class SamplePage_aspx { void Button1_Click(Object sender, EventArgs e) { Label1.Text = "Clicked at " + DateTime.Now.ToString(); } } Directiva @ Page <%@ page language="C#" CodeFile="SamplePage.aspx.cs" Inherits="SamplePage" %> ASP.NET
El Modelo Code-Behind • El archivo code-behind es más simple. • Incluye controles de usuario en una página, sin tener que crear explícitamente las variables para ellos. • Más fácil de separar el desarrollo del markup y del código. ASP.NET
Que es el View State • Técnicas utilizadas por ASP.NET para mantener el estado de los controles. • Problemas comunes al uso de View State • Incremento en el tiempo de la carga de la pagina • Incremento en el tamaño de la pagina. ASP.NET
Solución de problemas de rendimiento en View State • Desactivar la propiedad EnableViewState para el control correspondiente. • Desactivar la propiedad EnableViewState en la directiva @Page • Guardar el View State en archivos del sistema del servidor en lugar de campos ocultos ASP.NET
Que es el Control State • Reemplaza el private use de View State • Private use de view state ocurre cuando un control almacena propiedades no publicas en view state • Las aplicaciones no pueden acceder a propiedades no publicas por problemas de protección ASP.NET
Session State • Definición de almacenes personalizados de session state. • Nuevo modelo extensible • Personalización del modelo de session state ASP.NET
Cache • La clase CacheDependency encapsula mecanismos de dependencia de cache • Representa un archivo o carpeta o conjunto de archivos y carpetas que almacenan ítems relacionados a un ítem agregado a la cache • ASP.NET tiene soporte para dependencias personalizadas ASP.NET
Controles • HTML vs. Server Controls • User controls • Custom controls ASP.NET
HTML (HTMLControls) Más livianos Modelo de programación HTML Menor funcionalidad Server Controls (WebControls) Modelo de programación orientado a objetos Mayor funcionalidad Más pesados HTML vs. Server Controls ASP.NET
Que es un control de usuario? • User controls simplifica la reutilización del código y los componentes de la UI con una aplicación Web • Un user control es un control Web server definido por el usuario con extensión .ascx • Contiene HTML, pero no el <HTML>, <BODY>, o las etiquetas <FORM> o • Contiene código para administrar sus propios eventos <%@ Control Language="vb" %> <%@ Control Language="c#" %> ASP.NET
Que es un control de usuario? • Similar a una página Web Form completa • Tiene una página de interfaz de usuario y un archivo de código subyacente • Directiva @Control • Extensión .ascx • No tiene elementos <HTML>, <BODY> y <FORM> • Contiene código para manejar sus propios eventos • Hay dos maneras de crear un Control de Usuario: • Crear un nuevo Control de Usuario • Convertir una página ASP.NET existente a un Control de Usuario ASP.NET
Que es un control de usuario? • Registre el control de usuario al comienzo de la página del Web Formscontenedor con la directiva @Reference2. • Cree una instancia del control de usuario, ya sea en el archivo de la clase del código subyacente o en el bloque de declaración de código del archivo contenedor .aspx • <%@ ReferenceControl=“myUserControl.ascx" %> • Control userControl1= LoadControl(“myUserControl.ascx");((myUserControl)userControl1).Color = “red";Page.Controls.Add(userControl1); ASP.NET
Demo • Creación de un Web Form user control
Demo • Agregar user control a Web Forms
Custom Controls • Los controles pueden ser reutilizables • Se pueden generar nuevos controles ASP.NET
Creando Custom Controls • Diferentes maneras de crear Controles Personalizados • Compilar un control que combine la funcionalidad de dos o más controles existentes • Personalizar un Control existente derivando de este y reemplazando (overriding) sus características • Crear un control personalizado al derivar de la clase base Control ASP.NET
UserControls vs CustomControls • Controles de Usuario • Mas fáciles de crear • No pueden ser agregados a la Caja de Herramientas de Visual Studio • Buenos para contenidos estáticos • Controles Personalizados • Mas difíciles de crear • Pueden ser agregados a la Caja de Herramientas de Visual Studio • Buenos para contenidos dinámicos ASP.NET
Callbacks en Clientes • Postbacks "Ligeros" • El administrador de Callbacks del cliente transmite peticiones asincrónicas de XML-HTTP al servidor • El servidor recibe y procesa la petición, pero no renderiza la página • El administrador de Callbacks del cliente recibe la respuesta y notifica al cliente a través de un CallBack registrado • Requiere Internet Explorer 5.0 o superior • Gran manera de mejorar la respuesta de la UI ASP.NET
Como trabajan los CallBacks en Cliente Cliente Servidor 1 2 Administra-dor de Llamadas de Respuesta Cliente Página El cliente inicia el CallBack llamando por a un GetCallback-EventReference El administrador de CallBacks lanza la llamada asincrónica XML-HTTP al servidor. 3 Se llama al método RaiseCall-backEvent 5 4 El cliente es notificado que la llamada se completó y el resultado fue entregado El administrador de CallBacks es notificado que la llamada se completó ASP.NET
Demo • Client CallBacks
Acceso de Datos • Controles de la Fuente de Datos • Declarativas bidireccionales de data binding • Controles de Datos • GridView- Como DataGrid, pero mejor • DetailsView – Acompaña la GridView ASP.NET
ASP.NET Data Binding • Usando SqlDataSource <asp:SqlDataSource ID="Titles" RunAt="server" ConnectionString="server=localhost;database=pubs;integrated security=true" SelectCommand="select title_id, title, price from titles" /> <asp:DataGrid DataSourceID="Titles" RunAt="server" /> ASP.NET
ASP.NET Data Binding • Propiedades clave de SqlDataSource Nombre Descripción ConnectionString La secuencia de conexión es usada para conectarse al origen de datos SelectCommand Comando utilizado para efectuar consultas InsertCommand Comando utilizado para realizar inserts UpdateCommand Comando utilizado para realizar actualizaciones DeleteCommand Comando utilizado para efectuar cancelaciones DataSourceMode Especifica si el DataSet o el DataReader es utilizado (default = DataSet) ASP.NET ProviderName Especifica el Proveedor (default = Proveedor SQL Server .NET)
ASP.NET Data Binding • Comandos Parametrizados • Las propiedades XxxParameters permiten que los comandos de base de datos sean parametrizados. Nombre Descripción SelectParameters Especifica los parámetros para SelectCommand InsertParameters Especifica los parámetros para InsertCommand UpdateParameters Especifica los parámetros para UpdateCommand DeleteParameters Especifica los parámetros para DeleteCommand ASP.NET FilterParameters Especifica los parámetros para FilterExpression
ASP.NET Data Binding • Parámetro de Control • Ata un parámetro reemplazable a una propiedad de control <asp:SqlDataSource ID="Countries" RunAt="server" ConnectionString="server=localhost;database=northwind;..." SelectCommand="select distinct country from customers order by country" /> <asp:SqlDataSource ID="Customers" RunAt="server" ConnectionString="server=localhost;database=northwind;..." SelectCommand="select * from customers where country=@Country"> <SelectParameters> <asp:ControlParameter Name="Country" ControlID="MyDropDownList" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> <asp:DropDownList ID="MyDropDownList" DataSourceID="Countries" DataTextField="country" AutoPostBack="true" RunAt="server" /> <asp:DataGrid DataSourceID="Customers" RunAt="server" /> ASP.NET
ASP.NET Data Binding • XmlDataSource • Data binding declarativo a datos XML • Soporta cacheo y transformaciones XSL • Data binding unidireccional solamente; sin actualizaciones <asp:XmlDataSource ID="Rates" DataFile="Rates.xml" RunAt="server" /> <asp:TreeView ID="MyTreeView" DataSourceID="Rates" RunAt="server" /> ASP.NET
Laboratorio • XMLDataSource
Control GridView • Control DataGrid mejorado • Renderiza conjuntos de registros como tablas HTML • Clasificación, paginado, selección, actualización y soporte de borrado incorporados. • Declarado en elementos <Columns> • UI altamente personalizable ASP.NET
Control GridView <asp:SqlDataSource ID="Employees" RunAt="server" ConnectionString="server=localhost;database=northwind;..." SelectCommand="select lastname, firstname, title from employees" /> <asp:GridView DataSourceID="Employees" Width="100%" RunAt="server" /> ASP.NET
Control GridView Nombre Descripción BoundField Renderiza columnas de texto de campos en data source ButtonField Renderiza columna de botones (push button, image, or link) CheckBoxField Renderiza Booleanos como check boxes CommandField Renderiza controles para seleccionar y editar datos de GridView HyperLinkField Renderiza columnas de hyperlinks ImageField Renderiza columnas de imágenes TemplateField Renderiza columnas usando plantillas HTML ASP.NET
Control GridView <asp:SqlDataSource ID="Employees" RunAt="server" ConnectionString="server=localhost;database=northwind;..." SelectCommand="select photo, lastname, firstname, title from employees" /> <asp:GridView DataSourceID="Employees" Width="100%" RunAt="server" AutoGenerateColumns="false" > <Columns> <asp:ImageField HeaderText="" DataField="photo" /> <asp:TemplateField HeaderText="Name"> <ItemTemplate> <%# Eval ("firstname") + " " + Eval ("lastname") %> </ItemTemplate> </asp:TemplateField> <asp:BoundField HeaderText="Title" DataField="title" /> </Columns> </asp:GridView> ASP.NET
Control DetailsView • Renderiza registros individuales • En conjunto con GridView para las vistas master-detail • O uso sin GridView para mostrar registros individuales • Paginado, altas, actualización y borrado incorporados • Utiliza los mismos tipos de campo que GridView • Declarado en elementos <Fields> • UI altamente personalizable ASP.NET
Control DetailsView <asp:SqlDataSource ID="Employees" RunAt="server" ConnectionString="server=localhost;database=northwind;..." SelectCommand="select employeeid, photo, ... from employees" /> <asp:DetailsView DataSourceID="Employees" RunAt="server" AllowPaging="true" AutoGenerateRows="false" PagerSettings-Mode="NextPreviousFirstLast"> <Fields> <asp:ImageField HeaderText="" DataField="photo" /> <asp:BoundField HeaderText="Employee ID" DataField="employeeid" /> <asp:BoundField HeaderText="Date Hired" DataField="hiredate" /> <asp:TemplateField HeaderText="Name"> <ItemTemplate> <%# Eval ("firstname") + " " + Eval ("lastname") %> </ItemTemplate> </asp:TemplateField> <asp:BoundField HeaderText="Title" DataField="title" /> </Fields> </asp:DetailsView> ASP.NET
Alta, Actualización, y Borrado • Los controles de datos proveen UIs editables • Propiedades AutoGenerateXxxButton • Propiedades Insert/EditRowStyle • Controles de Data source proveen lógica de edición • Propiedades Insert/Update/DeleteCommand • Propiedades Insert/Update/DeleteParameters • Eventos Inserting/ed, Updating/ed, Deleting/ed ASP.NET
Demo • GridView y DetailsView