Tecnología .NET 1. Introducción: LENGUAJES DE PROGRAMACION I

Anuncio
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Tecnología .NET
1. Introducción:
¿A quién va dirigido este curso? Con este curso pretendemos llegar a dos grupos de
usuarios. Por una parte los que nunca han programado y quieren aprender este
mundillo, y por otro los que ya conocen Visual Basic en sus anteriores versiones y
quieren "saltar" al nuevo sistema .NET.
Hay ventajas y desventajas para estos dos grupos. Para los que se quieren iniciar
van a aprender una filosofía y técnicas de programación muy ambiciosas y robustas
que componen el mejor entorno de desarrollo que existe actualmente. Por contra
necesitarán un "duro" aprendizaje para entender todas las técnicas en las que se
basa .NET para desarrollar aplicaciones, ahí es donde este curso entra en acción:
proporcionar un buen nivel a los nuevos programadores para que comiencen a
desarrollar en esta plataforma. Para el segundo grupo, como ventaja obvia está el
conocimiento de un lenguaje de programación tan extendido como Visual Basic. La
desventaja es que hay que borrar los conocimientos anteriores y partir de cero, es
decir, hay que conocer esta nueva tecnología profundamente para entenderla y
trabajar con la nueva filosofía de .NET. (Yo acabo de terminar esta fase)
Es muy habitual ver programadores que enseguida obtenían unos modestos
resultados poniendo cuatro controles de Visual Basic y unas líneas de código. Con
este nuevo entorno nos tenemos que olvidar de esta técnica y madurar
técnicamente hablando al conocer un entorno tan ambicioso como .NET.
Empecemos por saber que esto del .NET...
La evolución
Hace varios años (como diez mas o menos) las aplicaciones las aplicaciones se
creaban utilizando un mismo lenguaje para todas las tareas y para un sistema
operativo concreto. Inicialmente la aplicaciones para Windows se realizaban en C y
con llamadas directas a las "tripas" del Windows con la API (que tiempos más
duros!!) El trabajo era enorme por dos cosas: la complejidad del lenguaje y la
necesidad de conocer todos los detalles del sistema operativo para poder
programar sobre él.
Ahí nació Visual Basic, como una herramienta que permitía el desarrollo de las
interfaces de una forma tremendamente sencilla para lo conocido hasta entonces y
con un lenguaje conocido por entonces como el Basic. Se utilizaban los controles en
formato VBX para diseñar las ventanas y luego un mecanismo de métodos y
eventos para controlar el código.
La parte profesional se "pasó" al C+, un lenguaje orientado a objetos muy complejo
y difícil de mantener. Por otro lado Visual Basic seguía avanzando con los COM
(Component Objetc Model): un modelo de objetos que permitía la reutilización de
componentes independiente del lenguaje con el que estuviesen escritos, así
transcurrieron las versiones 5 y 6 de Visual Basic que se convirtieron en los
entornos mas importantes del panorama Windows.
La solución
Con el tiempo además de los COM aparecieron otras técnicas complementarias para ampliar
los lenguajes existentes. Pero esto heterogeneidad de tecnologías, muchas veces dictadas por
las necesidades tecnológicas del momento, como Internet, hicieron que se produjeran multitud
Semana 01
1
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
de servicios duplicados, creación de servicios exclusivamente para algunos lenguajes, poca
reutilización de código, mas complejidad, ...
La solución definitiva se ha planteado con .NET que consta de una serie de servicios iguales en
todos los lenguajes que mantienen la integridad con los desarrollos existentes y hace posible
una interoperatividad entre los lenguajes desconocida hasta el momento. Esto es podemos
utilizar varios lenguajes diferentes (los permitidos .NET) y todos tendrán disponibles desde el
mismo entorno de desarrollo hasta los controles y componentes de programación. Se acabó
que Visual C tenga estos componente o Visual Fox Pro otros o Visual Basic otros... todos
parten de la tecnología .NET y comparten por lo tanto los mismos componentes y objetos.
Podemos incluso escribir partes distintas de un mismo programa con varios lenguajes .NET.
Visual Basic .NET y el entorno .NET Framework
Visual Basic .NET usa una jerarquía de clases que están incluidas en el .NET
Framework, por tanto conocer el .NET Framework nos ayudará a conocer al propio
Visual Basic .NET, aunque también necesitarás conocer la forma de usar y de hacer
del VB.NET ya que, aunque en el fondo sea lo mismo, el aspecto sintáctico es
diferente para cada uno de los lenguajes basados en .NET Framework.
Importante Luego el verdadero núcleo de todo es .NET Framework un entorno con
multitud de clases y objetos disponibles para trabajar con ellos. Sobre este núcleo
tendremos los lenguajes de programación y uno de ellos es Visual Basic .NET. Por
eso es muy importante conocer que es el .NET Framework
Así que tranquilo primero veamos que eso del .Net Framework que básicamente se
puede decir que es el hermano mayor de .NET
1.1 ¿Qué es el .NET Framework?
Literalmente .Net Framework es:
".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"
"El .NET Framework es un entorno multi-lenguaje para la construcción, distribución
y ejecución de Servicios Webs y aplicaciones."
"El .NET Framework es una nueva plataforma diseñada para simplificar el desarrollo
de aplicaciones en el entorno distribuido de Internet."
Luego .NET es una nueva filosofía en cuanto a entornos de desarrollo. Este entorno
puede utilizar varios lenguajes diferentes para escribir programas, todos se
apoyarán en las herramientas que ofrece para conseguir aplicaciones .NET y el
alma de este entorno es el .NET Framework
.Net Framework permite el desarrollo de aplicaciones a través del uso de un
conjunto de herramientas y servicios que proporciona y que se agrupan en tres
bloques:
 El entorno de ejecución común ó Common Languaje Runtime (CLR)
 Jerarquía de clases de .NET
 Motor de generación de formularios, para crear nuestras aplicaciones
