La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Desarrollo de Aplicaciones en.NET Daniel Laco Carlos Walzer

Presentaciones similares


Presentación del tema: "Desarrollo de Aplicaciones en.NET Daniel Laco Carlos Walzer"— Transcripción de la presentación:

1 Desarrollo de Aplicaciones en.NET Daniel Laco Carlos Walzer

2 Temario Presentación del caso Como integrar componentes de negocios COM en.NET Migrar el componente de negocios a.NET –Diferencias entre ADO y ADO.NET Migrar la aplicación ASP a ASP.NET –Diferencias entre ASP y ASP.NET Instalación de la aplicación ASP.NET

3 ADO.NET

4 Objetivos Introducir Microsoft ® ADO.NET Mostrar la evolución de ADO a ADO.NET Introducir los componentes primarios de ADO.NET

5 ADO vs. ADO.NET 1/2 ADO –Diseñado para acceso conectado –Vinculado al modelo físico de los datos –El RecordSet es el contenedor central de datos –El RecordSet es una tabla que contiene todos los datos Obtener datos de más de una tabla u origen, requiere un JOIN en la base Los datos son aplanados: pierden sus relaciones y la navegación suele ser secuencial –Los tipos de datos se encuentran relacionados con tipos COM/COM+ –Los datos se comparten por marshalling COM –Hay problemas para enviar información a través de firewalls (DCOM, datos binarios)

6 ADO vs. ADO.NET 2/2 ADO.NET –Diseñado para acceso desconectado –¡Se puede modelar la información por lógica! –El DataSet reemplaza al RecordSet –El DataSet puede contener múltiples tablas No se requieren JOIN Se preservan las relaciones: La navegación es relacional –Los tipos de datos sólo están vinculados al esquema de XML –No se requieren conversiones de tipos de datos –XML, como HTML, es texto plano: Pasa las barreras

7 Beneficios de ADO.NET Interoperabilidad por el uso de XML –Estándar abierto –Texto descifrable por Humanos –Los datos se describen a sí mismos –Se usa en todas las transferencias de datos en ADO.NET Escalabilidad por el DataSet desconectado –No se mantienen conexiones por períodos largos –No se producen bloqueos en la base de datos –Trabaja como la Web Toco y me voy Facilidad en el Mantenimiento –Separación de la lógica de datos y la interfaz del usuario

8 Conceptos y arquitectura El modelo de Objetos de ADO.NET –Objetos DataSet –Proveedores administrados Namespaces relacionados con ADO.NET –System.Data –System.Data.OleDb –System.Data.Internal –System.Data.Sql –System.Data.SqlTypes

9 El modelo de objetos de ADO.NET DataSet Proveedores administrados

10 System.Data 1/2 Contiene las bases de ADO.NET Namespace centrado en Datos Provee los mecanismos para trabajar con y sobre los datos –Clases y métodos para manipular los datos –Habilidad para crear vistas de los datos –Formas para representar lógicamente los datos –Permite la utilización de XML para ver, compartir y almacenar datos

11 System.Data 2/2 Persistencia en memoria de la tabla de la base de datos System.Data DataTable DataRow DataRelation DataColumn DataSetView DataSet Contiene las clases principales de ADO.NET Persistencia en memoria de los datos Permite manipular una fila en un DataTable Permite definir columnas en un DataTable Puede relacionar 2 DataTables entre sí Presenta una vista del DataSet

12 System.Data y DataSet DataSet Tables DataTable Relations DataRelation DataRow(s) DataColumn Constraint(s) DataTable DataView

13 System.Data - DataSet 1/3 Un repositorio en memoria de datos desde un origen Forma común de representar y manipular datos –Contenedor universal –No sólo para base de datos Representación lógica o física de los datos; depende de: –La consulta / Conjunto de resultados –Donde existen DataTables y Relations Diseñado para estar desconectado del origen –Conectar, ejecutar la consulta, desconectar Se utiliza XML para leer y almacenar, tanto los datos como el Esquema

14 System.Data - DataSet 2/3 Se usan colecciones para agregar Tablas y relaciones Propiedades importantes: –Tables: Devuelve la colección de objetos DataTable –Relations: Devuelve la colección de DataRelations –Relacionadas con XML

15 System.Data - DataTable Puede ser vinculado a una tabla física de una base Y relacionarla con otras a través de DataRelations Bloqueo concurrente optimista Propiedades importantes: –Columns: Devuelve la colección de DataColumns como ColumnsCollection –Rows: Devuelve objetos DataRow como una RowsCollection –ParentRelations: Devuelve una RelationsCollection –Constraints: Devuelve la ConstraintsCollection de la tabla –DataSet: Devuelve el conjunto de datos de la DataTable –PrimaryKey: Obtiene los DataColumns que conforman la clave primaria de la tabla

