InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
También puedes ver ...
Cómo insertar un fichero .xml en un campo de tipo XML de SQL server 2005 o 2008
Replicación con SQL Server y SQL Server Mobile
Referencia de iconos del examinador de objetos (Object Browser) en Visual Studio.net
Como clonar objetos .net implementando Iclonable
Introducción a .NET
Common Language Runtime - CLR
MSIL - Microsoft Intermediate Language
Metadatos
Assemblies
Librería de clases

Afiliados
La Web del programador
MundoProgramacion


Introducción a .NET.

¿Que es .NET?

    .Net es la nueva plataforma de desarrollo que ha lanzado al mercado MicroSoft, y en la que ha estado trabajado durante los últimos años. Sin duda alguna va a ser uno de los entornos de desarrollo que reinen durante los proximos años.

    ¿Entonces .NET es un lenguaje de programación?, No. Es mucho más que eso, Microsoft .NET es un conjunto de tecnologías de software , compuesto de varios lenguajes de programación que se ejecutan bajo el .NET Framework. Es además un entorno completamente orientado a objetos y que es capaz de ejecutarse bajo cualquier plataforma.

    Vamos por partes. Podriamos dividir el entorno .NET en las siguientes partes:

  • .NET Framework, que es el entorno de trabajo de la plataforma .NET y que la engloba completamente. Toda la plataforma .NET forma parte de .NET framework.
  • Lenguajes .NET. Destacan C# y VB.NET,y recientemente J#, aunque existen más lenguajes y con toda seguridad surgirán nuevos.
  • El Common Runtime Language CRL, que es el motor de ejecución común a todos los lenguajes .NET.
  • MSIL, Microsoft Intermedial language, es el lenguaje intermedio al que compilan las apliaciones (Asemmblies) .NET. Este lenguaje intermedio es interpretado por el CRL en tiempo de ejecución.
  • CLS, common Language Specification, que engloban las pautas que deben cumplir los lenguajes .NET. Es está característica la que va a permitir a otras compañias producir lenguajes compatibles con .NET.
  • ADO.NET, es  la nueva interfaz de bases de datos. No se trata de una evolución de ADO, sino que se trata de una interfaz completamente nueva.
  • ASP.NET, es la nueva tecnología para páginas web dinámicas completamente integrada dentro del entorno .NET. Representa una autentica revolución en el desarrollo Web (Internet e Intranet).
  • Biblioteca de clases .NET, es el conjunto de clases que componen el .NET framework y que nos permiten realizar casi cualquier tarea de una manera facil y rápida.

[arriba]


.NET FrameWork

    .NET FrameWork es el corazón de la tecnología .NET. Es el marco de trabajo y ejecución común a toda la tecnologia .NET. Es por lo tanto un elemento indispensable dentro de la tecnología .NET.

    Dentro del .NET framework están integrados los lenguajes .NET, el CRL, el CLS, ADO.NET, ASP.NET ...

    En el momento de escribir esta página .NET soporta los siguientes lenguajes de programación:

  • C#
  • C++ controlado
  • VB.NET
  • J#
  • Delphi (sí, Delphi de Borland).

    Todos ellos trabajan perfectamente integrados con un motor común, el .NET framework, siendo C# el lenguaje principal, ya que es el único que ha sido desarrollado especificamente para .NET. Gran parte de la biclioteca de clases que componen el framework están escritas en C#.

    .Net FrameWork es el conjunto de espacios de trabajo y clases que sirven de base a los lenguajes .NET. Es la evolución de las API de Windows y de la fundación de clases de Microsoft MFC hacia la completa encapsulación. Cualquier programa que desarrollemos utilizando la tecnología .Net, independientemente del lenguaje utilizado, estará basado en .Net FrameWork.

    La mejor forma de entender esto es un ejemplo. Imaginemos los menús de cualquier aplicación Windows que nos permiten acceder a las distintas opciones del programa, pues bién, en el mundo de la tecnología .Net dichos menús son una clase perteneciente al .Net FrameWork. Esta clase es siempre la misma independientemente del lenguaje y entorno en el que nos encontremos, y la forma de trabajar con ella es la misma desde C#, VB.net o cualquier lenguaje .Net. Lo mismo ocurre con los botones, las imágenes, la forma de leer los archivos ... todo, absolutamente todo lo que hagamos en un lenguaje .NET está basado en el .Net FrameWork.

