Escolar Documentos
Profissional Documentos
Cultura Documentos
Microsoft Partner
El contenido de este laboratorio tiene todos los derechos reservados, por lo tanto no se
puede reproducir, transcribir, almacenar a un sistema de recuperación o de alteración,
asimismo la traducción a otro idioma de ninguna forma o por ningún medio mecánico,
manual, electrónico, magnético, óptico o de otro modo.
1 WINDOWS FORMS
Dentro de estos manuales del primer modulo consta de 8 laboratorios, donde en el cual se encontrara breves
descripciones de las Funcionalidades del IDE de VS2005, Clases, Objetos, controles, etc. luego del cual
encontrara unos ejemplos que visualice mejor los conceptos descriptos anteriormente.
Al realizar estos laboratorios se trato de enfocarlo didácticamente para que el estudiante no tuviera problemas
en el uso de las clases que proporciona el Framework.
Plataforma .NET?? Framework??.... Para simplificar los conceptos de estos términos nuevos para nosotros,
podríamos primero decir que La Plataforma .NET es la tecnología que nos permite integrar las personas,
dispositivos, servicios e información en cualquier escenario y en cualquier instante.
Mucho mas a un podríamos realizar desarrollos para aplicaciones distribuidas ya que tiene como soporte un
amplio conjunto de bibliotecas y estas puedan obtener de manera automática características avanzadas de
seguridad, rendimiento, etc. ...
En realidad la plataforma .NET ofrece un entorno gestionado de ejecución de aplicaciones, nuevos lenguajes de
programación y compiladores, además permite el desarrollo de todo tipo de aplicaciones: pasando por
programas de consola, servicios Windows y hasta aplicaciones para dispositivos móviles, igualmente
desarrollos de escritorio, para Web.
Experiencias y Soluciones
Y ahora que es el Framework??? El Framework es el soporte, paquete de software fundamental de la
plataforma .NET, el cual incluye el entorno de Ejecución (Runtime), Bibliotecas de Funcionalidad Reutilizable
(Class Library). En síntesis podríamos decir que el Framework es:
Los componentes que forman el Framework lo podríamos dividir en lo siguiente: la Arquitectura del .Net
Framework, El Entorno de Ejecución (CLR), la Biblioteca de Clases, el Lenguaje Común de Especificaciones
(CLS), el CLI, el CTS, y el Modelo de Ejecución.
VB C++ C# J# …
Visual Studio .NET
.NET Framework SDK
SISTEMA OPERATIVO
El Framework realiza la ejecución de aplicaciones a través del Common Language Runtime o CLR, Lo que
realiza el CLR es definir un entorno virtual que se ocupa de hacer posible la ejecución y uso de la aplicación,
desde la gestión de memoria. La vida de los objetos, pasando por la seguridad de acceso a nivel de objetos
incluso métodos que este ofrece, y la gestión de subprocesos.
Los servicios que ofrece el CLR debido a su arquitectura computacional, lo convierten en una herramienta para
nuestro tiempo de tecnología de punta en algo realmente extraordinario, puesto que en teoría cualquier
aplicación escrita para funcionar con el CLR puede ejecutarse en cualquier tipo de arquitectura de hardware,
para esto Microsoft dispone de implementación de .NET para Windows de 32 bits, Windows de 64 bits e incluso
para Windows Mobile, cuyo hardware no tiene nada que ver con la arquitectura de un ordenador común.
Cargador de Clases
SISTEMA OPERATIVO
Anteriormente cuando trabajamos en otras versiones y en distintos lenguajes cada uno era independiente y la
comunicación entre dichos programas no era transparente. La plataforma .NET no esta atada a un determinado
lenguaje de programación ni favorece a uno determinado frente a otros. En la actualidad existen
implementaciones para varias decenas de lenguajes que permiten escribir aplicaciones para la plataforma .NET.
Los más conocidos son Visual Basic .NET, C# o J#.
Es decir cualquier componente desarrollado en estos lenguaje puede ser utilizado en forma transparente por
otro lenguaje de la plataforma .NET, he incluso es posible ejecutar el código .NET en diferentes plataformas y
sistemas operativos.
Y como se logra esto??.. Bueno es por que todos al final caen a un lenguaje intermedio llamado IL que se
comporta como un traductor, y desde ahí se puede implementar en otro lenguaje de la plataforma .NET.
Lenguaje Intermedio
C# C++
VB
Para visualizar el código intermedio se tendría que abrir la consola que viene con Visual Studio y dentro de el
escribir el comando Ildasm, en el cual luego se tiene que seleccionar el EXE, DLL que queremos revisar.
El lenguaje llamado IL (Intermediate Language o Lenguaje Intermedio) fue desarrollado para que trabajara en
forma independiente al procesador en el que se vaya a ejecutar. Este lenguaje es similar al código
ensamblador pero de más alto nivel y creado para un hipotético procesador virtual que no está atado a una
arquitectura determinada.
Cuando se compila una aplicación escrita en un lenguaje .NET en cualquier lenguaje ya sea VB, C#, C++ u
otro, lo que el compilador realmente es generar un nuevo código escrito en este lenguaje intermedio. Así,
todos los lenguajes .NET se usan como capa de más alto nivel para producir código IL.
Un componente fundamental del CLR es el compilador JIT (just-in-time). Lo que realiza este compilador es de
compilar bajo demanda y de manera transparente el código escrito en lenguaje intermedio a lenguaje nativo
del procesador físico que va a ejecutar el código.
Otros
C++ C# VB.NET Lenguajes
Ildsam.exe
Ejecutable Código
IL IL
Ilasm.exe
Compilador JIT
(ngen.exe)
En este grafico se puede visualizar que los compiladores producen un ejecutable IL, que puede
también ser generado con las herramientas Ilasm, y desensamblado con Ildasm.
Para que el lenguaje intermedio pueda funcionar correctamente se deben de establecer reglas, normas y
estándares, la cuales deben definir un conjunto de características que todos los lenguajes deben incorporar. A
este conjunto se le denomina Common Language Specification (CLS), en castellano significa Especificación
Común de los Lenguajes.
Una de las cosas que regula el CLS se encuentra la nomenclatura, la forma de definir los miembros de los
objetos, los metadatos de las aplicaciones, los tipos de datos compatibles, etc.
Cuando se ha trata de llamar a una DLL escrita en C++ desde Visual Basic 6.0 se vera que los tipos de datos
son diferentes o incompatibles según se quiera usar, Para evitar este tipo de problemas y poder gestionar de
forma eficiente y segura el acceso a la memoria, la CLS define un conjunto de tipos de datos comunes (Common
Type System o CTS) que indica qué tipos de datos se pueden manejar, cómo se declaran y se utilizan éstos y de
qué manera se deben gestionar durante la ejecución.
Sobre la sintaxis, cada lenguaje .NET utiliza una sintaxis diferente para cada tipo de datos. Por ejemplo, el tipo
común correspondiente a un número entero de 32 bits (System.Int32) se denomina Integer en Visual Basic
.NET, pero se llama int en C#. En ambos casos representan el mismo tipo de datos dentro del lenguaje
intermedio.
El CLS los tipos de datos los agrupa en dos bloques, los tipos por valor (como los enteros que hemos
mencionado o las enumeraciones) y tipos por referencia (como las clases). Con el siguiente grafico tendremos
mejor la idea en que se puede diferenciar un tipo por valor y tipo por referencia:
Object
Class ValueType
Controls
Byte
Otros Char
Los tipos de datos y sus equivalentes en el IL con sus descripciones son los siguientes:
Es el conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluidos en el .NET Framework, representa
el centro de todo, donde esta incluido y ordenadamente todos los objetos del Framework agrupado según su
funcionalidad, es decir están organizados en jerarquías lógicas de nombres, denominados Namespaces o
espacios de nombres como “System.Web” o “System.XML”.
Estas clases son independientes del lenguaje de programación de alto nivel que se desee utilizar tanto para C#,
VB.NET, J#, etc. Estas clases son extensibles y totalmente orientadas a objetos, es decir ahora si VB.NET es
orientado a Objetos.
System.Web System.Windows.Forms
Services UI Design ComponentModel
Description HtmlControls
System.Drawing
Discovery WebControls
Drawing2D Printing
Protocols
Imaging Text
Caching Security
XSLT Serialization
System.Data
OLE DB ODBC XPath
Common SqlClient
System
Collections IO Security Runtime
Toda esta funcionalidad está implementada en forma de bibliotecas de funciones que físicamente se encuentran
en diversas DLL (bibliotecas de enlazado dinámico). A su conjunto se le denomina Base Classes Library
(Biblioteca de clases base o BCL) y forman parte integral de la plataforma .NET.
Dada la gran cantidad de clases que existen se debe de organizarlas de un modo coherente. Se debe tener en
cuenta que podemos adquirir más funcionalidades (que se traducen en clases) a otros fabricantes con el mismo
nombre de clase o conjunto de clases, para solucionar este problema existen en todos los lenguajes .NET los
espacios de nombres o namespaces.
Un espacio de nombres no es más que un identificador que permite organizar de modo escalonado o jerárquico
a las clases que estén contenidas en él así como otros espacios de nombres dentro de él.
Así, por ejemplo, todo lo que tiene que ver con el manejo de estructuras de datos XML en la plataforma .NET se
encuentra bajo el espacio de nombres System.Xml. La funcionalidad fundamental para crear aplicaciones Web
está en el espacio de nombres System.Web. Éste a su vez contiene otros espacios de nombres más
especializados como System.Web.Caching para la persistencia temporal de datos,
System.Web.UI.WebControls, que contiene toda la funcionalidad de controles Web para interfaz de usuario,
etc...
Para comprender mejor los espacios de nombres, son clases, tipos, espacios de nombres, etc. Que están
agrupados por funcionalidades similares como conjuntos, y esto quiere decir que cuando creamos una aplicación
Windows en .Net, solo se cargan clases básicas para el funcionamiento de la aplicación y para ser usadas en la
aplicación:
System XML
Data
Este gran universo se llama System y se cargan todas las clases que se encuentran en ella, pero no las que
están contenidas dentro de un espacio de nombres. Para usar una clase que no esta cargada en nuestra
aplicación, se usa la palabra reservada Imports.
Por ejemplo si queremos usar una clase llamada SqlConnection, cuya clase se encuentra dentro del espacio de
nombre System Data SqlClient, tendríamos que escribir el siguiente código:
Imports System.Data.SqlClient
Pero esto significa que no solo se carga la clase SqlConnection sino todas las clases que se encuentra en el
espacio de nombre: System.Data.SqlClient.
Si queremos evitar esto, tendríamos que declarar la variable indicando la ruta de donde se saca esta clase:
1.8 Ensamblados
Los ensamblados son ficheros con forma de EXE o DLL que contienen toda la funcionalidad de la aplicación de
forma encapsulada. Con los ensamblados ya no es necesario registrar los componentes de la aplicación
Ensamble en .NET
Descripción del
Archivo.DLL ensamble
Descripción de
Manifiesto los tipos incluidos
en el ensamble
Las aplicaciones de escritorio son aquellas basadas en ventanas y controles comunes de Windows que se
ejecutan en forma local conocido como Cliente - Servidor. En la plataforma .NET el espacio de nombres que
ofrece las clases necesarias para construir aplicaciones de escritorio bajo Windows System.Windows.Forms.
Los proyectos en Windows Forms está conformado por clases especializadas que ofrecen funcionalidades para
el trabajo con ventanas, botones, controles personalizados, que son controles habituales en las aplicaciones de
escritorio.
Visual Studio ofrece todo lo necesario para crear visualmente este tipo de programas, de un modo similar
aunque más rico al que ofrecía el entorno de desarrollo integrado de Visual Basic.
Diseñador de
Windows Forms
Al contrario que en VB6, .NET proporciona control sobre todos los aspectos de las ventanas y controles, no
dejando nada fuera del alcance del programador y otorgando por lo tanto la máxima flexibilidad. Los
formularios (ventanas) son clases que heredan de la clase base Form, y cuyos controles son miembros de ésta.
De hecho se trata únicamente de código y no es necesario (aunque sí muy recomendable) emplear el
diseñador gráfico de Visual Studio para crearlas.
Este es el aspecto que presenta parte del código que genera la interfaz mostrada en la anterior figura:
Código autogenerado por Visual Studio para crear la interfaz de la figura anterior
A diferencia del 2003 que este código se encontraba en la misma clase del formulario en una región creada
para contener el diseño del formulario.
I.-Para esto desde el menú Archivo, seleccionamos Nuevo Proyecto (Ctrl + N).
Líneas de
Ubicación para el
diseño
IV.- Comenzaremos con las asignaciones de las propiedades de los controles utilizados, seleccionaremos el
primer botón (Button1) y en el cuadro de propiedades se debe observar lo siguiente:
V.- Otra propiedad común de los controles es el Font, para estableces un formato determinado.
Definición de la Clase
Los eventos producidos por los controles agregados a un formulario tiene la siguiente estructura:
El nombre Button_Click solo es una sugerencia que Visual Basic realiza, en las versiones anteriores no era una
sugerencia, era una imposición que nos hacia.
Ahora podemos dejar el nombre que aparece o podemos poner un nombre adecuado nosotros mismos; lo
importante aquí es la parte final de la línea de declaración del procedimiento: Handles btnAgregar.Click, con
esto es que el compilador de Visual Basic sabe que es un evento y que dicho evento pertenece al objeto
btnAgregar.
OBS: la palabra reservada Me hace referencia a la clase actual, es decir al formulario que estas codificando.
XI.- Finalmente, ejecutemos nuestro proyecto con F5 o desde el menú Debug en Ejecutar, el cual tendremos lo
siguiente:
Anchor: Permite a los controles dentro de un formulario adaptarse al cambio de tamaño producido por el
formulario, para que el diseño de los controles dentro de este se mantenga alineado según se modifique, para
esto contiene propiedades de crecimiento: Top, Left, Right y Bottom.
Cambiemos la configuración de los controles dentro del formulario frmControles, para que cuando cambiemos
el tamaño del formulario el diseño se mantenga:
Antes
Ahora
Dock: Indica la ubicación de los controles dentro del formulario, es decir los controles agregados al formulario
se acoplan según la ubicación deseada hasta ocupar todo el espacio del formulario.
Alineación
Superior
Se alinea a la Se alinea a la
Izquierda Derecha
Rellena todo el
espacio
Alineación
Inferior
XII.- Para terminar bien nuestra aplicación, una buena costumbre es tener uniformizados los nombres de clases
con los archivos que lo van a contener:
Para esto seleccionamos el formulario del explorador de soluciones, y cambiamos el nombre a frmControles.vb
End IF
2.- Propiedad Dock, para el acople de los controles
3.- Propiedad Anchor para el diseño de los formularios.
4.- Realizar este formulario como inicio de ejecución desde Propiedades del Proyecto.
5.- En el botón agregar de vendedores se debe de agregar al primer Listbox.
6.- En el botón agregar de operadores se debe de agregar en el segundo Listbox.
7.- En el botón eliminar se debe de eliminar el elemento seleccionado de cualquiera de los dos Listbox.