Desarrollo de una Desarrollo de una Aplicación Web sobre Aplicación Web sobre
tecnología Microsoft .NETtecnología Microsoft .NET
Trabajo de Campo IITrabajo de Campo II
Autor: David AndradaAutor: David Andrada
TemarioTemario
Creando una Aplicación Web .NETCreando una Aplicación Web .NET
Ejemplo: AgendaDotNetEjemplo: AgendaDotNet
Capa de PresentaciónCapa de Presentación
Capa de NegociosCapa de Negocios
Capa de Acceso a DatosCapa de Acceso a Datos
Capa de Conexión a SQL ServerCapa de Conexión a SQL Server
Creando una Aplicación Web .NETCreando una Aplicación Web .NET
Crear una Aplicación WebCrear una Aplicación Web
Configurar una Aplicación Web Configurar una Aplicación Web
Acceder a datos usando una Aplicación Acceder a datos usando una Aplicación WebWeb
Tema: Crear una Aplicación WebTema: Crear una Aplicación Web
¿Qué es ASP.NET?¿Qué es ASP.NET?
¿Qué es una Aplicación Web?¿Qué es una Aplicación Web?
Cómo crear una Aplicación WebCómo crear una Aplicación Web
Componentes de una Aplicación WebComponentes de una Aplicación Web
Cómo agregar componentes a una Cómo agregar componentes a una Aplicación WebAplicación Web
Cómo manejar Eventos en una Aplicación Cómo manejar Eventos en una Aplicación WebWeb
¿Qué es ASP.NET?¿Qué es ASP.NET?Sucesor más evolucionado de las Active Server Sucesor más evolucionado de las Active Server Pages (ASP)Pages (ASP)Páginas dinámicas que pueden acceder a Páginas dinámicas que pueden acceder a recursos del servidorrecursos del servidorProcesamiento del lado del servidor (Server-Procesamiento del lado del servidor (Server-side processing)side processing)Independiente del lenguaje de programación Independiente del lenguaje de programación (C#, Visual Basic .Net) (C#, Visual Basic .Net) Independiente del navegador (IE, Netscape) Independiente del navegador (IE, Netscape) Soporte de Servicios Web para crear Soporte de Servicios Web para crear aplicaciones web distribuídasaplicaciones web distribuídas
¿Qué es una Aplicación Web?¿Qué es una Aplicación Web?
Basada en la tecnología ASP.NET para crear Basada en la tecnología ASP.NET para crear poderosas páginas web dinámicaspoderosas páginas web dinámicasCompatible con cualquier navegador o Compatible con cualquier navegador o dispositivo mobildispositivo mobilCompatible con cualquier lenguaje soportado Compatible con cualquier lenguaje soportado por el common language runtime (CLR)por el common language runtime (CLR)Permite la separación entre el código y el diseño Permite la separación entre el código y el diseño de una páginade una páginaSoporta un poderoso set de controlesSoporta un poderoso set de controlesPermite preservar el estado (view state) de una Permite preservar el estado (view state) de una página web entre solicitudes (requests)página web entre solicitudes (requests)
Visual Studio .Net IDEVisual Studio .Net IDE
Archivos en el Solution Explorer
Archivos en el Solution Explorer
PropiedadesPropiedades
ControlesControles Web FormWeb Form
Componentes de una AplicaciónComponentes de una AplicaciónComponente VisualComponente Visual
Vista de diseñoVista de diseño Vista de HTMLVista de HTML
CodeBehindCodeBehind
Class WebFormClass WebForm
Bienvenido!Bienvenido!
Nombre:Clave:
OK
Componente Visual
Componente Visual
WebForm.asp.cs
WebForm.aspx
CodeBehindCodeBehind
WebForm
Ambos archivos constituyen un Web Form
Bienvenido!Bienvenido!
Nombre:Clave:
OK
Cómo manejar Eventos en una Aplicación WebCómo manejar Eventos en una Aplicación Web
Muchos eventos son disparados por la acción del Muchos eventos son disparados por la acción del usuario en el navegadorusuario en el navegadorEl código para manejar el evento es ejecutado en el El código para manejar el evento es ejecutado en el servidor (Server-side) servidor (Server-side) Al finalizar la ejecución del código, la página resultante Al finalizar la ejecución del código, la página resultante es envíada nuevamente al navegadores envíada nuevamente al navegador
private void Button1_Click(object private void Button1_Click(object sender,System.EventArgs e) {sender,System.EventArgs e) {//(………)//(………)
}}
private void Button1_Click(object private void Button1_Click(object sender,System.EventArgs e) {sender,System.EventArgs e) {//(………)//(………)
}}
Configurar una Aplicación WebConfigurar una Aplicación Web
<?xml version="1.0" encoding="utf-8" ?><configuration>
<system.web><compilation defaultLanguage="c#"
debug="true"/><identity impersonate="true"
userName="DOMAIN\User"
password="123dfget252"/><authentication mode="Forms">
<forms name="AdvWorks" loginUrl="logon.aspx"/>
</authentication><authorization>
<deny users="?"/></authorization>
<?xml version="1.0" encoding="utf-8" ?><configuration>
<system.web><compilation defaultLanguage="c#"
debug="true"/><identity impersonate="true"
userName="DOMAIN\User"
password="123dfget252"/><authentication mode="Forms">
<forms name="AdvWorks" loginUrl="logon.aspx"/>
</authentication><authorization>
<deny users="?"/></authorization>
web.configweb.config
Cómo crear un Proyecto WebCómo crear un Proyecto Web
Seleccionar Archivo -> Nuevo -> Proyecto
Cómo conectarse a un SQL ServerCómo conectarse a un SQL Server
Incluír la librería System.Data.SqlClientIncluír la librería System.Data.SqlClient
Crear y configurar un objeto SqlConnectionCrear y configurar un objeto SqlConnection
SqlConnection oConn = new SqlConnection();string sConnString =
"SERVER=(local);UID=usuario;PWD=password;DATABASE=db;";
oConn.ConnectionString = sConnString;oConn.Open();
SqlConnection oConn = new SqlConnection();string sConnString =
"SERVER=(local);UID=usuario;PWD=password;DATABASE=db;";
oConn.ConnectionString = sConnString;oConn.Open();
Cómo hacer una consulta a un SQL ServerCómo hacer una consulta a un SQL Server
Incluír la librería System.Data.SqlClientIncluír la librería System.Data.SqlClient
Crear y configurar un objeto SqlCommand, Crear y configurar un objeto SqlCommand, SqlAdapter y DatasetSqlAdapter y Dataset
SqlDataAdapter oAdapter = new SqlDataAdapter();SqlCommand oComm = new SqlCommand();DataSet ds = new DataSet();oComm.CommandType = CommandType.Text;oComm.CommandText = "SELECT * FROM Usuario";oComm.Connection = oConn;oAdapter.SelectCommand = oComm;oAdapter.Fill(ds);
SqlDataAdapter oAdapter = new SqlDataAdapter();SqlCommand oComm = new SqlCommand();DataSet ds = new DataSet();oComm.CommandType = CommandType.Text;oComm.CommandText = "SELECT * FROM Usuario";oComm.Connection = oConn;oAdapter.SelectCommand = oComm;oAdapter.Fill(ds);
Cómo ejecutar un Stored Procedure en un Cómo ejecutar un Stored Procedure en un SQL ServerSQL Server
Incluír la librería System.Data.SqlClientIncluír la librería System.Data.SqlClientCrear y configurar un objeto SqlCommandCrear y configurar un objeto SqlCommand
SqlCommand oComm = new SqlCommand();oComm.CommandType = CommandType.StoredProcedure;oComm.Connection = oConn;oComm.CommandText = "Usuario_Alta";oComm.Parameters.Add("@usr",“anibal");oComm.Parameters.Add("@pwd",“secreto");oComm.Parameters.Add("@nombre",“Anibal Hugo");oComm.ExecuteNonQuery();
SqlCommand oComm = new SqlCommand();oComm.CommandType = CommandType.StoredProcedure;oComm.Connection = oConn;oComm.CommandText = "Usuario_Alta";oComm.Parameters.Add("@usr",“anibal");oComm.Parameters.Add("@pwd",“secreto");oComm.Parameters.Add("@nombre",“Anibal Hugo");oComm.ExecuteNonQuery();
Ejemplo: AgendaDotNetEjemplo: AgendaDotNet
Sevidor Web: Internet Information Server (IIS)Sevidor Web: Internet Information Server (IIS)
Base de Datos: SQL Server 2000Base de Datos: SQL Server 2000
Aplicación Web ASP.NETAplicación Web ASP.NET
Lenguaje utilizado: C#Lenguaje utilizado: C#
Diagrama en CapasDiagrama en Capas
+BuscarContactos()+BuscarSeleccionado()+Elimina()+Modifica()+Alta()
#id#nombre#apellido#direccion#idUsuario#email#fax#telefono#celular#provincia#codigoPostal#ciudad
Contacto
+Valido()+Alta()
#id#user#password#nombre#nivel
Usuario
Paquete: LogicaNegocioPaquete: DataLayer
+BuscarContactos()+BuscarSeleccionado()+Elimina()+Modifica()+Alta()
ContactoDL
+Valido()+Alta()+UserNameValido()
UsuarioDL
Paquete: ConectorSQL
+DarRegistros()+ExecComando()+ExecSP()
SQLServer
Paquete: AgendaDotNet
Admin
Estilos.css
Alta
Login
Buscar
Agenda
Web.config
Capa de PresentaciónCapa de PresentaciónTipo de Proyecto: ASP.NET Web ApplicationTipo de Proyecto: ASP.NET Web Application
Comunicada con: LogicaNegocioComunicada con: LogicaNegocio
Un form ASP.NET está formado por dos archivos:Un form ASP.NET está formado por dos archivos: .ASPX (HTML).ASPX (HTML) Los más comunes .cs o .vb (CodeBehind)Los más comunes .cs o .vb (CodeBehind)
Paquete: AgendaDotNet
Admin
Estilos.css
Alta Login
Buscar
Agenda
Web.config
Capa de NegociosCapa de NegociosTipo de Proyecto: Class LibraryTipo de Proyecto: Class Library
Comunicada con: DataLayerComunicada con: DataLayer
+BuscarContactos()+BuscarSeleccionado()+Elimina()+Modifica()+Alta()
#id#nombre#apellido#direccion#idUsuario#email#fax#telefono#celular#provincia#codigoPostal#ciudad
Contacto
+Valido()+Alta()
#id#user#password#nombre#nivel
Usuario
Paquete: LogicaNegocio
Capa de Acceso a DatosCapa de Acceso a Datos
Tipo de Proyecto: Class LibraryTipo de Proyecto: Class LibraryComunicada con: ConectorSQLComunicada con: ConectorSQLPatrón que implementa: Table Data GatewayPatrón que implementa: Table Data Gateway
Paquete: DataLayer
+BuscarContactos()+BuscarSeleccionado()+Elimina()+Modifica()+Alta()
ContactoDL
+Valido()+Alta()+UserNameValido()
UsuarioDL
Capa de Conexión a SQL ServerCapa de Conexión a SQL ServerTipo de Proyecto: Class LibraryTipo de Proyecto: Class LibraryUtiliza: acceso a través de ADO.NET (SqlClient)Utiliza: acceso a través de ADO.NET (SqlClient)Todos los Métodos son EstáticosTodos los Métodos son EstáticosEs altamente reutilizableEs altamente reutilizableSimplifica los pasos de conexión con la base de datosSimplifica los pasos de conexión con la base de datos
Paquete: ConectorSQL
+DarRegistros()+ExecComando()+ExecSP()
SQLServer