Sei sulla pagina 1di 12

Curso Visual Basic .

NET Introductorio
Captulo 1
FAGDUT 1 CCI
Versin 4.0 2005-13

CURSO VISUAL BASIC .NET INTRODUCTORIO


Dictado por
Horacio Peafiel






Mdulo 1: El Framework de .NET 4.0


Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 2 CCI
Versin 4.0 2005-13
MDULO 1 INTRODUCCIN AL FRAMEWORK DE .NET 2.0


OBJETIVOS

En este mdulo presentaremos la plataforma .NET. Aprenderemos acerca del Framework de .NET y el
soporte del lenguaje Visual Basic que la misma provee.

Microsoft Visual Basic 2010 es la ltima actualizacin a la lnea de producto Visual Basic. Como
desarrolladores Visual Basic, encontraremos til comprender los componentes que proveen las bases para la
plataforma .NET.

Para finalizar, veremos la estructura de una aplicacin .NET simple de consola, y veremos como compilarla y
ejecutarla.

Luego de completar este mdulo, estaremos en condiciones de:

Diferenciar los elementos principales de la plataforma .NET.
Describir el Framework de .NET y sus componentes, as como las diferencias entre las distintas versiones del
mismo.
Comprender la importancia del Common Language Runtime como plataforma neutral para nuestras
aplicaciones.
Crear, compilar y ejecutar una aplicacin simple.


1.1 LA PLATAFORMA MICROSOFT .NET

La plataforma .NET es importante para nosotros ya que el objetivo de la misma es simplificar el desarrollo de
aplicaciones para las distintas plataformas con que contamos hoy en da, brindndonos todas las herramientas y
tecnologas que necesitamos para construir las mismas.

La plataforma .NET nos proporciona:

Un modelo de programacin independiente del lenguaje y consistente a lo largo de las distintas capas de la
aplicacin.
Interoperabilidad entre tecnologas.
Una migracin sencilla desde tecnologas existentes.
Completo soporte de los estndares de Internet, incluyendo HTTP, XML, SOAP, WSDL, etc.


Antes de .NET

Si echamos un vistazo a los modelos de programacin previos a .NET, haciendo hincapi en la plataforma
Microsoft Windows, observamos las siguientes dificultades y problemas a los que como programadores estbamos
obligados a enfrentar:

1. Una diversidad de Lenguajes Incompatibles entre s, cada uno con sus herramientas de desarrollo y
bibliotecas de ejecucin.
2. El Infierno de las DLLs (DLL Hell); esto nos ocurra tanto si programbamos aplicaciones de escritorio para
Windows tanto como para otros tipos de aplicaciones, como ser para Web (Internet/Intranet).
3. La falta de un modelo de gestin de memoria que proporcione servicios de alocacin, administracin y
liberacin de la misma.
4. Los lenguajes previos a .NET no conformaban con los estndares de Internet, ni con la Programacin
Orientada a Objetos clsica (Clases, Herencia, Polimorfismo, etc).
Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 3 CCI
Versin 4.0 2005-13
La solucin: .NET.

La tecnologa .NET aparece como una respuesta de Microsoft a los puntos arriba citados, y lo hace de la
siguiente forma:

1. En .NET hay compatibilidad de cdigo y binaria entre todos los lenguajes soportados. Es ms, todos esos
lenguajes comparten un Unico Mdulo de Tiempo de Ejecucin (Runtime). Los compiladores modermos
de .NET ya no compilan a Cdigo Nativo o a un Cdigo Intermedio que deba ser interpretado, sino que se
genera un nuevo lenguaje, llamado MSIL (Microsoft Intermediate Language), que es entendido por el
Motor de Ejecucin de Lenguaje Comn (CLR). Nuevamente, debemos recalcar que MSIL no es un
lenguaje intermedio comn sino que es compilado por demanda a cdigo mquina por el mismo mdulo de
runtime.
2. .NET proporciona un modelo de ejecucin que soporta la Ejecucin Lado a Lado. De esta manera, si la
versin 1.0 de mi aplicacin hace referencia a una DLL versin 1.0, y en cierto momento se pasa a la versin
2.0 de la aplicacin, la versin 2.0 de la DLL no har conflicto alguno con la 1.0. Esto es un gran avance para
todas las aplicaciones que podemos desarrollar en .NET.
3. El Framework de .NET contiene un objeto especial destinado al manejo de memoria administrada ( llamamos
Ejecucin Administrada a la ejecucin dentro del entorno del CLR), llamado Garbage Collector (GC). El
Garbage Collector peridicamente recolecta la memoria no utilizada (referenciada), y la libera en forma
organizada. Asimismo, es el encargado de alocar memoria cuando creamos nuestros objetos, de esta forma
aislando al programador del funcionamiento interno de la gestin de memoria de Windows.
4. Los lenguajes que corren en .NET conforman con la Programacin Orientada a Objetos (POO) Clsica,
es decir, tenemos Clases, Encapsulamiento, Herencia, Polimorfismo, Clases Abstarctas, Interfases,
Delegados, Eventos, etc.