[arriba]


 MSIL, CRL y el código controlado.

    Cuando escribimos un programa los hacemos en un determinado lenguaje que podriamos llamar "humano"(aunque algunos se empeñen en decir que los programadores no somos humanos). Es decir, podemos leer y entender un programa (o al menos intentarlo) a través de un editor de texto, ya que este programa esta escrito en lenguaje "humano" (utilizando nuestra letras y esas cosas). El único problema es que un ordenador no es capaz de enterder nuestro programa, así que hay que traducirlo a su idioma. A este proceso se le conoce como compilación. Como resultado del proceso de compilación obtenemos el programa ejecutable en código máquina, que entiende el ordenador pero no el "humano"(si alguien lo entiende no es humano, aquí sí). Según la arquitectura del procesador, el sistema operativo, etc ... este código es diferente y un programa que se ejecuta correctamente en un entorno Windows no funciona en Macintosh o UNIX. Es decir el programa sólo funciona para la plataforma para la que fue diseñado. Este no es el proceso que ocurre en .NET. Cuando compilamos un programa escrito en cualquiera de los lenguajes .Net no se compila hacia código máquina nativo, sino que se hace hacia MSIL (Microsoft Intermediate Language), este MSIL es un lenguaje intermedio y universal. Cuando compilo un programa escrito en C# o en VB.Net ambos generan MSIL, con ciertas diferencias pero MSIL. Este código será interpretado posteriormente por un interprete ,el CRL. De este modo conseguimos que un programa escrito en .NET funcione en cualquier plataforma existente, incluso en plataformas futuras, sólo necesitamos construir el interprete apropiado. 

    El MSIL es independiente del procesador, de la plataforma de desarrollo y de la plataforma de ejecución. El MSIL es parte del .Net FrameWork.

    Llegados a este punto tenemos nuestro programa compilado a MSIL, pero el programa no funciona, ya que el procesador sólo entiende su propio código máquina nativo, y MSIL no lo es. Es entonces cuando aparece el CRL (Common Language Runtime), o motor de ejecución común, que lo que hace es servir de traductor entre el MSIL y el codigo máquina nativo. Cuando ejecutamos un programa el CRL se encarga de compilar a código nativo dicho programa y ejecutarlo. A este tipo de compiladores se les conoce como compiladores JIT(Just In Time). Si alguno de vosotros conoce Java abra gritado ¡plagio, esto es el ByteCode!. No exactamente ... cambian ... los nombres. Teoricamente el CRL interpreta MSIL mucho mejor de lo que lo hace Java con el ByteCode y existen ciertas diferencias en la architectura interna, el CRL únicamente compila a código nativo la parte necesaria en cada momento durante la ejecución mientra que Java compila el programa completo, pero ....

    De este modo podemos ejecutar nuestro programa sobre cualquier máquina, siempre y cuando exista una versión del .Net FrameWork y del CRL apropiada. Al código que se ejecuta bajo la batuta del CRL se le conoce como código contralado.

Nota técnica. Los lenguajes .Net no son compilados , ya que no generan codigo nativo, ni interpretados, ya que compilan código MSIL, son lenguajes evaluados.

[arriba]


 Tipos comunes entre lenguajes .NET. CLS y CTS.

    Para que todo esto sea posible MicroSoft ha introducido ciertas reestricciones a la hora de diseñar los lenguajes de programación y en la forma de programar.

    La especificación común de lenguajes CLS hace posible que cualquier fabricante de software genere herramientas compatibles con .NET. De esta forma existen versiones .NET de Delphi y otros lenguajes ajenos a MicroSoft.

    Dentro del CLS destaca especialmente el CTS (Common Type System), que es una especificación que define como el CRL utiliza y administra los tipos de datos. Básicamente es una relación entre los distintos tipos de datos que proporciona cada lenguaje. La consecuencia inmediata del CTS es que dentro de un mismo proyeto .NET podemos utilizar varios lenguajes .NET.

 

