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?

Imagen

.NET no es un Sistema Operativo

Imagen

.NET no es un Lenguaje de Programación

Imagen

.NET no es un Entorno de Desarrollo

Imagen

.NET no es un Servidor de Aplicaciones

Imagen

.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

Entradas relacionadas: