Sunteți pe pagina 1din 25

Informacin general y conceptual sobre

.NET Framework
.NET Framework 4
Otras versiones

Personas que lo han encontrado til: 2 de 4 Valorar este tema

.NET Framework es un componente integral de Windows que admite la compilacin y la


ejecucin de la siguiente generacin de aplicaciones y servicios Web XML. El diseo
de .NET Framework est enfocado a cumplir los objetivos siguientes:

Proporcionar un entorno coherente de programacin orientada a objetos, en el


que el cdigo de los objetos se pueda almacenar y ejecutar de forma local,
ejecutar de forma local pero distribuida en Internet o ejecutar de forma remota.

Proporcionar un entorno de ejecucin de cdigo que reduzca lo mximo posible


la implementacin de software y los conflictos de versiones.

Ofrecer un entorno de ejecucin de cdigo que promueva la ejecucin segura del


mismo, incluso del creado por terceras personas desconocidas o que no son de
plena confianza.

Proporcionar un entorno de ejecucin de cdigo que elimine los problemas de


rendimiento de los entornos en los que se utilizan scripts o intrpretes de
comandos.

Ofrecer al programador una experiencia coherente entre tipos de aplicaciones


muy diferentes, como las basadas en Windows o en el Web.

Basar toda la comunicacin en estndares del sector para asegurar que el


cdigo de .NET Framework se puede integrar con otros tipos de cdigo.

.NET Framework contiene dos componentes principales: Common Language Runtime y


la biblioteca de clases de .NET Framework. Common Language Runtime es el
fundamento de .NET Framework. El motor en tiempo de ejecucin se puede considerar
como un agente que administra el cdigo en tiempo de ejecucin y proporciona
servicios centrales, como la administracin de memoria, la administracin de
subprocesos y la comunicacin remota, al tiempo que aplica una seguridad estricta a los
tipos y otras formas de especificacin del cdigo que promueven su seguridad y solidez.
De hecho, el concepto de administracin de cdigo es un principio bsico del motor en
tiempo de ejecucin. El cdigo destinado al motor en tiempo de ejecucin se denomina
cdigo administrado, a diferencia del resto de cdigo, que se conoce como cdigo no
administrado. La biblioteca de clases, el otro componente principal de .NET Framework,
es una completa coleccin orientada a objetos de tipos reutilizables que se pueden
emplear para desarrollar aplicaciones que abarcan desde las tradicionales herramientas
de interfaz grfica de usuario (GUI) o de lnea de comandos hasta las aplicaciones
basadas en las innovaciones ms recientes proporcionadas por ASP.NET, como los
formularios Web Forms y los servicios Web XML.
.NET Framework puede hospedarse en componentes no administrados que cargan
Common Language Runtime en sus procesos e inician la ejecucin de cdigo
administrado, con lo que se crea un entorno de software en el que se pueden utilizar

caractersticas administradas y no administradas. En .NET Framework no slo se ofrecen


varios hosts de motor en tiempo de ejecucin, sino que tambin se admite el desarrollo
de estos hosts por parte de terceros.
Por ejemplo, ASP.NET hospeda el motor en tiempo de ejecucin para proporcionar un
entorno de servidor escalable para el cdigo administrado. ASP.NET trabaja
directamente con el motor en tiempo de ejecucin para habilitar aplicaciones de
ASP.NET y servicios Web XML, que se tratan ms adelante en este tema.
Internet Explorer es un ejemplo de aplicacin no administrada que hospeda el motor en
tiempo de ejecucin (en forma de una extensin de tipo MIME). Al usar Internet Explorer
para hospedar el motor en tiempo de ejecucin, puede incrustar componentes
administrados o controles de Windows Forms en documentos HTML. Al hospedar el
motor en tiempo de ejecucin de esta manera se hace posible el uso de cdigo mvil
administrado (similar a los controles de Microsoft ActiveX), pero con mejoras
significativas que slo el cdigo administrado puede ofrecer, como la ejecucin con
confianza parcial y el almacenamiento aislado de archivos.
En la ilustracin siguiente se muestra la relacin de Common Language Runtime y la
biblioteca de clases con las aplicaciones y el sistema en su conjunto. En la ilustracin se
representa igualmente cmo funciona el cdigo administrado dentro de una arquitectura
mayor.
.NET Framework en contexto

En las secciones siguientes se describen con ms detalle los componentes y


caractersticas principales de .NET Framework.

Caractersticas de Common Language Runtime


Common Language Runtime administra la memoria, ejecucin de subprocesos,
ejecucin de cdigo, comprobacin de la seguridad del cdigo, compilacin y dems
servicios del sistema. Estas caractersticas son intrnsecas del cdigo administrado que
se ejecuta en Common Language Runtime.
Con respecto a la seguridad, los componentes administrados reciben grados de
confianza diferentes, en funcin de una serie de factores entre los que se incluye su
origen (como Internet, red empresarial o equipo local). Esto significa que un
componente administrado puede ser capaz o no de realizar operaciones de acceso a
archivos, operaciones de acceso al Registro y otras funciones delicadas, incluso si se
est utilizando en la misma aplicacin activa.
El motor en tiempo de ejecucin impone seguridad en el acceso al cdigo. Por ejemplo,
los usuarios pueden confiar en que un archivo ejecutable incrustado en una pgina Web
puede reproducir una animacin en la pantalla o entonar una cancin, pero no puede
tener acceso a sus datos personales, sistema de archivos o red. Por ello, las
caractersticas de seguridad del motor en tiempo de ejecucin permiten que el software
legtimo implementado en Internet sea excepcionalmente variado.
Adems, el motor en tiempo de ejecucin impone la solidez del cdigo mediante la
implementacin de una infraestructura estricta de comprobacin de tipos y cdigo
denominada CTS (Common Type System, Sistema de tipos comn). CTS garantiza que
todo el cdigo administrado es autodescriptivo. Los diversos compiladores de lenguaje
de Microsoft y de otros fabricantes generan cdigo administrado que se atiene al CTS.
Esto significa que el cdigo administrado puede consumir otros tipos e instancias
administrados, al tiempo que se exige fidelidad de tipos y seguridad de tipos
estrictamente.
Adems, el entorno administrado del motor en tiempo de ejecucin elimina muchos
problemas de software comunes. Por ejemplo, el motor en tiempo de ejecucin controla
automticamente la disposicin de los objetos, administra las referencias a stos y los
libera cuando ya no se utilizan. Esta administracin automtica de la memoria soluciona
los dos errores ms comunes de las aplicaciones: la prdida de memoria y las
referencias no vlidas a la memoria.
Adems, el motor en tiempo de ejecucin aumenta la productividad del programador.
Por ejemplo, los desarrolladores pueden crear aplicaciones en el lenguaje que prefieran
y seguir sacando todo el provecho del motor en tiempo de ejecucin, la biblioteca de
clases y los componentes escritos en otros lenguajes por otros colegas. El proveedor de
un compilador puede elegir destinarlo al motor en tiempo de ejecucin. Los
compiladores de lenguajes que se destinan a .NET Framework hacen que las
caractersticas de .NET Framework estn disponibles para el cdigo existente escrito en
dicho lenguaje, lo que facilita enormemente el proceso de migracin de las aplicaciones
existentes.
Aunque el motor en tiempo de ejecucin est diseado para el software del futuro,
tambin es compatible con el software actual y el software antiguo. La interoperabilidad
entre el cdigo administrado y no administrado permite que los desarrolladores
continen utilizando los componentes COM y las DLL que necesiten.
El motor en tiempo de ejecucin est diseado para mejorar el rendimiento. Aunque
Common Language Runtime proporciona muchos servicios estndar de motor en tiempo
de ejecucin, el cdigo administrado nunca se interpreta. Una caracterstica
denominada compilacin JIT (Just-In-Time) permite ejecutar todo el cdigo administrado
en el lenguaje mquina nativo del sistema en el que se ejecuta. Mientras tanto, el
administrador de memoria evita que la memoria se pueda fragmentar y aumenta la
zona de referencia de la memoria para mejorar an ms el rendimiento.

