Arquitectura bsica de la plataforma .Net. Descripcin del Framework y sus principales
componentes: Lenguaes! biblioteca de clases y "L#. La nue$a tecnolog%a de &icrosoft ofrece soluciones a los problemas de programacin actuales! como son la administracin de cdigo o la programacin para 'nternet. (ara apro$ec)ar al m*imo las caracter%sticas de .Net es necesario entender la arquitectura bsica en la que esta implementada esta tecnolog%a y as% beneficiarse de todas las caracter%sticas que ofrece esta nue$a plataforma. +l Framework de .Net es una infraestructura sobre la que se re,ne todo un conunto de lenguaes y ser$icios que simplifican enormemente el desarrollo de aplicaciones. &ediante esta )erramienta se ofrece un entorno de eecucin altamente distribuido! que permite crear aplicaciones robustas y escalables. Los principales componentes de este entorno son: Lenguaes de compilacin -iblioteca de clases de .Net "L# ."ommon Language #untime/ Actualmente! el Framework de .Net es una plataforma no incluida en los diferentes sistemas operati$os distribuidos por &icrosoft! por lo que es necesaria su instalacin pre$ia a la eecucin de programas creados mediante .Net. +l Framework se puede descargar gratuitamente desde la web oficial de &icrosoft .$er link de descarga en los recursos del final/. .Net Framework soporta m,ltiples lenguaes de programacin y aunque cada lenguae tiene sus caracter%sticas propias! es posible desarrollar cualquier tipo de aplicacin con cualquiera de estos lenguaes. +*isten ms de 01 lenguaes adaptados a .Net! desde los ms conocidos como "2 ." 3)arp/! 4isual -asic o "55 )asta otros lenguaes menos conocidos como (erl o "obol. Caractersticas +s el encargado de pro$eer lo que se llama cdigo administrado! es decir! un entorno que pro$ee ser$icios automticos al cdigo que se eecuta. Los ser$icios son $ariados: "argador de clases: permite cargar en memoria las clases. "ompilador &3'L a nati$o: transforma cdigo intermedio de alto ni$el independiente del )ardware que lo eecuta a cdigo de mquina propio del dispositi$o que lo eecuta. Administrador de cdigo: coordina toda la operacin de los distintos subsistemas del "ommon Language #untime. #ecolector de basura: elimina de memoria obetos no utili6ados. &otor de seguridad: administra la seguridad del cdigo que se eecuta. &otor de depuracin: permite )acer un seguimiento de la eecucin del cdigo aun cuando se utilicen lenguaes distintos. 4erificador de tipos: controla que las $ariables de la aplicacin usen el rea de memoria que tienen asignado. Administrador de e*cepciones: manea los errores que se producen durante la eecucin del cdigo. 3oporte de multiproceso .)ilos/: permite eecutar todo el cdigo en forma paralela. +mpaquetador de "7&: coordina la comunicacin con los componentes "7& para que puedan ser usados por el .N+8 Framework. 3oporte de la -iblioteca de "lases -ase: interfa6 con las clases base del .N+8 Framework. +sto quiere decir que e*isten tipos de estructuras como es la de a$a y la .N+8 Consideraciones La plataforma .N+8 de &icrosoft es un componente de software que puede ser a9adido al sistema operati$o :indows. (ro$ee un e*tenso conunto de soluciones predefinidas para necesidades generales de la programacin de aplicaciones! y administra la eecucin de los programas escritos espec%ficamente con la plataforma. +sta solucin es el producto principal en la oferta de &icrosoft! y pretende ser utili6ada por la mayor%a de las aplicaciones creadas para la plataforma :indows. .N+8 Framework se incluye en :indows 3er$er ;11<! :indows 4ista y :indows =. De igual manera! la $ersin actual de dic)o componente puede ser instalada en :indows >(! y en la familia de sistemas operati$os :indows 3er$er ;110. ?na $ersin @reducida@ de .N+8 Framework est disponible para la plataforma :indows &obile! incluyendo telAfonos inteligentes. La norma .incluido en +"&AB00C! '37D'+" ;0;=E/ que define el conunto de funciones que debe implementar la biblioteca de clases base .-"L por sus siglas en inglAs! tal $e6 el ms importante de los componentes de la plataforma/! define un conunto funcional m%nimo que debe implementarse para que el marco de trabao sea soportado por un sistema operati$o. Aunque &icrosoft implement esta norma para su sistema operati$o :indows! la publicacin de la norma abre la posibilidad de que sea implementada para cualquier otro sistema operati$o e*istente o futuro! permitiendo que las aplicaciones corran sobre la plataforma independientemente del sistema operati$o para el cual )aya sido implementada. +l (royecto &ono emprendido por >imian pretende reali6ar la implementacin de la norma para $arios sistemas operati$os adicionales bao el marco del cdigo abierto. Common Language Runtime (CLR) +l "L# es el $erdadero n,cleo del Framework de .Net! ya que es el entorno de eecucin en el que se cargan las aplicaciones desarrolladas en los distintos lenguaes! ampliando el conunto de ser$icios que ofrece el sistema operati$o estndar :in0;. La )erramienta de desarrollo compila el cdigo fuente de cualquiera de los lenguaes soportados por .Net en un mismo cdigo! denominado cdigo intermedio .&3'L! &icrosoft 'ntermediate Lenguae/. (ara generar dic)o cdigo el compilador se basa en el "ommon Language 3pecification ."L3/ que determina las reglas necesarias para crear cdigo &3'L compatible con el "L#. De esta forma! indistintamente de la )erramienta de desarrollo utili6ada y del lenguae elegido! el cdigo generado es siempre el mismo! ya que el &3'L es el ,nico lenguae que entiende directamente el "L#. +ste cdigo es transparente al desarrollo de la aplicacin ya que lo genera automticamente el compilador. 3in embargo! el cdigo generado en &3'L no es cdigo mquina y por tanto no puede eecutarse directamente. 3e necesita un segundo paso en el que una )erramienta denominada compilador F'8 .FustB'nB8ime/ genera el cdigo mquina real que se eecuta en la plataforma que tenga la computadora. De esta forma se consigue con .Net cierta independencia de la plataforma! ya que cada plataforma puede tener su compilador F'8 y crear su propio cdigo mquina a partir del cdigo &3'L. La compilacin F'8 la reali6a el "L# a medida que se in$ocan los mAtodos en el programa y! el cdigo eecutable obtenido! se almacena en la memoria cac)A de la computadora! siendo recompilado slo cuando se produce alg,n cambio en el cdigo fuente. Bibioteca de cases de .Net "uando se est programando una aplicacin muc)as $eces se necesitan reali6ar acciones como manipulacin de arc)i$os! acceso a datos! conocer el estado del sistema! implementar seguridad! etc. +l Framework organi6a toda la funcionalidad del sistema operati$o en un espacio de nombres errquico de forma que a la )ora de programar resulta bastante sencillo encontrar lo que se necesita. (ara ello! el Framework posee un sistema de tipos uni$ersal! denominado "ommon 8ype 3ystem ."83/. +ste sistema permite que el programador pueda interactuar los tipos que se incluyen en el propio Framework .biblioteca de clases de .Net/ con los creados por Al mismo .clases/. De esta forma se apro$ec)an las $entaas propias de la programacin orientada a obetos! como la )erencia de clases predefinidas para crear nue$as clases! o el polimorfismo de clases para modificar o ampliar funcionalidades de clases ya e*istentes. La biblioteca de clases de .Net Framework incluye! entre otros! tres componentes cla$e: A3(.N+8 para construir aplicaciones y ser$icios :eb. :indows Forms para desarrollar interfaces de usuario. AD7.N+8 para conectar las aplicaciones a bases de datos. La forma de organi6ar la biblioteca de clases de .Net dentro del cdigo es a tra$As de los espacios de nombres .namespaces/! donde cada clase est organi6ada en espacios de nombres seg,n su funcionalidad. (or eemplo! para manear fic)eros se utili6a el espacio de nombres 3ystem.'7 y si lo que se quiere es obtener informacin de una fuente de datos se utili6ar el espacio de nombres 3ystem.Data. La principal $entaa de los espacios de nombres de .Net es que de esta forma se tiene toda la bliblioteca de clases de .Net centrali6ada bao el mismo espacio de nombres .3ystem/. Adems! desde cualquier lenguae se usa la misma sinta*is de in$ocacin! ya que a todos los lenguaes se aplica la misma biblioteca de clases. Ensambados ?no de los mayores problemas de las aplicaciones actuales es que en muc)os casos tienen que tratar con diferentes arc)i$os binarios .DLLGs/! elementos de registro! conecti$idad abierta a bases de datos .7D-"/! etc. (ara solucionarlo el Framework de .Net manea un nue$o concepto denominado ensamblado. Los ensamblados son fic)eros con forma de +>+ o DLL que contienen toda la funcionalidad de la aplicacin de forma encapsulada. (or tanto la solucin al problema puede ser tan fcil como copiar todos los ensamblados en el directorio de la aplicacin. "on los ensamblados ya no es necesario registrar los componentes de la aplicacin. +sto se debe a que los ensamblados almacenan dentro de si mismos toda la informacin necesaria en lo que se denomina el manifiesto del ensamblado. +l manifiesto recoge todos los mAtodos y propiedades en forma de metaBdatos unto con otra informacin descripti$a! como permisos! dependencias! etc. (ara gestionar el uso que )acen la aplicaciones de los ensamblados .Net utili6a la llamada cac)A global de ensamblados .HA"! Hlobal Assembly "ac)e/. As%! .Net Framework puede albergar en el HA" los ensamblados que puedan ser usados por $arias aplicaciones e incluso distintas $ersiones de un mismo ensamblado! algo que no era posible con el anterior modelo "7&.