Inicio » Informática profesional. » Novedades 2008 » Curso de Visual Basic .NET » 1.3 Mas sobre el código Vb .NET

Curso de Visual Basic .NET

Cursos Relacionados:

1.3 Mas sobre el código Vb .NET

Volvamos a revisar algunos elementos más teóricos del código que tenemos en pantalla, vamos explicar el porqué del resto de las líneas de código. Así iremos conociendo términos que luego en temas posteriores acabaremos de encajar y entender. Partimos de nuestro código de ejemplo:

Public Class Form1
 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
             System.EventArgs) Handles Button1.Click
    MsgBox("Hola " & TextBox1.Text)
End Sub

End Class


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic .NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


1.4 Análisis del código fuente del formulario


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic .NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


La clase formulario

Todos los formularios son objetos y el código de un objeto se escribe con una clase.  Recordemos un poco estos términos, un objeto es cada uno de los elementos de programación de que disponemos: formularios, botones, bases de datos, ... y una clase es digamos la plantilla para crear ese elemento. Es decir con la clase "botón" podemos crear y manipular botones.

Seguimos, como el formulario es una clase y debemos crear este formulario hay que utilizar las palabras clave Class y End Class y heredar esta clase de la clase Form con la palabra clave Inherits. Tranquilo... esto significa que tenemos que crear un formulario nuevo, ya sabes que VB.NET le pone un nombre por defecto Form1. Veamos ahora el código:

Public Class Form1
    ...
    ...
End Class

Que significa crea un formulario llamado Form1 y si vemos el editor y marcamos el formulario:

Form1 es un objeto creado a partir de la laces "System.Windows.Forms.Form"

Nota: El "spacename" mas importante dijimos en el primer capítulo que era System. De elle parten otros adecuados a diferentes acciones: acceso a bases de datos System.Data, para dibujar: System.Drawing, para trabajar con los elementos de Windows: System.Windows y de ahí uno de los componentes de los entornos que son los formularios: System.Windows.Forms. Vale, este spacename contiene todos los elementos de los formularios: cuadros de texto, botones, lista, .... y obviamente el propio formulario. Si recuerdas antes vimos el botón que pertenecía a la clase "Button" que pertenece al mismo espacio de nombres que el formulario:

    

¿Que tal.. mejor? Pues si lo habéis entendido hemos avanzado más de lo que parece, ánimo. Por el hecho de establecer una relación de herencia entre Form y Form1, toda la funcionalidad de la clase Form (clase padre o base) pasa a la nueva clase Form1 (clase hija o derivada) a la que podemos añadir nuevas características. Sigamos con el código...


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic .NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Código oculto del programa

Vamos a ver la carpeta donde tenemos almacenado nuestra aplicación Visual Basic donde nos encontraremos con estos archivos:

Aunque en el capítulo anterior dijimos que solo existían ficheros con extensión .vb no es del todo cierto, internamente tiene algunos ficheros mas. Vamos a leer uno de ellos para comprender las tripas de nuestro programa. Abre con el editor de textos el fichero "Form1.Designer.vb". El código que verás aquí antes estaba dentro de los mismos ficheros .vb. Pero a partir de la versión 2.005 se separaron y están ahora en ficheros con esta extensión: nombre_del_formulario.Designer.VB.

Nota: Si queremos abrir un proyecto en nuestro IDE tendremos que buscar los ficheros con extensión "sln" de solución o "vbproj" de proyecto de VB.NET. En la pantalla anterior vemos el proyecto llamado "hola_jose.vbproj" si le damos doble clic se abrirá el entorno de desarrollo con el proyecto. Ojo porque si pulsamos en los otros ficheros se abrirán de forma individual y no como parte del proyecto, así que ten cuidado si los abres desde el explorador de archivos. Si lo haces desde el IDE no hay problemas ya que por defecto intentará abrir ficheros de tipo:

    

 

Volvamos con nuestros ficheros de extensión .VB. Éstos contienen todo lo necesario para crear la aplicación y los controles que hemos pintado. Fíjate en las tres primeras líneas:

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
Inherits System.Windows.Forms.Form

Por un lado tenemos en la segunda línea el nombre del formulario "form1" y debajo le indica que

Inherits System.Windows.Forms.Form

Que significa "hereda" de la clase System.Windows.Forms.Form. Por tanto ya sabe cómo debe crear el objeto llamado "Form1". Si bajas un poco verás un código parecido a:

Me.Label1 = New System.Windows.Forms.Label
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Button1 = New System.Windows.Forms.Button
Me.cmdcerrar = New System.Windows.Forms.Button

"Me" es una palabra clave que indica que son objetos del propio formulario. Por tanto está diciendo que "Me.Label1", es decir la etiqueta "Label1" del formulario "Form1" (Me) se va a crear a partir de la clase "New System.Windows.Forms.Label". A esto se le llama el método constructor

Todas las clases deben tener un método constructor que es el primero que se ejecuta cuando es instanciado un objeto de la clase y dentro se escribe el código para inicializar el objeto. Instanciar es una palabra que hace referencia a la creación del objeto.

Ahora veremos que son estos términos. El método constructor es la propia acción de crear el objeto a partir de su clase. Es decir creamos el coche (objeto) a partir de su definición (clase). El termino instanciado equivale a hacer referencia al objeto. Es decir decimos que un objeto es instanciado cuando hacemos uso de él, por lo tanto, debe crearse si no lo está,  el método constructor para una clase en Vb.NET es New(), es decir para crear un nuevo objeto utilizaremos el método New:

