Introducción .NET Framework

49
1 Introducción .NET Framework

description

Introducción .NET Framework. Objetivo. - PowerPoint PPT Presentation

Transcript of Introducción .NET Framework

Page 1: Introducción  .NET  Framework

1

Introducción .NET Framework

Page 2: Introducción  .NET  Framework

2

Objetivo

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

Page 3: Introducción  .NET  Framework

3

Temas a TratarIntroducción a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLRBibliotecas Principales

Page 4: Introducción  .NET  Framework

4

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

Page 5: Introducción  .NET  Framework

5

Paradigmas de Programación

1980 1990 2000

Func

iona

lidad

Win16 Win32COM

MFCComponentes

Servicios

APIs

Windows3.0

Page 6: Introducción  .NET  Framework

6

¿Qué NO es .NET?

.NET no es un Sistema Operativo

.NET no es un Lenguaje de Programación.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

Page 7: Introducción  .NET  Framework

7

¿Qué es .NET?Plataforma de Desarrollo compuesta de Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library) Lenguajes de Programación Compiladores Herramientas de Desarrollo (IDE & Tools) Guías de Arquitectura

La evolución de la plataforma COM

Page 8: Introducción  .NET  Framework

8

Características de .NET (1/2)Plataforma de ejecución intermedia100% Orientada a ObjetosMultilenguajePlataforma Empresarial de Misión Crítica

Page 9: Introducción  .NET  Framework

9

Características de .NET (2/2)Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardwareSe integra fácilmente con aplicaciones existentes desarrolladas en plataformas MicrosoftSe integra fácilmente con aplicaciones desarrolladas en otras plataformas

Page 10: Introducción  .NET  Framework

10

Plataforma de Ejecución Intermedia

Entorno de

Desarrollo

Mic

roso

ft .N

ET

Librerías de Funcionalidad

Lenguajes de Programación

Entorno de Ejecución

Sistema Operativo (Familia Windows)

Aplicación .NET

Page 11: Introducción  .NET  Framework

11

.NET como evolución de COMEntorno de Ejecución (Runtime)

COM: Windows .NET: Common Language RuntimeLibrerías de Funcionalidad COM: Algunas (ADO, FSO, etc.) .NET: Muy extensa (.NET Framework Class

Library)Lenguajes de Programación COM: VB, C++, VFP, ASP, J++ .NET: Common Language SpecificationEntorno de Desarrollo (IDE) COM: Uno para cada lenguaje .NET: Uno independiente del lenguaje (VS.NET)

Page 12: Introducción  .NET  Framework

12

¿Qué es el .NET Framework?Paquete de software fundamental de la plataforma .NET. Incluye: Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library)Se distribuye en forma libre y gratuitaExisten tres variantes principales: .NET Framework Redistributable

Package .NET Framework SDK .NET Compact Framework Está instalado por defecto en Windows 2003 Server o superior

Page 13: Introducción  .NET  Framework

13

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

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

.NET Framework 3.0

.NET Compact Framework 3.0WFC-WPF-WF

2000 2001 2002 2003 2004 2005 2008 Presente

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

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

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

Page 14: Introducción  .NET  Framework

14

Temas a TratarIntroducción a Microsoft .NETComponentes Fundamentales Arquitectura Common Language Runtime (CLR) Microsoft Intermediate Language Assemblies .NET Class Library Common Language Specification (CLS)

Page 15: Introducción  .NET  Framework

15

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 Framework

.NE

T Fr

amew

ork

Red

istri

buta

ble

.NET

Fra

mew

ork

SDK

.NE

T Framew

ork C

lass Library

Page 16: Introducción  .NET  Framework

16

CLR – Common Language Runtime

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

(Garbage Collector) Gestión de errores consistente

(Excepciones) Ejecución basada en componentes

(Assemblies) Gestión de Seguridad Multithreading

Page 17: Introducción  .NET  Framework

17

CLR – 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 18: Introducción  .NET  Framework

18

Código Fuente

Cualquier lenguaje .NET

CompiladorAssembly

(MSIL)

Bibliotecao Ejecutable

CLR – Proceso de Compilación

Page 20: Introducción  .NET  Framework

20

¿Qué es un “Assembly”?Un Assembly es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET

Metadata

Código CompiladoMSIL

