89
Estrella 1 Estrella 1 Introducción a Introducción a Microsoft .NET Microsoft .NET Programa Microsoft Programa Microsoft Desarrollador Cinco Desarrollador Cinco Estrellas Estrellas

Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Embed Size (px)

Citation preview

Page 1: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Estrella 1Estrella 1Introducción a Introducción a Microsoft .NET Microsoft .NET

Programa Microsoft Programa Microsoft Desarrollador Cinco Desarrollador Cinco

EstrellasEstrellas

Programa Microsoft Programa Microsoft Desarrollador Cinco Desarrollador Cinco

EstrellasEstrellas

Page 2: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ObjetivoObjetivo

Presentar una introducción a la Presentar una introducción a la plataforma de desarrollo plataforma de desarrollo Microsoft .NET, describiendo sus Microsoft .NET, describiendo sus principios básicos de principios básicos de funcionamiento, su arquitectura de funcionamiento, su arquitectura de componentes y sus principales componentes y sus principales bibliotecas reutilizables, mostrando bibliotecas reutilizables, mostrando además las novedades introducidas además las novedades introducidas en la última versión de la misma.en la última versión de la misma.

Page 3: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

PrerrequisitosPrerrequisitos

Poseer los conocimientos Poseer los conocimientos proporcionados por la Estrella 0 del proporcionados por la Estrella 0 del programaprogramaHaber aprobado el examen Haber aprobado el examen correspondiente a la Estrella 0 del correspondiente a la Estrella 0 del programaprogramaConocimientos fundamentales de Conocimientos fundamentales de bases de datos relacionales, bases de datos relacionales, incluyendoincluyendo Modelo RelacionalModelo Relacional Protocolos de Acceso (ODBC/OLEDB)Protocolos de Acceso (ODBC/OLEDB) Lenguaje SQLLenguaje SQL

Page 4: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NETComponentes FundamentalesComponentes FundamentalesFuncionamiento Interno del CLRFuncionamiento Interno del CLRBibliotecas PrincipalesBibliotecas PrincipalesVentajas de .NETVentajas de .NETHerramientas de Desarrollo .NETHerramientas de Desarrollo .NETNovedades en .NET 2.0Novedades en .NET 2.0

Page 5: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NET ¿Qué no es .NET?¿Qué no es .NET? ¿Qué es .NET?¿Qué es .NET? .NET Como evolución de COM.NET Como evolución de COM

Page 6: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Paradigmas de Paradigmas de ProgramaciónProgramación

19801980 19901990 20002000

Fu

nci

on

alid

adF

un

cio

nal

idad

Win16Win16 Win32Win32COMCOM

MFCMFCComponentes

ComponentesServiciosServicios

APIsAPIs

Windows3.0

Page 7: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

¿Qué NO es .NET?¿Qué NO es .NET?

.NET no es un Sistema Operativo.NET no es un Sistema Operativo

.NET no es un Lenguaje de .NET no es un Lenguaje de ProgramaciónProgramación

.NET no es un Entorno de Desarrollo.NET no es un Entorno de Desarrollo

.NET no es un Servidor de .NET no es un Servidor de AplicacionesAplicaciones

.NET no es un producto empaquetado .NET no es un producto empaquetado que se pueda comprar como talque se pueda comprar como tal

Page 8: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

¿Qué es .NET?¿Qué es .NET?Plataforma de Desarrollo compuesta Plataforma de Desarrollo compuesta dede Entorno de Ejecución (Runtime)Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Bibliotecas de Funcionalidad (Class

Library)Library) Lenguajes de ProgramaciónLenguajes de Programación CompiladoresCompiladores Herramientas de Desarrollo (IDE & Herramientas de Desarrollo (IDE &

Tools)Tools) Guías de ArquitecturaGuías de Arquitectura

La evolución de la plataforma COMLa evolución de la plataforma COM

Page 9: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Características de .NET Características de .NET (1/2)(1/2)

Plataforma de ejecución intermediaPlataforma de ejecución intermedia

100% Orientada a Objetos100% Orientada a Objetos

MultilenguajeMultilenguaje

Plataforma Empresarial de Misión Plataforma Empresarial de Misión CríticaCrítica

Page 10: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Características de .NET Características de .NET (2/2)(2/2)

Modelo de Programación único para Modelo de Programación único para todo tipo de aplicaciones y dispositivos todo tipo de aplicaciones y dispositivos de hardwarede hardware

Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones existentes desarrolladas en existentes desarrolladas en plataformas Microsoftplataformas Microsoft

Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones desarrolladas en otras plataformasdesarrolladas en otras plataformas

Page 11: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Plataforma de Ejecución Plataforma de Ejecución IntermediaIntermedia

Entorno de

Desarrollo

Mic

rosoft

.N

ET

Librerías de Funcionalidad

Lenguajes de Programación

Entorno de Ejecución

Sistema Operativo (Familia Windows)

Aplicación .NET

Page 12: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

.NET como evolución de .NET como evolución de COMCOMEntorno de Ejecución (Runtime)Entorno de Ejecución (Runtime)

COM: WindowsCOM: Windows .NET: Common Language Runtime.NET: Common Language Runtime

Librerías de FuncionalidadLibrerías de Funcionalidad COM: Algunas (ADO, FSO, etc.)COM: Algunas (ADO, FSO, etc.) .NET: Muy extensa (.NET Framework Class .NET: Muy extensa (.NET Framework Class

Library)Library)

Lenguajes de ProgramaciónLenguajes de Programación COM: VB, C++, VFP, ASP, J++COM: VB, C++, VFP, ASP, J++ .NET: Common Language Specification.NET: Common Language Specification

Entorno de Desarrollo (IDE)Entorno de Desarrollo (IDE) COM: Uno para cada lenguajeCOM: Uno para cada lenguaje .NET: Uno independiente del lenguaje (VS.NET).NET: Uno independiente del lenguaje (VS.NET)

