Sunteți pe pagina 1din 53

La plataforma Microsoft .

NET

La plataforma Microsoft .NET

La plataforma Microsoft .NET


Qu es la plataforma Microsoft .NET?
Conjunto de tecnologas y componentes dispersos, que en algunos casos ya existan, que Microsoft ha integrado en una plataforma de desarrollo y ejecucin de aplicaciones consistente.

Facilita el desarrollo y ejecucin de aplicaciones usando tecnologas nativas de Microsoft.


Cambia el rumbo inicial de Microsoft, moviendo las aplicaciones de ser centradas en el cliente a ser centradas en el servidor. Orientada a un nuevo modelo de computacin distribuida en la red. Red que est pasando de ser centrada en las personas y basada en los contenidos, a estar centrada en las aplicaciones y basada en los servicios.

La plataforma Microsoft .NET

La plataforma Microsoft .NET


Qu es la plataforma Microsoft .NET?
Respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Sun Microsystems.

Ofrece una marco de trabajo (framework) rpido, seguro y robusto, para desarrollar aplicaciones o soluciones.
Permite una integracin ms rpida y gil entre empresas.

Permite un acceso ms simple y universal a todo tipo de informacin desde cualquier tipo de dispositivo.

La plataforma Microsoft .NET

La plataforma Microsoft .NET


Qu es la plataforma Microsoft .NET?

La plataforma Microsoft .NET

.NET Framework
Componente core de la plataforma Microsoft .NET Entorno de ejecucin y desarrollo de aplicaciones en la plataforma Microsoft .NET Componente software que se debe instalar en aquellas mquinas que deseen EJECUTAR y/o DESARROLLAR aplicaciones mediante la plataforma Microsoft .NET Incluido de forma nativa en WS2008, Windows Vista y Windows 7. Componentes de .NET Framework:
CLR - Common Language Runtime .NET Framework Class Library

La plataforma Microsoft .NET

.NET Framework
Componentes de .NET Framework:

La plataforma Microsoft .NET

Interoperabilidad de lenguajes
.NET Framework es un entorno multilenguaje. Soporta mltiples lenguajes de programacin. En la actualidad existen ms de 20 lenguajes de programacin compatibles con .NET Framework:
C# , Visual Basic, JScript, J#, COBOL, Fortran, Haskell, Eiffel,

Pascal, Perl, Python, SmallTalk,...

CLS (Common Languague Specification): conjunto de normas mnimas que un lenguaje de programacin debe cumplir para ser compatible con .NET Framework. Componentes escritos en lenguajes distintos pueden compartir funcionalidad entre ellos de forma transparente.

La plataforma Microsoft .NET

Interoperabilidad de lenguajes
.NET Framework es un entorno multilenguaje.

La plataforma Microsoft .NET

Interoperabilidad Programacin de aplicaciones con Visual Studio .NET

de lenguajes

Java: un lenguaje en mltiples plataformas

La plataforma Microsoft .NET

Interoperabilidad Programacin de aplicaciones con Visual Studio .NET

de lenguajes

Cul es el siguiente paso? (=>MONO)

La plataforma Microsoft .NET

Interoperabilidad de lenguajes
.NET Framework es un entorno multilenguaje:

La plataforma Microsoft .NET

Common Language Runtime (CLR)


Entorno comn de ejecucin de aplicaciones .NET que se instala sobre el SO. Componente principal o ncleo del .NET Framework. Tambin conocido como entorno gestionado o administrado Procesador virtual que se encarga de ejecutar aplicaciones en la plataforma Microsoft .NET. Una aplicacin .NET NO se ejecuta nunca directamente sobre el procesador o sistema operativo; sino que se ejecuta sobre el CLR. Proporciona un entorno de ejecucin de aplicaciones robusto y seguro.

La plataforma Microsoft .NET

Common Language Runtime (CLR)


Proporciona automticamente una serie de servicios:
Liberacin del espacio ocupado en memoria. Seguridad del cdigo que se ejecuta. Gestin de excepciones. Gestin de threads. Depuracin de cdigo. .

La plataforma Microsoft .NET

.NET Framework Class Library


