Agenda
Guías de arquitectura, diseño y códigoArquitectura del .NET Framework y la CLRAcceso a datos: ADO.NET
Guías de arquitectura / diseño y código
Guías de Arquitectura (PAG)Estándares de desarrolloApplication BlocksGuías de migración
Guías de arquitectura
Guías de diseño para aplicaciones .NETMuestran como encaja todo junto
Blueprint para decisiones a nivel de diseñoAlto riesgo en la etapa de diseñoArquitectos son contrarios al riesgo
No es una solución para todos los diseñosHay escenarios específicos
Preservar las inversiones“¿Tendré que rehacer todo en el futuro?”
Operatio
nal M
anag
emen
tO
peratio
nal M
anag
emen
t
Secu
ritySecu
rity
Com
municatio
nCom
municatio
n
Users and DevicesUsers and Devices
Data Sources
ServicesSvc InterfacesSvc Interfaces
Svc AgentsSvc Agents
Guías de Arquitectura
BusinessBusiness
PresentationPresentation
Data Data
Operatio
nal M
anag
emen
tO
peratio
nal M
anag
emen
t
Secu
ritySecu
rity
Com
municatio
nCom
municatio
n
Users and DevicesUsers and Devices
Data Sources
UI ComponentsUI Components
UI Process ComponentsUI Process Components
Data Access ComponentsData Access Components
Business WorkflowsBusiness Workflows
Business ComponentsBusiness Components
Business EntitiesBusiness Entities
ServicesSvc InterfacesSvc Interfaces
Svc AgentsSvc Agents
Guías de Arquitectura
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 desarrolloAyudan a escribir código robusto y seguro que funciona de manera consistente con el Framework .NETFacilitan la propiedad colectiva del código.NET Framework Design Guidelines
http://msdn.microsoft.com/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.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ódigooptimizado de acceso a datos
Exception Management Application Block for .NET
Provee un framework simple y extensible paramanejar excepciones
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 versionesProporcionar ejecución segura de código
Introducción a .NET Objetivos de diseño de .NET Framework
Eliminar problemas de rendimientode código interpretado o con scriptingMayor productividad del desarrollador tanto para aplicacionesWindows como WebComunicación basada en estándaresde la industria
Introducción a .NET Framework, Lenguajes y Herramientas
SistemaSistema OperativoOperativo
Common Language RuntimeCommon Language Runtime
Base Class LibraryBase Class Library
ADO.NET y XMLADO.NET y XML
ASP.NETASP.NETWeb Forms Web ServicesWeb Forms Web Services
Mobile Internet ToolkitMobile Internet Toolkit
WindowsWindowsFormsForms
(.NET CF)(.NET CF)
Common Language SpecificationCommon Language Specification
VBVB C++C++ C#C# JScriptJScript® J#J#V
isual StudioV
isual Studio®
.NE
T.N
ET
System System
System.DataSystem.Data System.XmlSystem.Xml
System.WebSystem.Web
GlobalizationGlobalizationDiagnosticsDiagnosticsConfigurationConfigurationCollectionsCollections
ResourcesResourcesReflectionReflectionNetNetIOIO
ThreadingThreadingTextTextServiceProcessServiceProcessSecuritySecurity
CommonCommonOleDbOleDb
SQLTypesSQLTypesSqlClientSqlClient
XPathXPathXSLTXSLT
RuntimeRuntimeInteropServicesInteropServicesRemotingRemotingSerializationSerialization
SerializationSerialization
ConfigurationConfiguration SessionStateSessionStateCachingCaching SecuritySecurity
ServicesServicesDescriptionDescriptionDiscoveryDiscoveryProtocolsProtocols
UIUIHtmlControlsHtmlControlsWebControlsWebControls
System.DrawingSystem.Drawing
ImagingImagingDrawing2DDrawing2D
TextTextPrintingPrinting
System.Windows.FormsSystem.Windows.FormsDesignDesign ComponentModelComponentModel
Introducción a .NET Framework, Languajes y herramientas
Introducción a .NET Beneficios del .NET Framework
Simplifica el desarrollo y la implantaciónProporciona un entorno de ejecuciónseguro y robustoUnifica modelos de programaciónSoporta múltiples lenguajes de programaciónIndependiente de la plataforma
Introducción a .NET Beneficios del .NET Framework
Sistema común de tiposInstancias y definición de tipos comunes
Orientación a objetos:Clases e interfacesConstructores, propiedades, métodos, eventosHerencia cruzada entre lenguajes
InteroperabilidadCon COMCon DLLs nativas (del estilo Win32)
Introducción a .NET Beneficios del .NET Framework
Elimina la “fontanería” de COMNo más …
Registro
GUIDs
Archivos .IDL
HRESULTs
IUnknown
AddRef/Release
CoCreateInstance
=>=>ApsAps autodescriptivasautodescriptivas
=>namespaces =>namespaces jerjeráárquicosrquicos
=>=>objetosobjetos autodescriptivosautodescriptivos
=>=>excepcionesexcepciones estructuradasestructuradas
=>=>objetoobjeto raizraiz comcomúúnn
=>garbage collector=>garbage collector
=>=>operadoroperador ””newnew””
AssemblyAssembly
Introducción a .NET Compilación y ejecución
CCóódigodigo fuentefuente
Compilador Compilador del del lenguajelenguaje
CompilaciCompilacióónn
En En instalaciinstalacióónn o la o la primeraprimera vezvez queque se se
invocainvoca a a cadacada mméétodotodoEjecuciEjecucióónn
Compilador Compilador JITJIT
CCóódigodigo NativoNativo
CCóódigodigo (IL)(IL)
MetadatosMetadatos
Acceso a datos: ADO.NET
ADO vs ADO.NETCaracterísticas de ADO.NETArquitecturaEnlace a datos (binding)
ADO trabaja bien, pero:Necesita COM y WindowsLos recordsets no viajan bien a través de Internet
ADO.NET resuelve estos problemas:Utiliza XML (a bajo nivel) para realizar el transportede datosXML 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 desconectadoTodo el transporte de datos utiliza XML
ADO vs ADO.NET
ADO.NET
DBLib, ODBC, DAO, RDO, ADO, …. ADO.NETSystem.Data: la clase raizA partir de ahí, principales namespaces:
System.Data.OleDBSystem.Data.SQLClientSystem.Data.ODBC, System.Data.OracleClient
System.XML: para trabajar directamentecon 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
NegocioNegocio DatosDatos
PresentaciónWindows Forms
Web formsWeb forms
Business to businessBusiness to business
Data object (class)Data object (class)
DataSetDataSet
DataSetDataSetDataSetDataSet
InternetInternet intranetintranet Data adapterData adapter
Data adapterData adapter
(BizTalk, (BizTalk, porpor ejemploejemplo))
XmlXml
MiAp.ExeMiAp.Exe
IEIE
Arquitectura de ADO.NET
Buffer de datos
Acceso a datos
DataAdapterDataSet
Diferencia fundamental
Buffer de datos
Acceso a datos
RecordsetEn ADO:
En ADO.NET:
ADO.NET: ConnectionOleDbConnection/SQLConnectionRepresenta la sesión contra la BDUtilizado por objetos Data Adapter y Command para recuperar/actualizarInicia las transacciones
Connection.BeginTransaction() devuelve un objeto TransactionxxxTransaction⌧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/SQLCommandRepresenta Transact-SQL o procedimientosalmacenadosDevuelve un resultset (ExecuteReader), un valor (ExecuteScalar), o ejecuta sentenciasde modificación (ExecuteNonQuery)Generación automática con el objetoCommandBuilder
ADO.NET: DataReaderOleDbDataReader/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 unaConnection
Puente entre el DataSet y la BD
Lee y actualiza la BD:SelectCommand, UpdateCommand, InsertCommand, DeleteCommand
ADO.NET – DataAdapter
DataAdapterDataAdapter
SelectCommandSelectCommand
InsertCommandInsertCommand
UpdateCommandUpdateCommand
DeleteCommandDeleteCommand
TableMappingsTableMappings
Base de Base de datosdatos
DataSetDataSet
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 objetosDataTable
Representa una tabla en memoriaLo rellena un DataAdapter o a manoComponente principal de los objetos DataSet y DataView
DataViewVista personalizada de un objeto DataTableFiltros, ordenación, búsquedas …
DataRelationDefine relaciones entre tablasUtiliza columnas de un DataTable
ADO.NET - DataSet
DataSetDataSet
DataTableDataTable
DataTableDataTable
DataRowDataRow
DataColumnDataColumn
RelationsRelations
ConstraintsConstraintsXML SchemaXML Schema
ADO.NET: Lecturas
Método Fill del objeto DataAdapterSe utiliza el SelectCommand del DataAdapterInserta/actualiza datos del DataSet
Si la tabla existe, actualiza datosSi no existe, crea y rellena la tablaUna tabla por cada resultset
Mantiene la conexión en su estado original
ADO.NET: ActualizacionesLa funcionalidad en ADO es implícita. Recordset = caja negra.
Ejemplo: UpdateBatchEn ADO.NET: Se crea un modelo más explícito y transparente.
InsertCommand, UpdateCommand, DeleteCommandEventos de Update
CommandBuilderCommandBuilder: 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 DataSetEjecuta los comandos Insert, Update y Delete necesariosRefresca 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 controlesVStudio .NET incluye bastanteswizards para hacer el enlace entredatos y controles
Top Related