IMPLEMENTACION DE APLICACIONES INTERNET II ASP .NET Introducción
Contenidos Introducción al .NET Framework Descripción de ASP.NET
Herramientas del desarrollador Experiencias del usuario ¿Qué es .NET Framework? Herramientas del desarrollador Clientes Aplicaciones Web ASP.NET Bases de datos Servicios Web XML Experiencias del usuario .NET Framework
¿Qué problemas soluciona .NET? Incluso con Internet, la mayoría de aplicaciones y dispositivos tienen problemas comunicándose entre sí Los programadores terminan por escribir infraestructura en lugar de aplicaciones Los programadores han tenido que limitar su alcance o aprender continuamente nuevos lenguajes
Componentes del .NET Framework Visual Basic C++ C# Perl Python … Servicios Web XML Interfaz de usuario ASP.NET ADO.NET y XML Biblioteca de clases de .NET Framework Common Language Runtime Message Queuing COM+ (Transacciones, Particiones, Agrupación de objetos) IIS WMI Win32
Ventajas de usar el .NET Framework Basado en estándares y prácticas Web La funcionalidad de las clases .NET está disponible de forma universal El código está organizado en clases y espacios de nombres jerárquicos Independiente del lenguaje Windows API ASP .NET Framework 1980s 1990s 2000s Visual Basic MFC/ATL
Visual Studio .NET: la herramienta para el desarrollo .NET Herramientas Web Forms Herramientas Windows Forms Visual Studio .NET Múltiples Lenguajes Proceso de errores Herramientas Servicios Web Acceso a datos Diseñar Desarrollar Depurar Implantar
¿Qué es ASP.NET? El sucesor y evolución de Active Server Pages, más flexible Páginas Web dinámicas que pueden acceder a recursos del servidor Procesamiento de formularios Web Forms en el lado servidor Los Servicios Web XML permiten crear aplicaciones Web distribuidas Independiente del navegador Independiente del lenguaje
ASP.NET versus J2EE
J2EE
ASP.NET
Aplicación Web ASP.NET Servidor Web ASP.NET Caché de Salida Clientes Web Forms Web. config Page1. aspx Páginas código trasero Caché de Salida Internet Page2. aspx machine. config global. asax Servicios Web Base de datos Componentes Datos XML
¿Por qué Visual Studio .NET? Un IDE para múltiples lenguajes y múltiples tipos de proyectos Múltiples lenguajes en un proyecto Múltiples tipos de proyectos en una solución Navegador integrado Soporte de depuración Interfaz personalizable
Página de inicio Acceso de soporte en línea Proyectos recientes
Plantillas de proyectos disponibles La lista de plantillas de proyectos disponibles se basa en las selecciones del Perfil y Tipos de proyectos
Entorno integrado de desarrollo (IDE) Cuadro de herramientas Editor/Navegador Examinador de objetos Explorador de soluciones Explorador de servidores Propiedades Lista de tareas Ayuda dinámica
El proceso de desarrollo Crear una especificación de diseño Crear un nuevo proyecto Crear la interfaz y escribir código Probar y depurar Generar Visual Studio .NET Implementar
Archivos en aplicaciones Web Archivos de solución (.sln, .suo) Archivos de proyecto (.vbproj, .csproj) Archivos de aplicación Web Formularios Web Forms ASP.NET(.aspx) Servicios Web ASP.NET (.asmx) Clases, páginas de código subyacente (.vb o .cs) Clases de aplicaciones globales (.asax) Archivo Web.config Ensamblado del proyecto (.dll)
Estructura de los archivos de una aplicación Web Inetpub Mis Documentos Visual Studio projects wwwroot Solution ProjectA Solution.sln ProjectA.vbproj Archivos de desarrollo WebForm1.aspx WebForm1.aspx.vb (página de código subyacente) Archivos de ensamblado Bin Generar ProjectA.dll
¿Qué es un formulario Web? Extensión .aspx Atributos de página Directiva @ Page Atributos de cuerpo Atributos de formulario <%@ Page Language="vb" Codebehind="WebForm1.aspx.vb" SmartNavigation="true"%> <html> <body ms_positioning="GridLayout"> <form id="Form1" method="post" runat="server"> </form> </body> </html>
Crear un formulario Web 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 MSc. Gloria Appelgren y Dr. Juan José Aranda
¿Qué es un control de servidor? <asp:Button id="Button1" runat="server" Text="Submit"/> Runat="server" Los eventos ocurren en el servidor View state saved Have built-in functionality Common object model Todos tiene atributos Id y Text Crear browser-specific HTML
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
Guardar el estado de vista Control oculto ViewState de pares de nombre y valor almacenados en el formulario Web Form De forma predeterminada, ajustable a nivel de formulario Web Form y control <input type="hidden" name="__VIEWSTATE" value="dDwtMTA4MzE0MjEwNTs7Pg==" /> <%@ Page EnableViewState="False" %> <asp:ListBox id="ListName" EnableViewState="true" runat="server"> </asp:ListBox>
Controles de servidor HTML Basados en elementos HTML Existen en el espacio de nombres System.Web.UI.HtmlControls <input type="text" id="txtName" runat="server" />
Controles de servidor Web Existen en el espacio de nombres System.Web.UI.WebControls Sintaxis del control HTML generado por el control <asp:TextBox id="TextBox1" runat="server">Text_to_Display </asp:TextBox> <input name="TextBox1" type="text" value="Text_to_Display" Id="TextBox1"/>
Seleccionar el control adecuado Utilizar controles de servidor HTML si: Utilizar controles de servidor Web si: Se prefiere un modelo de objetos como HTML Se prefiere un modelo de programación Visual Basic Se está trabajando con páginas HTML existentes y se desea agregar funcionalidades de página ASP.NET Web Se está escribiendo una página que puede ser utilizada por varios navegadores El control interactuará con scripts cliente y servidor Se necesitan funcionalidades específicas como un calendario o rotación de publicidad El ancho de banda es limitado El ancho de banda no es un problema
Cómo implementar código Tres métodos para agregar código: Ubicar el código en el mismo archivo que el contenido (mezclado) Ubicar el código en una sección distinta del archivo de contenido (código en línea ) Ubicar el código en un archivo distinto (páginas de código subyacente) Las páginas de código subyacente son el método predeterminado de Visual Studio .NET
Escribir código en línea Código y contenido en el mismo archivo Distintas secciones en el archivo para el código y HTML <HTML> <asp:Button id="btn" runat="server"/> </HTML> <SCRIPT Language="vb" runat="server"> Sub btn_Click(s As Object, e As EventArgs) Handles btn.Click ... End Sub </SCRIPT> <HTML> <asp:Button id="btn" runat="server"/> </HTML> <SCRIPT Language="c#" runat="server"> private void btn_Click(object sender, System.EventArgs e) { . . . } </SCRIPT>
¿Qué son las páginas de código subyacente? Separación de código y contenido Los desarrolladores y los diseñadores de la interfaz de usuario pueden trabajar independientemente Un archivo Archivos distintos código <tags> código <tags> Form1.aspx.vb o Form1.aspx.cs Form1.aspx Form1.aspx
Cómo funcionan las páginas de código subyacente Crean archivos distintos para la interfaz de usuario y la lógica de la interfaz Utilizan la directiva @ Page para enlazar los dos archivos Pre-compilación o compilación JIT Page1.aspx <% @ Page Language="c#" Inherits="Project.WebForm1" Codebehind="Page1.aspx.cs" Src = "Page1.aspx.cs" %> Page1.aspx.cs public class WebForm1 { private void cmd1_Click() { … }
¿Qué son los procedimientos de evento? Acciones en respuesta a la interacción de un usuario con los controles de la página
Procedimientos de evento en el lado del cliente Normalmente, se utilizan únicamente con controles HTML Interpretado por el navegador y se ejecuta en el cliente No tiene acceso a los recursos del servidor Utiliza <SCRIPT language="lenguaje"> Páginas .HTM Internet
Procedimientos de evento en el lado del servidor Utilizados tanto con controles de servidor Web como HTML El código se compila y ejecuta en el servidor Tienen acceso a recursos del servidor Utilizan <SCRIPT language="vb" runat="server"> o <SCRIPT language=“cs" runat="server"> .Páginas .ASPX Internet
Crear procedimientos de evento Visual Studio .NET declara variables y crea una plantilla de procedimiento de evento El uso de la palabra clave Handles agrega a un evento varios procedimientos de evento Protected WithEvents cmd1 As System.Web.UI.WebControls.Button Private Sub cmd1_Click(ByVal s As System.Object, _ ByVal e As System.EventArgs) Handles cmd1.Click protected System.Web.UI.WebControls.Button cmd1; private void InitializeComponent() { this.cmd1.Click += new System.EventHandler(this.cmd1_Click); this.Load += new System.EventHandler(this.Page_Load); } private void cmd1_Click(object s, System.EventArgs e)
Interactuar con controles en procedimientos de evento Leer las propiedades de los controles de servidor Web Respuestas de salida a otros controles de servidor Web strGreeting = "Hello " & txtName.Text strGreeting = "Hello " + txtName.Text; lblGreeting.Text = "new text" lblGreeting.Text = "new text";
Ciclo de vida de los eventos de página Page_Init Page_Load Eventos control Eventos de cambio Textbox1_Changed Button1_Click Eventos de acción Page_Unload La página se gestiona
¿Qué es un servicio Web XML? Lógica programable accesible por protocolos Web estándares Permite a las aplicaciones enviar y recibir información a través de Internet Independiente de lenguaje, protocolo y plataforma Arquitectura sin estado Puede ser asíncrono Basado en un estándar W3C en desarrollo
¿Por qué utilizar los servicios Web XML? Sitio de viajes Northwind Traders Servicio Web XML meteorológico Seleccionar destino: La Habana La previsión meteorológica es: Lluvia Internet Servicio Web XML tipo de cambio El tipo de cambio es: $1.56 El billete de avión sólo cuesta: $1,999.98 Servicio Web XML precio del billete Base de datos de precios de billetes
Buscar un servicio Web XML 1 Publicar la URL del servicio Web XML y su descripción UDDI 2 Descubrir el servicio Web XML 3 Localizar la URL del servicio Web XML 4 Leer la descripción .wsdl 5 Vincular el servicio Web XML al proxy 2 1 Invocar el servicio Web XML desde el formulario Web Form Mediante el proxy 6 .disco Web Form 3 .wsdl 4 5 6 Servicio Web Proxy
Cómo invocar un servicio Web XML utilizando HTTP Ir a la URL del servicio Web XML Seleccionar un método del servicio Web XML Invocar el método del servicio Web XML Ver la respuesta XML 1 2 3 4
Utilizar proxies para invocar servicios Web XML Parecen idénticos que la clase original, pero no contienen la lógica de la aplicación Utilizan SOAP para interactuar con el servicio Web XML Se crean desde el archivo NombreServicio.asmx.wsdl Agregan miembros para gestionar interacciones con el servicio Web XML o soportar llamadas asíncronas Web Form Internet Servicio Web XML Proxy SOAP
Cómo utilizar un proxy para invocar un servicio Web XML Crear una referencia Web para el servicio Web XML Crear una instancia del servicio Web XML Invocar los métodos Web del servicio Web XML Generar la aplicación Web ASP.NET Sub Button1_Click(s As Object, e As EventArgs)... Dim ProxyGetStocks As New _ GetStocks.localhost.Service1() lblResults.Text = _ ProxyGetStocks.GetRating("Contoso") End Sub
Control de errores del servicio Web XML Servicio no disponible Excepciones SOAP de servicios Web XML GetStocks.StockWebRef.Service1 ProxyGetStocks = new GetStocks.StockWebRef.Service1(); ProxyGetStocks.Timeout = 10000; try { lblMessage.Text = ProxyGetStocks.GetRating(TextBox1.Text); } catch (Exception err) lblMessage.Text = err.Message;
Cómo crear un servicio Web XML Crear un nuevo proyecto de servicio Web XML en Visual Studio .NET Declarar las funciones WebMethod Generar el proyecto de servicio Web XML Probar con un navegador
Código del servicio Web XML Página .asmx Página .asmx.vb <%@ WebService Language="vb" Codebehind="Service1.asmx.vb" Class="XMLWebServiceName.Service1" %> Imports System Imports System.Web.Services Class Service1 <WebMethod()> Public Function function1() As type 'function_here End Function End Class
Interoperabilidad Ejemplo integrado por: Servicio Web desarrollado con C# en .NET Servicio Web desarrollado con Java en NetBeans Cliente para ambos servicios
Referencias The J2EE homepage: The Microsoft .NET homepage: http://java.sun.com/j2ee The Microsoft .NET homepage: http://www.microsoft.com/net The Advanced C#/.NET Tutorial: http://my.execpc.com/~gopalan/dotnet/net_tutorial.html Visual C# Dev Center: http://msdn2.microsoft.com/en-us/vcsharp/default.aspx Descarga de Edición Express (gratis para desarrollo): http://msdn.microsoft.com/vstudio/express/visualcsharp/ Comparaciones ASP.NET vs J2EE http://www.theserverside.com/tt/articles/article.tss?l=J2EE-vs-DOTNET http://msdn2.microsoft.com/en-us/library/aa478961.aspx http://www.gotdotnet.com/team/compare/petshop.aspx