Puesto que nuestra clase Form1 (formulario del programa de ejemplo) hereda de la clase Form, en el método constructor de Form1 llamamos al método constructor de la clase base


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic .NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Formulario y creación de controles

Repetimos un poco la creación de los controles . Aquí tenemos los controles que insertamos: botones, cuadro de texto y etiqueta, veamos como lo gestiona esta parte del código.

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Label1 = New System.Windows.Forms.Label
Me.TextBox1 = New System.Windows.Forms.TextBox
Me.Button1 = New System.Windows.Forms.Button
Me.cmdcerrar = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(16, 32)
Me.Label1.Name = "Label1"
Me.Label1.TabIndex = 0
Me.Label1.Text = "Nombre"
 

Si vemos la primera parte lo que hace es crear los controles que vamos a utilizar en el formulario. Y los crea a partir de  su clase, por ejemplo: Me.Label1 = New System.Windows.Forms.Label. Sabemos que la palabra clave ME hace referencia al propio formulario luego crea en este formulario un elemento que se va a llamar Label1 y lo creas a partir de la plantilla o clase System.Windows.Forms.Label es decir te vas a comportar como una etiqueta de texto. Fíjate en el último control que creamos cmdcerrar, puesto que le pusimos ese nombre a la hora de crear el formulario, para crearlo Vb.NET debe hacer: crea en este formulario un control que se llame CMDCERRAR y lo vas a crear a partir de la plantilla System.Windows.Forms.Button por lo tanto será un botón. Hasta ahora bastante lógico ¿no? Vale una vez creados tenemos que ponerles todas las propiedades que le ha asignado el programador: color, etiqueta de texto, tipo de letra... de eso se encargan  las siguientes instrucciones por ejemplo Me.Label1.Text = "Nombre" le asigna la cadena de texto "Nombre" a una etiqueta que se llama Label1, creada arriba.

Como hemos dicho antes dentro del código de InitializeComponent la palabra clave Me nos permite referirnos a cualquier elemento del formulario actual desde dentro del propio formulario. Para terminar decir que las instrucciones Me.SuspendLayout() y Me.ResumeLayout(False) que están entre la asignación de las propiedades de los controles lo que permiten es detener por un momento la visualización de los elementos o controles en pantalla para evitar efectos raros en la visualización. Digamos que se pintan ocultos con todas sus propiedades y luego su hacen todos visibles a la vez, así evitamos problemas en su visualización.

Tranquilo si te pierdes un poco, es una toma de contacto con toda la nomenclatura, si repasas esto dentro de unos capítulos lo entenderás perfectamente y es muy interesante porque es la forma de crear el propio formulario.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic .NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Finalizar el formulario y liberar recursos

Cuando ya no necesitemos el formulario debemos liberar sus recursos (un eterno problema en Windows, los programas cogen recursos y luego no los liberan correctamente). El método Dispose() , indicar a VB.NET que el formulario ya no se va a utilizar y que todos los recursos que ha estado usando quedan a disposición del entorno para que el recolector de basura de la plataforma, los recupere cuando considere necesario. Esto se hace para el formulario y para sus elementos:

 'Form reemplaza a Dispose para limpiar la lista de componentes.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
 Try
  If disposing AndAlso components IsNot Nothing Then
   components.Dispose()
  End If
 Finally
  MyBase.Dispose(disposing)
 End Try
End Sub

Y de momento es suficiente. Sólo quería que vieses que podemos declarar objetos de un determinado tipo, luego los creo y por fin después de utilizarlos los debo eliminar. También hemos visto que ese código oculto contiene toda la información necesaria para crear el formulario con sus controles: botones, etiquetas, ... y con todas las propiedades de éstos.

Ahora vamos a grabar el proyecto para ver de qué partes se compone...


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic .NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


1.5 Ficheros de un proyecto

Al crear un proyecto éste crea unas carpeta con varios ficheros que todos conforman el proyecto. En nuestro ejemplo:

Los programadores de versiones anteriores habréis observado que no se parece prácticamente en nada en esta versión .NET. Veamos un poco los ficheros que lo componen según su extensión:

  • VB. Es el código fuente Visual Basic. A diferencia de Visual Basic 6 estos ficheros pueden contener módulos, módulos de clase, formularios, ... es decir ya no se distinguen entre .bas .fmr sino que todos son .vb
  • VBPROJ. Fichero del proyecto. Tiene toda la información de los elementos que forman parte del proyecto
  • SLN. solución. Una solución es el medio que utiliza .NET para agrupar varios proyectos. Estos pueden estar escritos en el mismo lenguaje o distintos (bastante tenemos con VB como para escribir fragmentos en distintos lenguajes ¿no?).
  • VBPROJ.USER. Información sobre las opciones de usuario de proyecto.
  • RESX. Plantilla de recursos en formato XML
  • EXE. Aplicación ejecutable
  • PDB. Información sobre la depuración de la aplicación
  • .Designer.vb. Asociado a cada formulario contiene el código necesario para la generación de los formularios.

En la carpeta bin del proyecto se genera el fichero ejecutable que es lo único que necesitamos para ejecutar nuestro programa en otros equipos.

Y con esto finalizamos esta pequeña introducción a una aplicación Windows realizada con .NET . Esta explicación nos ha servido para tener una primera toma de contacto seria con la base de .Net Framework que son las clases y su uso. De hecho, una vez entendido es algo realmente sencillo y fácil de utilizar, así que esto nos ha acercado un poco a su filosofía. Para descansar de esta teoría vamos a conocer y practicar  un poco con el IDE y los formularios...


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Visual Basic .NET y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de Visual Basic .NET y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.