Page 13: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

¿Qué es el .NET Framework?¿Qué es el .NET Framework?

Paquete de software fundamental de Paquete de software fundamental de la plataforma .NET. Incluye:la plataforma .NET. Incluye: Entorno de Ejecución (Runtime)Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library)Bibliotecas de Funcionalidad (Class Library)

Se distribuye en forma libre y Se distribuye en forma libre y gratuitagratuita

Existen tres variantes principales:Existen tres variantes principales: .NET Framework Redistributable .NET Framework Redistributable

PackagePackage .NET Framework SDK.NET Framework SDK .NET Compact Framework .NET Compact Framework

Está instalado por defecto en Está instalado por defecto en Windows 2003 Server o superiorWindows 2003 Server o superior

Page 14: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

.NET Compact Framework

*

*

AplicaciónMóvil

Aplicación de Consola

Aplicación Web

Aplicación de Escritorio

¿Dónde instalar el .NET ¿Dónde instalar el .NET Framework?Framework?

ServidorCliente

* Sólo si la aplicación es distribuída* Sólo si la aplicación es distribuída

Page 15: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Línea del tiempo de .NETLínea del tiempo de .NETVisual Studio 6.0Visual BasicVBAVisual FoxProVBScriptC++J++JScriptASP

Visual Studio .NET 2003.NET Framework 1.1.NET Compact FrameworkJ#

Visual Studio “Orcas”.NET Framework “Orcas”.NET Compact Framework “Orcas”

2000 2001 2002 2003 2004 2005 2006 y más

Visual Studio 2005 (“Whidbey”).NET Framework 2.0 (“Whidbey”).NET Compact Framework 2.0 (“Whidbey”)

Visual Studio .NET 2002.NET Framework 1.0Visual Basic .NETC#

Page 16: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NETComponentes FundamentalesComponentes Fundamentales ArquitecturaArquitectura Common Language Runtime (CLR)Common Language Runtime (CLR) Microsoft Intermediate LanguageMicrosoft Intermediate Language AssembliesAssemblies .NET Class Library.NET Class Library Common Language Specification (CLS)Common Language Specification (CLS)

Page 17: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET y XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# J# …

Arquitectura del .NET Arquitectura del .NET FrameworkFramework

.NE

T F

ram

ewor

k R

edis

trib

utab

le

.NE

T F

ram

ewo

rk S

DK

.NE

T F

ramew

ork

Class Library

Page 18: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

CLR - Arquitecturas de CLR - Arquitecturas de Ejecución de AplicacionesEjecución de Aplicaciones

Page 19: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

CLR – Common Language CLR – Common Language RuntimeRuntime

El CLR es el motor de ejecución El CLR es el motor de ejecución (runtime) de .NET(runtime) de .NETCaracterísticasCaracterísticas Compilación Just-In-Time (JIT)Compilación Just-In-Time (JIT) Gestión automática de memoria Gestión automática de memoria

(Garbage Collector)(Garbage Collector) Gestión de errores consistente Gestión de errores consistente

(Excepciones)(Excepciones) Ejecución basada en componentes Ejecución basada en componentes

(Assemblies)(Assemblies) Gestión de SeguridadGestión de Seguridad MultithreadingMultithreading

Page 20: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

CLR – Componentes InternosCLR – Componentes Internos

Class Loader

IL to NativeCompilers

CodeManager

GarbageCollector

Security Engine Debug Engine

Type Checker Exception Manager

Thread Support COM Marshaler

Base Class Library Support

Page 21: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Código Código FuenteFuenteCódigo Código FuenteFuente

Cualquier Cualquier lenguaje .NETlenguaje .NET

CompiladorCompilador

AssemblyAssembly (MSIL)(MSIL)

AssemblyAssembly (MSIL)(MSIL)

BibliotecaBibliotecao Ejecutableo Ejecutable

CLR – Proceso de CLR – Proceso de CompilaciónCompilación

Page 23: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

¿Qué es un “Assembly”?¿Qué es un “Assembly”?

Un Assembly es la unidad mínima de Un Assembly es la unidad mínima de ejecución, distribución, instalación y ejecución, distribución, instalación y versionado de aplicaciones .NETversionado de aplicaciones .NET

MetadataMetadata

Código CompiladoCódigo CompiladoMSILMSIL

RecursosRecursos

MiBiblioteca.DLLMiBiblioteca.DLL

Descripción de TiposDescripción de Tipos

ClasesClasesClases BaseClases BaseInterfaces ImplementadasInterfaces ImplementadasAtributos de las ClasesAtributos de las ClasesMétodos de las ClasesMétodos de las Clases

NombreNombreVersiónVersiónCulturaCultura

Manifiesto del AssemblyManifiesto del Assembly

Otros AssembliesOtros AssembliesPermisos de SeguridadPermisos de SeguridadTipos ExternosTipos Externos

Page 24: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Assemblies - Assemblies - Aplicaciones .NETAplicaciones .NET

Uno o más AssembliesUno o más AssembliesAl ejecutar una aplicación, ¿cómo Al ejecutar una aplicación, ¿cómo ubico los assemblies necesarios?ubico los assemblies necesarios?

El Class Loader busca en el directorio El Class Loader busca en el directorio local (preferido)local (preferido)

Global Assembly Cache (GAC)Global Assembly Cache (GAC)

Diferentes aplicaciones pueden usar Diferentes aplicaciones pueden usar diferentes versionesdiferentes versiones Actualizaciones más simplesActualizaciones más simples Desinstalación más simpleDesinstalación más simple

Page 25: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

.NET Framework Class .NET Framework Class LibraryLibrary

Conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluídos en el .NET Framework Los tipos están organizados en jerarquías lógicas de nombres, denominados NAMESPACESLos tipos son INDEPENDIENTES del lenguaje de desarrolloEs extensible y totalmente orientada a objetos

Page 26: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