Por ltimo, el motor en tiempo de ejecucin se puede hospedar en aplicaciones de


servidor de gran rendimiento, como Microsoft SQL Server e Internet Information
Services (IIS). Esta infraestructura permite utilizar cdigo administrado para escribir
lgica empresarial, al tiempo que se disfruta del superior rendimiento de los mejores
servidores empresariales del sector que puedan hospedar el motor en tiempo de
ejecucin.

Biblioteca de clases de .NET Framework


La biblioteca de clases de .NET Framework es una coleccin de tipos reutilizables que se
integran estrechamente con Common Language Runtime. La biblioteca de clases est
orientada a objetos, lo que proporciona tipos de los que su propio cdigo administrado
puede derivar funciones. Esto ocasiona que los tipos de .NET Framework sean sencillos
de utilizar y reduce el tiempo asociado con el aprendizaje de las nuevas caractersticas
de .NET Framework. Adems, los componentes de terceros se pueden integrar sin
dificultades con las clases de .NET Framework.
Por ejemplo, las clases de coleccin de .NET Framework implementan un conjunto de
interfaces que puede usar para desarrollar sus propias clases de coleccin. stas se
combinarn fcilmente con las clases de .NET Framework.
Como en cualquier biblioteca de clases orientada a objetos, los tipos de .NET Framework
permiten realizar diversas tareas de programacin comunes, como son la administracin
de cadenas, recoleccin de datos, conectividad de bases de datos y acceso a archivos.
Adems de estas tareas habituales, la biblioteca de clases incluye tipos adecuados para
diversos escenarios de desarrollo especializados. Por ejemplo, puede utilizar .NET
Framework para desarrollar los siguientes tipos de aplicaciones y servicios:

Aplicaciones de consola Vea Generar aplicaciones de consola.

Aplicaciones GUI de Windows (Windows Forms) Vea Windows Forms.

Aplicaciones de Windows Presentation Foundation (WPF) Vea Introduccin a WPF.

Aplicaciones de ASP.NET Vea Pginas web ASP.NET.

Servicios Web. Vea Servicios Web ASP.NET.

Servicios de Windows Vea Introduccin a las aplicaciones de servicios de Windows.

Aplicaciones orientadas a servicios utilizando Windows Communication


Foundation (WCF). Vea Windows Communication Foundation.

Aplicaciones habilitadas para el flujo de trabajo utilizando Windows Workflow


Foundation (WF). Vea Windows Workflow Foundation.

Por ejemplo, las clases de Windows Forms son un conjunto completo de tipos
reutilizables que simplifican enormemente el desarrollo de interfaces GUI para Windows.
Si escribe una aplicacin Web Form de ASP.NET, puede utilizar las clases de formularios
Web Forms.

Introduccin:
Debido a que la nueva versin de Visual Basic no es slo una mejora con respecto a las
versiones anteriores, sino que cambia mucho, tanto como si de otro lenguaje de

programacin se tratara, creo que se merece que se explique de forma ms o menos fcil
de comprender para que cualquiera que se decida a elegirlo como su lenguaje de
programacin lo tenga, valga la redundancia, fcil.
Tan fcil como permitan las circunstancias, y adems, (para que esto de estudiar no
resulte algo tedioso), tan ameno como me sea posible, ya que las cosas se pueden
explicar de muchas formas y, a pesar de parecer que peco de falta de modestia, estoy
seguro que este curso de iniciacin a la programacin con Visual Basic .NET te va a
resultar ameno y fcil de comprender... seguro!
Pero no slo vas a aprender a programar con VB.NET, sino que al estar "basado" en el
.NET Framework, conocers lo suficiente de este marco de desarrollo que podrs
atreverte con otros lenguajes .NET, tales como c#, ya que al fin y al cabo, el corazn de
los lenguajes .NET es el .NET Framework.
Para ir aclarando ideas, veamos algunos conceptos que habr que tener claros desde el
principio:
Visual Basic .NET usa una jerarqua de clases que estn incluidas en el .NET
Framework, por tanto conocer el .NET Framework nos ayudar a conocer al propio
Visual Basic .NET, aunque tambin necesitars conocer la forma de usar y de hacer del
VB ya que, aunque en el fondo sea lo mismo, el aspecto sintctico es diferente para cada
uno de los lenguajes basados en .NET Framework, si no fuese as, slo existira un solo
lenguaje!
Me imagino que la primera pregunta a la que habra que responder es:
Qu es el .NET Framework?
Voy a intentar dar una respuesta que sea fcil de "asimilar", a ver si lo consigo...
Primer intento, lo que se dice en el eBook Microsoft .NET Framework, cuya versin en
Castellano puedes conseguir usando este link: (este link est actualizado, al menos a
fecha de hoy 10 de noviembre de 2002)
".NET Framework es un entorno para construir, instalar y ejecutar servicios Web y
otras aplicaciones.
Se compone de tres partes principales: el Common Language Runtime, las clases
Framework y ASP.NET"
Aunque dicho libro est basado en la Beta1 es vlido para aclarar conceptos sobre lo
que es el .NET Framework adems de otros conceptos como el Common Language
Runtime (CLR), Common Language Specification (CLS), Common Type System (CTS),
Microsoft Intermediate Language (MSIL), los ensamblados o assemblies, as como
sobre ASP.NET, conceptos que si bien no son imprescindibles para poder usar Visual
Basic .NET, es conveniente leer un poco sobre ellos, para no estar totalmente perdidos
cuando nos encontremos con esos conceptos...

