Introducción a Microsoft .NET
Por: Demian Panello.
¿Qué es .NET?.
Pareciera, ahora, que todo para Microsoft es .NET, que todo debería adoptar ese sufijo, y es así porque esta vez Microsoft a apostado muy fuerte en el mercado con este nuevo concepto de informática.
Expresado de forma general y sencilla se podría decir que .NET es la arquitectura que provee la conectividad absoluta, esto es: no va más ese concepto de páginas Web por un lado y aplicaciones por otro, ya no sólo Internet es el responsable fundamental de alguna conectividad y tampoco los diversos lenguajes de programación son capacidades imposibles de asociar.
.Net es básicamente:
- La infraestructura .NET comprendida por: el Framework .NET, Microsoft Visual Studio .NET, .NET Enterprises Servers y Microsoft Windows .NET.
- Servicios de Internet, (.NET Building Block Services) o la posibilidad de acceso por programa a ciertos servicios como obtener la temperatura actual en cualquier lugar del mundo, el valor de cambio actualizado de cualquier moneda, almacenamiento de archivos, comprobación de identidad, etc.
- Programas .NET que acceden a esto servicios.
Lo más visible de .NET es la infraestructura, a esto es a lo que uno hace referencia cuando dice .NET, y se trata de todas las tecnologías que conforman el nuevo entorno que nos permite a los desarrolladores crear y ejecutar aplicaciones.
El Framework .NET
Se le llama Framework, ("entorno de trabajo"), a las Bibliotecas de Clase Base, (también llamadas BCL) y el Common Language Runtime, (CLR).
Las bibliotecas de clase son como las bibliotecas MFC, o sea, una nueva estructura jerárquica de clases que envuelven diversas funcionalidades como acceso a archivos, hilos de ejecución, acceso a base de datos, etc. Y están disponibles para cualquier lenguaje .NET, (Visual C++.NET, Visual Basic.NET, Visual C#.NET, ASP.NET, también Visual Fox, Cobol, y se incorporan más).
CLR, (Common Language Runtime).
El CLR es el entorno que usan las aplicaciones escritas en diversos lenguajes en tiempo de ejecución. El CLR gestiona la ejecución de cada ejecutable encapsulándolo, separándolo de otros procesos de la máquina y ofrece una interoperatividad multi-lenguaje, o sea, la característica de que cada aplicación escrita en diferentes lenguajes pueda interactuar sin inconvenientes. Para ésto .NET provee el CLS, (Common Language Specification), una serie de reglas a las cuales debe ajustarse un compilador para que la aplicación generada por el mismo sea gestionada por el CLR, así el compilador es compatible con .NET.
Visual Studio .NET, (Visual Studio 7.0)
Para escribir aplicaciones .NET sólo hace falta instalar el Framework y luego utilizar por ejemplo un editor de texto como el Notepad para escribir el programa en C++, o en C# o en Visual Basic.NET. Después desde la línea de comandos se puede usar el compilador del lenguaje y compilar la aplicación.
Pero ya hace tiempo que los lenguajes de programación proveen un IDE, ("Entorno Integrado de Desarrollo"), para poder escribir un programa más rápido, ofreciendo la posibilidad de compilarlo desde el mismo editor además de características especiales como colorear la sintaxis y acceso a métodos y propiedades por medio de Intellisense. Para .NET se distribuye el paquete Visual Studio .NET, (hay versiones beta gratuitas), con un sin fin de utilidades para el desarrollador, pero seguramente lo más asombroso de VS.NET es el IDE común para todos los lenguajes .NET que incluye; no pasa como con Visual Studio 6.0, donde cada lenguaje tenía su entorno de desarrollo.
¿Cambiaron los lenguajes?
Visual Studio .NET, (por lo menos la versión beta 2 que yo uso), nos ofrece la posibilidad de programar en lenguajes como Visual C++ 7.0, Visual C#, Visual Basic .NET, ASP.NET y JSCRIPT, (además de incluir ADO.NET y muchas herramientas), todos con la posibilidad de utilizar las nuevas Bibliotecas de Clases Base. El hecho de que los compiladores deban ajustarse a las reglas del CLS, hace que los lenguajes adquieran nuevas características y se enriquezcan y que pierdan otras. Veamos cada caso, (por los menos los 3 lenguajes más importantes).
Visual Basic .NET
De los lenguajes usados en versiones anteriores de Visual Studio, éste ha sido el más beneficiado y el que más a cambiado.
Gracias las nuevas bibliotecas de clases, ahora VB ha adquirido características que nunca antes tenía, (por ejemplo programación multihilo). Pero también a cambiado mucho, se han quitado instrucciones típicas de Basic remplazándolas por unas más intuitivas y se han agregado y/o modificado otras, (como por ejemplo la estructura try-catch() para el tratamiento de excepciones, ¡no existe más on error goto...!). Ahora las aplicaciones de Visual Basic.NET son mucho más robustas.
Visual C++ 7.0
No ha sufrido cambios importantes en su sintaxis, aún están las librerías MFC e incluso mejoradas, se pueden escribir aplicaciones usando el SDK de Windows, etc. Pero ahora también se puede escribir código seguro, código gestionado por el CLR.
C#, (o Visual C#)
Esta es la "vedette" de Visual Studio .NET, el nuevo lenguaje inspirado en C/C++, similar a Java, (pero mejor para mi, y eso que java es de lo mejor).
Este lenguaje tiene una sintaxis basada en C/C++ con una estructura similar a Java pero con características especiales que lo hacen muy estructurado, sencillo y poderoso. Hágase la idea de que escribir en C# es como hacerlo en Visual Basic tradicional pero con resultados más poderosos, como lo esperaría de una aplicación C++.
Y si quiere embarcarse en la aventura de descubrir este nuevo lenguaje lo invito a iniciar la lectura de mis tutoriales de C# empezando por aqui. Además estará aprendiendo a usar las Bibliotecas de Clases Base lo cual le sirve para cualquier otro lenguaje .NET.
Microsoft Intermediate Languaje, (MSIL).
Una aplicación .NET compilada por con un compilador .NET, (que se ajuste a las reglas del CLS), generará un archivo.exe pero que no contiene código máquina sino instrucciones en MSIL.
Se preguntará, ¿pero entonces son programas interpretados?.
No. Cuando ejecute por primera vez el programa el CLR compilará el código MSIL a código máquina usando un compilador "just in time", (JIT o JITer), a medida que lo va procesando por primera vez dejándolo en el caché de la maquina y será compilado nuevamente sólo si existen modificaciones en el fuente.
Existen tres diferentes tipos de JITers.
Aquel que se invoca cuando se ejecuta por primera vez el programa, el que compila a código máquina cuando se lo esta instalando, (el usuario no se da cuenta que además de instalar un programa también se lo está compilando) y finalmente el "econoJit" especialmente diseñado para entornos con escasos recursos o memoria como sistemas portátiles.
Bueno esto ha sido una muy breve introducción a Microsoft .NET, seguramente muy incompleta, pero que creo sirve para poder iniciarnos en el descubrimiento de un nuevo lenguaje. Esta es la hora de C#.