.NET Framework Class .NET Framework Class LibraryLibraryEl namespace raíz es SYSTEM

System

System.Data System.Xml

System.Web

GlobalizationGlobalization

DiagnosticsDiagnostics

ConfigurationConfiguration

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

TextText

ServiceProcessServiceProcess

SecuritySecurity

CommonCommon

OleDbOleDb

SqlClientSqlClient

OdbcOdbc

XPathXPath

XSLTXSLT

RuntimeRuntime

InteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionState

CachingCaching SecuritySecurity

ServicesServices

DescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUI

HtmlControlsHtmlControls

WebControlsWebControls

System.Drawing

ImagingImaging

Drawing2DDrawing2D

TextText

PrintingPrinting

System.Windows.FormsDesignDesign ComponentModelComponentModel

Page 27: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Common Language Specification Common Language Specification (CLS)(CLS)

Especificación que estandariza una serie de características soportadas por el CLRContrato entre diseñadores de lenguajes de programación y autores de bibliotecasPermite la interoperabilidad entre lenguajesMicrosoft provee implementaciones de 4 lenguajes, todos compatibles con CLS Microsoft Visual Basic .NETMicrosoft Visual Basic .NET Microsoft Visual C# .NETMicrosoft Visual C# .NET Microsoft Visual J#.NETMicrosoft Visual J#.NET Microsoft Visual C++.NETMicrosoft Visual C++.NET

Page 28: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Common Language Specification Common Language Specification (CLS)(CLS)

El resto de la industria y el sector académico han desarrollado más de 20 lenguajes compatibles con la especificación CLS

CobolCobol

EiffelEiffel

FortranFortran

PascalPascal

PerlPerl

C+C++.NE+.NETT

C#C#

HaskellHaskell

JavaJava JavaScriJavaScriptpt

Visual Visual Basic.NETBasic.NET

MercuryMercury

MLML

PHPPHP

Objective CamlObjective Caml

OberonOberon SmalltalkSmalltalk SchemeScheme

J#J#

RPGRPG

MondrianMondrian

APLAPL

DelphiDelphi PythonPython

LISPLISP PrologProlog

Page 29: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

CLS - Elección del CLS - Elección del lenguajelenguaje

.NET posee un único runtime (el CLR) .NET posee un único runtime (el CLR) y un único conjunto de bibliotecas y un único conjunto de bibliotecas para todos los lenguajespara todos los lenguajesNo hay diferencias notorias de No hay diferencias notorias de performance entre los lenguajes performance entre los lenguajes provistos por Microsoftprovistos por MicrosoftEl lenguaje a utilizar, en gral., El lenguaje a utilizar, en gral., dependerá de su experiencia previa dependerá de su experiencia previa con otros lenguajes o de gustos con otros lenguajes o de gustos personalespersonales Si conoce Java, Delphi, C++, etc. Si conoce Java, Delphi, C++, etc. C# C# Si conoce Visual Basic o VBScript Si conoce Visual Basic o VBScript

VB.NETVB.NET

Los tipos de aplicaciones .NET son Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que INDEPENDIENTES del lenguaje que elijaelija

Page 30: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NET Componentes FundamentalesComponentes Fundamentales Funcionamiento Interno del CLRFuncionamiento Interno del CLR

Especificación CLIEspecificación CLI Modelo de EjecuciónModelo de Ejecución Application DomainsApplication Domains Common Type SystemCommon Type System

Page 31: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Infraestructura de Lenguaje Infraestructura de Lenguaje Común (CLI)Común (CLI)

Especificación patrocinada por Especificación patrocinada por Microsoft, Intel, HP y Microsoft, Intel, HP y estandarizada por ECMA (2001) estandarizada por ECMA (2001) e ISO (2003) que describe: e ISO (2003) que describe: Entorno de Ejecución de Entorno de Ejecución de

AplicacionesAplicaciones Conjunto de Librerías Básicas Conjunto de Librerías Básicas

(BCL)(BCL) Tipos de Datos Comunes (CTS)Tipos de Datos Comunes (CTS)

El .NET Framework y el .NET El .NET Framework y el .NET Compact Framework son Compact Framework son implementaciones de la implementaciones de la especificación CLIespecificación CLI

Page 32: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Sub-Especificaciones de Sub-Especificaciones de CLICLI

Lenguajes de Alto Nivel

BCL (Base Class Library)

CLR (Common Language Runtime)

Sistema Operativo

CLS (Common Language Specification)

CTS (Common Type System)

se ajustan a las reglas de la…

y utilizan las clases de la…

cuyos tipos básicos forman el…

y se ejecutan bajo el control de y usan los servicios del…

que está acoplado al y utiliza los servicios del …

Page 33: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

VB.NETVB.NETCódigoCódigoFuenteFuente

Compilador Compilador VB.NETVB.NET

C++.NETC++.NETC#C#

AssemblyAssemblyCódigo MSILCódigo MSIL

Sistema Operativo (Windows)Sistema Operativo (Windows)

Common Language RuntimeCommon Language Runtime

Compilador JITCompilador JIT

Código NativoCódigo Nativo

Código Código ManejadoManejado

ComponenteComponenteNo ManejadoNo Manejado

Modelo de Ejecución del Modelo de Ejecución del CLRCLR

CompiladorCompiladorC#C#

CompiladorCompiladorC++ .NETC++ .NET

AssemblyAssemblyCódigo MSILCódigo MSIL

AssemblyAssemblyCódigo MSILCódigo MSIL

Page 34: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Debug EngineDebug Engine

CompiladorCompiladorJITJIT

Assembly en Assembly en la máquinala máquina

destinodestino

Modelo de Ejecución del Modelo de Ejecución del CLRCLR

AssemblyAssembly

DesarrolloDesarrollo InstalaciónInstalación

InstalaciónInstalación

EjecuciónEjecución

AssemblyAssemblyLoaderLoaderSeguridadSeguridadClass Class

