You are on page 1of 33

Programa Microsoft Desarrollador Cinco Estrellas

Estrella 1 Introduccin a Microsoft .NET

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.

Prerrequisitos
Poseer los conocimientos proporcionados por la Estrella 0 del programa Haber aprobado el examen correspondiente a la Estrella 0 del programa Conocimientos fundamentales de bases de datos relacionales, incluyendo

Modelo Relacional Protocolos de Acceso (ODBC/OLEDB) Lenguaje SQL

Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales Ventajas de .NET Herramientas de Desarrollo .NET Novedades en .NET 2.0

Temas a Tratar
Introduccin a Microsoft .NET

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

Paradigmas de Programacin

Funcionalidad

Windows 3.0

MFC

Win16
1980 1990

COM Win32
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

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

Aplicacin .NET
Microsoft .NET

Lenguajes de Programacin

Libreras de Funcionalidad
Entorno de Ejecucin

Entorno de Desarrollo

Sistema Operativo (Familia Windows)

.NET como evolucin de COM


Entorno de Ejecucin (Runtime)

COM: Windows .NET: Common Language Runtime COM: Algunas (ADO, FSO, etc.) .NET: Muy extensa (.NET Framework Class Library) COM: VB, C++, VFP, ASP, J++ .NET: Common Language Specification COM: Uno para cada lenguaje .NET: Uno independiente del lenguaje (VS.NET)

Libreras de Funcionalidad

Lenguajes de Programacin

Entorno de Desarrollo (IDE)


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

Dnde instalar el .NET Framework?


Cliente
Aplicacin de Escritorio Aplicacin Web Aplicacin de Consola Aplicacin Mvil

Servidor

.NET Compact Framework

* Slo si la aplicacin es distribuda

Lnea del tiempo de .NET


Visual Studio 6.0 Visual Basic VBA Visual FoxPro VBScript C++ J++ JScript ASP Visual Studio .NET 2003 .NET Framework 1.1 .NET Compact Framework J# Visual Studio Orcas .NET Framework Orcas .NET Compact Framework Orcas

2000

2001

2002

2003

2004

2005

2006 y ms

Visual Studio .NET 2002 .NET Framework 1.0 Visual Basic .NET C#

Visual Studio 2005 (Whidbey) .NET Framework 2.0 (Whidbey) .NET Compact Framework 2.0 (Whidbey)

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)

Arquitectura del .NET Framework


.NET Framework SDK

VB

C++

C#

J#

Common Language Specification


Class Library
.NET Framework

ASP.NET
.NET Framework Redistributable

Windows Forms

ADO.NET y XML Base Class Library

Common Language Runtime


Windows COM+ Services

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 Multithreading

CLR Proceso de Compilacin

Cdigo Fuente

Assembly (MSIL)

Compilador
Cualquier lenguaje .NET 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

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


El namespace raz es SYSTEM
System.Web
Services Description Discovery Protocols Caching Configuration Security SessionState UI HtmlControls WebControls

System.Windows.Forms
Design ComponentModel

System.Drawing
Drawing2D Imaging Printing Text

System.Data
OleDb Common Odbc SqlClient

System.Xml
XSLT XPath Serialization

System
Collections
Configuration Diagnostics Globalization

IO
Net Reflection Resources

Security
ServiceProcess Text Threading

Runtime InteropServices
Remoting 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 Microsoft Visual C# .NET Microsoft Visual J#.NET Microsoft Visual C++.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

C++.NET Delphi

Visual Basic.NET
PHP Perl

C# Prolog
Eiffel

J#
JavaScript

Java

Python

Pascal
Cobol

Haskell
Fortran

LISP
APL

RPG
ML Scheme Mercury

Oberon Mondrian Smalltalk

Objective Caml

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

Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR

Especificacin CLI Modelo de Ejecucin Application Domains Common Type System

Sub-Especificaciones de CLI
Lenguajes de Alto Nivel
se ajustan a las reglas de la

CLS (Common Language Specification)


y utilizan las clases de la

BCL (Base Class Library)


cuyos tipos bsicos forman el

CTS (Common Type System)


y se ejecutan bajo el control de y usan los servicios del

CLR (Common Language Runtime)


que est acoplado al y utiliza los servicios del

Sistema Operativo

Modelo de Ejecucin del CLR


Desarrollo
Assembly Instalacin

Instalacin
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

Manejador Excepciones Soporte MultiThread

Debug Engine

COM Interop

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

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

You might also like