Segundo intento, lo que dice la MSDN Library:


"El .NET Framework es un entorno multi-lenguaje para la construccin, distribucin y
ejecucin de Servicios Webs y aplicaciones."
"El .NET Framework es una nueva plataforma diseada para simplificar el desarrollo
de aplicaciones en el entorno distribuido de Internet."
"El .NET Framework consta de dos componentes principales: el Common Language
Runtime y la librera de clases .NET Framework."

Tercer intento, aclarando las cosas, para que se te "queden" grabadas:


El .NET Framework es el corazn de .NET, cualquier cosa que queramos hacer en
cualquier lenguaje .NET debe pasar por el filtro cualquiera de las partes integrantes
del .NET Framework.
El Common Lenguage Runtime (CLR) es una serie de libreras dinmicas (DLLs),
tambin llamadas assemblies, que hacen las veces de las DLLs del API de Windows as
como las libreras runtime de Visual Basic o C++. Como sabrs, y si no lo sabes ahora
te lo cuento yo, cualquier ejecutable depende de una forma u otra de una serie de
libreras, ya sea en tiempo de ejecucin como a la hora de la compilacin. Pues el CLR
es eso, una serie de libreras usadas en tiempo de ejecucin para que nuestros
ejecutables o cualquiera basado en .NET puedan funcionar. Se acab eso de que existan
dos tipos de ejecutables: los que son autosuficientes y no dependen de libreras externas
o los que necesitan de libreras en tiempo de ejecucin para poder funcionar, tal es el
caso de las versiones anteriores de Visual Basic.
Por otro lado, la librera de clases de .NET Framework proporcionan una jerarqua de
clases orientadas a objeto disponibles para cualquiera de los lenguajes basados en .NET,
incluido el Visual Basic. Esto quiere decir que a partir de ahora Visual Basic ya no ser
la "oveja negra" de los lenguajes de programacin, sino que tendr a su disposicin
todas las clases disponibles para el resto de los lenguajes basados en .NET, (o casi), con
lo cual slo nos diferenciar del resto de programadores en la forma de hacer las cosas:
ms fciles!
VB.NET ahora es totalmente un lenguaje orientado a objetos con herencia y todo.
Tambin permite crear Threads o hilos o tramas de ejecucin y otras cosas que antes nos
estaban vetadas. De todo esto veremos en esta serie de "entregas", espero que, aunque
es un poco ms complicado que el Visual Basic de "siempre", confo en que te sea fcil
de asimilar. A ver si lo consigo!

Sobre la versin de Visual Basic .NET:


A la hora de escribir estas lneas, la versin de Visual Basic .NET que hay disponible es
la que se incluye en la Beta2 de Visual Studio .NET. Pero segn dicen, la versin final

tendr pocos cambios con respecto a la Beta 2, as que, espero que todo lo que aqu
explique sea vlido para la versin definitiva de Visual Basic .NET.

Algunas aclaraciones preliminares:


Antes de empezar a ver el cdigo, un par de aclaraciones, que aunque ahora puede ser
que te suenen a chino, (si eres chino o conoces ese idioma, slo decirte que es una frase
hecha: "me suena a chino" es como decir: "no s de que me ests hablando"), pronto
sern tan usuales que acabars por asimilarlas como si toda tu vida las hubieras estado
usando... o casi...
Extensin de los ficheros de cdigo.
En Visual Basic .NET a diferencia de lo que ocurra en las versiones anteriores de
Visual Basic, slo existe un tipo de fichero de cdigo, el cual tiene la extensin .vb, en
este tipo de fichero pueden coexistir distintos tipos de elementos, por ejemplo: un
mdulo de clase, un formulario, un mdulo de cdigo, un control, etc.; mientras que en
las versiones anteriores de Visual Basic, cada uno de estos elementos tenan su propio
tipo de fichero con su respectiva extensin. Si no sabes o no quieres saber de lo que
ocurra en las versiones anteriores, me parece muy bien... pero esto slo es para que lo
sepas y no te sorprenda, si es que hay algo que an puede sorprenderte, claro.
Tipos de ejecutables.
Con Visual Basic .NET puedes crear bsicamente estos dos tipos de ejecutables:
de consola, no grfico, al estilo del viejo MS-DOS, y
grficos, como los que normalmente estamos acostumbrados a ver en Windows.
Existen otros tipos de aplicaciones que se pueden crear con Visual Basic .NET:
aplicaciones ASP.NET, (realmente no es una aplicacin o ejecutable, sino un compendio
de distintos tipos de elementos...), servicios Web, servicios Windows, etc.

Nuestra primera aplicacin con Visual Basic .NET.


Para ir calentando motores, creo que lo mejor es empezar creando una pequea
aplicacin con VB.NET, despus iremos aclarando los distintos conceptos usados... as
te resultar menos complicado todo lo que tengo preparado para ti.
Inicia el Visual Studio .NET, por defecto te mostrar la "pgina de inicio" desde la cual
pueden crearse nuevos proyectos o bien abrir alguno de los ms recientemente abiertos.
Pulsa en Nuevo proyecto

Te mostrar los diferentes tipos de proyectos que se pueden crear, en el panel izquierdo
selecciona Proyectos de Visual Basic (Visual Basic Projects) y de los que muestra en el
panel de la derecha, selecciona Console Application

Tendrs que especificar el directorio en el que se guardar el proyecto, as como el


nombre del mismo, (creando un directorio con el nombre del proyecto indicado), deja el
nombre que muestra por defecto, en la versin inglesa de Visual Studio .NET se llamar
ConsoleApplication1. Pulsa en OK (Aceptar) y se crear el proyecto.
Por defecto te mostrar lo siguiente:

Es decir, crear un fichero llamado Module1.vb, (mostrado a la derecha en el Solution


Explorer), con el cdigo necesario para empezar a escribir. Fjate que adems del
procedimiento Sub Main, el cual se usar como punto de entrada de nuestro ejecutable,
tambin ha creado una "definicin" llamada Module Module1 con su respectivo End
Module, el cual indica dnde termina la definicin del mdulo. Esto es as, porque,
como te dije hace un rato, en un mismo fichero .vb, pueden existir distintos tipos de
elementos. Por ahora, dejmoslo as... ya habr tiempo de complicarnos la vida...
Una aclaracin: lo que estamos creando es una aplicacin tipo consola, es decir, no se
crear ninguna ventana grfica, sino que el ejecutable que vamos a crear funciona desde
una ventana de MS-DOS (o consola). Esto lo comprobaremos cuando ejecutemos el
proyecto.
Lo que queremos, (o mejor dicho, lo que YO QUIERO), mostrar, es un mensaje que
diga algo as como: Hola mundo .NET que original! verdad?, por tanto para mostrar
un texto en la "consola", usaremos una funcin, mtodo o instruccin, (como prefieras
llamarla), que si bien no es nativa de Visual Basic .NET, la usaremos como si lo fuese...
como veremos ms tarde, TODO esto es posible gracias a los assemblies o a las clases
incluidas en el .NET Framework. Por ahora simplemente confa en mi y escribe lo que
te voy a decir.
La funcin en cuestin, (realmente todo lo que se usa en .NET son funciones), es
Console.Write y se usa de la siguiente forma:
Console.Write("Hola mundo .NET"), es decir incluiremos dentro de parntesis lo que
queremos que se muestre en la consola, en este caso queremos mostrar un texto, el cual
hay que incluirlo dentro de comillas dobles.
Escrbelo entre el Sub Main() y el End Sub. Comprueba que cuando escribas Console y
el punto, se mostrarn las funciones que Console pone a nuestra disposicin, as como
una pequea ayuda, en modo de ToolTip, aunque a esto, o a algo parecido, ya estars
acostumbrado si has usado alguna vez el Visual Basic 5/6.
Bien, ya tenemos todo lo que necesitamos. Ahora tendremos que indicarle al "Entorno
Integrado" (IDE) que compile el proyecto y lo ejecute, y despus de compilarse el
proyecto, se deber mostrar el texto en una ventana de DOS (o consola).
(Guille, por qu me da la impresin de que no se va a mostrar nada? te gustara
preguntarme en este preciso momento)

Para salir de dudas, pulsa F5 (o a la flecha azul o botn con figura de PLAY de un
reproductor)

Pregunta: Que ha pasado?


Respuesta: Realmente se ha mostrado el mensaje en una ventana de consola...
(salvo que hayas cometido algn error, cosa que slo habr ocurrido si en lugar de estar
leyendo, te has dedicado a hacer tus propias pruebas, as que... HAZ EL FAVOR DE
ATENDER EN CLASE! ya tendrs tiempo de hacer tus propias pruebas!)
P: Entonces, por qu no se ve?
R: Porque despus de mostrarse se ha cerrado la ventana.
P: Cmo podemos ver el mensaje?
R: Ejecutando el EXE desde una ventana de DOS (o consola)
Pero lo mejor sera hacer que el programa se pare hasta que pulsemos la tecla Intro. Para
ello, aade la siguiente lnea a continuacin de la anterior:
Console.Read()
Pulsa de nuevo F5 y vers como esta vez si que se muestra el mensaje, adems de que la
ventana no se cierra hasta que pulses Intro.
Realmente puedes escribir lo que te de la gana y se ir mostrando en la ventana de
consola, pero hasta que pulses Intro no dejar de mostrarse. (Tampoco iba a ser el
primer ejemplo tan perfecto... que te crees!).
Pues sta es nuestra primera aplicacin con el Visual Basic .NET.
Realmente tan intil como poco prctica, pero... queda muy bien eso de saber que ya
somos capaces de crear nuestros propios ejecutables. La verdad es que a estas alturas (o
mejor dicho bajuras) del curso o tutorial no pretenders hacer cosas ms "sofisticadas",
entre otras razones, porque se supone que no sabes nada de nada... cmo? que si que
sabes... que ya has trabajado antes con el Visual Basic... que incluso te has ledo mi
Curso Bsico de VB... entonces... tendrs que esperar algunas entregas o unirte al grupo
de estudiantes noveles (o principiantes o novatos o... como quieras llamarlos) y esperar
a que los conceptos bsicos estn aclarados, ya que este curso es un curso de
iniciacin y si los que lo siguen ya supieran tanto como t, no sera un curso de
iniciacin... pues eso... (que borde (desagradable) eres algunas veces Guille!)
Olvidemos a los otros Guilles y sigamos...
Antes de continuar, vamos a conocer un poco sobre el entorno de desarrollo de Visual
Studio .NET, (que es el que se usa con Visual Basic .NET), para que podamos
configurar algunos aspectos, por ejemplo para indicar cmo se comportar el
compilador e intrprete sobre el cdigo que escribamos o para configurar las libreras
(assemblies) que se usarn en nuestras aplicaciones. Recuerda que Visual Basic .NET
usa una serie de libreras (de clases) con las funciones que necesitemos en cada
momento...

Te parece complicado? No te preocupes... ahora simplemente lee y pronto entenders,


pero por favor: lee! no intentes pasar todo este "rollo" por alto, ya que si no te enteras
de lo que te estoy contando, seguramente acabars preguntndomelo por e-mail y la
nica respuesta que recibirs por mi parte es que te vuelvas a leer toda esta parrafada...
gracias.
Por ejemplo, para poder mostrar un texto en la consola, necesitamos tener disponible la
librera en la cual est declarada la clase Console, para que podamos acceder a las
funciones que dicha clase pone a nuestra disposicin, (por ejemplo Write o Read); en
este caso la librera en la que est la clase Console es: System. System realmente es un
Namespace o espacio de nombres, no es una librera o assembly.

Que es un Namespace (o espacio de nombres)?


