Sunteți pe pagina 1din 41

Arquitectura .

NET

César Julio Bustacara M.


2008
Agenda
Guías de arquitectura, diseño y código
Arquitectura del .NET Framework y la CLR
Acceso a datos: ADO.NET
Guías de arquitectura / diseño y
código

Guías de Arquitectura (PAG)


Estándares de desarrollo
Application Blocks
Guías de migración
Guías de arquitectura

Guías de diseño para aplicaciones .NET


Muestran como encaja todo junto
Blueprint para decisiones a nivel de diseño
Alto riesgo en la etapa de diseño
Arquitectos son contrarios al riesgo
No es una solución para todos los diseños
Hay escenarios específicos
Preservar las inversiones
“¿Tendré que rehacer todo en el futuro?”
Guías de Arquitectura
Communication

Operational

Security
Communication

Operational Management

Security
Users
Users and
and Devices
Devices

Presentation
Presentation
Management

Business
Business Svc
Svc Interfaces
Interfaces Services

Svc
Svc Agents
Agents

Data
Data

Data Sources
Guías de Arquitectura
Communication

Operational

Security
Communication

Operational Management

Security
Users
Users and
and Devices
Devices

UI
UI Components
Components
Management

UI
UI Process
Process Components
Components

Business
Business Workflows
Workflows Svc
Svc Interfaces
Interfaces
Services

Business
Business Components
Components

Business Svc
Svc Agents
Business Entities
Entities Agents

Data
Data Access
Access Components
Components

Data Sources
Guías de Arquitectura

Application Architecture for .NET:


Designing Applications and Services

.NET Data Access Architecture Guide

Building Secure ASP.NET Applications

Debugging .NET Applications

Exception Management in .NET


Guías de Arquitectura

.NET/COM Migration and Interoperability

Monitoring in .NET

Deploying .NET Applications

Team Development with SourceSafe

UNIX Code Migration Guide


http://msdn.microsoft.com/practices/
Estándares de desarrollo
Ayudan a escribir código robusto y seguro
que funciona de manera consistente con el
Framework .NET
Facilitan la propiedad colectiva del código
.NET Framework Design Guidelines
http://msdn.microsoft.com/library/en-
us/cpgenref/html/cpconnetframeworkdesigngu
idelines.asp
FxCop: analiza el código managed para
chequear las prácticas recomendadas
http://www.gotdotnet.com/team/libraries/
Application Blocks
Data Access Application Block for .NET
Componente .NET que contiene código
optimizado de acceso a datos

Exception Management Application Block


for .NET
Provee un framework simple y extensible para
manejar excepciones
Arquitectura del Framework
de .NET y la CLR

Objetivos de diseño
Arquitectura
Beneficios
Compilación
Introducción a .NET
Objetivos de diseño de .NET Framework

Entorno consistente de orientación a


objetos:
mismo modelo para ejecución local,
código remoto o entorno distribuido en
Internet
Minimizar conflictos: implantación y
versiones
Proporcionar ejecución segura de
código
Introducción a .NET
Objetivos de diseño de .NET Framework

Eliminar problemas de rendimiento


de código interpretado o con
scripting
Mayor productividad del
desarrollador tanto para aplicaciones
Windows como Web
Comunicación basada en estándares
de la industria
Introducción a .NET
Framework, Lenguajes y Herramientas

VB C++ C# JScript
®
J#

Common Language Specification

Visual Studio® .NET


ASP.NET Windows
Web Forms Web Services Forms
Mobile Internet Toolkit (.NET CF)

ADO.NET y XML

Base Class Library

Common Language Runtime

Sistema Operativo
Introducción a .NET
Framework, Languajes y herramientas

System.Web System.Windows.Forms
Services UI Design ComponentModel
Description HtmlControls
Discovery WebControls
Protocols System.Drawing
Caching Security Drawing2D Printing
Configuration SessionState Imaging Text

System.Data System.Xml
OleDb SqlClient XSLT Serialization
Common SQLTypes XPath

System
Collections IO Security Runtime
Configuration Net ServiceProcess InteropServices
Diagnostics Reflection Text Remoting
Globalization Resources Threading Serialization
Introducción a .NET
Beneficios del .NET Framework

Simplifica el desarrollo y la implantación


Proporciona un entorno de ejecución
seguro y robusto
Unifica modelos de programación
Soporta múltiples lenguajes de
programación
Independiente de la plataforma
Introducción a .NET
Beneficios del .NET Framework

Sistema común de tipos


Instancias y definición de tipos comunes
Orientación a objetos:
Clases e interfaces
Constructores, propiedades, métodos, eventos
Herencia cruzada entre lenguajes
Interoperabilidad
Con COM
Con DLLs nativas (del estilo Win32)
Introducción a .NET
Beneficios del .NET Framework
Elimina la “fontanería” de COM
No más …
Registro =>Aps autodescriptivas

GUIDs =>namespaces jerárquicos

Archivos .IDL =>objetos autodescriptivos

HRESULTs =>excepciones estructuradas

IUnknown =>objeto raiz común

AddRef/Release =>garbage collector

CoCreateInstance =>operador ”new”


Introducción a .NET
Compilación y ejecución
Compilación
Código Compilador Código (IL)

fuente del lenguaje


Assembly
Metadatos

Código Compilador
Nativo JIT En instalación o la
primera vez que se
invoca a cada método
Ejecución
Acceso a datos: ADO.NET