Biblioteca de clases de .NET Framework Proporciona una serie de servicios y componentes de alto nivel ya implementados para su uso en el desarrollo de aplicaciones. Conjunto de libreras estndar de clases organizadas jerrquicamente en espacios de nombres o namespaces. Disponible para todos los lenguajes de programacin compatibles con .NET Framework. La mayora de namespaces disponibles se organizan bajo la siguiente jerarqua de nombres:
System.* Microsoft.*
http://msdn.microsoft.com/es-es/library/ms229335.aspx

La plataforma Microsoft .NET

.NET Framework Class Library


Las clases que componen esta biblioteca se distribuyen en varios ensamblados (assemblies) almacenados en el GAC (Global Assembly Cache).
%SYSTEMDRIVE%\WINDOWS\assembly

.NET Framework Class Library se divide en dos partes:


Base Class Library (BCL).
Clases core o estndars que componen el API bsico del .NET Framework. Disponibles en: mscorlib.dll, System.dll y System.core.dll.

Framework Class Library.


Resto de clases que componen .NET Framework Class Library.

La plataforma Microsoft .NET

.NET Framework Class Library


Espacios de nombres o namespaces tpicos:
System
Contiene clases estndar que cualquier aplicacin necesita.

System.IO
Contiene clases para la lectura y escritura de archivos y secuencias de datos.

System.Data
Contiene clases para el acceso a datos.

System.Xml
Contiene clases que permiten procesar documentos XML.

System.Collections / System.Collections.Generic
Contiene clases que definen diversas colecciones de objetos, tales como listas, colas, matrices de bits, tablas hash y diccionarios.

System.Web
Contiene clases que habilitan la comunicacin entre el explorador y el servidor.

La plataforma Microsoft .NET

.NET Framework Class Library

La plataforma Microsoft .NET

Evolucin de .NET Framework

La plataforma Microsoft .NET

.NET Framework Class Library


.NET Framework 3.0 (WinFX)
Extensin de .NET Framework 2.0 No implica ningn cambio en la arquitectura de .NET Framework. Sigue utilizando el entorno comn de ejecucin (CLR) de .NET

Framework 2.0. Incluye 4 nuevas libreras al .NET Framework Class Library:


Windows Presentation Foundation (WPF Avalon) Windows Communication Foundation (WCF Indigo) Windows Workflow Foundation (WF) Windows CardSpace (InfoCard)

No implica nuevas versiones en los lenguajes de programacin C#

