introducción-a-microsoft.net-[parte1]

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

Upload: kevin-reano

Post on 08-Jul-2015

213 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Introducción-a-Microsoft.NET-[parte1]

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

Programa Microsoft Programa Microsoft Desarrollador Cinco Desarrollador Cinco

EstrellasEstrellas

Page 2: Introducción-a-Microsoft.NET-[parte1]

ObjetivoObjetivo

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

Page 3: Introducción-a-Microsoft.NET-[parte1]

PrerrequisitosPrerrequisitos

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

Page 4: Introducción-a-Microsoft.NET-[parte1]

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: Introducción-a-Microsoft.NET-[parte1]

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: Introducción-a-Microsoft.NET-[parte1]

Paradigmas de ProgramaciónParadigmas de Programación

19801980 19901990 20002000

Fu

nci

on

alid

adF

un

cio

nal

idad

Win16Win16 Win32Win32COMCOM

MFCMFCComponentes

ComponentesServiciosServicios

APIsAPIs

Windows3.0

Page 7: Introducción-a-Microsoft.NET-[parte1]

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

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

.NET no es un Servidor de Aplicaciones.NET no es un Servidor de Aplicaciones

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

Page 8: Introducción-a-Microsoft.NET-[parte1]

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

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

Page 9: Introducción-a-Microsoft.NET-[parte1]

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

Plataforma de ejecución intermediaPlataforma de ejecución intermedia

100% Orientada a Objetos100% Orientada a Objetos

MultilenguajeMultilenguaje

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

Page 10: Introducción-a-Microsoft.NET-[parte1]

Características de .NET (2/2)Características de .NET (2/2)Modelo de Programación único para todo tipo Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardwarede aplicaciones y dispositivos de hardware

Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas existentes desarrolladas en plataformas MicrosoftMicrosoft

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

Page 11: Introducción-a-Microsoft.NET-[parte1]

Plataforma de Ejecución IntermediaPlataforma de Ejecución Intermedia

Entorno de Desarrollo

Mic

roso

ft .

NE

T

Librerías de Funcionalidad

Lenguajes de Programación

Entorno de Ejecución

Sistema Operativo (Familia Windows)

Aplicación .NET

Page 12: Introducción-a-Microsoft.NET-[parte1]

.NET como evolución de COM.NET como evolución de COMEntorno 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 Library).NET: Muy extensa (.NET Framework Class 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: Introducción-a-Microsoft.NET-[parte1]

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

Paquete de software fundamental de la Paquete de software fundamental de la plataforma .NET. Incluye: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 gratuitaSe distribuye en forma libre y gratuita

Existen tres variantes principales:Existen tres variantes principales: .NET Framework Redistributable Package.NET Framework Redistributable Package .NET Framework SDK.NET Framework SDK .NET Compact Framework .NET Compact Framework

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

Page 14: Introducción-a-Microsoft.NET-[parte1]

.NET Compact Framework

*

*

AplicaciónMóvil

Aplicación de Consola

Aplicación Web

Aplicación de Escritorio

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

ServidorCliente

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

Page 15: Introducción-a-Microsoft.NET-[parte1]

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: Introducción-a-Microsoft.NET-[parte1]

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: Introducción-a-Microsoft.NET-[parte1]

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 FrameworkArquitectura del .NET Framework.N

ET

Fra

mew

ork

Red

istr

ibut

able

.NE

T F

ram

ewo

rk S

DK

.NE

T F

ramew

ork

Class Library

Page 18: Introducción-a-Microsoft.NET-[parte1]

CLR - Arquitecturas de Ejecución de CLR - Arquitecturas de Ejecución de AplicacionesAplicaciones

Page 19: Introducción-a-Microsoft.NET-[parte1]

CLR – Common Language RuntimeCLR – Common Language Runtime

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

Collector)Collector) Gestión de errores consistente (Excepciones)Gestión de errores consistente (Excepciones) Ejecución basada en componentes Ejecución basada en componentes

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

Page 20: Introducción-a-Microsoft.NET-[parte1]

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: Introducción-a-Microsoft.NET-[parte1]

Código Código FuenteFuente

Cualquier Cualquier lenguaje .NETlenguaje .NET

CompiladorCompilador