16 System.Data-DataSet y DataTable Crear una DataTable y agregarla al DataSet DataSet ds = new DataSet(); // Crear el objeto Clientes. DataTable dt= new DataTable( Clientes ); // Crear y agregar columnas // 1. Explícitamente DataColumn dc = new DataColumn( ID, Int16 ); dt.Columns.Add( dc ); // 2. Implícitamente. dt.Columns.Add( Nombre, String ); dt.Columns.Add( Apellido, String ); // Agregar el objeto DataTabla al DataSet ds.Tables.Add( dt );

17 System.Data - DataRelation 1/2 Utilizada para crear relaciones lógicas –Entre dos (2) objetos DataTable –Requiere un objeto DataColumn de cada DataTable –El tipo de datos (DataType) de ambas DataColumns debe ser el mismo No es posible relacionar un Int32 con un String –Se le asigna un nombre (¡por el desarrollador!) DataRelation dr=new DataRelation _ (miRelacion,...) Permite navegación por relaciones RelationsCollection contiene todas las DataRelations –Se accede a través de la propiedad Relations del DataSet

18 System.Data - DataRelation 2/2 Como crear un DataRelation: –Obtener los objetos DataColumn a relacionar –Crear y nombrar un DataRelation usando las columnas –Agregar la relación al DataSet // Obtener las columnas a utilizar... DataColumn colPadre, colHija; colPadre= DataSet.Tables["Clientes"].Columns["ID"]; colHija = DataSet.Tables[Pedidos].Columns["IDCliente"]; // Crear el DataRelation llamado CliPedidos... DataRelation dr; dr = New DataRelation(CliPedidos", colPadre, colHija); // Agregar la relación al DataSet... ds.Relations.Add( dr );

19 System.Data - DataSet y XML El DataSet puede leer y escribir XML desde sus datos y del esquema –O sea: es posible crear o modificar un DataSet usando XML Método de lectura con formato XML: –GetXml: Obtiene los datos del DataSet (incluyendo el esquema) –GetXmlSchema: obtiene el esquema XSD del DataSet Para escribir: WriteXml, WriteXmlSchema

20 System.Data - DataView Crea múltiples vistas de los objetos DataTable Vinculable a controles Propiedades importantes: –Item: Obtiene una fila de una tabla determinada –Table: Obtiene o asigna el objeto DataTable –Sort: Obtiene o asigna la/s columna/s y el ordenamiento –RowFilter: Obtiene o asigna la expresión para filtrar la vista –RowStateFilter: Indica o asigna el estado del filtro None, Unchanged, New, Deleted, ModifiedCurrent, y otros

21 System.Data - DataView DataView vista1 = new DataView( miTabla ); DataView vista2 = new DataView( miTabla ); // La vista ordenada por Apellido vista1.Sort = Apellido ASC; // Filtrar para ver sólo los modificados vista2.RowStateFilter= DataViewRowState.ModifiedOriginal; // Vincular a un control de usuario... DataGrid myGrid = new DataGrid(); myGrid.SetDataBinding( view1, Clientes); //... Creando objetos DataView

22 DataSet, DataRelation, Data…Views DataSet Tables DataTable Relations DataRelation DataRow(s) DataColumn Constraint(s) DataTable DataView

23 ADO.NET y Proveedores Administrados Una colección de clases que permiten acceder a los orígenes de datos: –Microsoft SQL Server 2000, SQL Server 7, y MSDE –Otros proveedores OLEDB –Por ejemplo: Oracle –Establece la conexión entre los DataSets y el repositorio de los datos Dos proveedores base: –OLEDB: Namespace System.Data.OleDb –SQL Server: Namespace System.Data.Sql

24 Proveedores administrados System.Data.OleDb.Sql OleDbCommand OleDbConnection OleDbDataReader OleDbDataSetCommand SqlCommand SqlConnection SqlDataReader SqlDataSetCommand Dependen de System.Data.InternalDataCollectionBase para varias clases heredadas

25 OleDbConnection y SqlConnection Representa una única sesión con un origen de datos Exponen funcionalidad de transacciones Ejemplo de Conexión OleDbConnection: String conStr="Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=NWIND_RW.MDB"; OleDbConnection aConn = new OleDbConnection(conStr); aConn.Open(); // Execute Queries using OleDbDataSetCommand Class aConn.Close();

26 OleDbDataAdapter 1/2 Es un Puente entre el DataSet y el origen de datos –Hereda de la clase DataAdapter Es el mecanismo para actualizar un DataSet hacia su origen Base de Datos DataSet DataAdapter

27 OleDbDataAdapter 2/2 Propiedades de Inter é s: –Objetos OleDbCommand que contienen los procedimientos (o sentencias SQL), para las distintas acciones DeleteCommand: InsertCommand: SelectCommand: UpdateCommand: –TableMappings: Definen las relaciones de los DataTable obtenidos por los comandos OleDb de Select Hereda m é todos de la clase DbDataAdapter –public virtual int Fill( DataSet dataSet ); –public virtual int Update( DataSet dataSet );