LoaderLoader

.exe Nativo.exe Nativo++

Tabla GC Tabla GC

Code Code ManagerManager

Garbage CollectorGarbage Collector

Manejador ExcepcionesManejador Excepciones

Soporte MultiThreadSoporte MultiThread

COM InteropCOM Interop

Policy<?xml version="1.0" encoding="utf-8" ?><configuration> <mscorlib> <security> <policy> <PolicyLevel version="1"> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="Nothing" Name="All_Code" Description="Code group grants no permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1"/> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"

Page 35: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Application DomainsApplication DomainsProcesos virtuales dentro del CLRProcesos virtuales dentro del CLR Se ejecutan dentro de un proceso del Se ejecutan dentro de un proceso del

Sistema OperativoSistema Operativo Un proceso del sistema operativo puede Un proceso del sistema operativo puede

contener varios AppDomainscontener varios AppDomains Más eficiente que múltiples procesos Más eficiente que múltiples procesos

del sistema operativodel sistema operativo Más eficiente en el intercambio de Más eficiente en el intercambio de

contexto de ejecucióncontexto de ejecución

Un Assembly y sus tipos son siempre Un Assembly y sus tipos son siempre cargados dentro de un AppDomaincargados dentro de un AppDomainProvee una frontera para: Fallos, Provee una frontera para: Fallos, Tipos, SeguridadTipos, Seguridad

Page 36: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Application Domains - CLR Application Domains - CLR HostHost

Código Manejado

CLRCLR Host

AppDomain 1

Código Manejado

AppDomain N

Page 37: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

CTS (Common Type System)CTS (Common Type System)Define un conjunto común de “tipos” de Define un conjunto común de “tipos” de datos orientados a objetosdatos orientados a objetos

Todo lenguaje de programación .NET debe Todo lenguaje de programación .NET debe implementar los tipos definidos por el CTSimplementar los tipos definidos por el CTS

Todo tipo hereda Todo tipo hereda directa o directa o indirectamente indirectamente del tipo del tipo System.ObjectSystem.Object

Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIAREFERENCIA

Todo tipo hereda Todo tipo hereda directa o directa o indirectamente indirectamente del tipo del tipo System.ObjectSystem.Object

Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIAREFERENCIA

Page 38: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

La Memoria y los Tipos de La Memoria y los Tipos de DatosDatosEl CLR administra dos segmentos de El CLR administra dos segmentos de

memoria: memoria: Stack (Pila)Stack (Pila) y y Heap (Montón)Heap (Montón)

El El StackStack es liberado automáticamente y es liberado automáticamente y el el HeapHeap es administrado por el es administrado por el GCGC ((Garbage CollectorGarbage Collector))Los tiposLos tipos VALOR VALOR se almacenan en se almacenan en el Stackel Stack

Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el HeapHeap

Los tiposLos tipos VALOR VALOR se almacenan en se almacenan en el Stackel Stack

Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el HeapHeap

Page 39: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NET Componentes FundamentalesComponentes Fundamentales Funcionamiento Interno del CLRFuncionamiento Interno del CLR Bibliotecas PrincipalesBibliotecas Principales

Base Class Library (BCL)Base Class Library (BCL) ADO.NETADO.NET Windows FormsWindows Forms ASP.NETASP.NET

Page 40: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Base Class LibraryBase Class Library

System

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security InteropServices

Remoting

Serialization

Page 41: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Acceso a Datos: ADO.NETAcceso a Datos: ADO.NETSystem.Data

OleDb

SqlClient

OracleClient

Common

Odbc SqlTypes

System.Xml

Serialization

XPath

XSLT

Schema

Page 42: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Acceso a Bases de Datos Acceso a Bases de Datos Relacionales Escenario Relacionales Escenario ConectadoConectado Un entorno conectado es uno en el Un entorno conectado es uno en el

cual los usuarios están cual los usuarios están constantemente conectados a la constantemente conectados a la fuente de datosfuente de datos Ventajas:Ventajas: Mayor seguridadMayor seguridad Mejor control de concurrenciaMejor control de concurrencia Los datos se mantienen actualizadosLos datos se mantienen actualizados

Desventajas:Desventajas: Se requiere una conexión constante Se requiere una conexión constante

(consume recursos del servidor)(consume recursos del servidor) EscalabilidadEscalabilidad

Page 43: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

En un entorno desconectado, una En un entorno desconectado, una parte de los datos del repositorio parte de los datos del repositorio central se copia y modifica en forma central se copia y modifica en forma local, para luego sincronizarse con local, para luego sincronizarse con éste. éste. VentajasVentajas Se puede trabajar en forma Se puede trabajar en forma

independienteindependiente Mayor escalabilidad y performanceMayor escalabilidad y performance

DesventajasDesventajas Los datos no están sinconizadosLos datos no están sinconizados Resolución manual de conflictosResolución manual de conflictos

Acceso a Bases de Datos Acceso a Bases de Datos Relacionales Escenario Relacionales Escenario DesconectadoDesconectado

Page 44: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET - ArquitecturaADO.NET - Arquitectura

Page 45: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET- Proveedores de ADO.NET- Proveedores de Acceso a DatosAcceso a Datos

SQL Server/Access SQL Server/Access (System.Data.SqlClient)(System.Data.SqlClient)OLE DB (System.Data.OleDb)OLE DB (System.Data.OleDb)ODBC (System.Data.Odbc)ODBC (System.Data.Odbc)Oracle (System.Data.OracleClient)Oracle (System.Data.OracleClient)Otros provistos por terceros (MySQL, Otros provistos por terceros (MySQL, PostgreSQL, DB2, etc..)PostgreSQL, DB2, etc..)

Page 46: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Base de Datos

XxxConnectionXxxConnection

XxxCommandXxxCommand

DataSetDataSet XxxDataReaderXxxDataReader

XxxDataAdapterXxxDataAdapter