Los Componentes de .NET

La plataforma .NET es un conjunto de tecnologas diseadas para transformar a nuestras aplicaciones (ya
sea para la Web, aplicaciones de Escritorio, Servicios Web, Aplicaciones para Celulares, etc), en un entorno
integrado donde podemos desarrollarlas y mantenerlas.

Las principales tecnologas que componen la plataforma .NET incluyen:

Framework de .NET

El Framework de .NET est basado en el runtime comn independiente del lenguaje (CLR). Este runtime
provee un conjunto comn de servicios que no dependen del lenguaje utilizado para programar nuestras
aplicaciones. Estos servicios proveen bloques clave de construccin para nuestras aplicaciones de cualquier
tipo, cubriendo las distintas capas de las mismas.

Microsoft Visual Basic, Microsoft Visual C++, y otros lenguajes de programacin han sido actualizados para
tomar ventaja de estos servicios, a la vez que contamos con toda una familia de nuevos lenguajes que toman
ventaja de .NET como ser: C#(se lee C Sharp), F#(F Sharp), entre otros. Tambin los lenguajes de
terceras partes diseados para el Framework de .NET tambin tienen acceso a estos servicios.

Nota: Debido al runtime de lenguaje comn, todos los lenguajes .NET utilizarn los mismos archivos de
runtime. Esto significa que no hay necesidad de distribuir libreras especficas de runtime para Visual Basic o
para C#, ya que el runtime de .NET se instala junto con el Framework.

Visual Studio 2010

Visual Studio .NET, en su versin 2010 correspondiente al Framework de .NET 4.0, provee un entorno de
desarrollo para construir aplicaciones para el Framework de .NET. Nos brinda tecnologas que simplifican la
creacin, distribucin, y evolucin de aplicaciones Windows y Web seguras y escalables.

A continuacin, veremos en mayor detalle el primero de estos componentes, el Framework de .NET, y en el
Mdulo 2 analizaremos a su entorno de desarrollo (IDE) Visual Studio 2010:

Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 4 CCI
Versin 4.0 2005-13
1.2 - EL FRAMEWORK DE .NET

INTRODUCCIN AL FRAMEWORK DE .NET

El Framework de .Net nos brinda todos los servicios comunes requeridos para correr nuestras aplicaciones
Visual Basic .NET. Podemos verlo como un conjunto de componentes en una arquitectura en capas, donde en un
extremo tenemos al sistema operativo Microsoft Windows, y en el otro nuestras aplicaciones. En el medio, entonces,
tendremos un sistema de componentes que interactan entre s y exponen servicios a ser usados.

La siguiente figura nos muestra un esquema resumido de esta arquitectura:



















El Common Language Runtime (CLR)

Como base, tenemos el componente de runtime de .NET corriendo sobre el sistema operativo Windows.
Esta interaccin es de vital importancia, ya que de esta forma el CLR es el nico que entiende a la interfaz de
programacin de bajo nivel de Windows (llamada comnmente Win32). Win32 desde las versiones iniciales deMultit
Windows fue pensada para ser usada desde lenguajes de bajo nivel como C. El "Common Language Runtime
asla a las capas superiores de esta API, a la vez que proporciona un conjunto avanzado de servicios que, si bien
son comnmente necesarios en las aplicaciones modernas, suelen ser de muy difcil programacin en bajo nivel:

Un sistema independiente de tipos
Manejo automtico de la memoria
Administracin de Procesos
Multitarea y Procesamiento en Paralelo
Acceso a Entrada y Salida (I/O)
Manejo de Excepciones
Etc

El CLR es el centro de ejecucin del Framework de .NET. Cumple con el objetivo principal que es ser la
interfaz comn a todos los lenguajes, entre las aplicaciones y el sistema operativo (Microsoft Windows). Esto se ve
claramente en el momento de compilar una aplicacin .NET. Tanto el compilador de VB.NET como el de C#(y
tambin el de cualquier otro lenguaje compatible), generan mayormente el mismo cdigo intermedio MSIL como
salida, lo que produce cdigo objeto prcticamente idntico a pesar de tener distinto cdigo fuente. Esta caracterstica
permite la interaccin de componentes programados en diversos lenguajes; por ejemplo, podemos usar una biblioteca
de terceras partes que fuera desarrollada en C#y utilizarla sin ningn cambio en una aplicacin codificada en Visual
Basic .NET.



VB C# C++ F#
Biblioteca de Clases
Common Language Runtime (CLR)
V
i
s
u
a
l

S
t
u
d
i
o

2
0
1
0

Nuestra Aplicacin
Sistema Operati vo (Win32)
Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 5 CCI
Versin 4.0 2005-13
La Biblioteca de Clases

A pesar de que el CLR nos expone una gran cantidad de servicios de bajo nivel, an nos queda ensamblar
todo y accederlo desde nuestro lenguaje de eleccin. Y tanto es as que para mantener el modelo de capas
anteriormente citado, se requiere respetar el siguiente postulado:

En .NET, ningn lenguaje acta directamente sobre el Sistema Operativo, y tampoco siquiera sobre el
Runtime de Lenguaje Comn (CLR), sino que la nica forma de hacer llamadas es mediante una serie de objetos e
interfaces que llamamos comnmente la Biblioteca de Clases de .NET.

Pero esto no nos sera prctico si tuviramos una Biblioteca de Clases para cada lenguaje, por lo que
debemos separar el lenguaje de su runtime. Por ejemplo, si una aplicacin en Visual Basic .NET requiere sumar dos
variables y mostrarlas por pantalla, no es necesario llamar a la API Win32 para reservar memoria y acceder a la E/S,
sino que contamos con objetos que encapsulan este comportamiento deseado. Es aqu donde aparece el segundo
postulado de importancia:

La Biblioteca de Clases de .NET conforma con la Programacin Orientada a Objetos, es decir, en .NET
TODO ES UN OBJETO

Es decir, sern objetos en Visual Basic .NET o en C#, tanto cada una de las variables a sumar, como el
resultado, la consola donde se mostrar el resultado, etc. La Orientacin a Objetos completa de los lenguajes es
una condicin para ser aceptado por el CLR, y por lo tanto todo compilador tiene que poder compilar estos objetos a
lenguaje intermedio.

Como veremos ms adelante, la Biblioteca de Clases de .NET en su versin 4.0 consta de ms de 2000
distintas clases, interfaces y otras construcciones. Por lo tanto se hizo necesario organizarlas de alguna manera, y es
as que se ide el mecanismo de Espacios de Nombre (en ingls Namespaces) . Los Espacios de Nombre
agrupan clases e interfaces formando una jerarqua. Por ejemplo, si queremos acceder al objeto que nos muestra una
ventana de Aceptar, tendremos esta ruta jerrquica:

Syst em
Syst em. Wi ndows
Syst em. Wi ndows. For ms
Syst em. Wi ndows. For ms. MessageBox


Esto permite la coexistencia de distintas clases con el mismo nombre pero en distintos Espacios de Nombre.


Algunos Espacios de Nombres en la Biblioteca de Clases


















System
System.Security System.Runtime.
Interopservices
System.Net System.Text System.Globalization
System.Reflection
System.Threading System.Configuration
System.IO System.Diagnostics System.Collections
Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 6 CCI
Versin 4.0 2005-13
Espacio de Nombres Descripcin
Syst em Las cl ases cent r al es . NET y t odos l os t i pos bsi cos de dat os.
Syst em. Net Ti pos par a envi ar y r eci bi r paquet es de r ed usando Socket s.
Syst em. Ref l ect i on Ti pos par a r ef l ej ar ensambl ados y t i pos exi st ent es.
Syst em. I O Cl ases que pr opor ci onan acceso a l os at r i but os y cont eni do de l os
ar chi vos.
Syst em. Secur i t y Cl ases par a dar sopor t e a l a segur i dad.
Syst em. Text Cl ases par a t r abaj ar con cadenas de car act er es y t ext o.
Syst em. Thr eadi ng Ti pos par a cont r ol ar l as capaci dades de subpr ocesami ent o
ml t i pl e.
Syst em. Di agnost i cs Cl ases par a ayudar a l as pr uebas y depur aci n.
Syst em. Runt i me. I nt er opser vi ces Cl ases par a t r abaj ar con component es COM no admi ni st r ados y l a
API de Wi n32.
Syst em. Gl obal i zat i on Ti pos par a gener ar apl i caci ones en var i os l enguaj es.
Syst em. Conf i gur at i on Cl ases par a acceder a l os val or es de conf i gur aci n del Fr amewor k
de . Net .
Syst em. Col l ect i ons Cl ases par a t r abaj ar con dat os de t i po col ecci n.



Los Lenguajes de Programacin en .NET

La Plataforma .NET es lenguaje-neutral todos los servicios comunes necesarios para ejecutar programas
son provistos por el Framework de .NET. El Framework de .NET provee soporte para mltiples lenguajes de
programacin, incluyendo lenguajes de Microsoft y de terceras partes.


Lenguaje Descripcin
Vi sual Basi c
. NET
Vi sual Basi c . Net pr opor ci ona i nnovaci ones subst anci al es al
l enguaj e con r espect o a ver si ones pr evi as de Vi sual Basi c. Vi sual
Basi c . NET sopor t a her enci a, const r uct or es, pol i mor f i smo,
sobr ecar ga, excepci ones est r uct ur adas, un chequeo de t i pos ms
est r i ct o, hi l os de ej ecuci n, et c.
Vi sual C# C# f ue di seado par a l a pl at af or ma . NET y es el pr i mer l enguaj e
or i ent ado a component es de l a f ami l i a de C y C++. Puede ser
ut i l i zado par a const r ui r pgi nas ASP. NET. Al gunas de l as f unci ones
de est e l enguaj e i ncl uyen cl ases, i nt er f ases, del egados, boxi ng y
unboxi ng, espaci os de nombr e, pr opi edades, i ndexador es, event os,
sobr ecar ga de oper ador es, ver si oni ng, at r i but os, cdi go no segur o
( unsaf e) , y gener aci n de document aci n XML. Con C# no necesi t amos
encabezados y def i ni ci ones especi al es de i nt er f ases ( I DL) que er an
t an comunes en COM.
Ext ensi ones de
C++
Vi sual C++ si gue si endo l a mej or opci n par a el desar r ol l o de
apl i cai ones nat i vas ( apl i caci ones que i nt er act an di r ect ament e en
f or ma bi nar i a sobr e el Si st ema Oper at i vo, si n pasar por el CLR) , a
l a vez que i ncor por a l as l l amadas Ext ensi ones Admi ni st r adas.
Est as ext ensi ones al l enguaj e per mi t en i nt er oper ar con cdi go . NET
admi ni st r ado, per mi t i endo un t i po de pr ogr amaci n mi xt o.
F# F# es un l enguaj e no pr ocedi ment al , del t i po de l os Lenguaj es
Funci onal es. En est e t i po de pr ogr amaci n, t oda l a apl i caci n se
compone de si st emas de f unci ones que i nt er act an ent r e s .
Lenguaj es de
Ter cer as Par t es
Var i os l enguaj es de t er cer as par t es sopor t an l a pl at af or ma . NET.
Est os l enguaj es i ncl uyen: J avaScr i pt , COBOL, Pascal , Ei f f el ,
Haskel l , ML, Ober on, Per l , Pyt hon, Scheme, y Smal l Tal k.






Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 7 CCI
Versin 4.0 2005-13
1.3 LAS VERSIONES DEL FRAMEWORK DE .NET

.NET como producto aparece all en el ao 2002, con su primera versin 1.0. A partir de entonces, pas por
una gran cantidad de cambios y agregados, muchas veces tambin asociados a nuevas versiones de Windows o de
algn servidor corporativo de Microsoft.

En la siguiente tabla detallamos cada versin del Framework de .NET, as como la propia versin de Visual
Studio que la acompa:


Versin de
.NET
Framework
Versin de
Visual
Studio
Detalles
1. 0 2002 La pr i mer a ver si n l anzada al mer cado. Cont aba con l a
mayor a de l os l enguaj es act ual ment e sopor t ados, capaci dad
de desar r ol l o de Ser vi ci os Web y ASP. NET.
1. 1 2003 En est a ver si n se cor r i gi er on var i os bugs i mpor t ant es, y
f ue l a que ms se ut i l i z. Apar eci menos de un ao despus
de l a 1. 0.
2. 0 2005 Est a ver si n f ue un cambi o r adi cal en muchas t ecnol og as,
como ser ASP. NET. Se mej or not abl ement e l a Bi bl i ot eca de
Cl ases, con el agr egado de Genr i cos, cambi os i mpor t ant es
en ADO. NET, et c. Tambi n se r edi sear on muchas f unci ones
cl aves de Vi sual St udi o.
3. 0 N/ A Apar ece j unt o con el pr i mer r el ase de Wi ndows Vi st a, per o
no se act ual i z Vi sual St udi o. Los gr andes cambi os
i nt r oduci dos por el Fr amewor k 3. 0 f uer on pr i nci pal ment e l as
si gui ent es nuevas t ecnol og as:
Windows Presentation Foundation (WPF): una nueva
tecnologa para desarrollo de interfaces de usuario
en aplicaciones de escritorio. WPF aprovecha el nuevo
hardware de video, permitiendo crear aplicaciones que
involucren interfaces ms elaboradas que incluyan
video, sonido, grficos vectorizados, etc.
Windows Communication Foundation (WCF): esta API
unific las distintas tecnologas disponibles para el
desarrollo de aplicaciones distribuidas, como ser:
Servicios Web Clsicos, .NET Remoting, etc.
Windows Workflow Foundation (WF): permite la
implementacin de Flujos de Trabajo en una
aplicacin. Si bien esta tecnologa no tuvo tanta
aceptacin como las otras dos, an se mantiene en las
ltimas versiones, y puede ser til en casos ms bien
puntuales.
3. 5 2008 Se l anz j unt o con Vi sual St udi o 2008, con agr egados
menor es, y l a pr esent aci n del nuevo ADO. NET Ent i t y
Fr amewor k.
3. 5 SP1 2008 SP1 Est a ver si n pr i nci pal ment e cor r i ge al gunos bugs en
Vi sual St udi o 2008 como en el Fr amewor k de . NET 3. 5.
4. 0 2010 Ver si n mayor . Se agr ega sopor t e de ASP. NET MVC 2. 0, Ent i t y
Fr amewor k 4. 0, sopor t e par a Si l ver l i ght , et c.
4. 5 2012 Sopor t e par a apl i caci ones que ut i l i cen l a i nt er f az Met r o
( Wi ndows 8, Sur f ace, Wi ndows Phone) , a l a vez que se
r enueva l a i nt er f az de usuar i o de Vi sual St udi o 2012.





Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 8 CCI
Versin 4.0 2005-13
1.4 TIPOS DE APLICACIONES .NET

En su versin 4.0, y en conjunto con el entorno de Visual Studio 2010, los desarrolladores tienen a su
disposicin la creacin de un gran abanico de opciones en cuanto a los tipos de proyectos:

Aplicaciones de consola: la tpica aplicacin en modo texto, con entrada por teclado y salida a una ventana
de comandos (tipo MS-DOS).

Aplicaciones clsicas de ventana (Windows Forms): estas aplicaciones fueron las clsicas en Visual
Basic hasta la versin 6.0.

Aplicaciones de interfaz avanzada de escritorio (Windows Presentation Foundation WPF): son una
alternativa a Windows Forms, permitiendo la creacin de aplicaciones de escritorio con una interfaz de
usuario ms avanzada que utilice los recursos disponibles por el nuevo hardware de video y multimedia.

Aplicaciones clsicas para web (ASP.NET Web Forms): reemplaza al antiguo ASP clsico, principalmente
para el desarrollo de aplicaciones y sitios web.

Aplicaciones web usando el modelo MVC (ASP.NET Model-View-Controller MVC): implementacin del
Patrn de Diseo MVC (Model-View-Controller), es una alternativa a ASP.NET Web Forms pero, a diferencia
de WPF con Windows Forms, no lo reemplaza completamente sino que lo complementa, brindando el soporte
de una arquitectura donde el llamado Separation of Concerns permita el desarrollo conjunto de equipos
heterogneos.

Servicios Web clsicos y avanzados (Windows Communication Foundation WCF): permiten
desarrollar distintas variantes de los ya clsicos Servicios Web, implementndolos de distintas formas,
soportando varios protocolos de transportes, y mediante un conjunto de objetos unificados.

Servicios Windows: este tipo de desarrollo acerca a .NET una caracterstica solamente disponible
anteriormente en lenguajes de ms bajo nivel como C++. Un Servicio Windows es una aplicacin que se
ejecuta sin interfaz de usuario alguna, y corre en modo background en el sistema operativo.

