Fundamentos de la Interacción
Persona-Ordenador
5. Conceptos de la
arquitectura .NET Framework
Luís Rodríguez Baena (
[email protected])
Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática
El entorno .NET Framework
l
j
t
Entorno de ejecución de aplicaciones
b
áti
i f
informáticas sobre el que se ejecuta cualquier
programa desarrollado en .NET en cualquiera
de sus lenguajes (VB.NET, Visual C++ .NET,
de sus lenguajes (VB.NET, Visual C++ .NET,
Visual C# .NET, Visual J#, NetCOBOL, etc.).
● Forma parte de Microsoft .NET que incluye además
herramientas de programación (Visual Studio NET)
herramientas de programación (Visual Studio .NET),
servidores, software cliente, etc.
l
i
Ofrecen un entorno de ejecución común:
● Instalación transparente.
● Fin de las incompatibilidades de DLL y otros componentes.
● Mismas capacidades para todos los lenguajes.
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
2
Arquitectura de .NET Framework
VB .NET
C++ .NET C# .NET
Otros...
Especificación común de lenguajes
(CLS, Common Language Specification)
ASP.NET
(Servicios Web, Web Forms)
Windows Forms
Datos y XML
y
Biblioteca de clases base
(BCL, Base Class Library)
Common Language Runtime (CLR)
Sistema operativo
p
.
N
E
T
F
F
r
a
m
e
w
o
o
r
k
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
3
Arquitectura de .NET Framework (II)
Entorno común de ejecución (Common
Language Runtime CLR)
Language Runtime, CLR).
● Administra el código en tiempo de ejecución y
proporciona los servicios básicos (administración de
memoria, control de excepciones, control de hilos de
ió )
ejecución).
j
Biblioteca de clases base (Base Class
Library, BCL).
)
● Colección de código OO que puede ser empleado desde
y,
● Al tener definidos los tipos de datos para todos los
lenguajes, facilita el intercambio de datos entre
aplicaciones desarrolladas en distintos lenguajes.
● Contiene los tipos básicos, clases para la entrada/salida,
cualquier lenguaje .NET.
seguridad etc
seguridad, etc.
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
4
Arquitectura de .NET Framework (III)
Capa de datos y XML.
d t
l
l
l t
● Gestiona el acceso a los datos y el tratamiento de datos
G ti
XML.
Los datos los gestiona mediante ADO.NET.
Gran parte de la información de .NET (configuración,
Gran parte de la información de NET (configuración
estructura de archivos y de aplicaciones) se gestiona
mediante XML.
○ Facilidad para importar, exportar y tratar datos de/hacia XML.
t d d t
t
i
Definición de la interfaz: ASP.NET y
ó
Windows Forms.
● ASP NET utiliza Web Forms (para aplicaciones Web
● ASP.NET utiliza Web Forms (para aplicaciones Web
basadas en ASP) y los servicios Web.
● Windows Forms proporciona un conjunto de componentes
de interfaz para desarrollar aplicaciones cliente basadas
p
en Windows.
p
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
5
Common Language Runtime
Frameworks
Clases base
e
m
m
i
t
n
u
R
e
g
a
a
u
g
n
a
L
n
o
o
m
m
o
C
Compilador
de código
intermedio a
código nativo
Control de
excepciones
Control de
seguridad
Recolector de basura (GC), stack walk y
administrador de código
g
Cargador de clases y entorno de trabajo
(class loader)
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
6
Common Language Runtime (II)
Cargador de clases (Class Loader).
● Llama al puntero de inicio del procedimiento establece
● Llama al puntero de inicio del procedimiento, establece
su entorno de memoria y mantiene la ejecución bajo
control.
Control de recursos: recolector de basura,
eco ecto de basu a,
Co t o de ecu sos
control de la pila, administrador de
códigos.
Interacción con el sistema operativo:
Interacción con el sistema operativo:
control de excepciones, control de
seguridad, compilador de código nativo.
● El código intermedio debe compilarse a código nativo.
di d b
El ódi
i t
il
ódi
ti
Clases base.
ódi
código.
● Definen el entorno de trabajo sobre el que se apoya el
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
7
Especificación de lenguajes común (CLS)
Conjunto de directivas proporcionadas por
Microsoft para el desarrollo de lenguajes
Microsoft para el desarrollo de lenguajes
compatibles con .NET.
● Fijan las características comunes de los lenguajes.
● Los fabricantes pueden ampliarlas o modificarlas.
● Los fabricantes pueden ampliarlas o modificarlas.
Una aplicación no debería hacer uso de las características ampliadas
cuando se comunique con otros componentes .NET.
Actualmente están desarrollados o en fase de
d
NET
desarrollo más de 60 lenguajes .NET.
á d 60 l
ll
j
Código administrado y código no administrado.
● Todos los lenguajes .NET producen código administrado.
Código que ejecuta el CLR directamente.
● .NET puede ejecutar también código generado por lenguajes que
j
no sigan el CLS.
Código no administrado (código nativo) que permite, por ejemplo,
p ,
) q
utilizar API antiguas y controles ActiveX.
, p
p
g
(
g
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
8
Especificación de lenguajes común (CLS) (II)
Los lenguajes .NET son más parecidos
l
entre si que otros lenguajes clásicos.
● Por lo tanto:
lá
Su velocidad de ejecución es bastante similar. La elección de
Su velocidad de ejecución es bastante similar. La elección de
un lenguaje u otro no dependerá de la velocidad de
ejecución.
Garantiza la interoperabilidad entre lenguajes.
○ Todos utilizan los mismos tipos basados en el Sistema de tipo
común (Common Type System, CTS).
○ Posibilidad de crear una aplicación con componentes
desarrollados en distintos lenguajes.
desarrollados en distintos lenguajes.
La curva de aprendizaje para un nuevo lenguaje .NET es
menor.
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
9
Especificación de lenguajes común (CLS) (III)
System.Console.WriteLine("¡Hola, mundo!")
System.Console.ReadLine()
System.Console.WriteLine("¡Hola, mundo!");
l R dLi ()
System.Console.ReadLine();
S t
C
'HolaMundo en VB.NET
Public Class HolaMundo
Shared Sub main()
Shared Sub main()
End Sub
End Class
//HolaMundo en C#
public class HolaMundo{
static void Main(){
}
}
//HolaMundo en VJ#
public class HolaMundo{
H l M d {
bli
l
public static void main(String args[]){
System.Console.WriteLine("¡Hola, mundo!");
System.Console.ReadLine();
}
}
}
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
10
Lenguaje intermedio de Microsoft (MSIL)
Los compiladores .NET no producen código nativo (código
binario ejecutable directamente por el procesador)
binario ejecutable directamente por el procesador).
● Producen código intermedio (MSIL o simplemente IL).
Se trata de una especie de lenguaje máquina asociado a un
procesador virtual que no corresponde a ninguna CPU
procesador virtual que no corresponde a ninguna CPU
disponible en la actualidad.
El compilador a código nativo (compliador JIT, Just-In-
Time) de la CLR es el que se encargará de compilar “al
Time) de la CLR es el que se encargará de compilar al
vuelo” el código IL a lenguaje nativo de la plataforma
donde se ejecute la aplicación.
Esta característica permitirá que el código de una aplicación
Esta característica permitirá que el código de una aplicación
.NET pueda ejecutarse en otra plataforma distinta sin
ningún cambio (siempre y cuando exista un CLR para esa
plataforma).
p
)
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
11
Estructura de una aplicación .NET
Aplicación NET
Aplicación .NET
Ensamblado1
Metadatos del ensamblado
Metadatos de los tipos
Código MSIL
Ensamblado2
Ensamblado3
Recursos
Recursos
(archivos bitmap, archivos
HTML, XML, …)
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
12
Ensamblados, manifiestos y
metadatos
Ensamblado: unidad de instalación de una
aplicación NET
aplicación .NET.
Compuesto de uno o más archivos de
y
recursos y de archivos ejecutables MSIL
j
(módulos administrados).
● Los módulos administrados contienen código IL y metadatos
que describen los tipos del módulo.
Un ensamblado tendrá un archivo ejecutable
portable (PE) que se generará al compilar la
aplicación a MSIL
aplicación a MSIL.
● Archivo .exe o .dll.
● Un archivo PE no podrá ejecutarse si no está contenido en
un manifiesto de ensamblado.
un manifiesto de ensamblado.
Universidad Pontificia de Salamanca (Campus Madrid)
Facultad de Informática, Luís Rodríguez Baena, 2010
13
Ensamblados, manifiestos y
metadatos (II)
)
(
Los ensamblados:
● Crean un límite de seguridad.
● Crean un límite de seguridad.
Es la unidad donde se solicitan y conceden los permisos.
● Crean un límite de tipos.
La referencia a un tipo incluye el nombre del ensamblado en que
reside
reside.
● Crean un límite de ámbito de referencia.
El manifiesto del ensamblado contiene metadatos para resolver los
tipos: especifica que tipos se exponen fuera del ensamblado y
enumera los ensamblados de los que depende.
bl d
d l
d
l
d
● Forma un límite de versión.
Todos los recursos de un ensamblado
Comentarios de: 5. Conceptos de la arquitectura .NET Framework (0)
No hay comentarios