Maneja la conección a una base de datos

Maneja la conección a una base de datos

Ejecuta comandos contra una basede datos

Ejecuta comandos contra una basede datos

Copia local de datos relacionalesCopia local de datos relacionales

Provee acceso a datos read-only, Forward-onlyProvee acceso a datos read-only, Forward-only

Intercambia datos entre un dataset y una base de datos

Intercambia datos entre un dataset y una base de datos

ADO.NET- Clases más ADO.NET- Clases más comunescomunes

Page 47: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

DataSetDataSet

DataTableDataTable

DataTableDataTable

DataRowDataRow

DataColumnDataColumn

RelacionesRelaciones

RestriccionesRestriccionesEsquema XML Esquema XML

ADO.NET- DataSetADO.NET- DataSet

Page 48: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET vs. ADOADO.NET vs. ADO

Page 49: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET – Accediendo a datos ADO.NET – Accediendo a datos ConectadoConectado

En un escenario En un escenario conectado, los conectado, los recursos se mantienen recursos se mantienen en el servidor hasta en el servidor hasta que la conexión se que la conexión se cierracierra1) Abrir Conexión1) Abrir Conexión2) Ejecutar Comando2) Ejecutar Comando3) Procesar Filas en 3) Procesar Filas en DataReaderDataReader4) Cerrar Reader4) Cerrar Reader5) Cerrar Conexión5) Cerrar Conexión

Page 50: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

En un escenario En un escenario desconectado, los recursos no desconectado, los recursos no se mantienen en el servidor se mantienen en el servidor mientras los datos se mientras los datos se procesanprocesan1) Abrir Conexión1) Abrir Conexión2) Llenar DataSet mediante 2) Llenar DataSet mediante DataAdapterDataAdapter3) Cerrar Conexión3) Cerrar Conexión4) Procesar DataSet4) Procesar DataSet5) Abrir Conexión5) Abrir Conexión6) Actualizar fuente de datos 6) Actualizar fuente de datos mediante DataAdaptermediante DataAdapter7) Cerrar Conexión7) Cerrar Conexión

ADO.NET – Accediendo a ADO.NET – Accediendo a datos Desconectadodatos Desconectado

Page 51: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

XmlTextWriterXmlTextWriter

XmlTextReaderXmlTextReader

<XML><XML>

XmlDocumentXmlDocument

DocumentNavigatorDocumentNavigator

XmlReaderXmlReader

XmlValidatingReaderXmlValidatingReader XmlNodeReaderXmlNodeReader

ADO.NET - Soporte a XMLADO.NET - Soporte a XML

Page 52: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Windows FormsWindows Forms

System.Drawing

Drawing2D

Imaging

Printing

Text

System.WinForms

Design ComponentModel

Page 53: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Aplicaciones Web: Aplicaciones Web: ASP.NETASP.NET

System.Web

Caching

Configuration

Services UI

SessionState

HtmlControls

WebControls

Description

Discovery

Security

Protocols

Page 54: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NETComponentes FundamentalesComponentes FundamentalesFuncionamiento Interno del CLRFuncionamiento Interno del CLRBibliotecas PrincipalesBibliotecas PrincipalesVentajas de .NETVentajas de .NET

Page 55: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Ventajas de .NETVentajas de .NETUnifica los modelos de programaciónUnifica los modelos de programaciónSimplifica aún más el desarrolloSimplifica aún más el desarrolloProvee un Entorno de Ejecución Provee un Entorno de Ejecución robusto y segurorobusto y seguroEs independiente del lenguaje de Es independiente del lenguaje de programaciónprogramaciónInteroperabilidad con código Interoperabilidad con código existenteexistenteSimplifica la instalación y Simplifica la instalación y administración de las aplicacionesadministración de las aplicacionesEs ExtensibleEs Extensible

Page 56: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Unificando los ModelosUnificando los Modelos

Windows APIWindows API

.NET Framework.NET Framework

API consistente mas allá del lenguaje API consistente mas allá del lenguaje o del modelo de programacióno del modelo de programación

ASPASP

Basado en Basado en Servidor,Servidor,

UI Embebido en el UI Embebido en el códigocódigo

MFC/ATL (C++)MFC/ATL (C++)

OOP, OOP, Potencia,Potencia,

Acceso a bajo Acceso a bajo nivelnivel

Visual BasicVisual Basic

Desarrollo Desarrollo Rapido,Rapido,

Componentes,Componentes,Event DrivenEvent Driven

Page 57: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Desarrollo SimplificadoDesarrollo Simplificado

Alto nivel de abstracciónAlto nivel de abstracción No mas accesos COM a bajo nivelNo mas accesos COM a bajo nivel Orientado a Objetos desde el NúcleoOrientado a Objetos desde el Núcleo

Sistema de tipos unificado (CTS)Sistema de tipos unificado (CTS) Todo es un objeto, no mas variantsTodo es un objeto, no mas variants

Componentes de SoftwareComponentes de Software Propiedades, métodos, eventos, y Propiedades, métodos, eventos, y

atributos incluidos en la construcción de atributos incluidos en la construcción de clasesclases

API organizada en forma JerárquicaAPI organizada en forma Jerárquica

Page 58: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Entorno de Ejecución Robusto y Entorno de Ejecución Robusto y SeguroSeguro

Gestión automática de la memoriaGestión automática de la memoria Todos los objetos son administrados por Todos los objetos son administrados por

el Garbage Collectorel Garbage Collector

Manejo de ExcepcionesManejo de ExcepcionesFuertemente tipadoFuertemente tipado Solo casteos segurosSolo casteos seguros Inicialización de variables obligatoriaInicialización de variables obligatoria

Instalación con Cero ImpactoInstalación con Cero Impacto No requiere registración en la RegistryNo requiere registración en la Registry

Page 59: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Independencia del Independencia del lenguajelenguaje

