1 Introducción a la plataforma .NET Erich BühlerMVP
2 ¿Qué es .NET? .NET nueva infraestructura para desarrollar aplicaciones Windows y Web Ofrece un nuevo conjunto de herramientas, superiores a las ya conocidas. Centraliza tecnologías
3 Microsoft .NET Clientes Soluciones Servicios Web ServidoresHerramientas Soluciones Servicios Web Servidores
4 ¿Qué es .NET? Cambios estructuralesAprendido sobre defectos de diseños e incorporado nuevas tecnologías Avanzado sobre modelos conceptuales Nuevos lenguajes o con grandes cambios
5 Total de desarrolladores en el mundo: 23 millones
6 Lenguajes package EjemploJSharp; /*** Una linda clase denominada Caja. */ public class Caja { public Caja() //TODO: La lógica del constructor aquí } public static String Peso() return("Se invocó al método Peso"); public static String Volumen() return("Se invocó al método Volumen");
7 Lenguajes using System; namespace EjemploCSharp { public class Cajapublic Caja() // TODO: Lógica del constructor aquí } public static string Peso() return("Se invocó al método Peso"); public static string Volumen() return("Se invocó al método Volumen");
8 Lenguajes Namespace EjemploVisualBasic Public Class CajaPublic Sub New() MsgBox("Se ejecutó Constructor" & _ " de clase Caja") End Sub Public Shared Function Peso() As String Return ("Se invocó al método Peso") End Function Public Shared Function Volumen() As String Return ("Se invocó al método Volumen") End Class End Namespace
9 Aplicación estándar vs .NETSistema operativo Windows (Funciones, gestión de memoria, etc.) Funciones, gestión de memoria, etc. Sistema operativo
10 Common Language Runtime (CLR)Primer cambio en la arquitectura CLR incluye un compilador bajo demanda que ejecuta código de múltiples lenguajes, entre ellos: C# que es una versión de C++ conteniendo las características de Java; J# para desarrolladores Java Visual Basic .NET nueva versión de VB conteniendo nueva sintaxis, orientación a objetos, y poder similar a C# Todos los lenguajes en .NET deben obedecer reglas y estándares impuestos por CLS. Entre ellos: Declaración de objetos, creación y utilización Tipos de datos Errores y administraciones de excepciones Verificación de tipos
11 Lenguajes .NET CLS (Common Language Specification)Requisitos mínimos para compiladores de lenguajes .NET Conjunto mínimo de funcionalidad que deben implementar Su objetivo es facilitar la interoperabilidad entre lenguajes
12 Lenguajes .NET CLS (II) C++ COBOL CLS VBCLR Extenciones de Fujitsu COBOL C++ COBOL CLS Extensiones administradas para C++ VB Los lenguajes no tienen que exponer toda la funcionalidad definida por CLR
13 Tipos de datos común CLS provee un conjunto de tipos de datos nativos que todos los lenguajes deben soportar. Los tipos incluyen Enteros (tres tipos de 16/32/64 bit) Punto flotante (dos tipos de 32/64 bit) Boolean y Char Date/Time Cruzamiento entre lenguajes es fácil Impacto sobre tipos de datos de algunos lenguajes, por ejemplo VB
14 Lenguaje intermedio de MicrosoftLenguajes .NET no compilan a código máquina en un comienzo. Ellos son compilados a IL. Compilador bajo demanda de CLR acepta IL y lo recompila a código máquina. Compilación ‘Just in time’ (bajo demanda) Verificación de tipos (validación) El código es seguro
15 Lenguaje intermedio de MicrosoftCompilación Código Adm. Código fuente Compilador Ensamblado Codigo (IL) Metadatos Ejecución Compilador JIT Código máquina Cuando el método es invocado
16 Lenguaje intermedio de MicrosoftExisten varios .NET framework .net compact framework
17 .NET Compact Framework Desarrollo sobre dispositivosVersión reducida de Framework .NET Diseñado para dispositivos inteligentes PocketPC y PocketPC Phone Edition SmartPhone Windows CE Mismo modelo de desarrollo que .NET Framework Misma herramienta de desarrollo Visual Studio .NET
18 Common Language Runtime Common Language SpecificationRole de Visual Studio Sistema operativo Common Language Runtime Common Language Specification VB C++ C# J# … Visual Studio .NET
19 Common type system IL apoya la orientación a objetos. Por lo tanto se necesita que todo tipo sea de una clase del framework (clase, estructura, o interfaz) Tipos del framework (resumen) Integer String Rectangle Long Tipos personalizados (Cliente, factura, etc)
20 Common type system Declaración Utilización (prop.) Utilización(métodos) Dim i As Integer i=100 i.ToString Dim r As Rectangle r.Width*r.Height r.Area Dim c As cliente c.nombre=‘Bob’ c.Quejarse (nivel) Dim f As factura f.Número = 10 f.procesar
21 Metadatos de tipos Un tipo debe ser auto-descriptivo. Debe exponer sus propiedades, métodos, valores aceptados, etc. Esta información es siempre escrita en el EXE o DLL como encabezado (MANIFIESTO y METADATOS)
22 Ensamblados Estructura de un ensamblado = manifiesto y uno o más módulos ejecutables (MSIL).
23 Manifiesto Describe un ensamblado y describe su contenido Incluye:Identidad del ensamblado Requerimientos de seguridad Identidad de ensamblados de dependientes Tipos expuestos por el ensamblado Información personalizada (para reflexión)
24 Herramienta ILDASM
25 Common Language RuntimeInterconexión Common Language Runtime Seguimiento de ref. Componente COM IUnknown IDispatch COM Callable Wrapper IOtra Objeto IOtra Cuenta de referencias Cliente
26 Ensamblados Características No son componentes COMSon auto-descriptivos No se requiere del archivo de registro Ejecución lado a lado Solamente con XCOPY la aplicación queda funcional No son componentes COM Son compatibles con COM mediante wrapping
27 Ensamblados Herramientas para registro en COM en la consola de .NETFuncionamiento Versiones privadas vs. compartidas Versiones compartidas Gestionadas por GAC (Caché de ensamblados global o Global Assembly cache) Políticas de versión Manejo de autores mediante claves dobles
28 Caché de ensamblados global o GAC
29 Administración de memoriaRecolección de basura automática de objetos Se eliminan problemas comunes de memoria El rendimiento puede no ser el mejor en aplicaciones críticas Puede forzarse la recolección Afecta a muchas de las aplicaciones actuales
30 Biblioteca de clases baseFuncionalidades en sistemas tradicionales Diferentes bibliotecas de servicios son provistas al desarrollador mediante bibliotecas de runtime (C++), API de win32, API de bases de datos, bibliotecas estáticas/dinámicas, etc. Dependen del lenguaje y sistema operativo Se invocan dependiendo del lenguaje
31 Biblioteca de clases baseEn .NET Bibliotecas de clases Organizadas jerárquicamente Independientes del lenguaje Siguen los lineamientos de CLR
32 Biblioteca de clases baseA las jerarquías se les llama Espacio de nombre Todo es un objeto, hasta los controles. System System.Data System.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Common OleDb SQLTypes SqlClient XPath XSLT Runtime InteropServices Remoting Serialization SessionState Caching Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Printing System.Windows.Forms Design ComponentModel
33 Ensamblados La organización de las bibliotecas de clase es similar al sistema de archivos: Cada ‘carpeta’ es un espacio de nombres Cada ‘archivo’ es un ensamblado exponiendo uno o más tipos (y su lógica) El nodo o carpeta raíz se llama ‘System’ Muchas eran antes API del sistema operativo
34 Windows Forms Aplicaciones de escritorio basadas en clases y herencia, nuevos controles Ajuste de controles de acuerdo a la definición Instalación mediante COPY GDI+
35 Características de GDI+
36 Auto-instalación Formulario puede residir en un ensamblado (auto-instalación) Técnicas de reflexión sobre el disco local o Internet Facilidad de distribución de la aplicación ‘en partes’
37 Auto-instalación Cliente Servidor Web Internet Form1Aplicación de Windows Form2 Caché de IE
38 Características de la infraestructuraOfrece características de POO para todos los lenguajes Soporte para múltiples hilos de ejecución Objetos para conexión e invocación remota (por ejemplo Web Services)
39 Características de la infraestructuraFormularios Web ADO.NET Dispositivos móviles etc.
40 Visual Studio .NET Una herramienta para todoPlataforma RAD de alta productividad Diseñadores visuales win, web, mobile Editores de entidades, XSD, XML Desarrollo bases de datos Depuración extremo a extremo Tecnología IntelliSense y Ayuda Dinámica Extensible y abierto Existencia de otros editores gratuitos (no MS) con menos características
41 Microsoft .NET Clientes Soluciones Servicios Web ServidoresHerramientas Soluciones Servicios Web Servidores
42 © 2004 Erich R. Bühler