"Un espacio de nombres es un esquema lgico de nombres para tipos en el que un
nombre de tipo simple, como MiTipo, aparece precedido por un nombre jerrquico
separado por puntos. [...]"
As es como lo definen en el eBook de .NET Framework que mencion al principio.
Para que nos entendamos, un Namespace, (prefiero usar el nombre en ingls, ya que as
es como aparecer en el cdigo), es una forma de agrupar clases, funciones, tipos de
datos, etc. que estn relacionadas entre s. Por ejemplo, entre los Namespaces que
podemos encontrar en el .NET Framework encontramos uno con funciones relacionadas
con Visual Basic: Microsoft.VisualBasic. Si te fijas, Microsoft y VisualBasic estn
separados por un punto, esto significa que Microsoft a su vez es un Namespace que
contiene otros "espacios de nombres", tales como el mencionado VisualBasic, CSharp
y Win32 con el cual podemos acceder a eventos o manipular el registro del sistema...
Para saber que es lo que contiene un Namespace, simplemente escribe el nombre con un
punto y te mostrar una lista desplegable con los miembros que pertenecen a dicho
espacio de nombres.
Por regla general se deberan agrupar en un Namespace funciones o clases que estn
relacionadas entre s. De esta forma, ser ms fcil saber que estamos trabajando con
funciones relacionadas entre s.
Pero el que distintos espacios de nombres pertenezcan a un mismo Namespace, (viene
bien esto de usar la traduccin castellana e inglesa de una palabra, para no ser
redundante), no significa que todos estn dentro de la misma librera o assembly. Un
Namespace puede estar repartido en varios assemblies o libreras. Por otro lado, un
assembly, (o ensamblado), puede contener varios Namespaces.
Pero de esto no debes preocuparte, ya que el IDE de Visual Studio .NET se encarga de
"saber" en que assembly est el Namespace que necesitamos.

Que es un assembly (o ensamblado)?


"Un ensamblado es el bloque constructivo primario de una aplicacin de .NET
Framework. Se trata de una recopilacin de funcionalidad que se construye, versiona e
instala como una nica unidad de implementacin (como uno o ms archivos). [...]"
Para que nos entendamos, podramos decir que un assembly es una librera dinmica
(DLL) en la cual pueden existir distintos espacios de nombres. Aunque esto es
simplificar mucho, por ahora nos vale.
Un ensamblado o assembly puede estar formado por varios ficheros DLLs y EXEs, pero
lo ms importante es que todos los ensamblados contienen un manifiesto (o manifest),
gracias al cual se evitan muchos de los quebraderos de cabeza a los que Windows nos
tiene acostumbrados, al menos en lo referente a las distintas versiones de las libreras y
ejecutables, seguramente habrs odo hablar de las DLL Hell (o libreras del demonio)
expresin que se usa cuando hay incompatibilidad de versiones entre varias libreras que
estn relacionadas entre si.
Por ejemplo, supongamos que tenemos una librera DLL que en su primera versin
contena X funciones. Al tiempo, se crea la segunda versin de dicha librera en la que
se cambian algunas funciones y se aaden otras nuevas, para mejorar el rendimiento de
las funciones contenidas en esa librera se usa otra DLL que es usada por algunas de las
funciones contenidas en esa segunda versin. Esa otra librera puede ser una librera del
sistema, la cual a su vez se actualiza con nueva funcionalidad y puede que dicha
funcionalidad dependa a su vez de una tercera librera.
Resulta que instalamos un programa que usa las ltimas versiones de todas estas
libreras. Todo va bien, el programa funciona a las mil maravillas y nosotros estamos
"supersatisfechos" de ese programa que no se cuelga ni una sola vez... (quin habr
hecho ese programa tan maravilloso?, sin comentarios...)
Ahora llega a nuestras manos otra aplicacin que necesitamos instalar y la instalamos,
pero resulta que esa aplicacin usa la primera versin de nuestra famosa librera. Si el
programa de instalacin est bien hecho, no ocurrir nada malo, ya que al descubrir que
tenemos una versin ms reciente de la librera, deja la que ya est instalada. Probamos
el programilla de marras y todo funciona bien. Probamos el maravilloso programa
anterior y tambin funciona bien. Cual es el problema? Por ahora ninguno, pero
espera...
Despus instalamos un programa que usa una de las libreras del sistema u otra que
tambin usa nuestra "flamante" librera, pero ese programa se ha instalado de "mala
manera", bien porque el programa de instalacin sea una caca o bien porque
simplemente se ha instalado mal... como quiera que ha instalado una librera anterior a
la que nuestros dos maravillosos ejecutables usan, se puede dar el caso de que ninguno
de los dos programas funcionen correctamente... esto ocurri cuando sali el Internet
Explorer 4 y a ms de uno nos trajo de cabeza, aunque tambin ha ocurrido con otros

programas que no han tenido en cuenta a la hora de instalar que ya existe una versin
ms reciente de la librera. Por suerte, esto ya es menos comn que hace unos aos,
sobre todo si los programas de instalacin estn creados con el Windows Installer o
estamos usando el Windows 2000/XP.
Pero es que .NET mejora an esa "imposibilidad" de meter la pata ya que cada assembly
contiene un manifiesto en el cual se indica:
-el nombre y la versin del assembly,
-si este assembly depende de otros ensamblados, con lo cual se indica hasta la versin
de dichos ensamblados,
-los tipos expuestos por el assembly (clases, etc.),
-permisos de seguridad para los distintos tipos contenidos en el assembly.
Tambin se incluyen en los assemblies los datos del copyright, etc.
Nuevamente he de decirte que no debes preocuparte demasiado por esto, ya que es el
propio .NET el que se encarga de que todo funciones a las mil maravillas, o al menos
esa es la intencin.
La ventaja de los ensamblados es que "realmente" no necesitan de una instalacin y un
registro correcto en el registro del sistema de Windows, ya que es el "intrprete" de
.NET el que se encarga de hacer las comprobaciones cuando tiene que hacerlas. Por
tanto podramos distribuir una aplicacin sin necesidad de crear un programa de
instalacin. Pero, (por qu siempre hay un pero?), si la aplicacin usa ensamblados
compartidos, puede que sea necesario usar una instalacin.
Los ensamblados compartidos se pueden usar por varias aplicaciones diferentes y deben
estar "debidamente" instalados en el directorio asignado por el propio .NET Framework.
Ejemplo de ensamblados compartidos son los que definen las clases (tipos) usados por
el propio .NET Framework.
Para terminar esta primera entrega introductoria al mundo .NET vamos a ver algunos
conceptos que usaremos con bastante frecuencia en el resto de las entregas:
Nota:
Las palabras o conceptos estn en la pgina del glosario.