Recursos

MiBiblioteca.DLL

Descripción de TiposClasesClases BaseInterfaces ImplementadasAtributos de las ClasesMétodos de las Clases

NombreVersiónCultura

Manifiesto del Assembly

Otros AssembliesPermisos de SeguridadTipos Externos

Page 21: Introducción  .NET  Framework

21

Assemblies - Aplicaciones .NET

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

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

local (preferido)Diferentes aplicaciones pueden usar diferentes versiones Actualizaciones más simples Desinstalación más simple

Page 22: Introducción  .NET  Framework

22

.NET Framework Class Library

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 23: Introducción  .NET  Framework

23

.NET Framework Class LibraryEl namespace raíz es SYSTEM

System

System.Data System.Xml

System.Web

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security

Common

OleDb

SqlClient

Odbc

XPath

XSLT

RuntimeInteropServices

Remoting

Serialization

Serialization

Configuration SessionState

Caching Security

ServicesDescription

Discovery

Protocols

UIHtmlControls

WebControls

System.Drawing

Imaging

Drawing2D

Text

Printing

System.Windows.FormsDesign ComponentModel

Page 24: Introducción  .NET  Framework

24

Common Language Specification (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 .NET Microsoft Visual C# .NET Microsoft Visual J#.NET Microsoft Visual C++.NET

Page 25: Introducción  .NET  Framework

25

Common Language Specification (CLS)El resto de la industria y el sector

académico han desarrollado más de 20 lenguajes compatibles con la especificación CLS

CobolEiffel

Fortran

PascalPerl

C++.NET

C#

HaskellJava JavaScri

pt

Visual Basic.NET

MercuryML

PHP

Objective CamlOberon Smalltalk Scheme

J#

RPGMondrian

APL

Delphi PythonLISP Prolog

Page 26: Introducción  .NET  Framework

26

CLS - Elección del lenguaje.NET posee un único runtime (el CLR)

y un único conjunto de bibliotecas para todos los lenguajesNo hay diferencias notorias de performance entre los lenguajes provistos por MicrosoftEl lenguaje a utilizar, en gral., dependerá de su experiencia previa con otros lenguajes o de gustos personales Si conoce Java, Delphi, C++, etc. C# Si conoce Visual Basic o VBScript

VB.NETLos tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija

Page 27: Introducción  .NET  Framework

27

Temas a TratarIntroducción a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLR Especificación CLI Modelo de Ejecución Application Domains Common Type System

Page 28: Introducción  .NET  Framework

28

Infraestructura de Lenguaje Común (CLI)

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

Aplicaciones Conjunto de Librerías Básicas

(BCL) Tipos de Datos Comunes (CTS)El .NET Framework y el .NET Compact Framework son implementaciones de la especificación CLI

Page 29: Introducción  .NET  Framework

30

Sub-Especificaciones de CLI(Common Language Infrastructure)

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 30: Introducción  .NET  Framework

31

VB.NETCódigoFuente

Compilador VB.NET

C++.NETC#

AssemblyCódigo MSIL

Sistema Operativo (Windows)

Common Language Runtime

Compilador JIT

Código Nativo

Código Manejado

ComponenteNo Manejado

Modelo de Ejecución del CLR

CompiladorC#

CompiladorC++ .NET

AssemblyCódigo MSIL

AssemblyCódigo MSIL

Page 31: Introducción  .NET  Framework

32Debug Engine

CompiladorJIT

Assembly en la máquina

destino

Modelo de Ejecución del CLR

Assembly

Desarrollo Instalación

Instalación

Ejecución

AssemblyLoaderSeguridadClass

Loader

.exe Nativo+

Tabla GC

Code Manager

Garbage Collector

Manejador Excepciones

Soporte MultiThread

COM 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 32: Introducción  .NET  Framework

33

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

Sistema Operativo Un proceso del sistema operativo puede

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

del sistema operativo Más eficiente en el intercambio de

contexto de ejecuciónUn Assembly y sus tipos son siempre cargados dentro de un AppDomainProvee una frontera para: Fallos, Tipos, Seguridad

Page 33: Introducción  .NET  Framework

34

Application Domains - CLR Host

Código Manejado

CLRCLR Host

AppDomain 1

Código Manejado

AppDomain N

Page 34: Introducción  .NET  Framework

35

CTS (Common Type System)Define un conjunto común de “tipos” de datos orientados a objetosTodo lenguaje de programación .NET debe implementar los tipos definidos por el CTS

Todo tipo hereda directa o indirectamente del tipo System.ObjectDefine Tipos de VALOR y de REFERENCIA

Page 35: Introducción  .NET  Framework

36

Temas a TratarIntroducción a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLRBibliotecas Principales Base Class Library (BCL) ADO.NET Windows Forms ASP.NET

Page 36: Introducción  .NET  Framework

37

Base Class Library

System

GlobalizationDiagnosticsConfigurationCollections

ResourcesReflectionNetIO

ThreadingTextServiceProcessSecurity InteropServices

RemotingSerialization

Page 37: Introducción  .NET  Framework

38

Acceso a Datos: ADO.NETSystem.Data

OleDbSqlClient

OracleClientCommon

Odbc SqlTypes

System.XmlSerialization

XPathXSLT

Schema

Page 38: Introducción  .NET  Framework

39

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

cual los usuarios están constantemente conectados a la fuente de datos Ventajas: Mayor seguridad Mejor control de concurrencia Los datos se mantienen actualizados Desventajas: Se requiere una conexión constante

(consume recursos del servidor) Escalabilidad

Page 39: Introducción  .NET  Framework

40

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 Se puede trabajar en forma

independiente Mayor escalabilidad y performance Desventajas Los datos no están sinconizados Resolución manual de conflictos

Acceso a Bases de Datos Relacionales Escenario Desconectado

Page 40: Introducción  .NET  Framework

41

ADO.NET - Arquitectura

Page 41: Introducción  .NET  Framework

42

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..)