(C# 2.0) y VB (VB 8)

La plataforma Microsoft .NET

.NET Framework Class Library


.NET Framework 3.5
Extensin de .NET Framework 3.0 Implica cambios y mejoras en el entorno comn de ejecucin o

CLR. Implica nuevas versiones en los lenguajes de programacin C# (C# 3.0) y VB (VB 9.0) Nuevas libreras y mejoras en .NET Framework Class Library:
LinQ (Language Integrated Query) ASP.NET 3.5 Soporte a AJAX .

Incluye .NET Framework 2.0 SP1 + .NET Framework 3.0 SP1.

La plataforma Microsoft .NET

Microsoft .NET Framework 3.5

La plataforma Microsoft .NET

Microsoft .NET Framework 3.5

La plataforma Microsoft .NET

Microsoft .NET Framework 3.5

La plataforma Microsoft .NET

Microsoft .NET Framework 3.5

La plataforma Microsoft .NET

Microsoft .NET Framework 4.0

La plataforma Microsoft .NET

Microsoft .NET Framework 4.5

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


Compilacin
Cdigo fuente C# o VB Compilador lenguaje

Ensamblado (EXE, DLL)


Cdigo MSIL

Metadatos

Cdigo Mquina CPU 01010101

Compilador JIT

Ejecucin

Cuando el mtodo es invocado por 1 vez

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


Proceso de compilacin

Cdigo fuente C#

file.cs

Compilador C# csc.exe Compilador VB vbc.exe Compilador C++ cl.exe Cdigo MSIL

Cdigo fuente VB

file.vb

Cdigo fuente C++

file.cpp

29

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


El proceso de compilacin del cdigo fuente produce un mdulo gestionado (managed module) conocido como ensamblado (assembly). Los ensamblados son los nicos componentes que pueden ser ejecutados por el CLR. Un ensamblado es la unidad mnima de distribucin y construccin de aplicaciones en .NET. Conceptualmente, un ensamblado proporciona una manera de considerar un conjunto de archivos como una entidad nica.

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


El proceso de compilacin en .NET no genera instrucciones nativas o cdigo mquina especfico de ningn procesador. El proceso de compilacin en .NET genera un cdigo intermedio conocido como MSIL o IL Microsoft Intermediate Language-. Lenguaje mquina de alto nivel independiente de cualquier procesador y que se ejecuta sobre el CLR. Tambin conocido como cdigo gestionado (managed code). Los procesadores no pueden ejecutar directamente el cdigo MSIL o IL.

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


Este cdigo MSIL debe ser convertido a cdigo nativo del procesador sobre el que se vaya a ejecutar la aplicacin. El CLR se encarga de traducir (compilar sobre la marcha) este cdigo MSIL en instrucciones nativas del procesador de destino. De esto se encarga un componente del CLR conocido como compilador JIT (Just-in-Time) o JITter. Un compilador JIT (Just-in-Time) o JITter convierte, en tiempo de ejecucin, el cdigo MSIL a ejecutar en cdigo nativo del procesador de destino segn sea necesario.
IL_0000: ldstr IL_0005: call IL_000a: ret "Hola mundo!" void [mscorlib]System.Console::WriteLine(string)

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


Existen tres tipos de compilador JIT (Just-in-Time) o JITter:
Compilador JITter normal
Es el que se suele usar por defecto. Slo compila el cdigo MSIL a cdigo nativo a medida que va siendo necesario en tiempo de ejecucin.

Compilador JITter econmico


Diseado especialmente para sistemas que tienen recursos limitados. Incorporacin del descarte de cdigo para liberar memoria.

Compilador preJITter (Native Generator, ngen)


Permite compilar completamente cualquier assembly antes de que se cargue la aplicacin. No en tiempo de ejecucin. Usando la herramienta ngen.exe

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


El CLR proporciona dos herramientas para trabajar con cdigo MSIL o gestionado:
MSIL Assembler (ilasm.exe)
Ensamblador de cdigo MSIL.

A partir de un fichero con cdigo MSIL (*.il) genera un ensamblado o mdulo gestionado (managed module).
>ilasm HelloWorldCS.il

MSIL Disassembler (ildasm.exe)


Desensamblador de cdigo MSIL. A partir de un ensamblado o mdulo gestionado (managed module) genera el cdigo MSIL correspondiente.
> ildasm HelloWorldCS.exe /out:HelloWorldCS.il

La plataforma Microsoft .NET

Proceso de ejecucin gestionada


En el .NET Framework, el CLR proporciona la infraestructura necesaria para un entorno de ejecucin gestionada.

35

La plataforma Microsoft .NET

Proceso de ejecucin gestionada


Cdigo fuente

VB
Compilador

C#
Compilador

C++
Compilador
Componente no gestionado

Cdigo Cdigo gestionado MSIL

Cdigo MSIL

Cdigo MSIL

Entorno comn de ejecucin (CLR) Cdigo nativo

COMPILADOR JIT

Servicios del Sistema Operativo

36

La plataforma Microsoft .NET

Proceso de ejecucin gestionada


Proceso de ejecucin
> Cuando un usuario ejecuta una aplicacin gestionada, el

SO carga el CLR para que comience con la ejecucin del cdigo MSIL del mdulo gestionado. > Pero la CPU no puede ejecutar el cdigo MSIL directamente. > El CLR debe antes convertir el cdigo MSIL a cdigo nativo del procesador. > Cdigo MSIL es slo compilado a cdigo nativo cuando sea necesario mediante el componente del CLR conocido como compilador JIT o JITer.
37

La plataforma Microsoft .NET

Ensamblados o assemblies
Estructura de un ensamblado:
Manifiesto (Manifest). Metadatos. Cdigo MSIL. Conjunto de recursos

La plataforma Microsoft .NET

Ensamblados o assemblies

La plataforma Microsoft .NET

Metadatos
El proceso de compilacin genera metadatos dentro de cada mdulo gestionado creado. Es informacin declarativa emitida en tiempo de compilacin (datos que describen datos). Es un conjunto de tablas de datos, que describe completamente cualquier elemento que est definido en un mdulo: propiedades, mtodos, argumentos, valores de retorno, atributos, clases de base,... Un ensamblado y sus metadatos son inseparables.
40

La plataforma Microsoft .NET

Ensamblados o assemblies
Una aplicacin puede usar dos tipos de ensamblados (*.dll):
Ensamblados privados. Ensamblados globales.

Un ensamblado privado se encuentra en el mismo directorio que el ejecutable de la aplicacin y slo puede ser usado por dicha aplicacin. Un ensamblado global se encuentra en la cach de ensamblados globales (GAC) y puede ser usado por cualquier aplicacin que se ejecute en esa mquina. Los ensamblados que componen el .NET Framework son ensamblados globales.

La plataforma Microsoft .NET

Estructura de una Programacin de aplicaciones con aplicacin en .NET Visual Studio .NET ENSAMBLADO Estructura bsica: .EXE / .DLL
APLICACIN
Archivo de cdigo fuente Archivo de cdigo fuente

Importaciones de E.N
CLASE Rutina de cdigo: proc.

Importaciones de E.N
CLASE

.
Rutina de cdigo: proc.

Rutina de cdigo: proc.

Rutina de cdigo: proc.

La plataforma Microsoft .NET

Proceso de compilacin y- .NET ejecucin Programacin de aplicaciones con Visual C# .NET Framework 2.0
Ejemplo de aplicacin en C#:

Clase

Espacio de nombres (namespace) Mtodo a invocar de la clase

La plataforma Microsoft .NET

Proceso de compilacin y- .NET ejecucin Programacin de aplicaciones con Visual C# .NET Framework 2.0
Ejemplo de aplicacin en C#:
Importacin de namespaces using System; namespace CursoNET.CSharp {

Declaracin de namespace }

La plataforma Microsoft .NET

Proceso de compilacin y- .NET ejecucin Programacin de aplicaciones con Visual C# .NET Framework 2.0
Ejemplo de aplicacin en Visual Basic:

Clase

Espacio de nombres (namespace) Mtodo a invocar de la clase

La plataforma Microsoft .NET

Proceso de compilacin y- .NET ejecucin Programacin de aplicaciones con Visual C# .NET Framework 2.0
Ejemplo de aplicacin en Visual Basic:
Importacin de namespaces Imports System Namespace CursoNET.VB

Declaracin de namespace End Namespace

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


Compilador por lnea de comandos de C#:
csc.exe: C# Compiler
>csc /help
Compilador de Microsoft (R) Visual C# 2008, versin 3.5.21022.8 para Microsoft (R) .NET Framework, versin 3.5 (C) Microsoft Corporation. Reservados todos los derechos. Opciones del Compilador de Visual C# 2008

>csc /target:exe /out:HolaMundoCS.exe HolaMundoCS.cs > ildasm HolaMundoCS.exe

La plataforma Microsoft .NET

Proceso de compilacin y ejecucin


Compilador por lnea de comandos de Visual Basic:
vbc.exe: Visual Basic Compiler
>vbc /help
Compilador de Microsoft (R) Visual Basic versin 9.0.21022.8 (c) Microsoft Corporation. Reservados todos los derechos. Opciones del compilador de Visual Basic

>vbc /target:exe /out:HolaMundoVB.exe HolaMundoVB.vb > ildasm HolaMundoVB.exe

La plataforma Microsoft .NET

Proceso compilacin Programacin de de aplicaciones con Visual Studio .NET


MSIL Disassembler (ildasm.exe):
> Desensamblado de cdigo MSIL
>ildasm HolaMundoCS.exe >ildasm HolaMundoVB.exe

y ejecucin

La plataforma Microsoft .NET

Proceso de compilacin y- .NET ejecucin Programacin de aplicaciones con Visual C# .NET Framework 2.0
Cdigo MSIL del ensamblado HolaMundoVB.exe (VB):

Cdigo MSIL del ensamblado HolaMundoCS.exe (C#):

La plataforma Microsoft .NET

Estructura de una aplicacin .NET


A nivel de ejecucin, una aplicacin en .NET es una coleccin de objetos cargos en memoria principal (heap)
HEAP
Un objeto es una entidad o concepto que existe en el mundo real y que queremos representar en nuestra aplicacin.

A nivel de desarrollo, una aplicacin en .NET es una coleccin de clases agrupadas en namespaces.
Existe un namespace por defecto (global namespace) donde van aquellas clases a las que no les indicamos su namespace.

La plataforma Microsoft .NET

La plataforma Microsoft .NET

S-ar putea să vă placă și