You are on page 1of 50

Introduccin .

NET Framework

Objetivo
Presentar una introduccin a la plataforma de desarrollo Microsoft .NET, describiendo sus principios bsicos de funcionamiento, su arquitectura de componentes y sus principales bibliotecas reutilizables, mostrando adems las novedades introducidas en la ltima versin de la misma.
2

Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales

Temas a Tratar
Introduccin a Microsoft .NET
l l l

Qu no es .NET? Qu es .NET? .NET Como evolucin de COM

Paradigmas de Programacin
Funcionalidad
s icio erv S

Windows 3.0

s API
Win16
1980 1990

s nte one p om C
COM Win32

MFC

2000

Qu NO es .NET?
.NET no es un Sistema Operativo .NET no es un Lenguaje de Programacin .NET no es un Entorno de Desarrollo .NET no es un Servidor de Aplicaciones .NET no es un producto empaquetado que se pueda comprar como tal
6

Qu es .NET?
Plataforma de Desarrollo compuesta de
l l l l l l

Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library) Lenguajes de Programacin Compiladores Herramientas de Desarrollo (IDE & Tools) Guas de Arquitectura

La evolucin de la plataforma COM


7

Caractersticas de .NET (1/2)


Plataforma de ejecucin intermedia 100% Orientada a Objetos Multilenguaje Plataforma Empresarial de Misin Crtica

Caractersticas de .NET (2/2)


Modelo de Programacin nico para todo tipo de aplicaciones y dispositivos de hardware Se integra fcilmente con aplicaciones existentes desarrolladas en plataformas Microsoft Se integra fcilmente con aplicaciones desarrolladas en otras plataformas

Plataforma de Ejecucin Intermedia


Aplicacin . NET
Microsoft . NET

Lenguajes de Programacin Libreras de Funcionalidad Entorno de Desarrollo Entorno de Ejecucin

Sistema Operativo ( Familia Windows )

10

.NET como evolucin de COM de Ejecucin (Runtime) Entorno


l l

COM: Windows .NET: Common Language Runtime COM: Algunas (ADO, FSO, etc.) .NET: Muy extensa (.NET Framework Class Library) COM: VB, C++, VFP, ASP, J++ .NET: Common Language Specification COM: Uno para cada lenguaje

Libreras de Funcionalidad
l l

Lenguajes de Programacin
l l

Entorno de Desarrollo (IDE)


l
11

Qu es el .NET Framework?
Paquete de software fundamental de la plataforma .NET. Incluye:
l l

Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library)

Se distribuye en forma libre y gratuita Existen tres variantes principales:


l

l l

.NET Framework Redistributable Package .NET Framework SDK .NET Compact Framework
12

Est instalado por defecto en Windows

Lnea del tiempo de .NET


Visual Studio 6.0 Visual Basic VBA Visual FoxPro VBScript C++ J++ JScript ASP .NET Framework 3.0 .NET Compact Framework 3.0 WFC-WPF-WF Visual Studio .NET 2003 .NET Framework 1.1 .NET Compact Framework J#

Visual Studio 2010 .NET Framework 4 .NET Compact Framework 4

2000

2001

2002

2003

2004

2005

2008

2010

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

Visual Studio 2005 .NET Framework 2.0 .NET Compact Framework 2.0

Visual Studio 2008 .NET Framework 3.5 .NET Compact Framework 3.5

13

Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales
l l l l l l

Arquitectura Common Language Runtime (CLR) Microsoft Intermediate Language Assemblies .NET Class Library Common Language Specification (CLS)
14

Arquitectura del .NET Framework


.NET Framework SDK

VB

C++

C#

J#

Common Language Specification


.NET Framework Class Library

ASP.NET
.NET Framework Redistributable

Windows Forms

ADO.NET y XML Base Class Library Common Language Runtime Windows COM+ Services

15

CLR Common Language Runtime

El CLR es el motor de ejecucin (runtime) de .NET Caractersticas


l l

Compilacin Just-In-Time (JIT) Gestin automtica de memoria (Garbage Collector) Gestin de errores consistente (Excepciones) Ejecucin basada en componentes (Assemblies) Gestin de Seguridad

16

CLR Componentes Internos


Base Class LibrarySupport Thread Support Ty Checker pe SecurityEng ine IL to Native Com pilers Code Manag er Class Loader
17

CO Marshaler M Ex ception Manag er Debug Eng ine Garbag e Collector

CLR Proceso de Compilacin


Cdigo Fuente Assembly (MSIL)

Compilador

Cualquier lenguaje .NET

Biblioteca o Ejecutable

18

CLR - MSIL
.method private hidebysig static void Main(string[] args) cil managed { .entrypoint maxstack 8 L_0000: ldstr "Hola Mundo" L_0005: call void [mscorlib]System.Console::WriteLine(string) L_000a: ret }