Libertad en la elección del lenguajeLibertad en la elección del lenguaje Todas las facilidades de la Todas las facilidades de la

plataforma .NET están disponibles a plataforma .NET están disponibles a todos los lenguajes de todos los lenguajes de programación .NETprogramación .NET

Los componentes de una Los componentes de una aplicación .NET pueden ser escritos en aplicación .NET pueden ser escritos en distintos lenguajes de alto nivel distintos lenguajes de alto nivel compatibles con la plataformacompatibles con la plataforma

Herramientas compartidasHerramientas compartidas Debuggers, profilers, analizadores de Debuggers, profilers, analizadores de

código, y otras trabajan para todos los código, y otras trabajan para todos los lenguajeslenguajes

Page 60: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Instalación y Administración Instalación y Administración más simplesmás simples

Unidades de Ensamblado Unidades de Ensamblado (“Assemblies”)(“Assemblies”) Mínima unidad de distribución, Mínima unidad de distribución,

versionado y administración de versionado y administración de seguridad de aplicaciones .NETseguridad de aplicaciones .NET

Auto-descriptas a través de Auto-descriptas a través de un manifiesto (“manifest”)un manifiesto (“manifest”)

Instalaciones Cero-impactoInstalaciones Cero-impacto Aplicaciones y componentes pueden ser Aplicaciones y componentes pueden ser

compartidas o privadascompartidas o privadas

VersioningVersioning Múltiples versiones del mismo Múltiples versiones del mismo

componente pueden co-existir, aún en componente pueden co-existir, aún en el mismo procesoel mismo proceso

Page 61: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ExtensibilidadExtensibilidad

El Framework no es una “caja negra”El Framework no es una “caja negra”Sus clases pueden ser extendidas a Sus clases pueden ser extendidas a través del mecanismo de herenciatravés del mecanismo de herencia A diferencia de COM, usamos y A diferencia de COM, usamos y

extendemos las clases en si mismas, no extendemos las clases en si mismas, no un “wrapper”un “wrapper”

Herencia entre distintos lenguajesHerencia entre distintos lenguajes

Page 62: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

InteroperabilidadInteroperabilidad

.NET Framework.NET FrameworkServicios Web XMLServicios Web XML

C#C#

C++C++ VBVB

Otros...Otros... .NET.NET

COMCOMCOM INTEROP

Page 63: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NET Componentes fundamentalesComponentes fundamentales Funcionamiento internoFuncionamiento interno Bibliotecas PrincipalesBibliotecas Principales Ventajas de .NETVentajas de .NET Herramientas de Desarrollo .NETHerramientas de Desarrollo .NET

Visual Studio 2005Visual Studio 2005 SQL Server 2005 ExpressSQL Server 2005 Express

Page 64: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Visual Studio 2005Visual Studio 2005

Novatos

Entusiastas

Estudiantes

Hobbyists

Part-Timers

Profesionales

Consultores

Desarrolladores

Arquitectos

Testers

VB6 Devs

Page 65: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Visual Studio 2005 Express Visual Studio 2005 Express EditionsEditions

Herramientas de desarrollo gratuitasHerramientas de desarrollo gratuitasMuy livianas, fáciles de usar y de aprenderMuy livianas, fáciles de usar y de aprenderDiseñadas para entusiastas, estudiantes y Diseñadas para entusiastas, estudiantes y desarrolladores principiantesdesarrolladores principiantesHay varias ediciones, según el tipo de Hay varias ediciones, según el tipo de aplicación y el lenguajeaplicación y el lenguajeTiene características avanzadas, por Tiene características avanzadas, por ejemplo:ejemplo: RefactoringRefactoring Code SnippetsCode Snippets Diseñadores WYSIWYGDiseñadores WYSIWYG DepuradoresDepuradores IntellisenseIntellisense

Page 66: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

SQL Server 2005 ExpressSQL Server 2005 Express

La nueva versión de MSDELa nueva versión de MSDEEs gratuitoEs gratuitoPreparado para trabajar integrado Preparado para trabajar integrado con .NET 2.0con .NET 2.0Tamaño máximo de base: 4 GbTamaño máximo de base: 4 GbMax. Conexiones Concurrentes: no Max. Conexiones Concurrentes: no tienetieneIncluye una interfaz de Incluye una interfaz de administracion y un editor de administracion y un editor de consultasconsultasMayor integración con Visual Studio Mayor integración con Visual Studio 20052005

Page 67: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NETComponentes fundamentalesComponentes fundamentalesFuncionamiento internoFuncionamiento internoBibliotecas PrincipalesBibliotecas PrincipalesVentajas de .NETVentajas de .NETHerramientas de Desarrollo .NETHerramientas de Desarrollo .NETNovedades en .NET 2.0Novedades en .NET 2.0

Page 68: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Temas a TratarTemas a Tratar

Novedades en .NET 2.0Novedades en .NET 2.0 GenericsGenerics Soporte para 64 bitsSoporte para 64 bits Tipos ParcialesTipos Parciales Nivel de Accesibilidad de PropertiesNivel de Accesibilidad de Properties Novedades en ADO.NET 2.0Novedades en ADO.NET 2.0

Page 69: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

GenericsGenerics

Son tipos parametrizados soportados Son tipos parametrizados soportados por el CLRpor el CLR Un tipo parametrizado es aquel que Un tipo parametrizado es aquel que

puede definirse sin especificar los tipos puede definirse sin especificar los tipos de datos de sus parámetros en tiempo de datos de sus parámetros en tiempo de compilación.de compilación.

Nos dan la posibilidad de declarar Nos dan la posibilidad de declarar clases, estructuras, métodos e clases, estructuras, métodos e interfaces que actuarán interfaces que actuarán uniformemente sobre valores cuyos uniformemente sobre valores cuyos tipos se desconocen a priori y son tipos se desconocen a priori y son recién especificados al momento de recién especificados al momento de su utilizaciónsu utilización

Page 70: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Generics - EjemploGenerics - Ejemplo

Definiendo una clase genérica en C#Definiendo una clase genérica en C#

Utilizando una clase genérica en C#Utilizando una clase genérica en C#

public class ClaseGenerica<T> { public T atributo;}

ClaseGenerica <string> g = new ClaseGenerica<string>();g.atributo = “Un string";g.atributo = 2; //Genera Error de Compilación…ClaseGenerica<int> g2 = new ClaseGenerica<int>();g2.atributo = 2; //NO genera error de compilación

Page 71: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Generics - EjemploGenerics - Ejemplo

Definiendo una clase genérica en Definiendo una clase genérica en VB.NETVB.NET

Utilizando una clase genérica en Utilizando una clase genérica en VB.NETVB.NET

Public Class ClaseGenerica(Of T) Public atributo As TEnd Class

Dim g As New ClaseGenerica(Of String) g.atributo = “Un string"g.atributo = 2 ‘Genera error de compilación…Dim g2 As New ClaseGenerica(Of Integer) g2.atributo = 2 ‘NO genera error de compilación

Page 72: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Generics - ColeccionesGenerics - Colecciones

Colecciones Genéricas Vs. Colecciones Tradicionales

System.Collections.Generic System.Collections

Comparer<T> Comparer

Dictionary<K,T> HashTable

List<T> ArrayList

Queue<T> Queue

SortedDictionary<K,T> SortedList

Stack<T> Stack

ICollection<T> ICollection

IComparable<T> System.IComparable

IComparer<T> IComparer

IDictionary<K,T> IDictionary

IEnumerable<T> IEnumerable

IEnumerator<T> IEnumerator

IKeyComparer<T> IKeyComparer

IList<T> IList

Page 73: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Generics - ColeccionesGenerics - Colecciones

Sin generics

Con generics

Page 74: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Generics - ColeccionesGenerics - Colecciones

Sin generics

Con generics

Page 75: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Soporte para 64 bitsSoporte para 64 bits

El CLR 1.x sólo tiene soporte para El CLR 1.x sólo tiene soporte para aplicaciones de 32 bitsaplicaciones de 32 bits No aprovechan las características de los No aprovechan las características de los

sistemas operativos de 64 bits, ya que sistemas operativos de 64 bits, ya que se ejecutan emuladasse ejecutan emuladas

El CLR 2.0 tiene una versión de 64 El CLR 2.0 tiene una versión de 64 bitsbits Permite compilar aplicaciones para que Permite compilar aplicaciones para que

hagan uso nativamente de las nuevas hagan uso nativamente de las nuevas características de los sistemas características de los sistemas operativos y procesadores de 64 bitsoperativos y procesadores de 64 bits

Page 76: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Tipos ParcialesTipos ParcialesPermiten la declaración de un tipo en Permiten la declaración de un tipo en varios archivos físicosvarios archivos físicos Válido para clases y estructuras Válido para interfaces sólo en C# Utilizan la palabra clave “partial” en la

declaración

Su uso puede tener varias ventajasSu uso puede tener varias ventajas Dividir implementaciones complejas en partes

pequeñas Separación de código auto-generado Mútiples desarrolladores pueden trabajar sobre

distintas secciones del mismo tipo simultáneamente

Puede facilitar el mantenimiento y el control de versiones de código

Page 77: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

// Demo.Part1.cs// Demo.Part1.cs

using System;using System;

public partial class Demopublic partial class Demo

{{

public Demo()public Demo()

{{

Console.Write( "P1" );Console.Write( "P1" );

}}

}}

// Demo.Part2.cs// Demo.Part2.cs

public partial class Demopublic partial class Demo

{{

private int i;private int i;

}}

// Demo.Part3.cs// Demo.Part3.cs

// Error 1!// Error 1!

public class Demopublic class Demo

{{

// Error 2!// Error 2!

private int i;private int i;

// OK// OK

private int j;private int j;

public void Test()public void Test()

{{

// Error 3!// Error 3!

Console.Write( "P3" );Console.Write( "P3" );

}}

}}

Tipos Parciales - EjemploTipos Parciales - Ejemplo

Page 78: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Tipos Parciales - EjemploTipos Parciales - Ejemplo

' Demo.Part1.vb' Demo.Part1.vb

Imports SystemImports System

Partial Public Class DemoPartial Public Class Demo

Public Sub New()Public Sub New()

Console.Write("P1")Console.Write("P1")

End SubEnd Sub

End ClassEnd Class

' Demo.Part2.vb' Demo.Part2.vb

Partial Public Class DemoPartial Public Class Demo

Private i As IntegerPrivate i As Integer

End ClassEnd Class

' Demo.Part3.vb' Demo.Part3.vb

' OK en VB.NET' OK en VB.NET

Public Class DemoPublic Class Demo

' Error 2!' Error 2!

Private i As IntegerPrivate i As Integer

' OK' OK

Private j As IntegerPrivate j As Integer

Public Sub Test()Public Sub Test()

' OK en VB.NET' OK en VB.NET

Console.Write("P3")Console.Write("P3")

End SubEnd Sub

End ClassEnd Class

Page 79: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Modificadores de acceso Modificadores de acceso El CLR 2.0 permite especificar diferentes El CLR 2.0 permite especificar diferentes modificadores de acceso para el get y el modificadores de acceso para el get y el set de las propiedades e índicesset de las propiedades e índicesPermite solamente modificar uno de los Permite solamente modificar uno de los dos elementos de acceso, mientras que dos elementos de acceso, mientras que el otro toma el nivel de acceso de la el otro toma el nivel de acceso de la propertypropertyPuede especificar más restriccionesPuede especificar más restriccionesMejora el encapsulamiento de atributosMejora el encapsulamiento de atributos

Page 80: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Modificadores de acceso - Modificadores de acceso - EjemplosEjemplos