Semana 01
2
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
El Common Lenguage Runtime (CLR) es una serie de librerías dinámicas (DLLs),
también llamadas assemblies (o ensamblados), que hacen las veces de las DLLs del
API de Windows así como las librerías runtime de Visual Basic o C++.
Como sabrás, cualquier ejecutable depende de una forma u otra de una serie de
librerías, ya sea en tiempo de ejecución como a la hora de la compilación. Pues el
CLR es eso, una serie de librerías usadas en tiempo de ejecución 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
librerías externas o los que necesitan de librerías en tiempo de ejecución para
poder funcionar, tal es el caso de las versiones anteriores de Visual Basic. (Esto lo
entenderán mejor los antiguos programadores de VB)
Es decir podíamos tener un fichero ejecutable único que no dependiese de ninguna
librería, bastaba por lo tanto copiarlo a otro equipo y podía funcionar sin
problemas. Por otro lado están los que necesitan librerías externas o ficheros DLL
que se instalan en nuestro equipo ayudándose de programas de instalación. Estas
librerías se copian normalmente en nuestra carpeta \Windows\System32.
Si decimos que ahora que con este CLR ya no necesitamos esas librerías, perfecto,
sólo tendremos que instalar este componente y nuestros programas .NET
funcionarán en cualquier equipo.
Por otro lado, la biblioteca de clases de .NET Framework proporciona una
jerarquía 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
programación, sino que tendrá a su disposición todas las clases disponibles para el
resto de los lenguajes basados en .NET, (o casi), con lo cual sólo nos diferenciará
del resto de programadores en la forma de hacer las cosas: ¡más fáciles!
Los poco flexibles modelos de programación actuales impiden al programador
contemplar la idea de un proyecto para Internet que le permita crear aplicaciones
distribuidas más potentes. Estos sistemas utilizaban las tecnologías COM, ASP,
ADO, ... que individualmente son buenas pero que no están pensadas para ser
ejecutadas en la red. Estos elementos definían la arquitectura Windows DNA
(Distributed Internet Architecture) que hasta ahora era el modelo de programación
para Internet. Esta tecnología queda ahora desplazada completamente por la
arquitectura .NET
Microsoft .NET ofrece una visión orientada a objeto del sistema operativo Windows
e incluye cientos de clases que encapsulan los objetos mas importantes del núcleo
de Windows. Mas adelante veremos y definiremos las clases pero de una forma
resumida digamos que son plantillas para crear objetos, por ejemplo: la clase
"botón" me permite crear botones de comando y trabajar con ellos.
En este curso nos centraremos en la parte de Visual Basic.NET pero no debemos
olvidad que .NET es mas que este lenguaje, por ejemplo ASP.NET es una potente
plataforma de desarrollo para Internet, permite crear complejas aplicaciones
basadas en web. Lo bueno es que al terminar este curso tendremos un gran punto
de partida para seguir con esta tecnología de .NET.
Espero no haberte liado mucho, mas que nada que esto no es la presentación de un simple
lenguaje de programación, es la presentación de cómo funciona nuestro Windows y como lo
hará en el futuro apoyado en esta tecnología.
Semana 01
3
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
1.2 Comenzar con .NET
Por ahora estamos convencidos de que .NET es la mejor plataforma de desarrollo y
el que no la domine quedará apartado del mundo Windows en poco tiempo. Del
mundo Windows me refiero al conocimiento de su tecnología y desarrollo de nuevas
aplicaciones con los nuevos sistemas operativos: Windows 2003 Server y Windows
XP. Vamos ahora con lo que necesitamos para instalarlo y los pasos necesarios
Al igual que las anteriores versiones anteriores de Visual Basic, éste se encuentra dentro del
paquete Visual Studio .NET, que incorpora varios lenguajes, herramientas y tecnologías. En
nuestro caso nos centraremos en Visual Basic .NET del que realizaremos ahora su instalación.
Los requisitos son los siguientes:
Mínimo
Recomendado
Procesador
Pentium II - 500 Mhz
Pentium III- 800 Mhz
Memoria
128 Mb
256 Mb
Espacio en disco
3 Gb
10 Gb
Sistema operativo
Windows 2000/XP
Windows 2000/XP
En Visual Studio .NET y como ya es habitual en el resto de las aplicaciones de
Microsoft, debemos ser generosos con el equipo para desarrollar en .NET. Por
ejemplo, como veremos mas adelante, el entorno de desarrollo tiene tanta
información que trabajar con una resolución menor que 1027x768 es imposible, y
ésta se queda incluso limitada y no podremos desplegar todas las pantallas. La
ayuda ocupa bastante espacio en disco así como el programa en memoria cuando
está en ejecución. En definitiva, debemos tener como mínimo la configuración
recomendada por Microsoft para trabajar de una forma cómoda...
En cuanto al sistema operativo si que es obligatorio utilizar las versiones 2000 o XP
por razones de aprovechamiento de recursos y sobre todo, de estabilidad.
2. Una definición más profunda de .NET
La mejor forma de comprender cómo funciona .NET es analizar las numerosas capas en las
que se divide .NET Framework. Veamos la siguiente figura:
Semana 01
4
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
(No te asustes con lo que vas a leer aquí, es obligatorio que lo veamos por encima, al terminar
el curso vuelve a leer esto y veras que sencillo era.)
Como hemos comentado antes .NET Framework constituye la base sobre la que se asienta
.NET. Para nosotros es la pieza fundamental de esta nueva tecnología y es la que nos va a
proporcionar las herramientas y servicios que necesitaremos en nuestros desarrollos. Podemos
agrupar en tres bloques el conjunto de herramientas y servicios:
 El runtime de lenguaje común o entorno de ejecución común (CLR)
 Biblioteca de clases base de la plataforma .NET (.NET Framework Base Classes)
 Motor de generación de la interfaz para crear formularios e interfaces de usuario.