Y hasta aqu hemos llegado en esta primera entrega del Curso de iniciacin a la
programacin con Visual Basic .NET
Nos vemos.
Guillermo
Esta entrega ha sido escrita en varios periodos de tiempo, empezndose el da 8 de Septiembre y terminndose el 12 de Octubre de 2001,
aunque no he estado todo ese mes y pico escribiendo, que tampoco ese eso.

Breve Historia del Framework .NET


Rate This
4

WarNov

WarNov
Microsoft
MSFT
10,280
Recent Achievements 8 4 4
New Wiki Editor Ratings Board President Blog Commentator III
View Profile

4 Jul 2010 11:39 AM

Comments 4

Otra de las preguntas frecuentes que tengo por ah generalmente de


personas que an tienen que trabajar con desarrollos .net de legado
(versin < 4.0), es: cules son las ventajas de hacer el cambio, sobre
todo para tratar de convencer a sus lderes, para migrar.
Lastimosamente ocurre una situacin bastante particular, y es que
cada versin del Framework ha hecho su trabajo muy bien. As que
una vez se termina una aplicacin en determinada versin del
Framework, no se ve la necesidad de evolucionar. Pero luego nos
damos cuenta de que empezamos a limitar las implementaciones
avanzadas que podramos hacer a las que s tendramos acceso con la
ltima versin.
Es por esto que escribo este post, en el que hago un recorrido por la
historia del Framework para que podamos ver rpidamente de qu
nos estamos perdiendo, de acuerdo a la versin del Framework que
tengamos instalada.

.NET Framework 1.0:


o

Liberado el 13 de Febrero de 2002 para Win98, Me, NT 4.0,


2000 y XP. Su soporte termin en Julio de 2007 y el soporte
extendido en 2009.

.NET Framework 1.1


o

Publicada en Abril de 2003 junto con el segundo relase de


Visual Studio .NET (2003). Fue la primera versin incluida como
parte de un sistema operativo (Windows Server 2003). Su
soporte termin en octubre de 2008 y el extendido termina en
octubre de 2013 (as que mejor vayan pensando en migrarse).

Mejoras:

Los controles ASP.NET que en el 1.0 eran un Addon ahora


vienen nativos.

Seguridad mejorada con Code Access Security para


ASP.NET

Soporte nativo para ODBC y Oracle

Nacimiento del .NET Compact Framework

Soporte a IPV6

Cambios numerosos en las APIs.

.NET Framework 2.0


o

Liberado con Visual Studio 2005, SQL Server 2006 y BizTalk


2006. El primero en incluirse automticamente en las
instalaciones de SQL Server. Sin ningn Service Pack, fue la
ltima versin en soportar Win98 y Me. Luego vino el SP 2 y
con ste, fue la ltima versin en soportar Windows 2000.

Mejoras:

Los fabulosos Generics

Soporte para compilaciones de 64 bits

Numerosos cambios en las APIs

Integracin con SQL Server: CLR Integration

Inclusin del Runtime de .NET en aplicaciones nativas.

Nuevos y mejorados controles de ASP.NET

Controles de Datos con Data Binding automtico.

Soporte para Temas, Skins y Webparts.

Nacimiento del .NET Micro Framework.

Clases Parciales!

Tipos Nullable (por ejemplo enteros a los que se les


puede dar el valor de nulo)

Mtodos Annimos!

Iteradores

Tablas de Datos

2. .NET Framework 3.0


o

Conocido en sus comienzos como WinFX fue liberado en


noviembre de 2006 e incluy un nuevo conjunto de APIs
hechas en cdigo administrado que son parte integral de
Windows Vista y Windows Server 2008. Tambin est
disponible para Windows XP SP2 y Windows Server 2003. No
hubo mayores cambios arquitectnicos. De hecho, se usa el
runtime del Framework 2.0. Aqu tampoco hubo liberacin de
Compact Framework.

Mejoras:

Windows Presentation Foundation (conocido antes como


Avalon)

Windows Communication Foundation (conocido como


Indigo)

Windows Workflow Foundation

Windows CardSpace (Conocido antes como InfoCard).

.NET Framework 3.5

Vio la luz en noviembre de 2007 pero no es incluida en Windows


Server 2008. Modifica el CLR fundamental sobre el que se vena
trabajando (2.0) para agregarle los mtodos y propiedades requeridas
sobre todo para LINQ. Aqu s se liber el Compact Framework 3.5. El
cdigo fuente de esta versin fue parcialmente liberado para
conocimiento pblico con fines de depuracin.

Mejoras:
o

Nuevas caractersticas de lenguaje en C#3.0 y VB.NET 9.0

Soporte para rboles de expresiones y expresiones y mtodos


lambda

Extension Methods!

Tipos Annimos con inferencia esttica de tipo

LINQ!

Soporte a paginacin en ADO.NET

API de sincronizacin de ADO.NET

API de I/O asincrnico

PNRP Resolver (Peer-To-Peer)

Wrappers Administrados para instrumentacin y Active


Directory

Motores de WCF y WF mejorados que permiten el manejo de


POX y JSON en WCF y tambin exponer WF como servicio. De
esta manera, los servicios WCF se pueden mejorar con
persistencia nativa de WF!

Soporte para pipeline de HTTP y sindicacin de feeds.

ASP.NET Ajax ya no viene como un addon sino nativo.

Service Pack 1:
o

Liberado en agosto de 2008.

Performance mejorado para WPF en un 20-45%

Agregado el Entity Framework y los ADO.NET Data Services.

Agregados dos nuevos assemblies: System.Web.Abstraction y


System.Web.Routing: Esenciales para el funcionamiento del
MVC Framework. Incluy un conjunto de controles de
VisualBasic que se haban descontinuado como el Line y el
Shape, en un conjunto llamado Visual Basic Power Pack.
Viene con Windows 7 y Windows Server 2008 R2.

.NET Framework 3.5 SP1 Client Profile

Nace como una versin reducida del Framework con solo 28MB
de tamao, ideal para clientes inteligentes que no requieren
todos los 250 MB del Framework completo.

.NET Framework 4
o

Anunciado en Septiembre de 2008, con beta liberada el 20 de


mayo de 2009 y finalmente en produccin el 12 de Abril de
2010 es la versin actual del Framework y entre otras mejores
incluye:

Extensiones de Paralelismo: Mejoran la computacin


paralela orientada a procesadores Multi-Core o sistemas
distribuidos.

Parallel LINQ (PLINQ)

Task Parallel Library