19

Qu es un Assembly?
Un Assembly es la unidad mnima de ejecucin, distribucin, instalacin y versionado de aplicaciones .NET Descripcin de
MiBiblioteca . DLL Metadata Recursos Cdigo Compilado MSIL
Clases Clases Base Interfaces Implementadas Atributos de las Clases Mtodos de las Clases

Tipos

Manifiesto del Assembly Nombre


Versin Cultura

Otros Assemblies Permisos de Seguridad Tipos Externos


20

Assemblies Aplicaciones .NET

Uno o ms Assemblies Al ejecutar una aplicacin, cmo ubico los assemblies necesarios?
l l

Global Assembly Cache (GAC) El Class Loader busca en el directorio local (preferido)

Diferentes aplicaciones pueden usar diferentes versiones


l l

Actualizaciones ms simples Desinstalacin ms simple

21

.NET Framework Class Library de Tipos bsicos (clases, Conjunto


interfaces, etc.) que vienen includos en el .NET Framework Los tipos estn organizados en jerarquas lgicas de nombres, denominados NAMESPACES Los tipos son INDEPENDIENTES del lenguaje de desarrollo Es extensible y totalmente orientada a objetos
22

.NET Framework Class El namespace Library raz es SYSTEM


System.Web
Services Description Discovery Protocols Caching Configuration Security SessionState UI HtmlControls WebControls

System.Windows.Forms
Design ComponentModel

System.Drawing
Drawing2D Imaging Printing Text

System.Data
OleDb Common Odbc SqlClient

System.Xml
XSLT XPath Serialization

System
Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization
23

Common Language Specification (CLS)

Especificacin que estandariza una serie de caractersticas soportadas por el CLR Contrato entre diseadores de lenguajes de programacin y autores de bibliotecas Permite la interoperabilidad entre lenguajes Microsoft provee implementaciones de 4 lenguajes, todos compatibles con CLS

24

El resto de la industria y el sector acadmico han desarrollado ms de 20 lenguajes compatibles con la especificacin CLS
C++.NET Delphi Pascal Oberon Cobol Visual C# J# Basic.NET Java PHP Perl Python JavaScri pt Haskell LISP Prolog RPG Smalltalk Eiffe ML l Objective Caml APL Scheme Mercury
25

Common Language Specification (CLS)

Mondrian Fortran

CLS - Eleccin del lenguaje un nico runtime (el CLR) .NET posee

y un nico conjunto de bibliotecas para todos los lenguajes No hay diferencias notorias de performance entre los lenguajes provistos por Microsoft El lenguaje a utilizar, en gral., depender de su experiencia previa con otros lenguajes o de gustos personales
l l

Si conoce Java, Delphi, C++, etc. C# Si conoce Visual Basic o VBScript

26

Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR
l l l l

Especificacin CLI Modelo de Ejecucin Application Domains Common Type System

27

Infraestructura de Lenguaje Comn (CLI)

Especificacin patrocinada por Microsoft, Intel, HP y estandarizada por ECMA (2001) e ISO (2003) que describe:
l

Entorno de Ejecucin de Aplicaciones Conjunto de Libreras Bsicas (BCL) Tipos de Datos Comunes (CTS)
28

El .NET Framework y el .NET

En una frase
.NET es el conjunto de nuevas tecnologas en las que

Microsoft ha estado trabajando durante los ltimos aos con el objetivo de obtener una plataforma sencilla y potente para distribuir el software en forma de servicios que puedan ser suministrados remotamente y que puedan comunicarse y combinarse unos con otros de manera totalmente independiente de la plataforma, lenguaje de programacin y modelo de componentes con los que hayan sido desarrollados.

29

Sub-Especificaciones de CLI
(Common Language Infrastructure)
Lenguajes de Alto Niv el
se ajustan a las reglas de la

CLS (Common Language Specification)


y utilizan las clases de la

BCL (Base Class Library )


cuyos tipos bsicos forman el

CTS (Common Ty Sy pe stem)


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

CLR (Common Language Runtime)


que est acoplado al y utiliza los servicios del

Sistema Operativ o
30

Modelo de Ejecucin del CLR


Cdigo Fuente
VB.NET Compilad or VB.NET Assembly Cdigo MSIL C# Compilad or C# Assembly Cdigo MSIL C+ +.NET Compilad or C++ .NET Assembly Cdigo MSIL Component e No Manejado

Cdigo Manejado

Common Language Runtime


Compilador JIT
Cdigo Nativo

Sistema Operativo (Windows)


31

Modelo de Ejecucin del Instalacin Desarrollo CLR


