lunes, 25 de agosto de 2008

¿Que son el CLR y la Biblioteca de Clases .NET?

En este post, tratare unas de las partes mas importantes del .NET Framework, el CLR y la Bilioteca de Clases .NET.


CLR, Common Language Runtime

Comenzaremos con el CLR, es decir; el Commom Language Runtime o Lenguaje Comun en Tiempo de Ejecución; basicamente es el motor en tiempo de ejecucion del .NET Framework, que se encarga de ejecutar el codigo de todos los lenguejes del .NET Framework.
Pero, el CLR; hace mucho mas, para tener una vision mas amplia de el, a continuacion mostrare una imagen que muestra de que partes esta compuesto.

Como se puede observar, el CLR, la componen cada una de estas partes arriba mostradas; ellas son escenciales para la correcta de ejecucion de programas bajo la plataforma .NET, a continuacion describire brevemente de que se trata cada una de ellas:

Class Loader
Encargado de cargar las clases en memoria.

Compilador MSIL a Nativo
Aqui cabe mencionar que al momento de compilar una aplicacion hecha en cualquier lenguaje como C#, VB.NET, etc; su codigo se transforma en MSIL que significa Microsoft Intermediate Language, que como su mismo nombre indica es como un lenguaje intermedio que el .NET lo comprende y puede manejar; luego cuando se ejecuta la aplicacion, entra a tallar otro compilador, el JIT Compiler, quien esta encargado de transformar el codigo MSIL a codigo nativo propio del dispositivo donde se ejecuta.

Code Manager
Es el orquestador y coordinador de todos los subsistemas del CLR.

Garbage Collector
Encargado de eliminar de la memoria RAM los objetos no utilizados.

Security Engine
Encargado de Administrar todo lo referente a la ejecucion del codigo.

Debuge Engine
Quien ayuda a realizar un seguimiento a la ejecucion del codigo, aun cuando se utilizen distintos lenguajes, esto gracias a la carecteristica de .NET de ser multilenguaje.

Type Checker
Encargado de verificar y controlar que todas las variables utilizadas en la solucion, usen el area de memoria asignado.

Exception Manager
Administra los errores y/o excepciones que se puedan presentar en la aplicacion.

Thread Support
Se refiere al soporte de "hilos", es decir; de multiprocesos o de ejecutar codigo en forma paralela.

COM Marshaler
Es el comunicador de componentes .NET usados en la apliacion.

Base Class Library Support
Es una interfaz con las Clases Base del .NET.

Y es aqui donde queria llegar para mencionar a la Libreria de Clases del .NET.


Libreria de Clases


Es una libreria estandar disponible para todos los lenguejes que usan el .NET Framework; debidamente ordenadas en una jerarquia para hacer facil el trabajo de los desarrolladores. La Libreria de Clases, tiene diversas agrupaciones de clases, o namespaces, ya sean para funciones de entrada y salida, carga de graficos, interaccion con base de datos, manipulacion de XML, manejo de entornos web, etc.

Namespaces, o espacio de nombre; representa a la agrupacion de clases, enumeraciones, etc, que tienen un vinculo o relacion entre si.


A continuacion una imagen que representa a los namespaces mas usados de la Biblioteca de Clases.



Una vez comprendido el funcionamiento y la conformacion del .NET Framework, es mas facil llegar a manejar el IDE de Visual Studio, quien sera tema para nuestro proximo post.


sábado, 16 de agosto de 2008

.NET y el .NET Framework


Como mi blog esta dedicado únicamente a todo lo relacionado con .NET, pues en este primer post de mi blog, definiré de una manera sencilla en que consiste el tan escuchado .NET de Microsoft.

A veces he podido escuchar que se tiene una idea errónea del .NET, pensando que es un Lenguaje de Programación, o que hacen comparaciones entre .NET con Java, cuando .NET no es un lenguaje. Entonces, antes de empezar es necesario conocer que es.

Podemos decir que .NET es una plataforma de desarrollo que reune una diversidad de clases y estas a su vez de sub clases debidamente categorizadas, ya sea para aplicaciones web, de base de datos, aplicaciones de escritorio, seguridad, etc; asimismo se puede decir que es una estrategia por parte de Microsoft, para la integracion de sus productos, desde el sistema operativo, hasta componentes que comprende tanto a software cliente, de servidor, y herramientas de desarrollo, tales como: .NET Framework, Visual Studio, y Software de Servidor como Microsoft Windows® Server, Microsoft SQL Server™, y Microsoft BizTalk® Server.

En esta ocasión, solo tratare del .NET Framework, que como su mismo nombre lo indica es un marco de trabajo, compuesto por una jerarquía de clases idóneas para un tipo especifico de aplicación, enfocando a los desarrolladores a construir tanto aplicaciones de escritorio (Clientes Inteligentes), aplicaciones Web y Servicios Web XML
, obviamente con acceso a datos, ya sea de manera conectada o desconectada; asimismo soporta una serie de lenguajes de programación para llevar a cabo lo antes mencionado, tales como Visual Basic (a partir de la version 7), C#, J#, etc; todos alineados al Paradigma de la Programación Orientada a Objetos.

El .NET Framework es el "core" de .NET, de hecho.... todo lo que queramos hacer con él, antes debe pasar por uno o algunas de las diversas partes del .NET Framework, de las cuales existen dos muy importantes, el CLR (Common Language Runtime) y la Biblioteca de Clases.

A continuación, dejo una imagen que resume a manera general la composición del .NET Framework, en el próximo post, detallare mas el CLR y la Biblioteca de Clases.