Estas son tres de las capas del esquema anterior. Simplemente esa jerarquía me dice que en
el nivel mas alto están los lenguajes que vamos a utilizar en nuestro desarrollo con .NET que
pueden ser varios (en nuestro caso Visual Basic). Luego traduce esas instrucciones al estándar
.NET para poder trabajar con esas instrucciones de una forma independiente al lenguaje con
que se escribieron. El siguiente paso es la generación de formularios para Windows o web
(ASP). Luego el enlace con bases de datos si las hay. Por fin llegamos a todos los objetos
disponibles y por último el runtime de lenguaje común (CLR) que es el que va a ejecutar la
aplicación. Veamos ahora más técnicamente de abajo hacia arriba:
1. Runtime del lenguaje común
El runtime del lenguaje común es la primera capa que pertenece a .NET Framework. Esta capa
es la responsable de los servicios básicos de .NET, tales como la administración de memoria,
la recolección de los elementos no utilizados, el control estructurado de excepciones y del
subprocesamiento múltiple. Si .NET se transporta a otras arquitecturas que no estén basadas
en Windows el primer paso sería escribir un runtime del lenguaje para el nuevo equipo. El CLR
tiene estas características:
Semana 01
5
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
 Proporciona mejoras para el programador que antes tenía que elaborar
 Administra el código en tiempo de ejecución: carga en memoria, liberación de memoria,
...
 Gestiona la seguridad del código ejecutado
 Abre posibilidades a otros fabricantes para incorporar sus lenguajes
 Facilita la distribución e instalación de aplicaciones. Elimina los temibles conflictos de
