Publicado el 28 de Abril del 2020
653 visualizaciones desde el 28 de Abril del 2020
504,5 KB
41 paginas
Creado hace 16a (20/05/2008)
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
S
S
e
e
c
c
u
u
r
r
i
i
t
t
y
y
C
C
o
o
m
m
m
m
u
u
n
n
i
i
c
c
a
a
t
t
i
i
o
o
n
n
O
O
p
p
e
e
r
r
a
a
t
t
i
i
o
o
n
n
a
a
l
l
M
M
a
a
n
n
a
a
g
g
e
e
m
m
e
e
n
n
t
t
Users and Devices
Users and Devices
Presentation
Presentation
Business
Business
Svc Interfaces
Svc Interfaces
Services
Svc Agents
Svc Agents
Data
Data
Data Sources
Guías de Arquitectura
S
S
e
e
c
c
u
u
r
r
i
i
t
t
y
y
C
C
o
o
m
m
m
m
u
u
n
n
i
i
c
c
a
a
t
t
i
i
o
o
n
n
O
O
p
p
e
e
r
r
a
a
t
t
i
i
o
o
n
n
a
a
l
l
M
M
a
a
n
n
a
a
g
g
e
e
m
m
e
e
n
n
t
t
Users and Devices
Users and Devices
UI Components
UI Components
UI Process Components
UI Process Components
Business Workflows
Business Workflows
Svc Interfaces
Svc Interfaces
Services
Business Components
Business Components
Business Entities
Business Entities
Svc Agents
Svc Agents
Data Access Components
Data Access 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
FxCop: analiza el código managedpara
chequear las prácticas recomendadas
http://www.gotdotnet.com/team/libraries/
Facilitan la propiedad colectiva del código
.NET Framework Design Guidelines
http://msdn.microsoft.com/library/en-
us/cpgenref/html/cpconnetframeworkdesigngu
idelines.asp
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
Proporcionar ejecución segura de
versiones
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
VBVB
C++C++
C#C#
JScript®
JScript
J#J#
Common Language Specification
Common Language Specification
ASP.NET
ASP.NET
Web Forms Web Services
Web Forms Web Services
Mobile Internet Toolkit
Mobile Internet Toolkit
Windows
Windows
Forms
Forms
(.NET CF)
(.NET CF)
ADO.NET y XML
ADO.NET y XML
Base Class Library
Base Class Library
Common Language Runtime
Common Language Runtime
Sistema Operativo
Operativo
Sistema
V
V
i
i
s
s
u
u
a
a
l
l
S
S
t
t
u
u
d
d
i
i
o
o
®
.
.
N
N
E
E
T
T
Introducción a .NET
Framework, Languajes y herramientas
System.Web
System.Web
Services
Services
Description
Description
Discovery
Discovery
Protocols
Protocols
Caching
Caching
Configuration
Configuration
UIUI
HtmlControls
HtmlControls
WebControls
WebControls
Security
Security
SessionState
SessionState
System.Data
System.Data
OleDbOleDb
Common
Common
SqlClient
SqlClient
SQLTypes
SQLTypes
System.Windows.Forms
System.Windows.Forms
ComponentModel
ComponentModel
Design
Design
System.Drawing
System.Drawing
Printing
Printing
TextText
Drawing2D
Drawing2D
Imaging
Imaging
System.Xml
System.Xml
Serialization
Serialization
XSLTXSLT
XPath
XPath
System
System
Collections
Collections
Configuration
Configuration
Diagnostics
Diagnostics
Globalization
Globalization
IOIO
NetNet
Reflection
Reflection
Resources
Resources
Security
Security
ServiceProcess
ServiceProcess
TextText
Threading
Threading
Runtime
Runtime
InteropServices
InteropServices
Remoting
Remoting
Serialization
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
GUIDs
Archivos .IDL
HRESULTs
IUnknown
AddRef/Release
CoCreateInstance
=>=>excepciones
=>=>objetos
=>garbage collector
=>garbage collector
=>=>operador
operador ””newnew””
=>=>objeto
objeto raizraiz comcomúúnn
=>=>ApsAps autodescriptivas
autodescriptivas
=>namespaces jerjeráárquicos
rquicos
=>namespaces
objetos autodescriptivos
autodescriptivos
excepciones estructuradas
estructuradas
Introducción a .NET
Compilación y ejecución
Compilacióónn
Compilaci
Compilador
Compilador
del del lenguaje
lenguaje
CCóódigodigo
fuente
fuente
digo (IL)
(IL)
Assembly
Assembly
CCóódigo
Metadatos
Metadatos
CCóódigodigo
Nativo
Nativo
Compilador
Compilador
JITJIT
Ejecucióónn
Ejecuci
En En instalaci
instalacióónn o la
o la
primera vezvez queque se se
primera
invoca a a cada
cada mméétodo
todo
invoca
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 unmanagedproviders 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
MiAp.Exe
DataSet
DataSet
Web forms
Web forms
IEIE
Internet
Internet
intranet
intranet
DataSet
DataSet
XmlXml
Business to business
Business to business
(BizTalk, porpor ejemplo
ejemplo))
(BizTalk,
Negocio
Negocio
Data object (class)
Data object (class)
DataSet
DataSet
Data adapter
Data adapter
Data adapter
Data adapter
DatosDatos
Diferencia fundamental
En ADO:
En ADO.NET:
Recordset
Buffer de
datos
Acceso a
datos
Buffer de
datos
DataSet
Acceso a
datos
DataAdapter
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
⌧Un comando se enlista en una transacción
⌧IsolationLevel
⌧Commit() / Rollback()
Configuración del pool de conexiones en el
connection string
Connection.BeginTransaction() devuelve un objeto
Transaction
xxxTransaction
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 Commandsy una
Connection
Puente entre el DataSet y la BD
Lee y a
Comentarios de: Arquitectura .NET (0)
No hay comentarios