Tema 1 - Introducción a Microsoft.net

Embed Size (px)

Citation preview

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    1/20

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    2/20

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    3/20

    Contenido

    1. Microsoft.NET

    2. Common Language Runtime (CLR)

    3.Metadatos4. Ensamblados

    5. Base Class Library (BCL)

    6. Common Type System (CTS)7. Common Language Specification

    (CLS)

    8. Lenguajes gestionados

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    4/20

    Microsoft.NET

    Qu es Microsoft.NET?Nueva estrategia de Microsoft. Suma de:

    Nueva plataforma.NET Framework SDK

    Aplicaciones .NET

    Servicios Web (XML)

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    5/20

    Microsoft.NET (II)

    Servidores

    Experiencias

    y soluciones

    Clientes

    Servicios

    Herramientas

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    6/20

    Common Language Runtime

    Qu es el CLR?

    Motor de ejecucin de cdigo gestionado, alque ofrece numerosos servicios:

    Modelo consistente (slo OO)Modelo sencillo (sin GUIDs, HRESULT,IUnknown, etc.)

    Fin Infierno DLLMultiplataformaMultilenguaje

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    7/20

    Common Language Runtime (II)

    Recolector de basuraSeguridad de tipos

    Aislamiento de procesosTratamiento errores homogneo:excepcionesinterlenguajeSeguridad avanzadaSoporte multihiloDistribucin transparenteInteroperabilidad con cdigo no gestionado

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    8/20

    Microsoft Intermediate Language

    MSIL:Alto nivel

    Compilado JIT

    Fuente

    Compilador

    EXE/DLL

    (MSIL)

    Jitter

    Ejecucin

    Pre-jitted

    Jitters:

    Normal

    Econmico

    Prejitter

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    9/20

    Microsoft Intermediate Language

    Cabecera CLR:Versin CLR

    Firma digital

    Punto de entrada...

    Metadatos:

    Descripcin tiposEstructura tabular

    Archivo PE

    MSIL

    METADATOS

    CABECERA CLR

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    10/20

    Metadatos (II)

    Tabla Describe...

    ModuleDef Mdulo: nombre fichero, GUID,...

    TypeDef Tipos: nombre, padre, modificadoresreferencias miembros,...

    MethodDef Mtodos: signatura (ParamDef),modificadores , inicio MSIL

    ParamDef Parmetros: nombre, modificadores

    FieldDef Campos: nombre, tipo, modificadores

    PropertyDef Propiedades: nombre, tipo, modificadores,set/get (MethodDef), ...

    EventDef Eventos: nombre, tipo, modificadores,

    add/remove(MethodDef), ...

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    11/20

    Metadatos (II)

    Accesibles con System.Reflection

    Extensibles con atributos

    Mejoran IDL y incrustados en mdulo adjuntos

    Tabla Describe...AssemblyRef Ensamblados externos: versin, idioma,

    nombre (sin extensin), marca clave pblica

    ModuleRef Mdulos externos: nombre de fichero

    TypeRef Tipos externos: nombre, entrada enModuleRef o AssemblyRef

    MemberRef Miembros externos: signatura, TypeRef

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    12/20

    Ensamblados

    Util.dll Logo.jpg

    manifiesto

    Ayuda.htmlLib.dll

    manifiesto

    Ensamblado multiarchivoEnsamblado

    de un archivo

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    13/20

    Ensamblados (II)

    Tabla Describe...

    AssemblyDef Ensamblado: versin, idioma,alg. hash de FileDef, nombre(sin extensin)

    FileDef Archivos: nombre, valor hash.

    ManifestResourceDef Recursos: nombre,modificadores, ubicacin(FileDef u offset)

    ExportedTypeDef Tipos: nombre, FileDef, TypeDefAssemblyProccesorDef CPU necesaria: no se suele

    usar

    AssemblyOSDef SO necesario: no se suele usar

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    14/20

    Ensamblados (II)

    Ensamblados privados:En directorio aplicacinEnsamblados compartivos:En GAC

    Archivo manifiesto firmado con RSA+SHA-1Otros firmados con RSA + (SHA-1 MD-5)

    Marca clave pblica en AssemblyRef (64 bits)

    Identificados por: clave, nombre, versin e

    idioma Nombre fuerte

    Resuelto infierno de las DLLs! (configurable)

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    15/20

    Base Class Library

    BCL:Biblioteca de clases base (comn)

    Espacios de nombres:

    SystemCollections Data IO

    Net Reflection Runtime.Remoting

    Security Threading Web.UI.Webcontrols

    Winforms XML

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    16/20

    Common Type System

    CTS:Sistema de tipos aceptado por CLR

    Ejemplos reglas:

    Herencia simple

    Clase base System.Object

    Miembros: Campos, mtodos, eventos,propiedades

    Tablas multidimensionales y/o dentadasModificadores: public, private, family, assembly,family and assembly, family or assembly

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    17/20

    Common Language Specification

    CLS:Reglas para compartir miembrospblicos entre lenguajes gestionados

    Ejemplos de reglas:No puede haber tablas dentadasndices de tablas desde 0 y dimensionasfijasInsensible a capitalizacin mismo mbitoTipos bsicos: bool, char, byte, short, int,long, float, decimal, string, object

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    18/20

    Lenguajes gestionados (VIII)

    Otros lenguajes:

    APL Delphi

    Cobol EiffelHaskell Java

    Pascal Perl

    Python SmalltalkPowerBuilder

    ...

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    19/20

  • 5/25/2018 Tema 1 - Introducci n a Microsoft.net

    20/20