28 OleDbCommand Representa una consulta a ejecutar en la base de datos Propiedades: –Connection: Conexión utilizada (Objeto OleDbConnection) –CommandText: Sentencia a ejecutar –CommandType: Tipo de sentencia asignada Texto, Procedimiento Almacenado, o Nombre de la tabla –CommandTimeout: Cantidad de segundos para que se considere fuera de tiempo la ejecución de una sentencia

29 OleDbDataReader 1/2 Permite acceso secuencial, de sólo lectura Modelo de programación más liviano –Con menor sobrecarga que el OleDbDataAdapter Se obtiene por el método ExecuteReader de un OleDbCommand Depende del OleDbCommand hasta finalizar la lectura –Mantiene la conexión abierta

30 OleDbDataReader 2/2 Propiedades Importantes: –FieldCount: Cantidad de Columnas del conjunto de datos –IsClosed : Indica el estado del Conjunto de datos –RecordsAffected: La cuenta de registros obtenidos Métodos para obtener Datos: –Por tipo de dato e índice de la columna : GetString, GetInt32, etc. –Read: Desplaza al siguiente registro

31 Resumen ADO.NET es la evolución de ADO Es desconectado, para acompañar el modelo basado en Web Muy flexible para trabajar con Datos Aumenta las capacidades de organizar lógicamente los datos Amplio soporte para XML –Lo que permite mayores habilidades para trabajar y compartir datos Interactúa con una gran variedad de orígenes

32 Migrando ASP a ASP.NET

33 ASP (Lo Bueno) Tecnología líder en desarrollo para Web –Más de un millón de desarrolladores en ASP Desarrollo simple –HTML combinado con script –No requiere compilación – sólo grabar Flexible y extensible –Soporta múltiples lenguajes VBScript, JScript ®, etc. –Puede utilizar Objetos COM para acceder a recursos y encapsular lógica de negocios

34 ASP (Desventajas) El código ASP se vuelve complicado! Código mezclado con contenido Sólo soporta lenguajes de scripting La implementación de componentes y la configuración es compleja –DLLs bloqueadas, regsvr32, metabase de IIS Estado de Session limitado a un único servidor

35 Presentamos ASP.NET Plataforma para construir, implementar y ejecutar aplicaciones Web Es un cambio radical con respecto a ASP –Modelo de páginas simplificado y más poderoso –Lenguaje de programación compilado –Arquitectura factorizada –Implementación simplificada –Mejoras en rendimiento y escalabilidad Soporte de desarrollo con Visual Studio.NET

36 Compatibilidad con ASP Migrar aplicaciones de ASP a ASP.NET siempre va a requerir cierto trabajo Se decidió romper la backward compatibility en ciertos puntos para mejorar la plataforma –Tenemos más tiempo por delante en Internet que por detrás –Nos permite asegurar una plataforma por mucho más tiempo

37 ASP: Soporte conjunto ASP.NET corre side-by-side con ASP –Extensiones de archivo separadas (.aspx vs.asp) –Configuraciones separadas Las páginas/aplicaciones ASP siguen utilizando el motor de ASP existente sin problemas –No se han hecho cambios a ASP.DLL –Ningún componente se rompe al instalar ASP.NET Importante: no se comparte estado entre páginas/aplicaciones ASP y ASP.NET

38 Cambios semánticos Hay varios cambios semánticos en ASP.NET Tópicos: –Lenguaje único en cada página –Las funciones deben declararse en bloques

39 Lenguaje único en cada página ASP permitía tener múltiples lenguajes en una misma página ASP.NET sólo soporta un único lenguaje por página –Se puede tener varias páginas, cada una con un lenguaje diferente

40 Controles y Eventos en el Servidor Server Controls –Web Forms Controls –HTML Server Controls Eventos en el Servidor

41 Componentes COM Los componentes COM legacy continúan funcionando normalmente –Invocar Server.CreateObject(progid) y accederlos late-bound Los componentes COM legacy también pueden ser accedidos early-bound creando wrappers –Mejora el rendimiento en la invocación –Utilizar TLBIMP.exe

42 Resumen La migración de aplicaciones ASP a ASP.NET no es directa –Requiere cierto trabajo –Pero se pueden ejecutar aplicaciones ASP y ASP.NET al mismo tiempo Los beneficios de migrar a ASP.NET valen la pena el esfuerzo –Mejor performance –Desarrollo más simple –Mejor código

43 Para mayor información… Sitio MSDN Sitio MUG Regístrese al Newsletter MSDN Flash msdn.microsoft.com/flash

44 ¿Preguntas?

45 Material entregado: CD1: Web Matrix y.NET Framework CD 2: Windows Server.NET RC1 Formulario de evaluación Ahora… el show (sorteos y promociones)

46 Muchas gracias por su participación Daniel Laco Carlos Walzer


Descargar ppt "Desarrollo de Aplicaciones en.NET Daniel Laco Carlos Walzer"

Presentaciones similares


Anuncios Google