DLL's y versiones de ellas
Es la interfaz entre nuestro código y el sistema operativo, de ahí que si mañana Microsoft hace
un CLR en lugar de para Windows, para Macintosh se puedan ejecutar nuestras aplicaciones
.NET en este sistema.
2. Biblioteca de clases
La biblioteca de clases base (BCL) es la parte de .NET Framework que define todos los tipos
de datos básicos, tales como System.Object (raíz de la jerarquía de objetos .NET), tipos
numéricos y de fechas, tipo string, matrices y colecciones. La BCL contiene también clases que
administrarán las características centrales de .NET: entrada/salida de archivos ,
subprocesamiento, serialización y seguridad. La forma en la que los tipos se implementan en la
BCL siguen las especificaciones llamadas Common Type System (CTS). Por ejemplo, estas
especificaciones dicta la forma en la que un tipo .NET expone campos, propiedades, métodos y
sucesos, también cómo un tipo puede heredar otro tipo...
Tranquilo... a lo largo del curso veremos estas clases y por fuerza trabajaremos con ellas
porque todo en .NET son clases: desde un gráfico, un botón o nuestro programa.
3. Capa de datos
La capa de datos y XML contienen las clases .NET que trabajan con bases de datos y con
XML. Anteriormente el soporte XML era una compatibilidad proporcionada por un componente
externo. En .NET vemos cómo está integrado en su mismo núcleo. Podemos decir que XML es
el formato que utiliza .NET para almacenar cualquier tipo de información. La parte de datos es
la que se conoce como ADO.NET y es el equivalente en .NET a la tecnología ActiveX Data
Object (ADO), ampliamente conocida por los programadores de Visual Basic, Intranets, ...
Nota para los conocedores de ADO: Aunque su nombre es muy parecido a
ADO.NET son muy diferentes. ADO cubre prácticamente todas las técnicas de bases
de datos disponibles (incluyendo cursores del lado del cliente y del servidor, conjuntos
de datos desconectados y actualizaciones en diferido). ADO.NET está centrado
principalmente en los conjuntos de resultados desconectados (llamados DataSets)
Este objeto es mucho mas potente que el objeto ADO Recordset y puede almacenar
datos provenientes de varias tablas, relaciones entre diferentes tablas de datos y
puede importar y exportar datos en XML.
4. Capa de formularios y ASP
Las dos capas siguientes son ASP.NET y Windows Forms. Aquí se sitúan todas las clases que
podremos utilizar para generar las páginas web en el primer caso y las ventanas estándares o
formularios en las aplicaciones de Windows en el segundo caso.
Nota ASP.NET es la parte de .NET encargada del desarrollo en web. Una evolución
muy ampliada de las páginas ASP y comprende los web forms y los servicios web
Semana 01
6
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
XML. No lo veremos en este curso pero el salto a desarrollar en Web es muy sencillo...
Aunque estén en el mismo nivel las tecnologías son muy distintas. Web Forms se ejecuta en el
servidor y produce HTML y es la base de las conocidas Intranets donde estas páginas
devuelven otras páginas web con conjuntos de resultados u otros datos. Windows Forms se
ejecuta en el cliente, un equipo Windows.
La biblioteca de clases de .NET Framework está formada por una colección de ensamblados
(o Assembly), cada uno de los cuales comprende una o más DLL. Veamos que esto de un
"ensamblado"...
Un ensamblado consiste en un conjunto de tipos y recursos reunidos para formar la unidad
mas elemental de código que puede ejecutar el entorno .NET Framework. Estos ensamblados
son los elementos con los que construiremos una aplicación: una aplicación .NET se compone
de varios ensamblados. Podemos llamar también a un ensamblado como una DLL lógica
(recordamos que una DLL es una biblioteca de enlaces dinámicos). Decimos lógica porque se
trata de una lista de ficheros que se referencian en tiempo de ejecución pero que no se
compilan para producir un fichero físico, a diferencia de las DLL's tradicionales. Un ensamblado
va mucho más allá ya que puede contener otros recursos además de clases como imágenes,
...
5. Capas de CLS y lenguajes
Donde están las especificaciones de los lenguajes y su sincronización con el entorno .NET
Después de esta locura de siglas y tecnologías vamos al grano con la instalación y la
realización de algún ejemplo sencillo...
3. Instalación
Lejos quedan las sencillas instalaciones de las versiones anteriores de Visual Basic,
en las que prácticamente en un sólo CD disponíamos de todas las herramientas y
componentes necesarios... Esta versión es un poco mas compleja de instalar (sólo
un poco mas) sobre todo porque Microsoft ha cumplido con algo largamente
esperado que era un entorno único de desarrollo. Ahora todos los lenguajes de
desarrollo de Microsoft estarán incluidos en Visual Studio .NET con un único
interfaz, con todas la ventajas que conlleva en cuanto a simplicidad y sobre todo
coherencia entre entornos. Vamos con la instalación...
En nuestro curso vamos a utilizar la versión "Enterprise Developper" de Microsoft
Visual Studio .NET 2003. La diferencia con otras versiones es la cantidad de
componentes que tenemos para instalar, pero como en nuestro caso nos
centraremos únicamente en Visual Basic .NET sólo instalaremos estos
componentes.
Introducimos el Cd número 1 y se presentará una pantalla como esta:
Semana 01
7
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Aquí empiezan las diferencias con otras versiones. Para empezar debemos instalar
los prerrequisitos, es decir, elementos que necesita tener instalado nuestro sistema
operativo antes de instalar Visual Studio. Si tenemos activada esta primera opción
debemos hacer clic en ella para instalarlos...
Estos prerrequisitos pueden variar de una versión de sistema operativo a otro y
según el equipo. Por ejemplo algunos de los componentes que va a instalar son:
 Microsoft Windows Installer 2.0 (para realizar las instalaciones de este
entorno)
 Cliente de extensiones web de Microsoft FrontPage. Para conectar Internet
Information Server con Front Page. Esto se utilizará mas con ASP.NET
 Archivos de tiempo de ejecución para instalación
 Microsoft Data Access Components. Todos las bibliotecas y controles para
acceso a datos
 Microsoft .NET Framework. (El alma de nuestro entorno)