Page 42: Introducción  .NET  Framework

43

Base de Datos

XxxConnection

XxxCommand

DataSet XxxDataReader

XxxDataAdapter

Maneja la conección a una base de datos

Ejecuta comandos contra una basede datos

Copia local de datos relacionales

Provee acceso a datos read-only, Forward-only

Intercambia datos entre un dataset y una base de datos

ADO.NET- Clases más comunes

Page 43: Introducción  .NET  Framework

44

DataSet

DataTable

DataTable

DataRow

DataColumn

Relaciones

RestriccionesEsquema XML

ADO.NET- DataSet

Page 44: Introducción  .NET  Framework

45

ADO.NET – Accediendo a datos Conectado

En un escenario conectado, los recursos se mantienen en el servidor hasta que la conexión se cierra1) Abrir Conexión2) Ejecutar Comando3) Procesar Filas en DataReader4) Cerrar Reader5) Cerrar Conexión

Page 45: Introducción  .NET  Framework

46

En un escenario desconectado, los recursos no se mantienen en el servidor mientras los datos se procesan1) Abrir Conexión2) Llenar DataSet mediante DataAdapter3) Cerrar Conexión4) Procesar DataSet5) Abrir Conexión6) Actualizar fuente de datos mediante DataAdapter7) Cerrar Conexión

ADO.NET – Accediendo a datos Desconectado

Page 46: Introducción  .NET  Framework

47

.NET Framework Class LibraryXML

Datos

Esquemas

Servicios

Invocaciones

Framework

Objetos

Clases

Métodos

Llamadas

Web

XML

XSD

WSDL

SOAP

Conceptos de Aplicación

.NET Framework facilitaUn mapeo bi-direccional

Page 47: Introducción  .NET  Framework

48

XmlTextWriter

XmlTextReader

<XML>

XmlDocument

DocumentNavigator

XmlReader

XmlValidatingReader XmlNodeReader

ADO.NET - Soporte a XML

Page 48: Introducción  .NET  Framework

49

Aplicaciones Web: ASP.NET

System.Web

CachingConfiguration

Services UI

SessionState

HtmlControlsWebControls

DescriptionDiscovery

Security

Protocols

Page 49: Introducción  .NET  Framework

50

Proceso ASP.NETProceso de peticiones

Archivo.aspx.asmx

Petición

Motor ASPNET

Procesar

Clase Página

generada

Generar

Respuesta

PeticiónInstanciar

Respuesta

Clase“code-

behind”

Clase Página Instanciar,

ejecutar y “renderizar”

CLRCompiladorJIT