Hola
Hoy vamos a hablar de cada uno de los componentes de la Arquitectura del Framework .NET lo haré en un lenguaje claro, conciso y concreto que nos permita a todos entenderlo.
Figura 1. Arquitectura General del Framework .NET
Para entender nuestro diagrama que representa la arquitectura hagamos el símil con los pasos seguidos para construir un edificio; para construir este debemos contar con un terreno, en el caso del Framework (FW) .NET este terreno es el sistema operativo, de lo cual se desprende que ya muchos de ustedes estarán pensando que solo esto correrá en sistemas operativos de la compañía Microsoft; y debo decirles que no es de todo cierto pues al ser .NET una filosofía ya otras casas productoras de software han asumido esta filosofía dentro de sus lenguajes de programación y existe un proyecto denominado MONO que busca llevar el framework .NET a sistemas operativos como LINUX y convertirla en una plataforma abierta (open source). Para más información pueden visitar este sitio http://www.mono-project.com/Main_Page .
Después en la siguiente capa tenemos al Common Language Runtime (CLR) ó el motor en tiempo de ejecución de lenguaje común. Enredado la traducción literal. Bueno, Recordemos que el FW .NET lo que nos ofrece es una vista orientada a objetos de las funciones del sistema operativo, por lo tanto el CLR es la primera capa que es responsable de los servicios fundamentales, como la administración de memoria, la recolección de los objetos que ya no usamos y que están todavía en memoria (Garbage collector), el manejo estructurado de excepciones y los multiprocesos. El CLR es el gerente de todas las aplicaciones .NET aunque nunca podemos interactuar directamente con él, el si controla todas nuestras aplicaciones.
El BCL (base Common Library) o biblioteca de clases común, como su nombre lo indica contiene un gran número de clases agrupadas en un poco mas de 30 ensamblados que nos permiten realizar todas las tareas imaginables, tales como despliegue de ventanas graficas, lectura de archivos, envío de HTML a través de un navegador de Internet. También el BCL nos define todos los tipos de datos básicos; donde el objeto base o raíz de todos es el System. Object (de hecho es la raíz de todos los objetos en .NET). Todos los tipos que pertenecen a la BCL están compilados en los ensamblados mscorlib.dll y System.dll.
ADO .NET y XML. ADO .NET es conjunto de librerías especializadas en la conexión a motores de bases de datos y su interacción con los mismos; aquí podemos trabajar en modo conectado o desconectado. XML es la herramienta que nos permite que esa interacción con los diferentes motores de bases de datos sea transparente ya que todo se puede traducir fácilmente a este lenguaje (importar y exportar en formato XML), para ser desplegado en un objeto Dataset o Datatable.
ASP .NET. Es la parte del FW .NET que permite crear aplicaciones de Internet e Intranet. Las aplicaciones ASP.NET se dividen en dos categorías: Aplicaciones WebForms y Web Services.
Windows Forms. Permite crear aplicaciones para escritorio Windows. La creación de un proyecto Windows Forms es muy similar a la que usábamos en Visual Basic 6.0.
CTS (Common Type Specifications). Define unas reglas básicas y comunes que deben cumplir los tipos de datos, las propiedades, los métodos y eventos; también define como un tipo se hereda de otro y la posible sobre escritura de sus miembros. Gracias al CTS es posible intercambiar información entre los diferentes lenguajes de programación de .NET, utilizar tipos escritos en lenguajes diferentes y hasta tener herencia entre ellos.
CLS (Common Language Specification). Dicta las características mínimas que debe contener un lenguaje de programación para calificarlo como lenguaje .NET. Gracias a él se pueden tener muchos lenguajes de programación incluso de otros fabricantes haciendo parte del Framework .NET y más específicamente de Visual Studio.
Lenguajes de Programación. Hoy en día Visual Studio cuenta con más de 30 lenguajes de programación en donde podemos destacar a Visual Basic, Visual C#, Visual F#, Visual J#, Visual C++, Delphi .NET, entre otros.
A medida que vayamos avanzando les iré explicando otros términos o conceptos que hacen parte del Framework .NET por el momento creo que es suficiente y en un próximo articulo ya entraremos en materia sobre los conceptos fundamentales para programar en Visual Basic 2010 (Visual Basic 10.0) y tranquilos también miraremos el mismo tema desde Visual C# y Visual F#.
Saludos,
Thierry.