Introducimos entonces el CD marcado como "Prerrequisitos", pulsaremos en
instalarlos y tras algún anuncio de que va a comenzar esta instalación veremos la
pantalla con la lista de componentes que va a instalar:
Semana 01
8
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Dependiendo de los elementos a instalar es posible que nos pida reinicio del sistema para
continuar con la instalación, incluso una pantalla nos pedirá si queremos un inicio de sesión
proporcionando los credenciales en la pantalla.
Nota Debido a la cantidad de elementos que instala y sobre todo, a su importancia, ya
que algunos son de sistema, se recomienda encarecidamente que esta instalación se
realice en un equipo lo más limpio posible. Lo mejor es que no hayas tenido versiones
anteriores de otros lenguajes y sobre todo un equipo un poco con buenas
prestaciones.
Una vez instalada esta parte veremos que la parte de prerrequisitos queda
deshabilitada y ya podemos acceder a la de la instalación. Vamos por fin a la
instalación de VB.NET. Pulsamos en el enlace de la instalación y tras unos segundos
se nos presentará la pantalla de instalación de .NET en la que debemos aceptar el
contrato de licencia para usuario final. Finalmente obtendremos:
Semana 01
9
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Ahora debemos seleccionar sólo los componentes que nos interesen... Para
empezar en las herramientas del lenguaje sólo dejaremos marcado Vb.NET:
Los demás componentes podríamos deshabilitarlos porque no los vamos a necesitar en
nuestro curso. Son elementos mucho más ambiciosos para el desarrollo empresarial que son
más complejos. De momento bastante con comprender bien esta arquitectura y comenzar a
Semana 01
10
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
programar con Vb.NET. Para los programadores de ASP: la opción ASP.NET se encuentra
dentro de la opción "Componentes de servidor" y luego en "Desarrollo Web". En mi instalación
voy a desactivar todas las opciones porque no las voy a utilizar ahora, siempre podremos
acudir al este Cd de instalación para añadir componentes. Nos quedamos pues, sólo con
Visual Basic .NET, si vemos la ocupación veremos que "sólo" se queda en unos 750 Mb de
espacio. (Eso si, sin la ayuda todavía). Pulsamos en instalar y comenzará...
Al cabo de unos minutos nos pedirá el siguiente CD:
Hasta que por fin un mensaje nos avisará de que la instalación ha terminado (podemos ir
tranquilamente a tomar un café mientras tanto...). Ahora nos queda la segunda parte que es la
extensa documentación que como siempre es muy precisa y bien traducida. Para esto
utilizaremos los dos cd marcados como "MSDN Library". Cuando nos parezca la pantalla inicial
Semana 01
11
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
de instalación pulsaremos en la opción "Documentación del producto" que nos pedirá el Cd1 de
MSDN:
Una vez en marcha dispondremos de opciones para instalar la ayuda de todos los elementos
de .NET:
Pulsaremos en siguiente, aceptaremos el contrato de licencia y escribiremos si queremos un
nombre de registro de instalación. Luego seleccionaremos la opción Personalizada para poder
elegir los componentes que queremos instalar. Seleccionaremos "Documentación de VB.NET",
lo demás son opciones del entorno que no utilizaremos en este curso pero que podríamos
instalar mas adelante...
Semana 01
12
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Pulsamos continuar y ya tenemos lista la instalación... Aceptamos para que inicie y el programa
instalará la ayuda indicada... si es necesario pedirá los otros dos cd con el resto de la
información hasta que finalmente termine.
Si todo es correcto por fin tenemos nuestro Visual Basic .NET instalado. Vamos a pasar ahora
a realizar una rápida aplicación para ver que todo funciona e ir conociendo el entorno de
desarrollo... No te preocupes si no entiendes alguna cosa, es más que nada para conocer de
que partes se compone un programa, cómo escribir y por fin ejecutarlo...
4. La primera aplicación con Vb.NET
Extensión de los ficheros de código.
En Visual Basic .NET a diferencia de lo que ocurría en las versiones anteriores de
Visual Basic, sólo existe un tipo de fichero de código, el cual tiene la extensión .vb,
en este tipo de fichero pueden coexistir distintos tipos de elementos, por ejemplo:
un módulo de clase, un formulario, un módulo de código, un control, etc.; mientras
que en las versiones anteriores de Visual Basic, cada uno de estos elementos tenían
su propio tipo de fichero con su respectiva extensión. Como cometamos al principio
no es necesario ningún conocimiento de anteriores versiones de Visual Basic pero
iré comentando los cambios importantes para aquellos que ya conocían versiones
anteriores y puedan ir viendo los cambios de esta nueva versión.
Ejemplo de los ficheros de un proyecto:
Para los antiguos programadores, esta tabla muestra la extensión que tienen los diferentes
tipos de ficheros de VB.NET y su comparación con los de VB.NET:
Recurso
Visual Basic 6.0
Visual Basic .NET
Formulario (Form)
.frm
.vb
Módulo (Module)
.bas
.vb
Módulo de clase (Class
Module)
.cls
.vb
Semana 01
13
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Obviamente si hemos dicho que en Vb.NET todos los ficheros tienen la extensión
.vb, los equivalentes de anteriores versiones cambiarán a esta extensión.
Tipos de ejecutables.
Con Visual Basic .NET podemos crear muchos tipos de proyectos pero los más
importantes son los destinados a crear aplicaciones ejecutables, éstas pueden ser
de dos tipos:
 De consola, no gráfico, al estilo del viejo MS-DOS. Es decir se abrirá una
ventana tipo MS-DOS donde se ejecuta un programa en modo texto.
 Gráficos, como los que normalmente estamos acostumbrados a ver en