Aplicaciones de Flujo de Trabajo (Windows Workflow Foundation): desarrollo de componentes que
soporten el concepto de Flujo de trabajo (Workflow).

Aplicaciones de Interfaz de Aplicacin RIA (Rich Internet Apps Silverlight): Este tipo de aplicaciones
toma ventaja de los dos principales modelos de desarrollo: Windows de Escritorio y Web, a la vez que son
soportadas por distintas plataformas compatibles no-Windows.


Y a partir de la actualizacin ms reciente del Framework de .NET 4.5, junto con el lanzamiento de Windows
8, tenemos:

Aplicaciones para interfaz Windows 8 y Surface (anteriormente llamada Metro ): soporte para las
nuevas tecnologas soportadas por Windows 8, con su nueva interfaz de usuario Metro, as como
aplicaciones para tablets como Microsoft Surface.
Aplicaciones para celulares (Windows Phone 7 y 8): este tipo de aplicaciones son destinadas a los
llamados SmartPhones, a la par de otras tecnologas de desarrollo para celulares.


Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 9 CCI
Versin 4.0 2005-13
1.5 ENSAMBLADOS y MSIL

Los ensamblados son las unidades 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 creados para funcionar en conjunto y formar una unidad lgica
de funcionalidad. Los ensamblados proporcionan al Common Language Runtime la informacin necesaria para
conocer las implementaciones de tipos. Para el motor en tiempo de ejecucin, un tipo no existe si no es en el contexto
de un ensamblado. A nivel fsico, los encontramos en los archivos .EXE y .DLL que generan los compiladores de
.NET.

Nota: en .NET, y debido a que sus lenguajes soportan Orientacin a Objeto, podemos hacer el paralelo tipo
clase. Una clase en POO identifica a una plantilla mediante la cual podemos generar objetos. En programacin
procedural, un tipo es una plantilla a partir de la cual podemos instanciar variables. El .NET son casi sinnimos, y
eso es debido a que en el Framework de .NET todo es un objeto, incluso las variables .


Ventajas de los ensamblados

Los ensamblados fueron diseados para simplificar la implementacin de las aplicaciones y para solucionar
los posibles problemas de versiones de las aplicaciones basadas en componentes.

El usuario final y los programadores conocen perfectamente los problemas de versiones e implementacin
que surgen hoy en da con los sistemas basados en componentes. Algunos usuarios finales se han visto frustrados al
instalar una nueva aplicacin en su equipo y ver cmo deja de funcionar otra aplicacin que ya tenan instalada.
Muchos programadores han estado horas y horas intentando mantener la coherencia de todas las entradas del
Registro necesarias para activar una clase COM.