AssemblyAssembly (MSIL)(MSIL)

BibliotecaBibliotecao Ejecutableo Ejecutable

CLR – Proceso de CompilaciónCLR – Proceso de Compilación

Page 23: Introducción-a-Microsoft.NET-[parte1]

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

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

MetadataMetadata

Código CompiladoCódigo CompiladoMSILMSIL

RecursosRecursos

MiBibl ioteca.DLLMiBibl ioteca.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: Introducción-a-Microsoft.NET-[parte1]

Assemblies - Aplicaciones .NETAssemblies - Aplicaciones .NET

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

El Class Loader busca en el directorio local El Class Loader busca en el directorio local (preferido)(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: Introducción-a-Microsoft.NET-[parte1]

.NET Framework Class Library.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 26: Introducción-a-Microsoft.NET-[parte1]

.NET Framework Class Library.NET Framework Class Library• El 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: Introducción-a-Microsoft.NET-[parte1]

Common Language Specification (CLS)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 .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: Introducción-a-Microsoft.NET-[parte1]

Common Language Specification (CLS)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

CobolCobol

EiffelEiffel

FortranFortran

PascalPascal

PerlPerl

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

HaskellHaskell

JavaJava JavaScriptJavaScript

Visual Basic.NETVisual Basic.NET

MercuryMercury

MLML

PHPPHP

Objective CamlObjective Caml

OberonOberon SmalltalkSmalltalk SchemeScheme

J#J#

RPGRPG

MondrianMondrian

APLAPL

DelphiDelphi PythonPython

LISPLISP PrologProlog

Page 29: Introducción-a-Microsoft.NET-[parte1]

CLS - Elección del lenguajeCLS - Elección del lenguaje

.NET posee un único runtime (el CLR) y un .NET posee un único runtime (el CLR) y un único conjunto de bibliotecas para todos los único conjunto de bibliotecas para todos los lenguajeslenguajesNo hay diferencias notorias de performance No hay diferencias notorias de performance entre los lenguajes provistos por Microsoftentre los lenguajes provistos por MicrosoftEl lenguaje a utilizar, en gral., dependerá de El lenguaje a utilizar, en gral., dependerá de su experiencia previa con otros lenguajes o su experiencia previa con otros lenguajes o de gustos personalesde gustos personales 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.NET VB.NET

Los tipos de aplicaciones .NET son Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elijaINDEPENDIENTES del lenguaje que elija

Page 30: Introducción-a-Microsoft.NET-[parte1]

Temas a TratarTemas a Tratar

Introducción a Microsoft .NETIntroducción a Microsoft .NETComponentes FundamentalesComponentes FundamentalesFuncionamiento 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: Introducción-a-Microsoft.NET-[parte1]

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

Especificación patrocinada por Especificación patrocinada por Microsoft, Intel, HP y estandarizada Microsoft, Intel, HP y estandarizada por ECMA (2001) e ISO (2003) que por ECMA (2001) e ISO (2003) que describe: describe: Entorno de Ejecución de AplicacionesEntorno de Ejecución de Aplicaciones Conjunto de Librerías Básicas (BCL)Conjunto de Librerías Básicas (BCL) Tipos de Datos Comunes (CTS)Tipos de Datos Comunes (CTS)

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

Page 32: Introducción-a-Microsoft.NET-[parte1]

Sub-Especificaciones de CLISub-Especificaciones de CLI

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: Introducción-a-Microsoft.NET-[parte1]

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 CLRModelo de Ejecución del CLR

CompiladorCompiladorC#C#

CompiladorCompiladorC++ .NETC++ .NET

AssemblyAssemblyCódigo MSILCódigo MSIL

AssemblyAssemblyCódigo MSILCódigo MSIL

Page 34: Introducción-a-Microsoft.NET-[parte1]

Debug EngineDebug Engine

CompiladorCompiladorJITJIT

Assembly en Assembly en la máquinala máquina

destinodestino

Modelo de Ejecución del CLRModelo de Ejecución del CLR

AssemblyAssembly

DesarrolloDesarrollo InstalaciónInstalación

InstalaciónInstalación

EjecuciónEjecución

AssemblyAssemblyLoaderLoader

SeguridadSeguridadClass 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"