Windows. Es decir, compuesta de formularios donde podremos interactuar
con el programa.
Existen otros tipos de aplicaciones que se pueden crear con Visual Basic .NET:
aplicaciones ASP.NET, (realmente no es una aplicación o ejecutable, sino un
compendio de distintos tipos de elementos...), servicios Web, servicios Windows,
etc.
4.1 La primera aplicación con Visual Basic .NET.
Vamos cuanto antes a crear nuestra primera aplicación para conocer por fin el
funcionamiento de .NET.
El primer paso es iniciar el entorno de Visual Studio .NET, vamos al menú Inicio y
seleccionamos Visual Studio .NET 2003 (en mi caso por la versión que he
instalado). La primera pantalla que aparece por defecto nos muestra la "página de
inicio" desde la cual pueden crearse nuevos proyectos o bien abrir alguno de los
más recientemente abiertos:
Semana 01
14
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Para los conocedores de otros entornos podemos ver en la pantalla la disposición de los
elementos que recuerda más al Visual C que la de Visual Basic. De hecho este es el primer
obstáculo para los programadores de Visual Basic: el nuevo IDE o Entorno de desarrollo
integrado, auque en cuanto lo conozcamos no será un obstáculo sino una imprescindible ayuda
para desarrollar y depurar programas. Sigamos con nuestro primer programa... para esto
pulsamos en la opción de "Nuevo Proyecto"
Nos mostrará los diferentes tipos de proyectos que se pueden crear:
Semana 01
15
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Para empezar tampoco esta nada mal ¿no?. Vemos una buena cantidad de nuevos proyecto
para crear... y eso que sólo hemos instalado el Visual Basic .NET. Si hubiésemos instalado los
otros lenguajes tendríamos un buen número adicional de proyectos para crear. Bien,
seleccionamos Visual Basic a la izquierda y a la derecha seleccionamos "Aplicación de
consola"
El objetivo de este ejemplo es crear una básica aplicación de consola que se ejecutará en una
ventana MS-DOS en lugar del habitual Windows. De momento es mas sencillo para que
creemos nuestro primer ejemplo...
Especificaremos el directorio en el que se guardará el proyecto, así como el nombre
del mismo, (creando un directorio con el nombre del proyecto indicado), dejamos el
nombre que muestra por defecto : "ConsoleApplication1", pulsamos Aceptar y
finalmente se creará el proyecto.
Si nos fijamos en la pantalla central y en la derecha podemos ver varias cosas:
Por una parte a la derecha vemos en el explorador de soluciones que ha creado un
fichero llamado Module1.vb, con el código necesario para empezar a escribir.
Vemos también que ha creado un "procedimiento" Sub Main, que se utilizará como
Semana 01
16
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
punto de entrada de nuestro ejecutable, también ha creado una "definición"
llamada Module Module1 con su respectivo End Module, que indica dónde
termina la definición del módulo.
Es decir parece que un proyecto de consola se compone de un fichero "module1.vb"
en dentro de él las instrucciones de colocarán dentro de las etiquetas "Module
Module1" y "End Module". Y dentro de estas etiquetas el programa principal se
colocará dentro de las instrucciones "Sub Main" Mas adelante conoceremos el
porqué de estos módulos y nombres...
Nota : lo que estamos creando es una aplicación tipo consola, es decir, no se creará
ninguna ventana gráfica, 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 hacer en este ejemplo es un muy sencillo programa que diga
"Hola mundo .NET", por tanto para mostrar un texto en la "consola" usaremos una
función, método o instrucción, ... como veremos más tarde, todo esto es posible
gracias a los assemblies o a las clases incluidas en el .NET Framework. De
momento sigamos este ejemplo ...
La función en cuestión es Console.Write y se usa de la siguiente forma:
Console.Write("Hola mundo .NET"), es decir incluiremos dentro de paréntesis 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.
Lo escribimos entre el Sub Main() y el End Sub. Comprobaremos que cuando
escribimos Console y el punto, se mostrarán las funciones que Console pone a
nuestra disposición, así como una pequeña ayuda, en modo de ToolTip, (ya
conocido en otras versiones de Visual Basic).
Semana 01
17
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Bien, ya tenemos todo lo que necesitamos. Ahora tendremos que indicarle al
"Entorno Integrado" (IDE) que compile el proyecto y lo ejecute, y después de
compilarse el proyecto, se deberá mostrar el texto en una ventana de DOS (o
consola). Una vez escrito pulsamos en el botón que se muestra en esta pantalla:
Para verla correctamente añadiremos debajo una instrucción para que haga una
pausa y podamos comprobar que el programa funciona:
Que al ejecutarlo da como resultado:
Semana 01
18
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Al ejecutarse hemos visto una pantalla en modo texto con el mensaje que hemos
escrito de "Hola Mundo .NET". Lo que hemos hecho ha sido ejecutar el programa
desde nuestro entorno de desarrollo, para hacer el programa final tendríamos que
compilarlo para generar el programa ejecutable, lógicamente con extensión .exe.
Con lo que tenemos terminada nuestra primera y "útil" aplicación en MS-DOS realizada en
.NET,
5. Mas conceptos de Visual Basic .NET.
Sigamos con mas conceptos básicos sobre .NET. Una aplicación .NET se compone
como hemos dicho antes de uno o mas ensamblados, cada uno de los cuales estará
formado por uno o mas archivos. La aplicación por tanto puede ser tan simple como
un sólo archivo .EXE o un conjuntos de varios archivos de código y elementos
externos.
Las aplicaciones .NET se ejecutan en lo que se llama "dominio de la aplicación" que
es como un espacio donde se ejecuta nuestra aplicación y está aislada del resto de
las aplicaciones que se están ejecutando en Windows. Perfecto para la seguridad y
para que un fallo de aplicación no afecte a los demás...
Antes de continuar con otro sencillo ejemplo vamos a conocer un poco sobre el
entorno de desarrollo de Visual Studio .NET, (que es obviamente el que utilizamos
con Visual Basic .NET), para que podamos configurar algunos aspectos, por ejemplo
para indicar cómo se comportará el compilador e intérprete sobre el código que
escribamos o para configurar los ensamblados (assemblies) que se usarán en
nuestras aplicaciones. (Recuerda que Visual Basic .NET usa una serie de librerías
(de clases) con las funciones que necesitemos en cada momento...)
Nota: Es muy importante seguir estos ejemplos para conocer un poco las
tripas y nomenclatura de VB.NET, así que es obligatorio realizar una
pausada lectura de esta parte del capítulo... luego me lo agradeceréis
Sigamos, para poder mostrar un texto en la consola, necesitamos tener disponible
la librería en la cual está declarada la clase Console, para que podamos acceder a
las funciones que dicha clase pone a nuestra disposición, (por ejemplo Write o
Read); en este caso la librería en la que está la clase Console es: System. System
realmente es un Namespace o espacio de nombres, no es una librería o assembly.
(Tranquilo, sigue leyendo)
Semana 01
19
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Luego añadiremos otras librerías para trabajar con bases de datos, gráficos, ... así
cada una de ellas agrupa un tipo de funciones.
¿Que es un Namespace (o espacio de nombres)?
"Un espacio de nombres es un esquema lógico de nombres para tipos en el que un
nombre de tipo simple, como MiTipo, aparece precedido por un nombre jerárquico
separado por puntos. [...]"
Así es como lo definen en el eBook de .NET Framework de Microsoft. Pero mas
claro... un Namespace es una forma de agrupar clases, funciones, tipos de datos,
etc. que están 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 están 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. Haz la prueba y en el código escribe la palabra
"Microsoft." (Con el punto al final), verás que se despliega los posibles Namespaces
disponibles y si seguimos y escribimos, o seleccionamos VisualBasic con un punto al
final, veremos otra vez los Namespaces de esta otra clase llamada VisualBasic.
Pero de momento no te líes, simplemente que podemos utilizar como una especie de grupos
de instrucciones y otros componentes añadiendo o utilizando "namespaces" a nuestros
programas. De esta forma mantenemos los recursos de las aplicaciones en diferentes sitios
reduciendo los conflictos.
Semana 01
20
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Por regla general se deberían agrupar en un Namespace funciones o clases que
estén relacionadas entre sí. De esta forma, será más fácil saber que estamos
trabajando con funciones relacionadas entre sí. Pero el que distintos espacios de
nombres pertenezcan a un mismo Namespace no significa que todos estén dentro
de la misma librería o assembly. Un Namespace puede estar repartido en varios
assemblies o librerías. Por otro lado, un assembly, (o ensamblado), puede contener
varios Namespaces.
Hay espacios de nombres específicos por ejemplo para los gráficos y otros para
trabajar con bases de datos, así los tenemos organizados de una forma mas
cómoda para localizarlo y referirnos a ellos en el código.
Pero de esto no debemos preocuparnos, ya que el IDE de Visual Studio .NET se
encarga de "saber" en que assembly está el Namespace que necesitamos.
Los Spacenames mas importantes, los de primer nivel y de los que luego "cuelgan"
o pertenecen los demás son:
 System. Contiene clases fundamentales y clases base que definen los valores y tipos