[arriba]


 Assemblies

    Un proyecto .NET no genera un ejecutable tal y como lo conocemos. Un proyecto .NET genera Assemblies. Un assemblie es la unidad ejecutable de cualquier programa .NET, pero no se limita al código compilado sino que tambien inluye lo que se ha dado en llamar el manifiesto

    El manifiesto es un listado de las librerias (dll) y los controles  (ocx) que son necesarios para que la apliciación funcione. Este listado contiene el número de versión necesario para que la aplicación funcione correctamente, impidiendo que la instalación posterior de un porgrama afecte a nuetro ejecutable.

    Con esta técnica MicroSoft pretende poner fin al ya maldito infierno de las dll. El tiempo dira si lo consiguen.

[arriba]



 Versión para imprimir  Foros de consulta





Introducción a .NET
Autor: Pedro Herrarte Sánchez
Visitas: 28352 Fecha de publicación: 21/02/2006
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 201 | Comentarios: 0 | Archivo: Articulos
Categorias: C#
Visitas: 315 | Comentarios: 1 | Archivo: Articulos
Visitas: 390 | Comentarios: 1 | Archivo: Articulos
Categorias: Humor
Visitas: 615 | Comentarios: 3 | Archivo: Articulos
Categorias: C#|ASP.NET
Visitas: 1177 | Comentarios: 4 | Archivo: Articulos
Visitas: 697 | Comentarios: 1 | Archivo: Articulos
Categorias: ASP.NET|ASP|Windows XP|Windows 2003
Visitas: 828 | Comentarios: 2 | Archivo: Articulos
Categorias: Java|Solaris
Visitas: 584 | Comentarios: 0 | Archivo: Articulos
Visitas: 1484 | Comentarios: 1 | Archivo: Articulos
Categorias: ADO.NET
Visitas: 1533 | Comentarios: 3 | Archivo: Articulos
Categorias: ASP.NET

Útimos temas recibidos en los foros ...
Manual Visual Studio.NET por Shiko ... [Visual Basic .NET] 34 26/10/2006
llamar procedimientos de pl/sql en java por jhon ... [ORACLE] 0 03/07/2009
consulta multitablas por anga ... [mySQL] 0 03/07/2009
objetos helper php bajo oracle por objetos_helper_oracle ... [ISAPI] 0 02/07/2009
ranuras isa o pci por sara ... [Access] 5 30/03/2006
descargar tutorial C# por afmp ... [C#] 54 14/10/2008
Tutorial TOAD para Oracle en Español por ijpj ... [ORACLE] 19 14/03/2009
quiero mi numero de mi autogenerado por pablo ... [Visual Basic .NET] 1 15/06/2009
Ayuda con cargar fotografias de otra pc por Alex ... [ASP.NET] 0 01/07/2009
splash screen por zelca ... [Visual Basic .NET] 0 01/07/2009
Error de inicio de aplicación por Danrre ... [C#] 0 30/06/2009
sumar los precios de la columna "precio" del grig por jardinderosas ... [C#] 7 01/11/2007

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
03/10/2006 Herencia y métodos virtuales    forma parte de...Tutorial C#
14/07/2007 Como encriptar texto y variables usando algoritmos estandard como DES o TRIPLEDES
03/10/2006 Creación de objetos    forma parte de...Tutorial C#
03/10/2006 Definición de clases    forma parte de...Tutorial C#
22/04/2008 TripleDES - Un ejemplo practico en C#
11/12/2006 Genéricos    forma parte de...Tutorial C#
01/06/2006 Cursores de actualización en PL/SQL    forma parte de...Tutorial PL/SQL
24/05/2006 Cursores Explicitos en PL/SQL    forma parte de...Tutorial PL/SQL
24/05/2006 Cursores Implicitos en PL/SQL    forma parte de...Tutorial PL/SQL
23/05/2006 Cursores en PL/SQL    forma parte de...Tutorial PL/SQL

 

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]