Vous êtes sur la page 1sur 38

UNIVERSIDAD AUTNOMA DE SINALOA

rm
fo
In
ic
t
a

Programacin e
Ingeniera de Software
III

Material Proporcionado por:

MC. Gerardo Glvez Gmez

Temas a Tratar
Componentes Fundamentales

Arquitectura del .NET Framework


CLR Arquitectura de Ejecucin de Aplicaciones
CLR Common Language Runtime
CLR Componentes Internos
CLR Procesos de Compilacin
CLR Microsoft Intermediate Language (MISIL)
Qu es un Assemblies?
Assemblies Aplicaciones .NET
.NET Framework Class Library
Common Language Specification (CLS)
CLS Eleccin del Lenguaje

VB

C++

C#

J#

Common Language Specification

.NET Framework
Redistributable

Windows Forms

ADO.NET y XML
Base Class Library
Common Language Runtime
Windows

COM+ Services

.NET Framework

ASP.NET

Class Library

.NET Framework SDK

Arquitectura del .NET


Framework

CLR - Arquitecturas de
Ejecucin de Aplicaciones

CLR Common Language


Runtime
El CLR es el motor de ejecucin
(runtime) de .NET

Caractersticas
Compilacin Just-In-Time (JIT)
Gestin automtica de memoria
(Garbage Collector)
Gestin de errores consistente
(Excepciones)
Ejecucin basada en componentes
(Assemblies)
Gestin de Seguridad

CLR Componentes Internos


Base Class LibrarySupport
Thread Support

COM Marshaler

Type Checker

Exception Manager

SecurityEngine

Debug Engine

IL to Native
Compilers

Code
Manager
Class Loader

Garbage
Collector

CLR Proceso de
Compilacin
Cdigo
Fuente

Cualquier
lenguaje .NET

Compilador

Assembly
(MSIL)

Biblioteca
o Ejecutable

CLR - MSIL
.method private hidebysig static void Main(string[]
args) cil managed {
.entrypoint
maxstack 8
L_0000: ldstr "Hola Mundo"
L_0005: call void [mscorlib]System.Console::WriteLine(
string)
L_000a: ret
}

Qu es un Assembly?
Un Assembly es la unidad mnima de
ejecucin, distribucin, instalacin y
versionado de aplicaciones .NET
Descripcin de Tipos

MiBiblioteca.DLL
Metadata
Recursos
Cdigo Compilado
MSIL

Clases
Clases Base
Interfaces Implementadas
Atributos de las Clases
Mtodos de las Clases

Manifiesto del Assembly


Nombre
Versin
Cultura
Otros Assemblies
Permisos de Seguridad
Tipos Externos

Assemblies Aplicaciones .NET

Uno o ms Assemblies
Al ejecutar una aplicacin, cmo
ubico los assemblies necesarios?

El Class Loader busca en el directorio


local (preferido)
Global Assembly Cache (GAC)

Diferentes aplicaciones pueden usar


diferentes versiones

Actualizaciones ms simples
Desinstalacin ms simple

.NET Framework Class


Library
Conjunto de Tipos bsicos (clases,

interfaces, etc.) que vienen includos


en el .NET Framework
Los tipos estn organizados en
jerarquas lgicas de nombres,
denominados NAMESPACES
Los tipos son INDEPENDIENTES del
lenguaje de desarrollo
Es extensible y totalmente orientada
a objetos

.NET Framework Class


El namespace raz es SYSTEM
Library
System.Web

System.Windows.Forms

Services
Description

UI
HtmlControls

Discovery

WebControls

Protocols

Design

ComponentModel

System.Drawing

Caching

Security

Drawing2D

Printing

Configuration

SessionState

Imaging

Text

System.Data

System.Xml

OleDb

Odbc

XSLT

Common

SqlClient

XPath

Serialization

System
Runtime
InteropServices

Collections

IO

Security

Configuration

Net

ServiceProcess

Diagnostics

Reflection

Text

Remoting

Globalization