de datos de referencia, eventos y controladores de eventos, interfaces, atributos y
excepciones de procesamiento comúnmente utilizados.
 Microsoft.VisualBasic. Contiene clases que admiten la compilación y generación de
código mediante el lenguaje Basic .NET.
Otra vez te ruego tranquilidad y tiempo, a medida que avancemos en .NET irás juntando todos
estos conceptos.
¿Que es un assembly (o ensamblado)?
"Los ensamblados componen la unidad fundamental de implementación, control de versiones,
reutilización, ámbito de activación y permisos de seguridad en una aplicación basada en .NET.
Los ensamblados adoptan la forma de un archivo ejecutable (.exe) o un archivo de biblioteca
de vínculos dinámicos (.dll), y constituyen unidades de creación de .NET Framework.
Proporcionan a Common Language Runtime la información que necesita para estar al corriente
de las implementaciones de tipos. Un ensamblado puede entenderse como una colección de
tipos y recursos que forman una unidad lógica de funcionalidad y que se generan para trabajar
conjuntamente"
Para que nos entendamos, podríamos decir que un assembly es una librería
dinámica (DLL) o programa ejecutable 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 más 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 librerías y ejecutables. Este manifiesto es una tabla de contenido
del Assembly que lo identifica y dice su versión y otros datos. Esta información
elimina lo que en otras versiones se llamaba "infierno de las DLL" por los enormes
problemas de versiones y conflictos que generaban.
Por ejemplo, supongamos que tenemos una librería DLL que en su primera versión
contenía X funciones. Al tiempo, se crea la segunda versión de dicha librería en la
que se cambian algunas funciones y se añaden otras nuevas, para mejorar el
rendimiento de las funciones contenidas en esa librería se usa otra DLL que es
usada por algunas de las funciones contenidas en esa segunda versión. Esa otra
Semana 01
21
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
librería puede ser una librería del sistema, la cual a su vez se actualiza con nueva
funcionalidad y puede que dicha funcionalidad dependa a su vez de una tercera
librería.
Resulta que instalamos un programa que usa las últimas versiones de todas estas
librerías. Todo va bien, el programa funciona a las mil maravillas y nosotros
estamos muy satisfechos de ese programa que no se cuelga ni una sola vez...
Ahora llega a nuestras manos otra aplicación que necesitamos instalar y la
instalamos, pero resulta que esa aplicación usa la primera versión de nuestra
famosa librería. Si el programa de instalación está bien hecho, no ocurrirá nada
malo, ya que al descubrir que tenemos una versión más reciente de la librería, deja
la que ya está instalada. Probamos el programa de todo funciona bien. Probamos el
maravilloso programa anterior y también funciona bien. ¿Cual es el problema? Por
ahora ninguno, pero espera...
Después instalamos un programa que usa una de las librerías del sistema u otra
que también usa nuestra "flamante" librería, pero ese programa se ha instalado de
"mala manera", bien porque el programa de instalación sea malo o bien porque
simplemente se ha instalado mal... como quiera que ha instalado una librería
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 causó no pocos problemas... aunque también
ha ocurrido con otros programas que no han tenido en cuenta a la hora de instalar
que ya existe una versión más reciente de la librería. Por suerte, esto ya es menos
común que hace unos años, sobre todo si los programas de instalación están
creados con el Windows Installer o estamos usando el Windows 2000/XP.
Pero es que .NET mejora aún esa "imposibilidad" de meter la pata ya que cada
assembly contiene un manifiesto en el cual se indica:
 Nombre y la versión del assembly
 Si este assembly depende de otros ensamblados, con lo cual se indica hasta
