Está en la página 1de 20

Introduccin a la plataforma .

NET

Contenidos
Por qu y para qu? Funcionamiento Compilacin y Ejecucin Clases Servicios .NET Lo nuevo de .NET Framework 2.0

Arquitectura .NET
Primera generacin de aplicaciones

Lgica cliente Lgica aplicacin Servicios del S. Operativo

Arquitectura .NET
Segunda generacin de aplicaciones
Formularios Web

Navegadore s

Lgica de la aplicacin

Aplicacion Windows

Servicios del Sistema Operativo

Por qu y para qu?


Motivado por el grado de complejidad que estaba tomando la programacin Windows y el propio S.O.
Interfaces de los APIs para los diferentes lenguajes
Multitud de servicios duplicados Pocas posibilidades de reutilizacin del cdigo

Eliminar el infierno de las DLL Win32


Conflictos entre las aplicaciones con una librera en comn en diferentes versiones

SOLUCION: Plataforma .NET


Servicios universales (para todos los lenguajes) Mantiene la compatibilidad hacia atrs Auna gran cantidad de lenguajes

Arquitectura .NET
Generacin de aplicaciones .NET
Otros servicios Servicios WebBiz Navegadores estndares Lgica aplicacin Formularios Web Otros servicios

Tier Logic

Clientes inteligentes

OS Services SO Servicios

Servicios building blocks

Dispositivos mviles

Por qu y para qu?


Soporte para mltiples lenguajes
Actualmente ms de 26 lenguajes
C++ .NET, VB.NET, Python, Java, Fortran, Delphi, Ada, etc.

Introduce un nuevo lenguaje C#


Lenguaje intrnseco, herencia, polimorfismo, encapsulacin (orientacin a objetos)

Servicios de la plataforma expuestos de forma idntica a todos los lenguajes


Tanto Biblioteca de Componentes como Servicios bsicos

Por qu y para qu?


No exclusivamente para PCs con Windows
.NET Compact Framework para dispositivos mviles
PDAs, SmartPhones, etc.

Mono
.NET para Linux

No solo para desarrollo de aplicaciones de escritorio


Aplicaciones y Servicios Web Aplicaciones de consola Bibliotecas de clases Aplicaciones para Dispositivos Mviles

Orientado a Componentes
Clases Eventos y delegados Propiedades Adis a los manejadores, punteros, gestin de bloques de memoria, etc.

La plataforma .NET
VB C++ C# JScript Visual Studio.NET Common Language Specification - CLS ASP.NET: Servicios Web y Web Forms Windows Forms

ADO.NET, XML, Enterprise Services Base Class Library Common Language Runtime

Funcionamiento
Estructura de las aplicaciones
Archivos EXE y DLLs
Necesidad de tener instalado el .NET FrameWork

Contienen cdigo independiente de la mquina


MSIL (Microsoft Intermediate Languaje)
Imposible ejecutarlo por si slo Necesidad de compilarlo previamente para el Procesador y Sistema Operativo en el que va a ejecutarse.

JIT (Just In-Time)


Compilador que realiza la compilacin al vuelo del MSIL

Funcionamiento
MSIL

Fujitsu COBOL Extensions

COBOL CLS

C++

Microsoft Managed C++ Extensions

Common Languaje Specifications

Funcionamiento
Cdigo MSIL de los ensamblados se aloja en memoria bajo demanda por el CLR (Common Languaje Runtime)

CLR pieza clave dentro de la plataforma .NET


Encargado de:
Abrir y cargar ensamblados Preparar dominio de aplicacin Supervisar el cdigo Ej.: Recoleccin de objetos en desuso (Garbage Collection) Conversin del cdigo MSIL a cdigo mquina Utilizacin del Compilador JIT. JIT encargado de optimizar cdigo para la mquina donde se ejecutar la aplicacin Verificar cdigo seguro

Common Language Runtime


Proceso del cdigo gestionado
Compilacin Cdigo Fuente Compilador lenguaje
Cdigo (IL)

Ensambl.
Metadatos

Cdigo Nativo

Compilador JIT Ejecucin

En instalacin o la primera vez que se llama a un mtodo

Desventajas de MSIL
Una vez compilado, puede que no funcione con otros S.O., incluso con otras versiones de un mismo S.O. No aprovechan las nuevas caractersticas de los nuevos procesadores Se puede solventar volviendo a compilar a aplicacin
Problema: Muchas versiones del mismo programa para cada combinacin Procesador-S.O.

MSIL no puede ser ejecutado directamente, hay que compilar antes de ejecutar. desventaja o ventaja?
Una misma aplicacin se puede ejecutar en Windows XP, Windows CE o en Windows XP 64 bits, aprovechando las caractersticas de cada sistema, sin recompilar o modificar el ejecutable.

Clases de la plataforma .NET


System: Contiene tipos de datos muy usados, datos basicos, tablas, excepciones, ..... Es el raiz System.Object: Soporta toda la jerarquia de las clases .NET System.Collection: Colecciones de datos de uso comun, como pilas, colas, listas, ... System.Data: Manipulacion de bases de datos. Forma la denominada arquitectura ADO.NET System.IO: Manipulacion de Ficheros System.Reflection: Acceso a Metadatos que acompaan a los modulos de codigo System.Math: Funciones logaritmicas, trigonometricas, .... System.XML: Acceso a datos XML System.Web: Aplicaciones Web

Windows Forms
Los Windows Forms son una forma avanzada e integrada de crear aplicaciones de escritorio Win32 estandar Los Windows Forms descienden de las Windows Foundation Classes (WFC) de microsoft Actualmente forman parte de las clases de la plataforma .NET en el espacio de nombres System.Windows.Forms En linux pueden ser implementadas mediante System.Drawing y algunas librerias de Wine

Gtk#
Gtk# es la parte que lenguaje C# que brinda las posibilidades de Gtk+ a la plataforma .NET bajo linux Desciende directamente de las librerias de Gnome y Glade (software libre para la generacion de interfaces)

En Windows pueden ser implementadas mediante cygwin

ASP .NET
ASP.NET es la version para la plataforma .NET de la tecnologia ASP (Active Page Server) Dentro de esta capa podemos distinguir tres partes muy diferenciadas: Web Forms Server Controls Web Services

Servicios .NET
Servicios que iremos describiendo en futuras charlas

Servicios Microsoft .NET


Web
Web Services Web Forms

Windows
WinForms GDI+

ASP.NET

Win32

Servicios comunes
ADO.NET E/S XML Red SOAP Seguridad

Lo nuevo de .NET Framework 2.0


Inclusin de soporte para procesadores de 64 bits de AMD e Intel Edit & Continue
Permite modificar el cdigo en medio de una depuracin, no teniendo que reiniciar la depuracin.

Generics
Clases y/o mtodos que permiten tipos como parmetros
De forma similar a los templates de C++

Partial Types (Tipos parciales)


Permite definir una clase en varios ficheros

Control de acceso para las propiedades


Hasta ahora el Get y el Set eran o los dos pblicos o los dos privados, ahora se pueden definir de forma especfica para cada uno.

Mtodos annimos
Permite generar bloques de cdigo que no pertenecen a ningn mtodo, til por ejemplo para la declaracin de handlers de eventos.
Button1.Click += delegate(object sender,EventArgs e) {MessageBox.Show(((Button)sender).Text) };

Y ms novedades en ASP.NET, WindowsForms, etc.

También podría gustarte