Resources

Threading

Serialization

Common Language Specification


(CLS)

Especificacin que estandariza una


serie de caractersticas soportadas por
el CLR
Contrato entre diseadores de
lenguajes de programacin y autores
de bibliotecas
Permite la interoperabilidad entre
lenguajes
Microsoft provee implementaciones de
4 lenguajes, todos compatibles con
CLS

Microsoft Visual Basic .NET

Common Language Specification


(CLS)

El resto de la industria y el sector


acadmico han desarrollado ms de
20 lenguajes compatibles con la
especificacin CLS

Visual
C# J#
Basic.NET
+.NE
Delphi
Java PHP Perl Python JavaScri
T
pt
Pascal
Haskell LISP
Prolog
RPG
C+

Oberon Mondrian Smalltalk Eiffel


Cobol

Fortran

APL

ML

Scheme

Objective Caml

Mercury

CLS - Eleccin del


lenguaje
.NET posee un nico runtime (el CLR)

.NET posee un nico runtime (el CLR)


y un nico conjunto de bibliotecas
para todos los lenguajes
No hay diferencias notorias de
performance entre los lenguajes
provistos por Microsoft
El 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.NET

Temas a Tratar
Funcionamiento Interno
del CLR

Modelo de ejecucin del


CLR
Common Type System (CTS)
La memoria y los tipos de
datos

Modelo de Ejecucin del


CLR
Cdigo
Fuente

Cdigo
Manejado

VB.NET
Compilador
VB.NET
Assembly
Cdigo MSIL

C#

C++.NET

Compilador
C#

Compilador
C++ .NET

Assembly
Cdigo MSIL

Assembly
Cdigo MSIL

Common Language Runtime


Compilador JIT
Cdigo Nativo

Sistema Operativo (Windows)

Componente
No Manejado

Esquema con el proceso


de compilacin llevado a
cabo por el
compilador Just-In-Time
(JIT)

Modelo de Ejecucin del


Instalacin
Desarrollo
CLR
Instalacin

Assembly

Assembly en
la mquina
destino

Policy
<?xml ver sion="1.0" encoding=" ut f- 8" ?>
<conf igur at i on>
<mscor li b>
<secur it y>
<poli cy>
<Poli cyLevel ver si on="1">
<CodeGr oup cl ass="Uni onCodeGr oup"
ver sion="1"
Per mi ssi onSet Name="Not hing"
Name="All_Code"
Descr ipt i on="Code gr oup
gr ant s no per missio
ns and f or ms t he r oot of t he code gr oup t r ee.">
<I Member shipCondit ion cl as
s="Al lMember shi pCondi t ion"
ver si on="1"/>
<CodeGr oup cl ass="Uni onCodeGr oup"
version="1"
Per missi onSetN ame="Ful lTr ust "

Ejecucin
Compilador
JIT

Class
Loader

Seguridad

Assembly
Loader
Garbage Collector

.exe Nativo
+
Tabla GC

Code
Manager

Manejador Excepciones
Soporte MultiThread

Debug Engine

COM Interop

El CTS, Common Type


System
El Sistema Comn de Tipos o CTS (Common

Type System), es el mecanismo del CLR que


permite definir el modo en que los tipos
sern creados y manipulados por el entorno
de ejecucin de .NET Framework.

Entre las funcionalidades que comprende


destacan:

La integracin de cdigo escrito en diferentes


lenguajes;
Optimizacin del cdigo en ejecucin;
Un modelo de tipos orientado a objeto, que
soporta mltiples lenguajes; y
Una serie de normas que aseguran la

CTS (Common Type System)


Define un conjunto comn de tipos de
datos orientados a objetos
Todo lenguaje de programacin .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

Ventajas del CTS


Desde un lenguaje como VB.NET, podemos
instanciar un objeto de una clase escrita
en otro lenguaje como C#; y al hacer una
llamada a uno de los mtodos del objeto,
no es necesario realizar conversiones de
tipos en los parmetros del mtodo,
funcionando todo de forma transparente.