la versión de dichos ensamblados
 Los tipos expuestos por el assembly (clases, etc.)
 Permisos de seguridad para los distintos tipos contenidos en el assembly.
 Datos del copyright, etc.
Nuevamente hay que comentar que no hay que preocuparse mucho de esto, ya que
es el propio .NET el que se encarga de que todo funcione correctamente (al menos
a priori)
La ventaja de los ensamblados es que "realmente" no necesitan de una instalación
y un registro correcto en el registro del sistema de Windows, ya que es el
"intérprete" de .NET el que se encarga de hacer las comprobaciones cuando tiene
que hacerlas. Por tanto podríamos distribuir una aplicación sin necesidad de crear
un programa de instalación. Pero, (¿por qué siempre hay un pero?), si la aplicación
usa ensamblados compartidos, puede que sea necesario usar una instalación.
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.
¿Puedo utilizar otros lenguajes con .NET?
Semana 01
22
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
Pues si, como hemos dicho antes el CLR, o el entorno de ejecución común admite por encima
de él cualquier tipo de lenguaje. Actualmente esos son los aprobados:





VB .NET
C#
C ++
ASP.NET
Jscript.NET
Pero hay otros muchos que están en camino y que podríamos utilizarlos con el mismo entorno
y clases que los existentes:







Cobol
Pascal
Perl
Python
SmallTalk
ML
...
6. Bases de la POO
En esta introducción general a .NET (tranquilo este capítulo puede ser un poco duro
pero enseguida empezaremos con la base) debemos comentar algunos conceptos
básicos de esta tecnología y que iremos ampliando a lo largo del curso. No van a
ser explicaciones técnicas sino mas bien una toma de contacto de la filosofía .NET.
Todo lo que trataremos en .NET se basa en clases y objetos. Es un concepto muy
sencillo pero que pudiera desconcertar al principio
Veamos que son esos conceptos y la base de la programación orientada a objetos
6.1 Las clases
Todo lo que tiene .NET Framework son clases. Una clase no es ni más ni menos que
código
Cuando definimos una clase, realmente estamos definiendo dos cosas diferentes:
los datos que dicha clase puede manipular o contener y la forma de acceder a esos
datos.
Por ejemplo, si tenemos una clase de tipo Cliente, por un lado tendremos los datos
de dicho cliente y por otro la forma de acceder o modificar esos datos. En el primer
caso, los datos del Cliente, como por ejemplo el nombre, domicilio etc., estarán
representados por una serie de campos o propiedades, mientras que la forma de
modificar o acceder a esa información del Cliente se hará por medio de métodos.
Esas propiedades o características y las acciones a realizar son las que definen a
una clase.
Un coche tiene unas propiedades: color, marca, modelo, ... y unos métodos para
trabajar con él: arrancar, frenar, cambiar de marcha. La definición de estas partes
es lo que llamamos clase, sólo la definición, para trabajar con el coche lo veremos
luego. Luego es algo muy sencillo que no debe parecernos ni complejo, ni técnico.
Los antiguos programadores de VB son los que menos acostumbrados están a
trabajar con clases porque se podían prescindir de ellas pero en VB.NET no. Por eso
Semana 01
23
LENGUAJES DE PROGRAMACION I
Ing. Omar Franco Atasi Araoz
es una ventaja para los novatos porque aprenderéis de 0 los conceptos y os
quedarán mas claros.
6.2 Los Objetos
Por un lado tenemos una clase que es la que define un "algo" con lo que podemos
trabajar. Pero para que ese "algo" no sea un "nada", tendremos que poder
convertirlo en "algo tangible", es decir, tendremos que tener la posibilidad de que
exista. Aquí es cuando entran en juego los objetos, ya que un objeto es una clase
que tiene información real. Por fin podemos crear un coche del cual ya tenemos su
definición en la clase Coche
Digamos que la clase es la "plantilla" a partir de la cual podemos crear un objeto en
la memoria. Por ejemplo, podemos tener varios objetos del tipo Cliente, uno por
cada cliente que tengamos en nuestra cartera de clientes, pero la clase sólo será
una.
En nuestros formularios: tenemos 10 botones y ... han sido creados a partir de la clase "Botón".
Otro ejemplo es que tenemos una clase que se llama "Coches" donde describe que es y cómo
funciona un coche pues bien, podemos crear diferentes coches a partir de la clase "Coches",
cada uno puede tener sus propias propiedades: color, ... pero funcionan todos igual
¿Quedan claros estos dos conceptos? Vale pues ahora sólo comentar que existen objetos de
mas categoría que otros y que esta relación se llama jerarquía de objetos. Por ejemplo un
objeto Coche puede tener a su vez varios objetos mas pequeños: motor, carrocería, ...
En .NET tenemos entonces varias Clases principales y debajo de ellas todas las instrucciones
del lenguaje. Por ejemplo habrá una clase para los formularios (ventanas de Windows) que a
su vez tendrán otras clases dentro: botones, textos, imágenes. Otra clase sería la colección de
funciones matemáticas que podemos utilizar. Para que hagas una idea, esta es la jerarquía de
objetos para desarrollo en Web:
Semana 01
24
LENGUAJES DE PROGRAMACION I
Semana 01
Ing. Omar Franco Atasi Araoz
25
Descargar