🎃 Grandes descuentos en libros en línea, eformaciones y vídeos*. Código CALABAZA30. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí

Introducción al framework .NET y a VS

Introducción

El framework .NET es un entorno de ejecución y desarrollo principalmente diseñado para entornos Windows.

Entorno de ejecución

Las aplicaciones diseñadas para funcionar con el framework .NET prácticamente nunca se comunican directamente con el sistema operativo. Se dice que su código es de tipo gestionado (managed), porque es el framework .NET el que va a gestionar su ejecución dentro de su Common Language Runtime (CLR), cuyo núcleo se encuentra en la DLL mscoree.dll.

Incluso si los archivos generados por los compiladores para .NET tienen extensiones .EXE y DLL, el código contenido en estos archivos no es lenguaje directamente ejecutable por el microprocesador. Es un código intermedio llamado Microsoft Intermediate Language (MSIL), totalmente independiente del lenguaje de desarrollo original. Cuando se hace doble clic en el icono de una aplicación .NET, la ejecución lee el encabezado del archivo, que le informa del modo de funcionamiento gestionado, y adapta el tipo de ejecución en consecuencia. Durante la ejecución, el código MSIL se compila "sobre la marcha" en código máquina, por medio de un Just In Time Compiler (o JIT Compiler).

Esta operación, adicional respecto a la ejecución de una aplicación "unmanaged", es decir, que contiene directamente el código máquina, la mayor parte del tiempo es imperceptible a efectos de rendimiento en los ordenadores actuales. Además, la imagen realizada se guarda en una zona...

La elección de los lenguajes

La codificación de las aplicaciones compatibles con el framework .NET no implica un lenguaje particular. Microsoft ha publicado las especificaciones de la CLI (Common Language Infraestructura), que permite crear compiladores compatibles con la CLR (Common Language Runtime). De esta manera, incluso si C# es el lenguaje preferido de .NET, es posible construir aplicaciones en Visual Basic .NET, C++ gestionado u otro F#...

Observe que el código MSIL resultado de la compilación puede desensamblarse fácilmente en el lenguaje inicial o en uno de los lenguajes que gestiona .NET. Es posible hacer el resultado de esta acción menos legible realizando una operación de ofuscación.

Utilizar varios lenguajes

Otro punto fuerte de esta arquitectura es que es posible tener en la misma aplicación una parte escrita en C#, otra en Visual Basic, etc. Esta proeza es posible gracias a la CLS (Common Language Specification), que unifica la gestión de los tipos de datos básicos para todos los lenguajes.

Una librería muy completa

El framework .NET ofrece una colección muy amplia de clases, en las que se basan las aplicaciones. Estas clases simplifican considerablemente la gestión de objetos habituales (cadenas de caracteres, valores decimales, etc.), así como la gestión de archivos, interfaces gráficas clásicas (WinForms) o "modernas" (WPF), APIs web, acceso a las bases de datos (ADO.NET), comunicaciones de red (WCF), seguridad, diagnóstico, etc. La lista de clases es muy amplia y además se disponen de manera jerárquica, por lo que el problema normalmente es saber localizarlas.

La mayor parte de las veces, estas clases son extensibles. Esto quiere decir que es posible heredar para aprovechar su comportamiento básico y añadir los aspectos específicos de negocio.

Las librerías de .NET son independientes del lenguaje, lo que permite compartir los mismos tipos, independientemente del origen de los componentes.

Para organizar estas clases, la plataforma utiliza el concepto de espacio de nombres (namespace), que agrupa las clases por objetivos (servicios de la misma naturaleza). Por ejemplo, el namespace System.XML contiene la caja de herramientas para gestionar los datos XML.

Un ensamblado (assembly) es un archivo que contiene uno o varios espacios de nombres, que contienen ellos mismos uno o varios tipos. El ensamblado de C# corresponde al paquete de UML. El desacoplamiento...

Instalaciones simplificadas

Por defecto, los ensamblados de un proyecto son privados y se instalan en el mismo directorio que el de la aplicación. Por el  contrario, si un ensamblado de tipo biblioteca se debe compartir entre varias aplicaciones, entonces se ubicará en un lugar especial llamado Global Assembly Cache (GAC).

Los archivos DLL de ensamblados ubicados en la GAC deben poder mostrar su identidad e integridad, teniendo "nombres fuertes" (strong names), formados por:

  • el nombre del ensamblado,

  • su versión,

  • su "cultura",

  • una clave de cifrado pública,

  • una firma digital derivada del contenido mismo del assembly.

El nombre compuesto de esta manera puede hacer referencia al ensamblado de manera unívoca y se puede utilizar para comprobar que el contenido inicial no se ha modificado desde su construcción.

La GAC es un directorio de archivos, pero los ensamblados no se pueden ubicar directamente con el explorador de archivos. Hay que utilizar la herramienta gacutil.exe.

images/RI03_1.png

Los componentes de la GAC se referencian principalmente por su nombre y su número de versión. Una aplicación declara el uso de un ensamblado utilizando estos dos datos. Como la GAC puede contener ensamblados con el mismo nombre pero con números de versión diferentes es posible actualizar una DLL sin impactar a la existente. "Bye bye DLL hell!"

Ya no se utiliza la base de registro para describir los módulos...

Una herramienta de desarrollo completa

El framework .NET ofrece un compilador C# que se puede utilizar directamente por línea de comandos después de haber introducido el código del programa en un editor de texto, como NotePad. El procedimiento es posible pero no muy productivo. Evidentemente, el desarrollador busca utilizar un entorno de desarrollo totalmente integrado, que le ayude durante la escritura del código, le permita realizar la interfaz gráfica, la puesta a punto y el despliegue de su aplicación. Este programa es un IDE (Integrated Development Environment). Integra al menos un editor de código fuente, herramientas que automatizan las compilaciones y un unlocker.

Visual Studio es la herramienta de desarrollo propuesta por Microsoft. Potente, estable y con un entorno amigable, Visual Studio se presenta en varias versiones: Community, Professional y Entreprise. Los ejemplos de este libro se pueden probar con la versión Visual Studio Community 2015, que se puede descargar de manera gratuita en https://www.visualstudio.com/es-es/products/vs-2015-product-editions.aspx. Naturalmente, también se podrán probar con las versiones más potentes de Visual Studio.

images/RI03_2.png

Descarga e instalación de Visual Studio Community

 Con su navegador de Internet, vaya a la siguiente dirección: https://www.visualstudio.com/es-es/products/vs-2015-product-editions.aspx

 Abra el menú Descarga y seleccione...