Session Title - PowerPoint PPT Presentation

1 / 46
About This Presentation
Title:

Session Title

Description:

Session Title – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 47
Provided by: Micr160
Category:
Tags: jib | session | title

less

Transcript and Presenter's Notes

Title: Session Title


1
Desarrollo de Aplicaciones en .NET
Daniel Laco danielL_at_vemn.com.ar Carlos
Walzer carlosw_at_vemn.com.ar
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
12
System.Data y DataSet
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
  • RelationsDevuelve 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.A
dd( 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 drnew 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"Clien
tes".Columns"ID"colHija DataSet.TablesPed
idos.Columns"IDCliente" // Crear el
DataRelation llamado CliPedidos...
DataRelation dr dr New DataRelation(CliPedid
os", 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
  • Creando objetos 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) //...
22
DataSet, DataRelation, DataViews
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
  • Dependen deSystem.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"ProviderMicrosoft.Jet.OLEDB.4.0"
"Data SourceNWIND_RW.MDB"OleDbC
onnection aConn new OleDbConnection(conStr)aCo
nn.Open()// Execute Queries using
OleDbDataSetCommand ClassaConn.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

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 ltscript
    runatservergt

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 MSDNwww.microsoft.com/argentina/msdn
  • Sitio MUG
  • www.mug.org.ar
  • Regístrese al Newsletter MSDN Flash
    msdn.microsoft.com/flash
  • www.microsoft.com/latam/msdn/flash
  • Email
  • argmsdn_at_microsoft.com

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 danielL_at_vemn.com.ar Carlos
Walzer carlosw_at_vemn.com.ar
Write a Comment
User Comments (0)
About PowerShow.com