public class Customer{public class Customer{ private string id;private string id; public string public string CustomerId {CustomerId { public get { return public get { return id; }id; } privateprivate set { id = set { id = value; }value; } }}}}

Public Class CustomerPublic Class Customer Private id As StringPrivate id As String Public Property CustomerId() As StringPublic Property CustomerId() As String GetGet Return Me.idReturn Me.id End GetEnd Get PrivatePrivate Set(ByVal value As Set(ByVal value As String)String) Me.id = valueMe.id = value End SetEnd Set End PropertyEnd PropertyEnd ClassEnd Class

Page 81: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Novedades en ADO.NET Novedades en ADO.NET 2.02.0

API independiente del proveedor ADO.NETAPI independiente del proveedor ADO.NET Modelada bajo el patrón “Abstract Factory”Modelada bajo el patrón “Abstract Factory”

Operaciones AsincrónicasOperaciones Asincrónicas Permite ejecutar comandos contra la base de Permite ejecutar comandos contra la base de

datos de manera asincrónica no bloqueantedatos de manera asincrónica no bloqueante

Multiple Active Result Sets (MARS)Multiple Active Result Sets (MARS) Permite tener múltiples DataReaders abiertos Permite tener múltiples DataReaders abiertos

sobre la misma conexiónsobre la misma conexión

Page 82: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Novedades en ADO.NET Novedades en ADO.NET 2.02.0Integración y aprovechamiento de Integración y aprovechamiento de

características de SQL Server 2005características de SQL Server 2005 Notification ServicesNotification Services Service BrokerService Broker Tipo de dato XMLTipo de dato XML Soporte a Servicios WebSoporte a Servicios Web

Mejoras en el DataSet y DataTableMejoras en el DataSet y DataTable PerformancePerformance SerializaciónSerialización Soporte a XMLSoporte a XML

Page 83: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET 2.0 – API ADO.NET 2.0 – API IndependienteIndependiente

Namespace System.Data.CommonNamespace System.Data.Common

DbCommandDbCommand DbCommandBuilderDbCommandBuilder DbConnectionDbConnection

DataAdapterDataAdapter DbDataAdapterDbDataAdapter DbDataReaderDbDataReader

DbParameterDbParameter DbParameterCollectionDbParameterCollection DbTransactionDbTransaction

DbProviderFactoryDbProviderFactory DbProviderFactoriesDbProviderFactories DbExceptionDbException

Page 84: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

Interfaces IDb* (ej: IDbConnection)Interfaces IDb* (ej: IDbConnection)

clases base abstractas Db* (ej: DbConnection)clases base abstractas Db* (ej: DbConnection)

Implementa la clase baseImplementa la clase base Db*Db*

SqlSql OleDbOleDb ODBCODBC OracleOracle 33rdrd Party 1Party 1

33rdrd Party 2Party 2

Provider- Independiente del código de la aplicación en esta capa

Provider-específico en el código de la aplicación en esta capa

ADO.NET 2.0 – API ADO.NET 2.0 – API IndependienteIndependiente

Page 85: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET 2.0 - DataSetADO.NET 2.0 - DataSetMejoras de performanceMejoras de performance Mantienen indices internos de los Mantienen indices internos de los

registros de sus DataTablesregistros de sus DataTables

Serialización binaria del contenidoSerialización binaria del contenido El DataSet 1.x El DataSet 1.x es siempre serializado a es siempre serializado a

XMLXML Bueno para integrar datos, malo en Bueno para integrar datos, malo en

performanceperformance El DataSet 2.0 soporta El DataSet 2.0 soporta serialización serialización

binaria binaria Rápido y compactoRápido y compacto DataSet.RemotingFormat = DataSet.RemotingFormat =

SerializationFormat.BinarySerializationFormat.Binary

Page 86: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET 2.0 - DataTableADO.NET 2.0 - DataTable

Operaciones comunes del Operaciones comunes del DataSet DataSet

también disponibles en el también disponibles en el DataTable:DataTable: ReadXml, ReadXmlSchema, WriteXml, ReadXml, ReadXmlSchema, WriteXml,

WriteXmlSchema, Clear, Clone, Copy, WriteXmlSchema, Clear, Clone, Copy,

Merge, GetChanges Merge, GetChanges

DataTable es DataTable es auto-serializableauto-serializable:: Buen mecanismo para transmitir datos Buen mecanismo para transmitir datos

en una aplicación distribuídaen una aplicación distribuída

Page 87: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET 2.0 - Tipo de dato ADO.NET 2.0 - Tipo de dato XML en el DataSetXML en el DataSet

DataTable DataTable acepta columnas de tipo acepta columnas de tipo XMLXML System.Data.SqlTypes.SqlXml System.Data.SqlTypes.SqlXml

Expuestas como una instancia de Expuestas como una instancia de XPathDocumentXPathDocumentPueden accederse vía Pueden accederse vía XmlReaderXmlReaderFacilidades para trabajar con Facilidades para trabajar con documentos XML como un conjunto de documentos XML como un conjunto de valoresvalores

Page 88: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

ADO.NET 2.0 - ADO.NET 2.0 - Actualizaciones BatchActualizaciones Batch

ADO.NET 2.0 permite ejecutar ADO.NET 2.0 permite ejecutar múltiples instrucciones SQL sobre múltiples instrucciones SQL sobre una base de datos de forma batch, una base de datos de forma batch, usando el sp_executesqlusando el sp_executesqlReduce tráfico de redReduce tráfico de redDataAdapter.UpdateBatchSize = DataAdapter.UpdateBatchSize = batch_sizebatch_sizeTrabaja con transaccionesTrabaja con transaccionesTrabaja con Trabaja con los proveedores para los proveedores para SQL Server y OracleSQL Server y Oracle

Page 89: Estrella 1 Introducción a Microsoft.NET Programa Microsoft Desarrollador Cinco Estrellas

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or

implied, in this summary.