Nota: COM (sigla en ingls de Component Object Model es una tecnologa anterior a .NET que permita la
construccin de aplicaciones distribuidas. Hoy en da, se sigue utilizando en aplicaciones desarrolladas en lenguajes
no administrados, como ser C++.

Con el uso de ensamblados en .NET Framework se han resuelto muchos problemas de implementacin.
Debido a que son componentes autodescriptivos que no dependen de las entradas del Registro, los ensamblados
permiten instalar las aplicaciones sin problemas. Tambin simplifican la desinstalacin y replicacin de las
aplicaciones.


Problemas de versiones

Actualmente existen dos problemas de versiones con las aplicaciones de Win32:

No se pueden expresar las reglas de las versiones entre las partes de una aplicacin y que las imponga el
sistema operativo. El planteamiento actual se basa en la compatibilidad con versiones anteriores, que a
menudo es difcil de garantizar. Las definiciones de interfaz deben ser estticas, una vez publicadas, y un
solo fragmento de cdigo debe mantener la compatibilidad con las versiones anteriores. Adems, el cdigo
normalmente se disea de manera que en cualquier momento pueda existir y ejecutarse una sola versin del
mismo en un equipo.

No hay ninguna forma de mantener la coherencia entre conjuntos de componentes integrados y el conjunto
que est presente en tiempo de ejecucin.

Cuando estos dos problemas de versiones se combinan, generan conflictos de DLL que consisten en que, al
instalar una aplicacin, se puede interrumpir accidentalmente otra aplicacin existente porque un componente de
software o una DLL instalados no eran totalmente compatibles con la versin anterior. Cuando se llega a esta
situacin, el sistema no tiene forma de diagnosticar y reparar el problema.


Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 10 CCI
Versin 4.0 2005-13
El fin de los conflictos de DLL

En MicrosoftWindows2000 se dieron los primeros pasos para erradicar estos problemas. Incluye dos
funciones que permiten solucionar parcialmente los conflictos de DLL:

Windows 2000 permite crear aplicaciones cliente donde los archivos .dll dependientes se sitan en el mismo
directorio que el archivo .exe de la aplicacin. Windows 2000 se puede configurar para buscar un
componente en el directorio donde se encuentra el archivo .exe antes de comprobar la ruta de acceso
completa o buscar la ruta de acceso normal. De esta manera, los componentes pueden ser independientes
de los componentes ya instalados y utilizados por otras aplicaciones.

Windows 2000 bloquea los archivos que se incluyen en el sistema operativo en el directorio System32 de
manera que no se puedan reemplazar accidentalmente al instalar aplicaciones.


El uso de los ensamblados de Common Language Runtime es un paso ms hacia la solucin completa de los
conflictos de DLL.


La solucin de los ensamblados

Con el objetivo de solucionar los problemas de las versiones, as como los problemas restantes que
desembocan en conflictos de DLL, el motor en tiempo de ejecucin utiliza ensamblados para los siguientes fines:

Permitir a los programadores especificar reglas de versiones entre distintos componentes de software.

Proporcionar la infraestructura para que se cumplan las reglas de versiones.

Proporcionar la infraestructura que permita que varias versiones de un componente se puedan ejecutar
simultneamente, lo que se conoce como ejecucin simultnea o lado a lado.


1.6 NUESTRO PRIMER PROGRAMA EN VISUAL BASIC 2010

Un programa Visual Basic 2010 tiene bloques de construccin estndar. El cdigo de Visual Basic se
almacena en los mdulos del proyecto. Los proyectos se componen de archivos, que son compilados en las
aplicaciones. A diferencia de anteriores versiones de Visual Basic, todos los archivos de cdigo Visual Basic .NET
poseen la misma extensin: .VB . Esto se debe principalmente a la naturaleza Orientada a Objetos de las
aplicaciones en este entorno.

Luego de ser compilado a cdigo MSIL, nuestro programa estar en condiciones de ser procesado por el
CLR, que lo traducir finalmente en cdigo mquina. Esto es as para todos los lenguajes que soporta .NET, con slo
unas pocas excepciones cuando la aplicacin utiliza servicios especficos para cada lenguaje (como ser, en Visual
Basic 2010, las funciones de compatibilidad con Visual Basic 6.0).


Codificando Hola mundo!

Como es comn en un curso de programacin, comenzaremos programando el programa ms simple: un
programa Visual Basic 2010 que, dado un nombre como parmetro por lnea de comandos (por ej. Horacio), nos
salude con un Hola Horacio!. Esta aplicacin, a pesar de ser muy sencilla, contiene los elementos bsicos de todo
programa VB, como ser un Procedimiento Main(), paso de argumentos por lnea de comandos, la utilizacin de la
clase Console, y el manejo bsico de arrays.

Nota: este ejercicio es el correspondiente a la Prctica del Mdulo 01 - Ejercicio 1. En ese documento se detallan
los pasos a seguir para completar el programa, compilarlo y ejecutarlo. Sin embargo, a continuacin se incluye una
breve explicacin del cdigo Visual Basic para esta aplicacin de Consola.

Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 11 CCI
Versin 4.0 2005-13
El cdigo de nuestra aplicacin ser el siguiente. Utilizaremos el editor de texto de Visual Studio 2010 para
ingresarlo. Una vez tipeado el programa, lo guardaremos en nuestra Solucin Visual Studio 2010, llamada
HolaMundo . El archivo que contiene el cdigo se llamar Principal.vb (los nmeros de lnea se colocaron
solamente como referencia, no deben ser tipeados junto con el cdigo).


1: I mpor t s Syst em
2: Publ i c Cl ass Pr i nci pal
3: Publ i c Shar ed Sub Mai n( ByVal ar gs( ) As St r i ng)
4: I f ar gs. Lengt h < 1 Then
5: Consol e. Wr i t eLi ne( _
6: " Debe i ngr esar un nombr e como par met r o" )
7: El se
8: Consol e. Wr i t eLi ne( " Hol a " + ar gs( 0) )
9: End I f
10: Consol e. ReadKey( )
11: End Sub
12: End Cl ass

Linea 1: Imports System

En Visual Basic 2010, la clusula Imports nos permite declarar ciertos nombres como definidos para el
programa. En este caso, importamos el Espacio de Nombres llamado System, que contiene entre otras la clase
Console. De esta manera, nos evitaremos tener que tipear el Nombre Completo cada vez que utilizamos la clase,
como ser System.Console.WriteLine(), etc.

Dentro de cada archivo .vb, puede haber cero, una o ms de una sentencia Imports.

Lnea 2: Public Class Principal

Aqu se define una Clase (Class), que es el objeto principal a la hora de construir aplicaciones orientadas a
objetos. En nuestro caso, se define una Clase llamada Principal, que slo contendr un mtodo, llamado Main. Los
mtodos en Programacin Orientada a Objetos (POO) contienen el comportamiento (procedimientos y funciones) del
objeto que representa la clase. Todo lo que est a continuacin de la sentencia Class, y hasta que finalice la
definicin de la clase con End Class, pertenecer al mbito de la clase Principal.

Lnea 3: Public Shared Sub Main(ByVal args() As String)

Aqu declaramos nuestro mtodo Main. Este mtodo es especial dentro de un aplicacin .NET, ya que es el
primero en ejecutarse. Puede ser un procedimiento Sub o una funcin Function; en este ltimo caso podemos
devolver al sistema operativo un valor numrico que podra llegar a representar un cdigo de ejecucin (0 =Ejecucin
Exitosa; -1 =Error en Ejecucin; etc). Asimismo, al mtodo Main podemos pasarle argumentos o no, y en el primer
caso, tomar de la lnea de comandos los distintos parmetros que le pasemos y los har visibles desde el mtodo
main por medio del Array llamado args .

Otra caracterstica especial que tiene el mtodo Main, es que siempre debemos aplicarle el atributo Shared,
hacindolo as visible para el CLR que lo ejecuta sin instanciar un objeto del tipo Principal.

Lnea 4: If args.Length < 1 Then

Aqu controlamos que el Array llamado Args, el cual contiene los argumentos de lnea de comando pasados
a la aplicacin, tenga una longitud mayor que cero, es decir, que se haya pasado al menos un argumento por la lnea
de comandos. Si no se pasaron argumentos, el programa ejecutar las Lneas 5 y 6.

Lnea 5: Console.WriteLine( _
Lnea 6: "Debe ingresar un nombre como parmetro")

Nota: El carcter de subrayado divide una lnea en dos o ms, y usualmente se emplea como una forma de clarificar
el cdigo, el comportamiento una vez compilado es exactamente el mismo que si no lo hubiramos usado.
Curso Visual Basic .NET Introductorio
Captulo 1
FAGDUT 12 CCI
Versin 4.0 2005-13

Aqu vemos el uso de una clase del sistema, parte de la Biblioteca de Clases de .NET. Llamamos al mtodo
WriteLine() de la clase Console. Como parmetro le pasamos el string que queremos mostrar por pantalla.

Lnea 7: Else

Esta palabra clave est asociada con la sentencia If / Then a la que pertenece, iniciando el bloque por
falso que sigue a continuacin.

Lnea 8: Console.WriteLine("Hola " + args(0))

Esta lnea vuelve a utilizar la clase Console para mostrar un mensaje por la consola. En particular, hay que
observar el acceso al Array args(0). Los Indices de los Arrays en .NET comienzan siempre en cero (0).

Lnea 9: End If

Se cierra la sentencia If / Then / Else.

Lnea 10: Console.ReadKey()

Esta lnea lo nico que hace es esperar a que el usuario presiona cualquier tecla, y no nos importar cul es
(en realidad, el mtodo ReadKey() devuelve el carcter asociado a la tecla presionada).

Lnea 11: End Sub

La lnea 11 indica el fin del procedimiento Main() .

Lnea 12: End Class

Y esta nos da el fin de la definicin de la Clase Principal.



RESUMEN:

La tecnologa .NET nos ayuda en gran medida a desarrollar mejores y ms elaboradas aplicaciones para la
plataforma Microsoft Windows.
El Framework de .NET, junto con sus componentes, aslan al desarrollador de las particularidades a bajo nivel
del Sistema Operativo.
Las distintas versiones del Framework de .NET nos muestran una evolucin que hoy en da contina.
Visual Studio 2010 es el Entorno Integrado de Desarrollo (IDE en ingls) que nos permite construir todo tipo
de aplicaciones bajo .NET.
En .NET todo es un objeto.

Potrebbero piacerti anche