Plataforma .NET: Desarrollo de Software Moderno
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 11,65 KB
¿Qué NO es .NET?
.NET no es un Sistema Operativo
.NET no es un Lenguaje de Programación
.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?
.NET es una plataforma de desarrollo compuesta de:
- Entorno de Ejecución (Runtime)
- Bibliotecas de Funcionalidad (Class Library)
- Lenguajes de Programación
- Compiladores
- Herramientas de Desarrollo (IDE & Tools)
- Guías de Arquitectura
Representa la evolución de la plataforma COM.
Características de .NET
- Plataforma de ejecución intermedia
- 100% Orientada a Objetos
- Multilenguaje
- Plataforma Empresarial de Misión Crítica
- Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardware
- Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas Microsoft
- Se integra fácilmente con aplicaciones desarrolladas en otras plataformas
Componentes Clave de .NET
Base Class Library (BCL)
La Base Class Library (BCL - Biblioteca de Clases Base) contiene la funcionalidad más comúnmente utilizada para el desarrollo de todo tipo de aplicaciones. Algunos ejemplos de la funcionalidad provista por la BCL son el manejo de colecciones, cadenas de texto, entrada/salida, threading, operaciones matemáticas y dibujos 2D.
ADO.NET
ADO.NET contiene un conjunto de clases que permiten interactuar con bases de datos relacionales y documentos XML como repositorios de información persistente.
ASP.NET
ASP.NET constituye la tecnología dentro del .NET Framework para construir aplicaciones con interfaz de usuario Web (es decir, aplicaciones cuya lógica se encuentra centralizada en uno o varios servidores y que los clientes pueden acceder usando un browser o navegador mediante una serie de protocolos y estándares como HTTP y HTML).
Windows Forms
Windows Forms (o simplemente WinForms) constituye la tecnología dentro del .NET Framework que permite crear aplicaciones con interfaz de usuario basada en formularios y ventanas Windows de funcionalidad rica y que se ejecutan directamente en los clientes.
CLR - Common Language Runtime
El CLR es el motor de ejecución (runtime) de .NET.
Características del CLR
- Compilación Just-In-Time (JIT)
- Gestión automática de memoria (Garbage Collector)
- Gestión de errores consistente (Excepciones)
- Ejecución basada en componentes (Assemblies)
- Gestión de Seguridad
- Multithreading
¿Qué es un Assembly?
Un assembly es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET.
Assemblies - Aplicaciones .NET
Una aplicación .NET está compuesta por uno o más assemblies.
Al ejecutar una aplicación, el Class Loader busca los assemblies necesarios en:
- El directorio local (preferido)
- Global Assembly Cache (GAC)
Ventajas del uso de Assemblies:
- Diferentes aplicaciones pueden usar diferentes versiones
- Actualizaciones más simples
- Desinstalación más simple
.NET Framework Class Library
Conjunto de tipos básicos (clases, interfaces, etc.) que vienen incluidos en el .NET Framework.
- Los tipos están organizados en jerarquías lógicas de nombres, denominados namespaces.
- Los tipos son independientes del lenguaje de desarrollo.
- Es extensible y totalmente orientada a objetos.
Common Language Specification (CLS)
La CLS estandariza una serie de características soportadas por el CLR. Es un contrato entre diseñadores de lenguajes de programación y autores de bibliotecas que 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
El resto de la industria y el sector académico han desarrollado más de 20 lenguajes compatibles con la especificación CLS.
CLS - Elección de 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 general, 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 Común (CLI)
Especificación patrocinada por Microsoft, Intel, HP y estandarizada por ECMA (2001) e ISO (2003) que describe:
- Entorno de Ejecución de Aplicaciones
- Conjunto de Librerías Básicas (BCL)
- Tipos de Datos Comunes (CTS)
El .NET Framework y el .NET Compact Framework son implementaciones de la especificación CLI.
Application Domains
Los AppDomains son procesos virtuales dentro del CLR que se ejecutan dentro de un proceso del Sistema Operativo. Un proceso del sistema operativo puede contener varios AppDomains.
Ventajas del uso de AppDomains:
- Más eficiente que múltiples procesos del sistema operativo
- Más eficiente en el intercambio de contexto de ejecución
Un assembly y sus tipos son siempre cargados dentro de un AppDomain.
Provee una frontera para: Fallos, Tipos, Seguridad.
CTS (Common Type System)
El CTS define un conjunto común de tipos de datos orientados a objetos. Todo lenguaje de programación .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.
La memoria y los tipos de Datos
El CLR administra dos segmentos de memoria: Stack (Pila) y Heap (Montón).
- El Stack es liberado automáticamente.
- El Heap es administrado por el GC (Garbage Collector).
Ventajas de .NET
- Unifica los modelos de programación
- Simplifica aún más el desarrollo
- Provee un Entorno de Ejecución robusto y seguro
- Es independiente del lenguaje de programación
- Interoperabilidad con código existente
- Simplifica la instalación y administración de las aplicaciones
- Es Extensible
Desarrollo Simplificado
- Alto nivel de abstracción
- No más accesos COM a bajo nivel
- Orientado a Objetos desde el Núcleo
- Sistema de tipos unificado (CTS)
- Todo es un objeto, no más variants
- Componentes de Software
- Propiedades, métodos, eventos, y atributos incluidos en la construcción de clases
- API organizada en forma Jerárquica
Entorno de ejecución robusto y seguro
- Gestión automática de la memoria (Garbage Collector)
- Manejo de Excepciones
- Fuertemente tipado
- Solo casteos seguros
- Inicialización de variables obligatoria
- Instalación con Cero Impacto (no requiere registro en la Registry)
Independencia del Lenguaje
- Libertad en la elección del lenguaje
- Todas las facilidades de la plataforma .NET están disponibles para todos los lenguajes de programación .NET
- Los componentes de una aplicación .NET pueden ser escritos en distintos lenguajes de alto nivel compatibles con la plataforma
- Herramientas compartidas (Debuggers, profilers, analizadores de código, etc., funcionan para todos los lenguajes)
Instalación y administración más simple
- Unidades de Ensamblado (Assemblies)
- Mínima unidad de distribución, versionado y administración de seguridad de aplicaciones .NET
- Auto-descriptas a través de un manifiesto (manifest)
- Instalaciones Cero-impacto
- Aplicaciones y componentes pueden ser compartidos o privados
- Versioning (múltiples versiones del mismo componente pueden co-existir, aún en el mismo proceso)
Extensibilidad
- El Framework no es una caja negra
- Sus clases pueden ser extendidas a través del mecanismo de herencia
- A diferencia de COM, usamos y extendemos las clases en sí mismas, no un wrapper
- Herencia entre distintos lenguajes