ADO vs ADO.NET
Características de ADO.NET
Arquitectura
Enlace a datos (binding)
ADO vs ADO.NET

ADO trabaja bien, pero:


Necesita COM y Windows
Los recordsets no viajan bien a través de Internet

ADO.NET resuelve estos problemas:


Utiliza XML (a bajo nivel) para realizar el transporte
de datos
XML no tiene requisitos específicos de
runtime/transporte
⌧ No se necesita un código especial para hacer el
marshaling a través de Internet
ADO .NET, una nueva mentalidad:
Entorno desconectado
Todo el transporte de datos utiliza XML
ADO.NET
DBLib, ODBC, DAO, RDO, ADO, ….
ADO.NET
System.Data: la clase raiz
A partir de ahí, principales namespaces:
System.Data.OleDB
System.Data.SQLClient
System.Data.ODBC, System.Data.OracleClient
System.XML: para trabajar directamente
con XML
ADO.NET

System.Data.OleDb: trabaja con


todas las fuentes OLE DB
Soporta unmanaged providers de ADO
System.Data.SQLClient: sólo SQL
Server (managed)
VStudio 2003: System.Data.ODBC,
System.Data.OracleClient
Arquitectura de ADO.NET
Presentación
Windows Forms
MiAp.Exe

DataSet

Negocio Datos
Web forms Internet
IE Data object (class)
intranet Data adapter
DataSet
DataSet Xml
Data adapter

Business to business

(BizTalk, por ejemplo)


Diferencia fundamental
En ADO: Recordset

Buffer de Acceso a
datos datos

En ADO.NET:

Buffer de Acceso a
datos datos
DataAdapter
DataSet
ADO.NET: Connection
OleDbConnection/SQLConnection
Representa la sesión contra la BD
Utilizado por objetos Data Adapter y Command
para recuperar/actualizar
Inicia las transacciones
Connection.BeginTransaction() devuelve un objeto
Transaction
xxxTransaction
⌧Un comando se enlista en una transacción
⌧IsolationLevel
⌧Commit() / Rollback()
Configuración del pool de conexiones en el
connection string
ADO.NET: Command
OleDbCommand/SQLCommand
Representa Transact-SQL o procedimientos
almacenados
Devuelve un resultset (ExecuteReader), un
valor (ExecuteScalar), o ejecuta sentencias
de modificación (ExecuteNonQuery)
Generación automática con el objeto
CommandBuilder
ADO.NET: DataReader
OleDbDataReader/SQLDataReader

Stream forward-only read-only

Utilizado por el DataAdapter

Muy rápido

Creado por un objeto Command


(ExecuteReader)
ADO.NET: DataAdapter
OleDbDataAdapter/SQLDataAdapter

Representa un conjunto de Commands y una


Connection

Puente entre el DataSet y la BD

Lee y actualiza la BD:


SelectCommand, UpdateCommand, InsertCommand,
DeleteCommand
ADO.NET – DataAdapter

DataAdapter
Base de datos
SelectCommand
InsertCommand
UpdateCommand
DeleteCommand

TableMappings DataSet
ADO.NET: DataSet

Objeto estrella en ADO.NET

Representa una caché de datos en


memoria

Contiene DataTables

Lee y escribe datos y esquemas en XML

Serializable
ADO.NET: DataSet

Puede ser tipado o no tipado:


Ambos heredan de la clase DataSet

El tipado se apoya en un esquema XML


(.XSD) para generar la clase

El tipado tiene ventajas:


⌧Expone estructura como propiedades y métodos:
Intellisense

⌧Recoge la Primary key


ADO.NET: Otros objetos
DataTable
Representa una tabla en memoria
Lo rellena un DataAdapter o a mano
Componente principal de los objetos DataSet y
DataView
DataView
Vista personalizada de un objeto DataTable
Filtros, ordenación, búsquedas …
DataRelation
Define relaciones entre tablas
Utiliza columnas de un DataTable
ADO.NET - DataSet

DataSet DataTable

DataColumn

DataTable
DataRow

Relations

XML Schema Constraints


ADO.NET: Lecturas
Método Fill del objeto DataAdapter
Se utiliza el SelectCommand del
DataAdapter
Inserta/actualiza datos del DataSet
Si la tabla existe, actualiza datos
Si no existe, crea y rellena la tabla
Una tabla por cada resultset
Mantiene la conexión en su estado
original
ADO.NET: Actualizaciones
La funcionalidad en ADO es implícita.
Recordset = caja negra.
Ejemplo: UpdateBatch
En ADO.NET: Se crea un modelo más
explícito y transparente.
InsertCommand, UpdateCommand,
DeleteCommand
Eventos de Update
CommandBuilder: generación automática
de los comandos de Insert, Update y
Delete a partir del SelectCommand
ADO.NET: Actualizaciones
DataAdapter.Update:
Analiza los cambios del DataSet
Ejecuta los comandos Insert,
Update y Delete necesarios
Refresca el DataSet
Orden de ejecución por defecto:
Insert, Update y Delete.
ADO.NET: Enlace a datos

ADO.NET soporta enlazar (binding)


DataSets a Windows Forms / Web
Forms y sus controles
VStudio .NET incluye bastantes
wizards para hacer el enlace entre
datos y controles
Resumen
Resumen
Ejemplo

Solo lectura

S-ar putea să vă placă și