La Memoria y los Tipos de


Datos
El CLR administra dos segmentos de

memoria: Stack (Pila) y Heap (Montn)


El Stack es liberado automticamente y el
Heap es administrado por el GC
(Garbage Collector)
Los tipos VALOR
se almacenan en
el Stack

Los tipos
REFERENCIA se
almacenan en el
Heap

Temas a Tratar
Bibliotecas Principales

Base Class Library (BCL)


Acceso a Datos (ADO.NET)
ADO.NET Proveedores de Acceso a Datos
Windows Forms
Aplicaciones Web : ASP.NET

Base Class Library


System
Collections

IO

Security

InteropServices

Configuration

Net

ServiceProcess

Remoting

Diagnostics

Reflection

Text

Serialization

Globalization

Resources

Threading

Acceso a Datos: ADO.NET


System.Data
Common

SqlClient

OracleClient

OleDb

Odbc

SqlTypes

System.Xml
XSLT

Serialization

XPath

Schema

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..)

Windows Forms
System.WinForms
Design

ComponentModel

System.Drawing
Drawing2D

Printing

Imaging

Text

Aplicaciones Web:
ASP.NET
System.Web
Services
Description

UI
HtmlControls

Discovery

WebControls

Protocols
Caching

Security

Configuration

SessionState

Temas a Tratar
Ventajas de .NET

Ventajas de .NET
Desarrollo simplificado
Entorno de ejecucin robusto y seguro
Independencia del lenguaje
Extensibilidad
Interoperabilidad

Ventajas de .NET
Unifica los modelos de programacin
Simplifica an ms el desarrollo
Provee un Entorno de Ejecucin
robusto y seguro
Es independiente del lenguaje de
programacin
Interoperabilidad con cdigo
existente
Simplifica la instalacin y
administracin de las aplicaciones

Desarrollo Simplificado
Alto nivel de abstraccin

No mas accesos COM a bajo nivel


Orientado a Objetos desde el Ncleo

Sistema de tipos unificado (CTS)

Todo es un objeto, no mas variants

Componentes de Software

Propiedades, mtodos, eventos, y


atributos incluidos en la construccin de
clases

API organizada en forma Jerrquica

Entorno de Ejecucin Robusto y


Seguro
Gestin automtica de la memoria

Todos los objetos son administrados por


el Garbage Collector

Manejo de Excepciones
Fuertemente tipado

Solo casteos seguros


Inicializacin de variables obligatoria

Instalacin con Cero Impacto

No requiere registracin en la Registry

Independencia del
lenguaje
Libertad en la eleccin del lenguaje

Libertad en la eleccin del lenguaje

Todas las facilidades de la plataforma


.NET estn disponibles a todos los
lenguajes de programacin .NET
Los componentes de una aplicacin
.NET pueden ser escritos en distintos
lenguajes de alto nivel compatibles con
la plataforma

Herramientas compartidas

Debuggers, profilers, analizadores de


cdigo, y otras trabajan para todos los
lenguajes

Instalacin y Administracin
ms simples
Unidades de Ensamblado
(Assemblies)

Mnima unidad de distribucin,


versionado y administracin de
seguridad de aplicaciones .NET
Auto-descriptas a travs de
unmanifiesto (manifest)

Instalaciones Cero-impacto

Aplicaciones y componentes pueden ser


compartidas o privadas

Versioning

Mltiples versiones del mismo


componente pueden co-existir, an en

Extensibilidad
El Framework no es una caja negra
Sus clases pueden ser extendidas a
travs del mecanismo de herencia

A diferencia de COM, usamos y


extendemos las clases en si mismas, no
un wrapper

Herencia entre distintos lenguajes

Interoperabilidad con
otras aplicaciones
Servicios Web XML
.NET Framework

C#
C++

COM INTEROP

VB
Otros...

COM

por ejemplo Visual Basic 6

.NET

FIN
2007. All rights reserved.

Vous aimerez peut-être aussi