Implicit Line Continuations para Visual Basic

Despacho dinmico: Asignacin dinmica de mtodos (tipo


JavaScript)

Parmetros nombrados

Parmetros opcionales

Soporte completo a IronPyton, IronRuby y F#.

Contratos de Cdigo

Aritmtica de precisin Arbitraria y Complejos gracias a


System.Numerics.BigInteger y System.Numerics.Complex.

En la mayora de casos (Excepto cuando se trata de pasar del 1.0 0


del 1.1 a cualquier otra versin del Framework) El paso es
transparente y la migracin no es muy compleja. Sin embargo es
claro que siempre hay temores en las migraciones y puede hacerse
complicado comenzar a disfrutar de las caractersticas de la ltima
versin. Sin embargo, nada como estar trabajando con ella, de
manera que ya vamos a tener disponibles todas las ltimas
caractersticas y sobretodo disfrutar de todas las nuevas tecnologas
que siempre se enfocan a la ltima versin.
As que si no tiene el Framework 4.0. Que est esperando?

Informacin general acerca de Common


Language Runtime
Visual Studio 2008
Otras versiones

Personas que lo han encontrado til: 2 de 4 Valorar este tema

Actualizacin: noviembre 2007


Los compiladores y las herramientas exponen la funcionalidad en tiempo de ejecucin y
permiten escribir cdigo con las ventajas que proporciona este entorno de ejecucin
administrado. El cdigo desarrollado con un compilador de lenguaje orientado al tiempo
de ejecucin se denomina cdigo administrado. Este cdigo se beneficia de
caractersticas como: la integracin entre lenguajes, el control de excepciones entre
lenguajes, la seguridad mejorada, la compatibilidad con la implementacin y las
versiones, un modelo simplificado de interaccin y servicios de creacin de perfiles y
depuracin.
Para permitir al motor en tiempo de ejecucin proporcionar servicios al cdigo
administrado, los compiladores de lenguajes deben emitir metadatos que describen los

tipos, los miembros y las referencias del cdigo. Los metadatos se almacenan con el
cdigo; cada archivo ejecutable portable (PE) de Common Language Runtime cargable
contiene metadatos. El motor en tiempo de ejecucin utiliza los metadatos para localizar
y cargar clases, colocar instancias en memoria, resolver invocaciones a mtodos,
generar cdigo nativo, exigir mecanismos de seguridad y establecer los lmites del
contexto en tiempo de ejecucin.
El tiempo de ejecucin controla automticamente la disposicin de los objetos y
administra las referencias a stos, liberndolos cuando ya no se utilizan. Los objetos
cuya duracin se administra de esta forma se denominan datos administrados. La
recoleccin de elementos no utilizados elimina prdidas de memoria as como otros
errores habituales de programacin. Con un cdigo administrado se pueden utilizar
datos administrados, datos no administrados o estos dos tipos de datos en una
aplicacin .NET. Framework. Como los compiladores de lenguajes proporcionan sus
propios tipos, como tipos primitivos, no siempre se sabe (o no es necesario saber) si los
datos se estn administrando.
Common Language Runtime facilita el diseo de los componentes y de las aplicaciones
cuyos objetos interactan entre lenguajes distintos. Los objetos escritos en lenguajes
diferentes pueden comunicarse entre s, lo que permite integrar sus comportamientos
de forma precisa. Por ejemplo, puede definir una clase y, a continuacin, utilizar un
lenguaje diferente para derivar una clase de la clase original o llamar a un mtodo de la
clase original. Tambin se puede pasar al mtodo de una clase una instancia de una
clase escrita en un lenguaje diferente. Esta integracin entre lenguajes diferentes es
posible porque los compiladores y las herramientas de lenguajes orientados al motor en
tiempo de ejecucin utilizan un sistema de tipos comn definido por el motor en tiempo
de ejecucin, y los lenguajes siguen las reglas en tiempo de ejecucin para definir
nuevos tipos, as como para crear, utilizar, almacenar y enlazar tipos.
Como parte de los metadatos, todos los componentes administrados contienen
informacin sobre los componentes y los recursos utilizados en su creacin. El motor en
tiempo de ejecucin utiliza esta informacin para garantizar que el componente o la
aplicacin contiene las versiones especificadas de todo lo necesario, por lo que hay
menos posibilidades de que la ejecucin del cdigo se interrumpa debido a una
dependencia inadecuada. La informacin de registro y los datos de estado ya no se
almacenan en el Registro, donde puede ser difcil establecer y mantener datos. En su
lugar, la informacin sobre tipos definidos por el usuario (y sus dependencias) se
almacena con el cdigo como metadatos y, de este modo, las tareas de rplica y
eliminacin de componentes es mucho menos complicada.
Las herramientas y los compiladores de lenguajes exponen la funcionalidad del motor en
tiempo de ejecucin de forma que resulte til e intuitiva para los programadores. Esto
significa que algunas caractersticas en tiempo de ejecucin pueden ser ms evidentes
en un entorno que en otro. El funcionamiento del motor en tiempo de ejecucin depende
de las herramientas y los compiladores utilizados. Por ejemplo, un programador de
Visual Basic observar que con Common Language Runtime, el lenguaje Visual Basic
contiene ms caractersticas orientadas a objetos que antes. Algunas de las ventajas del
motor en tiempo de ejecucin son:

Mejoras en el rendimiento.
Capacidad para utilizar fcilmente componentes desarrollados en otros
lenguajes.
Tipos extensibles que proporciona una biblioteca de clases
Nuevas caractersticas del lenguaje como herencia, interfaces y sobrecarga para
la programacin orientada a objetos; compatibilidad con el uso de subprocesos
libres que permite la creacin de multiprocesos; aplicaciones escalables;

compatibilidad con los atributos personalizados y el control de excepciones


estructurado.
Si utiliza Microsoft Visual C++ .NET, puede escribir cdigo administrado utilizando
Visual C++, que proporcionan las ventajas de un entorno de ejecucin administrado, as
como el acceso a caractersticas eficaces y a tipos de datos informativos que ya le
resultan familiares. Otras caractersticas del motor en tiempo de ejecucin son:

Integracin entre lenguajes diferentes y, en especial, herencia entre lenguajes.

Recoleccin de elementos no utilizados, que administra la duracin de los


objetos de modo que no es necesario el recuento de referencias.

Objetos autodescriptivos que hacen innecesario el Lenguaje de definicin de