Assembl y Instalacin Assembly en la mquina destino
Policy
<?xm l ver sion=" 1.0" encodi ng=" ut f -8" ?> <confi gur ati on> <mscor l ib> <secur i t y> <poli cy> <PolicyLevel version=" 1" > <CodeGroup class=" UnionCodeGroup" ver si on=" 1" Per m issionSetN am e=" Not hing" N am e=" All _ Code" Descr ipt ion=" Code group gr ants no per m issi o ns and for ms t he r oot of t he code group t r ee. " > <IM em ber shipCondit ion clas s=" AllM em bershipCondit ion" version=" 1" /> <CodeGroup class=" UnionCodeGroup" ver si on=" 1" Per m issionSetN am e=" Ful lTrust "

Ejecucin
Compilador JIT

Class Loader

Seguridad

Assembly Loader Garbage Collector

.exe Nativo + Tabla GC

Code Manager

Manejador Excepciones Soporte MultiThread

Debug Engine

COM Interop
32

Application Domains
Procesos virtuales dentro del CLR
l l

Se ejecutan dentro de un proceso del Sistema Operativo Un proceso del sistema operativo puede contener varios AppDomains Ms eficiente que mltiples procesos del sistema operativo Ms eficiente en el intercambio de contexto de ejecucin

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

33

Application Domains - CLR Host


CLR Host
CLR
AppDomain 1 Cdigo Manejado AppDomain N Cdigo Manejado

34

CTS (Common Type System)


Define un conjunto comn de tipos de datos orientados a objetos Todo lenguaje de programacin .NET debe implementar los tipos definidos por el CTS To d o ti o h e re d a p d i cta o re i d i cta m e n te n re d e lti o p S yste m . O b j ct e D e fi e Ti o s d e n p V A LO R y d e R E FE R E N C I A
35

Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales
l l l l l
36

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

Base Class Library


System
Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading InteropServices Remoting Serialization

37

Acceso a Datos: ADO.NET


System.Data Common OracleClient Odbc SqlClient OleDb SqlTypes

System.Xml XSLT XPath Serialization Schema


38

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


cual los usuarios estn constantemente conectados a la fuente de datos Ventajas:
l l l

Mayor seguridad Mejor control de concurrencia Los datos se mantienen actualizados Se requiere una conexin constante (consume recursos del servidor) Escalabilidad

Desventajas:
l l

39

Acceso a Bases de Datos Relacionales Escenario Desconectado En un entorno desconectado, una


parte de los datos del repositorio central se copia y modifica en forma local, para luego sincronizarse con ste. Ventajas
l

Se puede trabajar en forma independiente Mayor escalabilidad y performance


40

Desventajas

ADO.NET - Arquitectura

41

ADO.NET- Proveedores de Acceso a Datos


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

ADO.NET- Clases ms comunes


Base de Datos

XxxConnection XxxConnection XxxCommand XxxCommand

Maneja la coneccin a una base de datos Ejecuta comandos contra una base de datos Intercambia datos entre un dataset y una base de datos Copia local de datos relacionales Provee acceso a datos read - only , Forward - only

XxxDataAdap XxxDataAdap ter ter DataSet DataSet XxxDataRead XxxDataRead er er

43

ADO.NET- DataSet
DataSet DataTable DataColum n DataTabl e Relaciones Esquema XML Restriccione s DataRow

44

ADO.NET Accediendo a datos Conectado


En un escenario conectado, los recursos se mantienen en el servidor hasta que la conexin se cierra 1) Abrir Conexin 2) Ejecutar Comando 3) Procesar Filas en DataReader 4) Cerrar Reader 5) Cerrar Conexin

45

ADO.NET Accediendo a datos Desconectado


En un escenario desconectado, los recursos no se mantienen en el servidor mientras los datos se procesan 1) Abrir Conexin 2) Llenar DataSet mediante DataAdapter 3) Cerrar Conexin 4) Procesar DataSet 5) Abrir Conexin 6) Actualizar fuente de datos mediante DataAdapter 7) Cerrar Conexin

46

.NET Framework Class Library


XML
.NET Framework facilita Un mapeo bi-direccional

Conceptos de Aplicacin Datos Esquemas Servicios Invocacione s

Web
XML XSD WSDL SOAP

Framework
Objetos Clases Mtodos Llamadas
47

ADO.NET - Soporte a XML


DocumentNavigator XmlTextWriter XmlDocument

XmlReader

XmlTextReader

XmlValidatingReader

XmlNodeReader
48

Aplicaciones Web: ASP.NET


System.Web Services Description Discovery Protocols Caching Configuration Security SessionState
49

UI HtmlControls WebControls

Proceso ASP.NET
Procesar

Proceso de peticiones
Motor ASPNET Generar Clase codebehind

Peticin Peticin

Archivo .aspx .asmx

Instanciar

Clase Pgina generada

CLR Compilador JIT

Respuesta Respuesta

Clase Pgina

Instanciar, ejecutar y renderizar


50

You might also like