introduccion .net ldp2501

50
1 Introducción .NET Framework

Upload: eliseo-caro-silva

Post on 06-Mar-2015

58 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduccion .NET LDP2501

1

Introducción .NET Framework

Page 2: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

3

Temas a Tratar

Introducción a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLRBibliotecas Principales

Page 4: Introduccion .NET LDP2501

4

Temas a Tratar

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

Page 5: Introduccion .NET LDP2501

5

Paradigmas de Programación

1980 1990 2000

Fu

nci

on

alid

ad

Win16 Win32COM

MFCComponentes

Servicios

APIs

Windows3.0

Page 6: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

8

Características de .NET (1/2)

Plataforma de ejecución intermedia100% Orientada a ObjetosMultilenguajePlataforma Empresarial de Misión Crítica

Page 9: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

10

Plataforma de Ejecución Intermedia

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 11: Introduccion .NET LDP2501

11

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

COM: Windows .NET: Common Language Runtime

Librerí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 Specification

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

Page 12: Introduccion .NET LDP2501

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 gratuita

Existen 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: Introduccion .NET LDP2501

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 2010

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

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

Page 14: Introduccion .NET LDP2501

14

Temas a Tratar

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

Page 15: Introduccion .NET LDP2501

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 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 16: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

18

Código Fuente

Cualquier lenguaje .NET

Compilador

Assembly (MSIL)

Bibliotecao Ejecutable

CLR – Proceso de Compilación

Page 20: Introduccion .NET LDP2501

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 Tipos

ClasesClases BaseInterfaces ImplementadasAtributos de las ClasesMétodos de las Clases

NombreVersiónCultura

Manifiesto del Assembly

Otros AssembliesPermisos de SeguridadTipos Externos

Page 21: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

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

Runtime

InteropServices

Remoting

Serialization

Serialization

Configuration SessionState

Caching Security

Services

Description

Discovery

Protocols

UI

HtmlControls

WebControls

System.Drawing

Imaging

Drawing2D

Text

Printing

System.Windows.FormsDesign ComponentModel

Page 24: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

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

Cobol

Eiffel

Fortran

Pascal

Perl

C++.NET

C#

Haskell

Java JavaScript

Visual Basic.NET

Mercury

ML

PHP

Objective Caml

Oberon Smalltalk Scheme

J#

RPG

Mondrian

APL

Delphi Python

LISP Prolog

Page 26: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

27

Temas a Tratar

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

Page 28: Introduccion .NET LDP2501

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: Introduccion .NET LDP2501

29

En una frase…

.NET es el conjunto de nuevas tecnologías en las que Microsoft ha estado trabajando durante los últimos años 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 programación y modelo de componentes con los que hayan sido desarrollados.

Page 30: Introduccion .NET LDP2501

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 31: Introduccion .NET LDP2501

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 32: Introduccion .NET LDP2501

32Debug Engine

CompiladorJIT

Assembly en la máquina

destino

Modelo de Ejecución del CLR

Assembly

Desarrollo Instalación

Instalación

Ejecución

AssemblyLoader

SeguridadClass 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 33: Introduccion .NET LDP2501

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 34: Introduccion .NET LDP2501

34

Application Domains - CLR Host

Código Manejado

CLRCLR Host

AppDomain 1

Código Manejado

AppDomain N

Page 35: Introduccion .NET LDP2501

35

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

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

Todo tipo hereda directa o indirectamente del tipo System.Object

Define Tipos de VALOR y de REFERENCIA

Todo tipo hereda directa o indirectamente del tipo System.Object

Define Tipos de VALOR y de REFERENCIA

Page 36: Introduccion .NET LDP2501

36

Temas a Tratar

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

Page 37: Introduccion .NET LDP2501

37

Base Class Library

System

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security InteropServices

Remoting

Serialization

Page 38: Introduccion .NET LDP2501

38

Acceso a Datos: ADO.NETSystem.Data

OleDb

SqlClient

OracleClient

Common

Odbc SqlTypes

System.Xml

Serialization

XPath

XSLT

Schema

Page 39: Introduccion .NET LDP2501

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 40: Introduccion .NET LDP2501

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 41: Introduccion .NET LDP2501

41

ADO.NET - Arquitectura

Page 42: Introduccion .NET LDP2501

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 43: Introduccion .NET LDP2501

43

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 comunes

Page 44: Introduccion .NET LDP2501

44

DataSet

DataTable

DataTable

DataRow

DataColumn

Relaciones

RestriccionesEsquema XML

ADO.NET- DataSet

Page 45: Introduccion .NET LDP2501

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 46: Introduccion .NET LDP2501

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 47: Introduccion .NET LDP2501

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 48: Introduccion .NET LDP2501

48

XmlTextWriter

XmlTextReader

<XML>

XmlDocument

DocumentNavigator

XmlReader

XmlValidatingReader XmlNodeReader

ADO.NET - Soporte a XML

Page 49: Introduccion .NET LDP2501

49

Aplicaciones Web: ASP.NET

System.Web

Caching

Configuration

Services UI

SessionState

HtmlControls

WebControls

Description

Discovery

Security

Protocols

Page 50: Introduccion .NET LDP2501

50

Proceso ASP.NETProceso de peticiones

Archivo.aspx.asmx

Petición

Motor ASPNET

Procesar

Clase Página

generada

Generar

Respuesta

Petición

Instanciar

Respuesta

Clase“code-

behind”

Clase Página

Instanciar, ejecutar y

“renderizar”

CLRCompiladorJIT