interfaces (IDL).

Capacidad para compilar una vez y ejecutar cdigo en cualquier CPU y sistema
operativo que sea compatible con el motor en tiempo de ejecucin.

Tambin se puede escribir cdigo administrado en lenguaje C#, que proporciona las
siguientes ventajas:

Diseo completo orientado a objetos

Seguridad de tipos muy slida

Buena combinacin entre la simplicidad de Visual Basic y la eficacia de C++.

Recoleccin de elementos no utilizados.

Sintaxis y palabras clave similares en C y en C++.

Utilice delegados para una mayor seguridad y proteccin de tipos, en vez de


punteros a funciones. Los punteros a funciones estn disponibles mediante la
utilizacin de la palabra clave unsafe de C# y de la opcin /unsafe del
compilador de C# (Csc.exe) para datos y cdigo no administrados.

Ensamblados en Common Language


Runtime
.NET Framework 4
Otras versiones

Personas que lo han encontrado til: 1 de 1 Valorar este tema

Los ensamblados son los bloques de creacin de las aplicaciones .NET Framework;
constituyen la unidad fundamental de implementacin, control de versiones,
reutilizacin, mbitos de activacin y permisos de seguridad. Un ensamblado es una
coleccin de tipos y recursos compilados para funcionar en conjunto y formar una
unidad lgica de funcionalidad. Los ensamblados proporcionan a Common Language

Runtime la informacin necesaria para conocer las implementaciones de tipos. Para la


ejecucin, un tipo no existe fuera del contexto de un ensamblado.
Un ensamblado realiza las funciones siguientes:

Contiene el cdigo que ejecuta Common Language Runtime. El cdigo del


lenguaje intermedio de Microsoft (MSIL) de un archivo ejecutable portable (PE) no
se ejecuta si no tiene asociado un manifiesto de ensamblado. Hay que tener en
cuenta que cada ensamblado solo puede tener un punto de entrada (es decir,
DllMain, WinMain o Main).

Crea un lmite de seguridad. Un ensamblado es la unidad en la que se solicitan y


conceden los permisos. Para obtener ms informacin acerca de los lmites de
seguridad en lo que respecta a los ensamblados, vea Consideraciones de seguridad del
ensamblado.

Crea un lmite de tipos. La identidad de cada tipo incluye el nombre del


ensamblado en que reside. Por ello, un tipo MyType cargado en el mbito de un
ensamblado no es igual que un tipo denominado MyType cargado en el mbito de
otro ensamblado.

Crea un lmite de mbito de referencia. El manifiesto del ensamblado contiene


los metadatos del ensamblado que se utilizan para resolver tipos y satisfacer las
solicitudes de recursos. Especifica los tipos y recursos que se exponen fuera del
ensamblado. El manifiesto tambin enumera otros ensamblados de los que
depende.

Forma un lmite de versin. El ensamblado es la unidad versionable ms


pequea de Common Language Runtime; todos los tipos y recursos del mismo
ensamblado pertenecen a la misma versin. El manifiesto del ensamblado
describe las dependencias de versin que se especifiquen para los ensamblados
dependientes. Para obtener ms informacin sobre las versiones, vea Versiones del
ensamblado.

Crea una unidad de implementacin. Cuando se inicia una aplicacin, slo deben
estar presentes los ensamblados a los que llama la aplicacin inicialmente. Los
dems ensamblados, como los recursos de localizacin o los ensamblados que
contengan clases de utilidad, se pueden recuperar a peticin. De este modo, se
puede mantener la simplicidad y transparencia de las aplicaciones la primera vez
que se descargan. Para obtener ms informacin sobre cmo implementar
ensamblados, vea Implementar aplicaciones.

Es la unidad que permite la ejecucin en paralelo. Para obtener ms informacin


sobre cmo ejecutar varias versiones de un ensamblado, vea Ensamblados y ejecucin
en paralelo.

Los ensamblados pueden ser estticos o dinmicos. Los ensamblados estticos pueden
incluir tipos de .NET Framework (interfaces y clases), as como recursos para el
ensamblado (mapas de bits, archivos JPEG, archivos de recursos, etc.). Los ensamblados
estticos se almacenan en el disco, en archivos ejecutables portables PE. Tambin se
puede utilizar .NET Framework para crear ensamblados dinmicos, que se ejecutan
directamente desde la memoria y no se guardan en el disco antes de su ejecucin. Los
ensamblados dinmicos se pueden guardar en el disco una vez que se hayan ejecutado.
Existen varias formas de crear ensamblados. Puede utilizar herramientas de desarrollo,
como Visual Studio 2005, que haya empleado anteriormente para crear archivos .dll o
.exe. Puede utilizar las herramientas suministradas en Kit de desarrollo de software de
Windows (SDK) para generar ensamblados con mdulos creados en otros entornos de

programacin. Tambin puede utilizar las API de Common Language Runtime, como
Reflection.Emit, para crear ensamblados dinmicos.

Temas relacionados

Ttulo

Descripcin

Ventajas de los ensamblados

Explica cmo los ensamblados ayudan a solucionar


problemas de versiones y conflictos de DLL.

Contenido de los ensamblados

Describe los elementos que componen el ensamblado.

Manifiesto del ensamblado

Describe los datos incluidos en el manifiesto del


ensamblado y cmo se almacenan en los ensamblados.

Cach de ensamblados global

Describe la memoria cach global de ensamblados y cmo


se utiliza con los ensamblados.

Ensamblados con nombre

Describe las caractersticas de los ensamblados con

seguro

nombre seguro.

Consideraciones de seguridad

Explica cmo funciona la seguridad de los ensamblados.

sobre ensamblados
Versiones de los ensamblados

Ofrece informacin general sobre la directiva de versiones


de .NET Framework.

Colocacin de ensamblados

Explica dnde ubicar los ensamblados.

ensamblados y ejecucin

Proporciona informacin general sobre la utilizacin de

simultnea

varias versiones del motor en tiempo de ejecucin o de un


ensamblado simultneamente.

Programar con ensamblados

Describe cmo crear, firmar y establecer atributos en los


ensamblados.

Emitir mtodos y ensamblados

Describe la creacin de ensamblados dinmicos.

dinmicos
Cmo el motor en tiempo de

Describe cmo resuelve .NET Framework las referencias de

ejecucin ubica ensamblados

ensamblado en tiempo de ejecucin.

Referencia
System.Reflection.Assembly

S-ar putea să vă placă și