Anda di halaman 1dari 38

Introduccin

.NET Framework

Objetivo
Presentar una introduccin a la plataforma de
desarrollo Microsoft .NET, describiendo sus
principios bsicos de funcionamiento, su
arquitectura de componentes y sus principales
bibliotecas reutilizables, mostrando adems las
novedades introducidas en la ltima versin de
la misma.

Temas a Tratar
La tecnologa y .NET
Introduccin a Microsoft .NET
Componentes Fundamentales
Funcionamiento Interno del CLR
Bibliotecas Principales

La tecnologa y .NET

La tecnologa y .NET

La tecnologa y .NET

La tecnologa y .NET

La tecnologa y .NET

Temas a Tratar
Introduccin a Microsoft .NET

Qu no es .NET?
Qu es .NET?
.NET Como evolucin de COM

Funcionalidad

Paradigmas de Programacin

Windows
3.0

s
API
Win16
1980

es
t
n
e
n
o
p
m
o
C
COM
Win32
1990

s
o
i
c
vi
r
e
S

MFC

2000

Qu NO es .NET?
.NET no es un Sistema Operativo
.NET no es un Lenguaje de Programacin
.NET no es un Entorno de Desarrollo
.NET no es un Servidor de Aplicaciones
.NET no es un producto empaquetado que se
pueda comprar como tal

Qu es .NET?
Plataforma de Desarrollo compuesta de

Entorno de Ejecucin (Runtime)


Bibliotecas de Funcionalidad (Class Library)
Lenguajes de Programacin
Compiladores
Herramientas de Desarrollo (IDE & Tools)
Guas de Arquitectura

La evolucin de la plataforma COM

Caractersticas de .NET (1/2)


Plataforma de ejecucin intermedia
100% Orientada a Objetos
Multilenguaje
Plataforma Empresarial de Misin Crtica

Caractersticas de .NET (2/2)


Modelo de Programacin nico para todo tipo de
aplicaciones y dispositivos de hardware
Se integra fcilmente con aplicaciones existentes
desarrolladas en plataformas Microsoft
Se integra fcilmente con aplicaciones
desarrolladas en otras plataformas

Plataforma de Ejecucin Intermedia

Microsoft .NET

Aplicacin .NET
Lenguajes de Programacin
Libreras de Funcionalidad

Entorno de
Desarrollo

Entorno de Ejecucin

Sistema Operativo (Familia Windows)


1

Qu es el .NET Framework?
Paquete de software fundamental de la
plataforma .NET. Incluye:

Entorno de Ejecucin (Runtime)


Bibliotecas de Funcionalidad (Class Library)

Se distribuye en forma libre y gratuita


Existen tres variantes principales:

.NET Framework Redistributable Package


.NET Framework SDK
.NET Compact Framework

Est instalado por defecto en Windows 2003


Server o superior
1

Lnea del tiempo de .NET


Visual Studio 6.0
Visual Basic
VBA
Visual FoxPro
VBScript
C++
J++
JScript
ASP

2000

.NET Framework
3.0
.NET Compact
Framework 3.0
WCF-WPF-WF

Visual Studio .NET 2003


.NET Framework 1.1
.NET Compact Framework
J#

2001

Visual Studio .NET 2002


.NET Framework 1.0
Visual Basic .NET
C#

2002

2003

2004

2005

Visual Studio 2005


.NET Framework 2.0
.NET Compact Framework 2.0

2008

.NET Framework
4.0
Visual Studio
2010
F#

2010

Visual Studio 2008


.NET Framework 3.5
.NET Compact Framework 3.5

Temas a Tratar
Introduccin a Microsoft .NET
Componentes Fundamentales

Arquitectura
Common Language Runtime (CLR)
Microsoft Intermediate Language
Assemblies
.NET Class Library
Common Language Specification (CLS)

VB

C++

C#

J#

Common Language Specification

.NET Framework
Redistributable

Windows Forms

ADO.NET y XML
Base Class Library

.NET Framework

ASP.NET

Class Library

.NET Framework SDK

Arquitectura del .NET Framework

Common Language Runtime


Windows

COM+ Services
1

Arquitectura del .NET Framework

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
Multithreading
2

CLR Componentes Internos

CLR Proceso de Compilacin

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

Componente
No Manejado

Common Language Runtime


Compilador JIT
Cdigo Nativo

Sistema Operativo (Windows)


2

Modelo de Ejecucin del CLR


Instalacin

Desarrollo
Instalacin

Assembly

Assembly en
la mquina
destino

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 permissio
ns and forms the root of the code group tree.">
<IMembershipCondition clas
s="AllMembershipCondition"
version="1"/>
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"

Ejecucin
Compilador
JIT

Class
Loader

Seguridad

Assembly
Loader
Garbage Collector

.exe Nativo
+
Tabla GC

Code
Manager

Debug Engine

Manejador Excepciones
Soporte MultiThread
COM Interop
2

Application Domains
Procesos virtuales dentro del CLR

Se ejecutan dentro de un proceso del Sistema


Operativo
Un proceso del sistema operativo puede contener
varios AppDomains
Ms eficiente que mltiples procesos del sistema
operativo
Ms eficiente en el intercambio de contexto de
ejecucin

Un Assembly y sus tipos son siempre cargados


dentro de un AppDomain
Provee una frontera para: Fallos, Tipos,
Seguridad

Application Domains - CLR Host


CLR Host
CLR
AppDomain 1
Cdigo Manejado

AppDomain N
Cdigo Manejado

CLR - MSIL

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
2

Assemblies - Aplicaciones .NET


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

Global Assembly Cache (GAC)


El Class Loader busca en el directorio local
(preferido)

Diferentes aplicaciones pueden usar diferentes


versiones

Actualizaciones ms simples
Desinstalacin ms simple
3

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

.NET Framework Class Library


El namespace raz es SYSTEM

Texto

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


Microsoft Visual C# .NET
Microsoft Visual J#.NET
Microsoft Visual C++.NET
3

Common Language Specification (CLS)


El resto de la industria y el sector acadmico han
desarrollado ms de 20 lenguajes compatibles
con la especificacin CLS

C++.NET Visual Basic.NET C#


Delphi
Pascal

Java
Haskell

PHP

Perl

LISP

J#

Python
Prolog

Oberon

Mondrian

Smalltalk

Cobol

Fortran

APL

Eiffel

Objective Caml

JavaScript
RPG
ML

Scheme
Mercury
3

CLS - Eleccin del lenguaje


.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

Los tipos de aplicaciones .NET son


INDEPENDIENTES del lenguaje que elija

Infraestructura de Lenguaje Comn (CLI)


Entorno de Ejecucin de Aplicaciones
Conjunto de Libreras Bsicas (BCL)
Tipos de Datos Comunes (CTS)
El .NET Framework y el .NET Compact
Framework son implementaciones de la
especificacin CLI

Sub-Especificaciones de CLI
(Common Language Infrastructure)

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
3

Anda mungkin juga menyukai