You are on page 1of 446
I CATR RTECS Visual Basic.NET (VB.NET) Programe con Visual Studio 2008 Thierry GROUSSARD =) war ediciones cor HAN We aac Todas las marcas citadas han sido registradas por su respectivo editor. Reservados todos los derechos. EI contenido de esta obra esta protegido por Ia ley, que establece penas de prisién y/o multas, ademas de las correspondientes indemni- zaciones por dafios y perjuicios, para quienes reprodujeren, plagiaren, distribuyeren o comunicaren ptiblicamente, en todo o en parte, una obra literaria, artistica o cientifi- ca, 0 su transformacién, interpretacién o ejecucién artistica fijada en cualquier tipo de soporte o comunicada a través de cualquier medio, sin la preceptiva autorizacion. Copyright - Editions ENI - Febrero 2009 ISBN: 978-2-7460-4505-7 Edici6n original: 978-2-7460-4192-9 Ediciones ENI es una marca comercial registrada de Ediciones Software. Ediciones ENI P® Ferrocarriles Catalanes, 97-117, 2? pl. of. 18 08940 - Cornelia de Llobregat (Barcelona) Tel: 934 246 401 Fax: 934 231 576 e-mail: info@ediciones-eni.com http:/Avww.ediciones-eni.com Autor: Thierry GROUSSARD Edicién espafiola: Carlos WALZER Coleccién Recursos Informatico dirigida por Joélle MUSSET Podré descargar algunos elementos de este libro en la pagina web de Ediciones ENI: http:/www.ediciones-eni.com Escriba la referencia ENI del libro RITOBNETVB en la zona de busqueda y valide. Haga clic en el titulo y después en el vinculo de descarga. Presentacién de la plataforma .NET Capitulo 1 A._Introducci6n . . ..............,,..... #6 B. Escritura, compilacién y ejecucién de una aplicacion. . . . . 11 Presentacién de Visual Studio Capitulo 2 A. La evolucién desde Visual Basic 1 hasta Visual Basic NET 2008 24 B. Instalacién y primer arranque. . . . 1. ee ee ee ee 25 C. Descubrirelentono. ... 2... ee ee ee 36 D. Las herramientas disponibles... ...........- 39 Organizacién de una aplicacién Capitulo 3 A._Las soluciones . . . . . ......,....,,,.,... 59 B. Los proyectos... 1 1 ee eee et tt ee 70 Bases del lenguaje Capitulo 4 A.__Las variables, constantes y enumeraciones . ..... ~~ - 97 B. Los operadores...) 1 1) ee ee ee ee ee et 125 C._Las estructuras de control... ............. 131 D. Procedimientos y funciones. ... 1... 1... +s -e ee 137 E. Assemblies, namespaces y atributos. ..........- 144 Programe con Visual Studio 2008 Ea Contenido _ Programacién orientada a objetos Capitulo 5 A._Introduccién_. 157 B. Aplicacién con Visual Basic. . . . ...........- 159 Go Les tipos genéricoe: 6 i i i 196 D. Lascolecciones. . 2... 1. ee ee ee ee 204 E. Los objetos intrinsecos. . 2. 2 2. 1 ee ee ee ee ee 209 Gestion de los errores Capitulo 6 y depuracién del cédigo A. Los diferentes tilpos de errores . 2... 1... ee ee ee 212 B. Tratamiento de loserrores . - - --.--- +--+ e+e 215 C. Las herramientas de la depuracin. . . 2... 2. ee ee 222 D. Otras técnicas de depuracién. . 2 1... ee ee ee 239 Las aplicaciones de Windows Capitulo 7 A. Los diferentes tipos de aplicacion . . 2. 2... 2. ee ee 246 B. Las ventanasen VB.NET... .....-----+2-0- 248 C. Los eventos de teclado yderaton. . 2... 2. ee eee 262 D. Los cuadros de didlogo. . 2... ee te ee ee 270 E. Utilizacién de los controles. . 2 2... ee ee ee ee 284 F. Los controlesde VB.NET... .-...-.---2-205 294 Acceso a las bases de datos Capitulo 8 A. Principio de funcionamiento de una base de datos... . . - 357 D. Utilizacién de la modalidad no conectado. . Presentacién de LINQ A. Presentacinde LINQ... 2... 2. ee eee eee 410 B. Sintaxis del Lenguaje LINQ. . 2. 2... ee ee ee ee 410 C. LIN@ASQL we ee ee ees 421 Utilizacién de XML Capitulo 10 A. Presentacién. ©... 6. ee 444 B. Estructura de un documentoXML............. 445 C. Tratamiento de un documentoXML ........---. 450 Implementaci6n de aplicaciones Capitulo 11 y componentes A._Implementacién con Windows Installer... . ...... . 460 B. Implementaci6n con ClickOnce... ...... +... 471 A dete tetera ART Programe con Visual Studio 2008 = ‘(ey Contenido ~ Visual Basic.NET (VB.NET) © Capitulo 1: Presentacion de la plataforma .NET A._Introduccién_._. 6 1._ Principio de funcionamiento del Common Language Runtime. . . 7 2. Los servicios del Common Language Runtime... ....... 8 3._La Base Class Library...» 7 9 4. La evolucién de la plataforma .NET y sus versiones . . . . . . - 10 B._Escritura, compilacién y ejecucién de una aplicacin. . . . . 11 1, Escritura del codigo... . ee ll 2. Compilacién del cédigo. . . . .. . 1... se we 13 3._Anélisis de un archivo compilado. . .. .. 1... 1... 15 4. Ejecuci6n del cédigo. . . . .. 1.1... 1... 1... 21 This one GZJT-T7A-8175, Capitulo 1 A. Introduccién La plataforma .NET proporciona un conjunto de tecnologias y herramientas que facilitan el desarrollo de aplicaciones y propone una solucién para casi todos los tipos de aplicaciones: ~ aplicaciones Windows clasicas; ~ aplicaciones Web; ~ servicios Windows; = servicios Web. Todos estos tipos de aplicaciones se pueden realizar gracias a un elemento esencial: el Framework .NET. Este Framework se encarga, por medio de numerosas capas légicas superpuestas, de la integridad de la vida de una aplicacién, desde el desarrollo hasta la ejecucién. El Framework debe estar instalado en el sistema operativo con el cual vaa interactuar. El principal sistema operativo que permite instalarlo es, por supu Windows, pero hay disponibles otras versiones que permiten la adaptacién de la piatatorns .NET a otros sistemas operatives como Linux o Unix. El Framework contiene dos elementos principales: el Common Language Runtime y la biblioteca de clases del .NET Framework. El Common Language Runtime es la base del .NET Framework. El runtime puede ser considerado como un motor de ejecucién que gestiona la ejecucién del cédigo y asegura la gestion de la memoria. El cédigo ejecutado por el Common Language Runtime se llama cédigo manejado. La biblioteca de clases es un conjunto de clases que puede ser utilizado para el desarrollo de todo tipo de aplicaciones. La manipularemos a lo largo de toda esta obra. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. © Editions ENI - All rights reserved Presentacién de la plataforma .NET Exception Manager Proporciona la gestién estructurada de las excepciones, relacionéndola con Windows Structured Exception Handling (SEH). Esta técnica permite una gestién individual de cada excepcién en lugar de una gestion global. Thread Support Propone un conjunto de clases que permite la realizacién de aplicaciones multihilo. COM Marshaler Permite traducir las llamadas a los componentes COM, asegurando por ejemplo la conversién de tipos de datos. Base Class Library Support Proporciona e! acceso a los servicios disponibles en el sistema operativo. 3. La Base Class Library El Framework .NET proporciona a los desarrolladores un conjunto de herramientas que les permite obtener una solucién répida para la mayoria de problemas que puedan encontrarse durante la realizacién de una aplicacién. Dichas herramientas estan disponibles en forma de clases. Al contrario que en las bibliote- cas de cédigo de los lenguajes de la generacién anterior, que no eran sino una lista infinita de procedimientos o funciones, la biblioteca de clases tiene una estructura jerarquizada. El elemento esencial de esta jerarquia es el espacio de nombres (Namespace). Permite juntar de manera légica las clases que tengan puntos en comin. Por ejemplo, dentro del Name- space System.Data se encuentran todas las clases necesarias para acceder a una base de datos. Esta biblioteca de clases es por supuesto independiente del lenguaje de programacién. Permite por lo tanto mezclar diferentes lenguajes a lo largo del desarrollo de una aplica- cién. Esta perfectamente integrada con Visual Studio, lo que hace cémoda la utilizacién de herramientas como Intellisense. Como esta biblioteca esta orientada a objetos, es facil- mente extensible gracias a las relaciones de herencia. La biblioteca contiene una cantidad increible de Namespaces y de clases, tanto que es muy posible que no tenga que utilizar nunca algunos de ellos a lo largo de sus desarrollos con Visual Basic. Los Namespaces més utilizados son los siguientes: system, Se trata del Namespace raiz para los tipos de datos del Framework .NET. Contiene la definicién de la clase Objeto, que es el padre de cualquier tipo de dato dentro del Framework .NET. ‘System. Windows Contiene el conjunto de elementos que permiten la creacién de interfaces para usuarios de Windows. Programe con Visual Studio Capitulo 1 System.Web Contiene todos los recursos necesarios para crear aplicaciones Web, como por ejemplo las clases de la tecnologia ASP.NET o las clases usadas para crear servicios Web XML. ‘System.data Contiene un conjunto de clases especializadas en el acceso a bases de datos, con el soporte de ADO.NET. El lenguaje XML esta ahora por todas partes y este Namespace contiene las clases que permiten la manipulacién de documentos XML. 4. La evolucién de la plataforma .NET y sus versiones La primera versién (1.0) de la plataforma .NET fue liberada en enero de 2002 junto con Visual Studio 2002. Esta version fue rdpidamente reemplazada por la version 1.1, que corrigié pequefios problemas de la versién precedente y agregé tecnologias que ya estaban disponibles, aunque s6lo como instaladores independientes. Los principales aportes de esta versién fueron: Los controles méviles de ASP.NET (anteriormente Microsoft Mobile Internet Toolkit) que extienden el uso del Framework .NET en los dispositivos méviles como teléfonos méviles y agendas electronicas. = El proveedor de datos .NET Framework para ODBC y el proveedor de datos .NET Framework para Oracle, que, si bien estaban disponibles para su descarga, fueron incluidos como parte de la biblioteca de clases. La inclusion de la actualizacién del protocolo de Internet cominmente denominado IP version 6 o IPv6. Este protocolo aumenta considerablemente el espacio de direccionamiento utilizado para identificar los puntos de entrada de la comunicacion en Internet. La version .NET Framework 1.1 esta disponible con Visual Studio 2003, el cual fue libera- do en abril de 2003. Hubo que esperar hasta noviembre de 2005 para el lanzamiento de la versién 2.0 junto con el de Visual Studio 2005. Esta versién aporta numerosas mejoras: - La salida al mercado de la nueva generacién de equipos de 64 bits que permiten la creacién de aplicaciones de mejor desempefio. Una mayor evolucién del acceso a datos con ADO.NET que mejora el uso de XML. El desarrollo de aplicaciones Web es cada vez més facil con ta nueva versién de ASP.NET, la cual propone una gran cantidad de nuevos controles. El uso de la clase Console se ha optimizado con el agregado de nuevas propiedades y métodos (gestién de colores, borrado, posicién del cursor). Visual Studio 2005 reintroduce la funcionalidad Modificar y Continuar que permite modificar el cédigo fuente durante la depuracién de codigo. Una vez que las modificaciones en el cédigo han sido introducidas, el usuario puede continuar la ejecucién del cddigo y observar e! resultado. x= ~~ Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved __Presentacin de la plataforma .NET - La aparicin del concepto genérico, que permite a las clases, estructuras, interfaces, métodos y delegados ser declarados y definidos con parémetros de tipos genéricos en lugar de tipos especificos. Los tipos son luego especificados durante su uso. La version 3.0 llega en noviembre de 2006 y aporta nuevas tecnologias sobre la base de la version 2.0. Estas tecnologias pueden descargarse para integrarse a la version 2.0. He aqui un resumen de dichas tecnologias: - Windows Presentation Foundation (WPF) representa el nuevo sistema de interfaces graficas. Se basa en un motor de representacién vectorial y permite una separacién clara entre la definicion de la interfaz grdfica y de su aplicacién en el codigo a través del Jenguaje de marcas XAML (eXtensible Application Markup Language). De esta forma es més facil compartir proyectos entre disefiadores y desarrolladores. Windows Communication Foundation (WCF) constituye la nueva base de! desarrollo de las aplicaciones distribuidas; facilita la comunicacién entre aplicaciones por medio de una capa de abstraccién que generaliza las técnicas de comunicacién entre aplicaciones Servicios Web, .NET Remoting, Microsoft Transaction Server y Microsoft Message ueue.....) Windows Workflow Foundation (WF) esté compuesto de un modelo de programacién, un motor de ejecucién y de herramientas para integrar flujo de procesos en una aplicacién. Un flujo (workflow) puede ser definido como un conjunto de acciones o etapas que han de ejecutarse en un orden predefinido. Estas acciones son encadenadas en funcién de condiciones, interacciones con otros procesos informaticos o en funcién de interacciones humanas. Windows Cardspace consiste en una nueva técnica que les permite a los usuarios identificarse en una aplicacién. Su propésito es similar a Microsoft Passport, pero no es s6lo propietaria de las aplicaciones Microsoft (Hotmail, MSDN...). B. Escritura, compilacién y ejecu de una aplicacién En este capitulo trataremos el ciclo de vida de una aplicacién, desde la escritura del cédigo hasta la ejecuci6n de la aplicacién, profundizando en los mecanismos utilizados. 1. Escritura del codigo La gran mayoria de las aplicaciones se desarrollan gracias a un entorno integrado que contiene las principales herramientas necesarias, como por ejemplo: ~ un editor de texto; = un compilador; = un depurador. Programe con Visual Studio 2008 Capitulo 1 _ Este planteamiento es sin duda el mas comodo. Se necesita sin embargo una pequefia fase de aprendizaje para familiarizarse con la herramienta. Para nuestra primera aplicacion, va- mos a trabajar de una forma un poco diferente, ya que utilizaremos herramientas individua- les: el bloc de notas de Windows para la escritura del cédigo y el compilador en linea de ccomandos para Visual Basic. Nuestra primera aplicacién seré muy sencilla, ya que simplemente mostrar el mensaje “Buenos dias" en una ventana de comandos. Este es el cOdigo para nuestra primera aplicacion. Enseguida lo explicaremos linea por linea. Para escribirlo, se puede usar el bloc de notas de Windows o cualquier otro editor de texto, siempre que éste no afiada cédigo de maquetacién dentro del documento, como hacen por ejemplo los procesadores de texto. jemplo Imports System public Module test dim message as string="Buenos dias" public sub main () console.writeline (message) end sub end module Hay que guardar este cédigo dentro de un archivo con la extensién .vb. Dicha extensién no es obligatoria, pero usdndola se respetan las convenciones de Visual Studio. Veamios ahora en detalle algunas lineas de nuestra primera aplicacién. Imports System Esta linea permite tener directamente accesibles los elementos del Namespace System. Sin ella, se tendrian que utilizar los nombres completos para todos los elementos conte- nidos dentro del Namespace. En nuestro caso, deberiamos utilizar: System.Console.writeline ("Buenos dias") public Module test ... end module En Visual Basic, toda parte de cédigo debe estar contenida dentro de un mdédulo o clase. dim message as string="Buenos dias" Esta linea declara una variable. Todas las variables deben ser declaradas antes de su uso. La declaracién permite definir el tipo de dato que aquélla va a contener, como una cadena de caracteres, y eventualmente un valor inicial, “Buenos dias” en nuestro caso. public sub Main() ... end sub Todas las instrucciones que no sean declaraciones deben colocarse dentro de un proce- dimiento o una funcién. La mayor parte del cédigo se coloca por lo tanto entre las ins- trucciones Sub y End Sub o Function y End Function. Entre todos estos procedimientos y funciones, se define como un punto de partida de (a aplicacién. Al ejecutar este pro- cedimiento, se ejecuta la aplicacién. Este procedimiento debe ser publico y se tiene que llamar Main. ET Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved Presentacién de la plataforma .NET Console.writeline("Buenos dias") La clase Console definida dentro del Namespace System proporciona un conjunto de métodos, que permiten mostrar informacién en la consola o leer informacién de ella. El procedimiento writeline permite mostrar una cadena de caracteres en la consola. Hay que destacar también que Visual Basic no hace distincién entre mintisculas y mayus- culas dentro de las instrucciones. Si se utiliza el editor de Visual Studio para escribir el cédigo, éste insertara automaticamente las modificaciones para hacer uniforme la “ortografia® del codigo. 2. Compilacién del cédigo El Framework .NET incluye un compilador en linea de comando para Visual Basic. Para compilar el cédigo fuente de nuestro ejemplo, debemos abrir una ventana de comandos para poder lanzar el compilador. Para hacerlo, se ha creado una opcién de acceso rapido dentro del mend durante la instalacién. Esta opcién de acceso rapido lanza la ejecucion de un archivo .bat, que coloca algunas variables de entorno necesarias para el buen funciona- miento de las herramientas Visual Studio en linea de comando. Ya con la ventana de comando abierta, conviene colocarse en el directorio en el que se en- cuentra el archivo fuente. La compilaci6n se lanza con el comando vbc buenos dias. vb. Programe con Visual Studio 2008 Ha a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. EWE e it) Unit tek uuaL cc GRIT ue Eee = © C:\Documents and Settings\therry\Mis documentos|captulo I\buenos dias.ee > MANIFEST + Om © tex Las informaciones contenidas en el archivo pueden ser divididas en dos categorias: el ma- nifiesto y el cdigo MSIL. El manifiesto contiene los metadatos que permiten describir el contenido del archivo y los recursos que necesita. Se trata en este caso de un archivo auto-descriptivo. Esta técnica es muy interesante porque desde el momento en que el Com- mon ee Runtime lee el archivo, dispone de todas las informaciones necesarias para su ejecucion. Ya no hace falta recurrir a una grabacién dentro del registro de la maquina. E! manifiesto se puede visualizar haciendo doble clic sobre el nombre. Dentro del manifiesto encontraremos informaciones que indican que para que la aplicacién pueda funcionar, necesita los ensemblados externos mscorlib, Microsoft.VisualBasic y System. ta Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved Presentacién de la plataforma .NET La segunda parte corresponde realmente al codigo MSIL. Se utiliza un conjunto de iconos para facilitar la visualizacién de las informaciones. Simbolo Significado Mas informaciones Namespace Clase Interfaz Clase de valores Enumeracién Método Método estético Campo Campo estatico Evento Propiedad ~|P 4) e¢/O Gl sal a|a\mlaely Elemento de manifiesto o de informaciones de clase Como en el caso del manifiesto, haciendo doble clic sobre un elemento se obtienen més detalles. De esta manera podemos, por ejemplo, visualizar la traduccién de nuestro procedimiento main. [method public static void main() cil managed sentrypoint Fe ee he eer nectar ieterr cane gmt oe 14 kage size “Buenos dias" void [nscorlib}systen.console: AteLine(string) Programe con Visual Studio 2008 Hu Capitulo 1 En un ejemplo de cédigo tan sencillo, es facil encontrar la correspondencia entre el cédigo Visual Basic y su traduccién en cédigo MSIL. Para los que quieran aprender més sobre el cédigo MSIL, existe un compilador MSIL: ilasm. Esta herramienta convierte un archivo de texto que contiene cddigo MSIL en formato binario. Ya que sabemos cémo visualizar el cédigo MSIL, podemos verificar si es realmente inde- pendiente del lenguaje fuente utilizado para desarrollar la aplicacion. Este es el codigo C# que realiza la misma tarea que nuestro cédigo Visual Basic. using System; class Program { static String message = "Buenos dias"; static void Main(string{] args) { } Console. WriteLine (message) ; ) Después de la compilacién y de la descompilacién por parte de ildasm, esto es lo que nos muestra para el método Main. cer Buscor suerte Pre thod public hidebysig static void Main(string[] args) cil managed K sentrypoint 17 Code size 13 (xd) smaxstack 8 nop ldstr ~guenos dias" call void [nscorlibjsysten.Console::WriteLine(string) nop qt ret >) //°end of method Progran: :Hain No hay diferencias en relacién con la versién Visual Basic del método Main. Ea Visual Basic.NET (VB.NET) © Editions EN! - All rights reserved Es perfectamente posible realizar el método inverso y transformar un archivo de texto que contenga cédigo MSIL en el archivo binario correspondiente, lo cual es posible con el desensamblador ilasm. La Unica dificultad en crear un archivo de texto con cddigo MSIL re- side propiamente en la sintaxis, que no es muy intuitiva. Una solucién puede ser el uso mismo de la herramienta ilasm (desensamblador) para generar el archivo de texto. Para ello debe abrir el archivo ejecutable o biblioteca dil con ilasm, invocar la opcién Dump del ment Archivo y seleccionar el nombre del archive que hay que generar (extensi6n .il). Este archivo puede editarse con un simple editor de textos. Reemplace por ejemplo el contenido de la variable message por !a cadena “Hello”. «method private hidebysig specialname rtspecialname static void .cctor() cil managed { /1 Code size 11 (Oxb) smaxstack 8 IL_0000: Idstr "Hello" IL_0005: stsfld string Program: :message TL_000a: ret ) //end of method Program: :.cctor Guarde el archivo. El préximo paso es regenerar el archivo ejecutable mediante el ensam- blador ilasm, y la siguiente linea de comandos: ilasm buenos dias.il /outp La opcién /output=tello.exe permite indicar el nombre del archivo generado. Si esta opcién no se especifica, se utilizard el nombre del archivo que contiene el cédigo fuente. Ejecute el archivo creado y verifique el mensaje que se muestra. Estas mismas acciones pueden ser realizadas independientemente del tipo de archivo ejecutable o biblioteca dll. Solo es necesario especificar el volimen para la decompilacién. Seguramente ha observado aqui un problema: toda persona que disponga del archivo ejecutable o biblioteca dll de una aplicacién puede modificaria. Ciertamente estas modificaciones pueden ser peligrosas, in- cluso cabe la posibilidad de ver un valor importante de la aplicacién, como puede ser una contrasefia 0 clave de licencia. Una solucién posible a este problema consiste en hacer el cédigo generado por este compilador lo mas incomprensible posible, modificando la infor- macién que contiene el archivo ejecutable o !a biblioteca dill, sin modificar su comporta- miento, Las herramientas llamadas ofuscadores son las indicados para esta operacién. Visual Studio provee una herramienta de la empresa PreEmptive Solutions llamada Dotfuscator Community Edition. Esta versién permite realizar operaciones basicas para “em- brollar” un archivo. El tratamiento consiste en reemplazar el nombre de los identificadores del cédigo (nombre de variables, nombre de métodos) por valores poco explicitos, en general un cardcter Gnico. He aqui un extracto de la decompilacién del archivo buenos dias.exe después de ser tratado con Dotfuscator Community Edition. Hello.exe ~_ Programe con Visual Studio 2008 Capitulo 1 «class private auto ansi beforefieldinit a extends [mscorlib] System.Object ( -field private static string a +method private hidebysig static void a (string[] A_0) cil managed { ventrypoint // Code size 13 (Oxd) smaxstack 8 TL_0000: nop TL_0001: ldsfld string a::a TL_0006: call void [mscorlib] System.Consol Line (string) IL_000b: nop TL_000c: ret } // end of method +method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) smaxstack 8 TL_0000: idarg.0 TL_0001: call instance void (mscorlib] System.Object: :.ctor() TL_0006: ret } //end of method a:: .ctor smethod private hidebysig specialname rtspecialname static void .cctor() cil managed { 11 Code size 11 (xb) smaxstack 8 TL_0000: idstr "Buenos dias" IL_0005: stsfld string aria TL_000a: ret } //end of method : .cctor ) // end of class a En este archivo es imposible encontrar los nombres utilizados en el cédigo. E! procedimien- to main se llama ‘a’, la variable message también se liama ‘a’. ilmagine el resultado del tratamiento de un archivo que contiene centenares de variables y procedimientos! Ea Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. © Capitulo 2: Presentacion de Visual Studio B. Instalacién y primer arranque. ........-....- 25 1: Configuracién necesaria... iis) 25 2. Procedimi 5 25 3._Primer arranque. . . . . . 2. ee 34 C. Descubrirelentorno. . 2... 2 ee ee ee ee ee 36 1, Paginadeinicio. 2... ee ee 36 2. Entorno Visual Studio. ©... ee 36 D._Las herramientas disponibles... ............ 39 1_Las barras de herramientas ................. 39 2. Elcuadro de herramientas. . 2. 2... ee ee ee 40 3. El explorador de servidores . 2 2. 1. ee ee ee 41 4. El explorador de soluciones .. . ...... 1... +... 42 5 Blais 3 6. La ventana de propiedades . ws we 44 7. La ayuda dinamica. . . ee ee 44 8. La lista de tareas, 6 0 10.La ventana de edici6n del cédigo. . . .. .. 1... 47 Ae Sa ae rg isa es ew ae ge ag 47 b. Seguimiento de las modificaciones. . . . . . . . . -.. 52 c._Utilizacién de las macros. J Capitulo 2 _ A. La evolucién desde Visual Basic 1 hasta Visual Basic .NET 2008 Desde Ia version 1.0, que salié en 1991, hasta la versién 6.0, que salié en 1998, Visual Basic ha sido modificado muchas veces. Visual Basic fue concebido originalmente como un lenguaje sencillo que permitiese desarrollar rapidamente una aplicacion para Windows (asi ‘como se podia hacer con GWBASIC para MSDOS). Esta sencillez de utilizacion se ha obte- nido sobre todo gracias al entorno de desarrollo, que permite evitar los engorrosos proble- mas de la creacién de una aplicacién para Windows. Desde la version 1.0 hasta la versién 3.0, no asistimos a ninguna revolucién en VB, sino a la evolucién cldsica de un lenguaje de programacién. Con la aparicién de la version 4.0 en 1996, VB entré en el grupo de los grandes, con toda una serie de evoluciones: la posibilidad de crear aplicaciones de 32 bits (las aplicaciones de 16 bits seguian estando garantizadas); Ja creacién de DLL a partir de VB; la utilizacién de DLL (escritas en VB 0 en cualquier otro lenguaje); la aparicién de funcionalidades de objetos en VB (utilizacién de clases). A pesar de todas estas evoluciones o tal vez como consecuencia de ellas, la version 4.0 de VB no era muy estable. Muy rapidamente, en 1997, Microsoft lanz6 la versién 5.0 de Visual Basic, que no supone grandes cambios aparte de la desaparicién de las aplicaciones de 16 bits. Los cambios de la versién 6.0, que salié un afio mas tarde, se basan esencialmente en el método de acceso a las bases de datos, con Ia sustitucién de DAO (Data Access Object) de las versiones mas antiguas por ADO (Active Data Object), que se convierte en el méto- do comin de los lenguajes Microsoft para el acceso a datos. Esta versién deberd sin embargo esperar el service pack 4 para el correcto funcionamiento de algunos controles de acceso a datos (el Entorno de Datos). Aunque se genere en cédigo nativo durante la compilacién, una aplicacién VB siempre necesita el médulo runtime para poderse ejecutar en una maquina (vbrun.dil), ya que, al contrario de lo que pasa con lenguajes como C++, VB no usa la interfaz de programacion WIN32 para llamar las funciones del sistema operativo. La siguiente versién, que salié en 2002, aporta cambios radicales a Visual Basic. Esta ver- si6n se integra en Visual Studio .Net, basandose en una nueva infraestructura para la crea- cién y la ejecucién de aplicaciones para Windows: el Framework .NET. Los principios de funcionamiento de esta infraestructura se describen en el capitulo 1. Las versiones 2003 y 2005 siguen la evolucién del Framework.NET (versién 1.1 y después 2.0), aportando cada vez ms funcionalidades y herramientas que facilitan y aceleran el desarrollo de aplicaciones. Eg — Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved __Presentacién de Visual Studio La versién 2008 aporta también un conjunto de novedades. Entre las mas destacadas: sora de compilar una aplicacién para una versién especifica del framework (2.0, .0, ~ Nuevas caracteristicas y mejoras tecnolégicas pata el desarrollo Web (AJAX, JavaScript, CSs...). Integracién de Ling en los lenguajes C# y Visual Basic, destinado a unificar el acceso a datos independientes de fa fuente (objetos, base de datos, archivos XML). Inclusién de una herramienta de mapeo de modelo relacional a objetos (O/R Designer). Creaci6n de aplicaciones WPF optimizadas para Windows Vista. Posibilidad de crear reportes con Report Designer (como reemplazo de Crystal Report). B. Instalacion y primer arranque 1, Configuraci6én necesaria Para permitir un correcto funcionamiento, Visual Studio necesita una configuracién minima. Microsoft aconseja los siguientes valores: Componente Minimo recomendado Funcionamiento éptimo Procesador Pentium 1,6 GHz 0 Pentium 2,2 GHz 0 equivalente equivalente RAM 384 MB 1024 MB Espacio disco 1GB en el disco de sistema y de 2,8 a 3,8 GBen otro disco Video 1024 x 768 1.280 x 1024 Lector de CD-Rom o DVD | Imprescindible Imprescindible Sistema operativo Microsoft Windows XP Microsoft Windows Server 2003 Microsoft Windows Vista Cualquier versin superior (XP, 2003) con el tiltimo service pack disponible (SP2 para XP, SP2 para Windows 2003) 2. Procedimiento de instalacién Los elementos necesarios son: = los CD-Rom 0 DVD de Visual Studio.NET; = espacio disponible en el disco duro (de 3,8 a 5 GB en funcién de las herramientas instaladas); ~ y, sobre todo, paciencia, ya que la instalacién es larga... Programe con Visual Studio 2008 - ee Capitulo 2 Unos segundos después de insertar el primer CD-Rom, se visualiza la siguiente pantalla: @ Instalacién de Visual Studio 2008 AAV CIES lopue meee ¢ de Visual Studio 2008 y los Buscar las actualizaciones Service Release Esta pantalla ofrece, mediante enlaces de hipertexto, las tres acciones necesarias para la instalacién de Visual Studio. Obviamente, tenemos que empezar con la instalacién de Visual Studio. Ea Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved Presentacion de Visual Studio Para el asistente de instalacién, la primera fase consiste en recoger las informaciones de su sistema operativo: ANTE Ul * sual Studio 2008 La pantalla siguiente le informa sobre el resultado del andlisis realizado y le pide aceptar el contrato de licencia e introducir la clave asociada a su producto: oe ETE Sale] Stewmgaesigesiieraeacs so” Programe con Visual Studio 2008 El a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Cererreennttr t n AVENE KS Uellert 3 Correcto Se completé la instalacion de Visual Studio. 80 instal6 visual Studio 2008. Ly pocumentacion: Para instalar MSON Library para Visual Studio 2008, ejecute setup.exe an la carpeta MSON del disco de instalacion, 0 bien ddescargue MSON Library Express, WNotas do seguridad: Se recomienda encarecidamente que actuakce este equip mas revisiones de egundad del sistema operative tio web da Widows Update, , para obtener las dtimas ak + Se recomiends también el uso del servicio Microsoft Update para garantizar que se reciben todas las actuaizaciones dspontes para este y otros productos de Miczneaf fara ale it. aete 2h Después de cerrar esta pantalla con el botén Finalizar, volvera a la pantalla inicial y podra entonces elegir la instalacién de la documentacion MSDN. Como para la instalacién de Visual Studio, un asistente le guiara en las diferentes etapas. Ea Visual Basic.NET (VB.NET) © Eqitions ENI - All rights reserved Presentacién de Visual Studio Creer Tr) Lutielt ml S1e- Ip allie) bale] Cr comphtan anche we sera pn et Coen) Coe Tiene que aceptar el contrato de licencia MSDN para poder seguir con Ia instalacién. Cenrrereterr at Cutelsallle) cp ae esd Risa eon apactremeron de occ + Meroset Document Ex ‘rset Ph prev, Oe bed os términos dea eee yes mento One acento os ros deena. Dereeara te retain ovat oe «+ ‘Mterosott NEON Lary for visu! Stud 2008 Programe con Visual Studio 2008 Ez! a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo 2 _ La ultima etapa consiste en verificar, con Microsoft, si existen actualizaciones para los pro- ductos que acaba de instalar. Para esta operacién es necesario tener acceso a Internet con un ancho de banda suficiente, ya que el volumen de informaciones que habra de recibir puede ser importante (un médem 56K no es suficiente). Si no se dispone de acceso a Internet, se puede ignorar esta etapa. El producto del que se dispone funcionara de todos modos. 3. Primer arranque Una opcién de acceso rapido creada automaticamente por el programa de instalacién nos permite abrir Visual Studio. A la hora del primer arranque, Visual Studio ofreceré personalizar el entorno de trabajo. En funcién de sus preferencias linguisticas, Visual Studio configura el entorno con las herra- mientas adecuadas. Esta configuracién puede ser modificada a través del ments Herramien- tas - Importar y exportar configuraciones. Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. © Editions ENI - All rights reserved Presentacién de Visual Studio El conjunto se encuentra un poco cargado y, después de afiadir una o dos barras de herra- mientas y algunas ventanas adicionales, la zona de trabajo se limita a una pantalla clasica de 15 pulgadas. ‘di Ei er oyeds Gener Come tos eranerts rubs vetins Are So aI Oa Aa So Afortunadamente, existen muchas soluciones para gestionar nuestro espacio de trabajo: - el anclaje de las ventanas; = la ocultacién automatica de las ventanas; = {a utilizacién de fichas. El anclaje de ventanas no permite ganar espacio en la pantalla, pero nos permite colgar a un lado de la pantalla o de otra ventana, una ventana determinada. Es también posible liberar las ventanas, haciendo doble clic sobre su barra de titulo o utilizando el ment contextual. La ventana se puede entonces desplazar o fijar en otro sitio, Para ayudarnos con esta operacién, Visual Studio muestra, durante el desplazamiento de una ventana, unas guias que permiten elegir el lado o realizar el anclaje. Programe con Visual Studio 2008 Ed colocados a los lados de la pantalla permiten anclar en el lado correspon- aa diente de 1a pantalla. Los iconos que aparecen en el centro de la ventana, controlan el anciaje en sus lados o en forma de una ficha adicional para la ventana. Las ventanas ocultas, més tiles para ganar espacio en pantalla, no son visibles hasta que el cursor del ratén se encuentra encima de su superficie. De lo contrario, slo una zona de fichas, situadas en un borde del entorno de desarrollo, permite mostrar su contenido. Para que una ventana se mantenga visible, es suficiente bloquearla utilizando la chincheta de la barra de titulo Finalmente, la utilizacién de fichas permite compartir una misma zona de pantalla entre diferentes ventanas. Esta caracteristica se explota a fondo en el entorno Visual Studio. El Visual Basic.NET (VB.NET) Presentacién de Visual Studio D. Las herramientas disponibles Miremos un poco més en detalle las diferentes barras de herramientas y ventanas que estan a nuestra disposicién. 1. Las barras de herramientas Visual Studio dispone de al menos treinta barras de herramientas diferentes. La utilizacion de cada una se puede controlar con el menii contextual, que se obtiene haciendo clic con el botén derecho en la barra de menii principal. Por supuesto, es iniitil abrir todas las barras de herramientas a la vez. Es mejor dejar abiertas sélo las més itiles. Estandar Editor de cuadros de didlogo Erramrry rd © Editions EN! - All rights reserved Programe con Visual Studio 2008 | 39] a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo 2 El explorador de servidores permite también gestionar los servicios que funcionan en las maquinas, tanto por la interfaz grafica como por el cédigo. Ofrece la posibilidad de visuali- zar la actividad de las maquinas analizando los contadores de rendimiento o recuperando las informaciones en los diferentes registros de eventos. Simplemente arrastrando con el rat6n entre el explorador de servidores y una ventana del proyecto genera automaticamente el cddigo, permitiendo la manipulacién de este elemento dentro de la aplicacién. Por ejem- plo, desplazar un contador de rendimiento sobre una ventana genera el siguiente cédigo: Friend WithEvents PerformanceCounterl As System.Diagnostics.Performance- Counter Me.PerformanceCounterl = New System.Diagnostics.PerformanceCounter Me.PerformanceCounterl.CategoryName = "Memoria" Me. PerformanceCounter1.CounterName = "Kilo-bytes disponibles" Me.PerformanceCounterl.MachineName = “portabletg" 4. El explorador de soluciones El explorador de soluciones permite la visualizacién de los elementos que constituyen una solucién y la modificacién de sus propiedades. Exeter ees (ia) Solcién 'microshopConsole’ (7 proyectos) & appliconsola ‘AssemblyInfo.vb principal. vb GB controladores DAL Gad My Project ‘AssemblyInfo.vb | "Jevelorador de soucones [Zita de cases © La utilizacién del explorador de soluciones se presenta detalladamente en el capitulo dedicado a la organizacién de una aplicacion. Ea Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved Presentacién de Visual Studio 5. La visualizacién de clases La visualizaci6n de clases es accesible a través del meni Ver - Otras ventanas - Vista de clases 0 a través de! método abreviado de teclado [Ctrl] [Mayus] C. Comparte un rea de la pantalla con el explorador de soluciones. & GetType() As System. Type SF nformacion() As String 99 MemberwiseClone() As Object @ New) * [Slums a SJExplorador de soluciones ‘Dp Veta de dases La visualizacién de clases permite tener una vision légica de una solucién presentando las diferentes clases utilizadas en ella. Programe con Visual Studio 2008 Eg Capitulo 2 6. La ventana de propiedades La ventana de propiedades puede ser visualizada de tres maneras: ~ Utilizando el mend Ver - Ventana Propiedades. ~ A través de la tecla [F4]. - Con la opcién Propiedades de! ment contextual, disponible haciendo clic con el botén derecho en algun elemento que constituye un proyecto (control de la interfaz de usuario, archivo o datos del proyecto). La ventana de propiedades adapta automaticamente su contenido en funcién de los elementos seleccionados y permite modificar sus caracteristicas. Form System. Windows,Forms.Form RightToLeftLayout ‘Showicon Los elementos cuyas caracteristicas se quieren modificar se pueden seleccionar directa mente en la lista desplegable o en la interfaz de la aplicacién. Para la lista de propiedades, hay dos presentaciones: La modalidad Alfabética, que se activa haciendo clic en el icono BEd) La modalidad Por categorias, que se activa haciendo clic en el icono 7. La ayuda dinamica La ayuda dinamica de Visual Studio selecciona los ments de ayuda que podrian resultarie tiles en funcién de su actividad o de los comandos y herramientas utilizados. Ea Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved Presentacién de Visual Studio Ayuda dinbmice 9 cre, Oboes jn Scott uns En el siguiente ejemplo, se acaba de seleccionar un botén en la interfaz. Los diferentes temas propuestos se centran por lo tanto en el objeto botén. 8. La lista de tareas Esta ventana le permitira sustituir docenas de Postlts pegados al marco de! monitor. Efecti- vamente, podré gestionar lo que queda por hacer en su proyecto, teniendo al dia una lista de las modificaciones pendientes en su cbdigo. | conrtros Las informaciones presentes en la lista pueden tener dos origenes: = Los comentarios insertados en su c6digo. ~ Las informaciones elegidas directamente en la ventana. Puede colocar en su cédigo comentarios que apareceran en la lista de tareas. Esta técnica le permite, por ejemplo, indicar una modificacién que deba realizar més tarde en su cédigo. Basta con que el comentario comience por ‘todo’, para que aparezca automdticamente en la lista de tareas. Programe con Visual Studio 2008 Ha Capitulo 2 Puede también elegir directamente las informaciones en la lista de tareas. Tiene que elegir la opcién Tareas de usuario de la lista disponible en la barra de titulo de la lista de tareas, La insercién de una tarea se ejecuta con el botén (i) disponible en la lista de tareas. Usted puede ahora especificar una descripcion y una prioridad para la nueva tarea hacien- do clic en la columna a la izquierda de la lista de tareas. Se requieren tres niveles de Prioridad: ~ Alta = Normal ~ Baja Una casilla de verificacién permite indicar, para cada una, qué tarea ha sido realizada. Una vez marcada, la descripcién de la tarea apareceré tachada. Las tareas de usuario no pueden vincularse automaticamente con una porcién de cédigo. 9. La lista de errores Visual Studio analiza continuamente el cédigo que elige y copia los eventuales errores de sintaxis en la ventana Lista de errores. 2 Seespersbe'y 443 Acceso de mantra conpartise, metro de constants, etd 10 2 test srumer aot oto akdado través de una ‘stan a expresn neces ro se evalua Para ir directamente a la linea en la que aparece un error de sintaxis, basta con hacer doble clic en la lista sobre el elemento correspondiente (en el ejemplo anterior, hacer doble clic en * ') se esperaba * para ir a la linea 6. No es, por lo tanto, necesario solicitar la com- pilacién completa del cédigo para encontrar todos los errores de sintaxis. Una vez corregido el error, desaparece automaticamente de la lista de errores. Los botones error, advertencia y mensaje aplican un filtro sobre la lista de mensajes de error. ca Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Presentacién de Visual Studio Seleccione la ubicacién para cada fragmento de cédigo. de cbdigo Visual Basic: LUbieacin: [3 srippetPersonal snippet CICS Aptcaciones de Windows Forms va (CG Conectividad y redes (CG Crystal Reports (Ga datos « Caracteristicas del dsefiador y AC (Ga Matemsticas (9) 1G Modelos de cédigo comune: COG My Code Snippets (CGH Seguridad (Ga Sistema de archivos - Procesando unidade L1G Sistema operative Windows 1) COG Smart Devices (Ga Tipos de datos - definidos por Visual Bask Of » | revo | ewear Su Snippet esté ahora disponible en el editor de cédigo. a |) Crear una sta con elementos de un tip nc. 1 Defew un conparacr de tos que e ve a utkzer para ordenar rita, 3) Indexer en un ccna con establecmient flee de tos medarte dave. |B) ncistzar un mati de tipo urmersiona |B) Ordenar una matric 12) Procesar una Reractin en un diccionario aknacenado mediante dave. 3) Procesar una terecin en un diccionario. i ree a brine cn Uber eave enna nat Solo queda personalizar el cédigo generado. Dim XATAbIM (ESMAHOMAEEAE) As Integer Dim index As Inceg For i= 0 To EamancMateas - 1 tinsertar el codiga de procediniento de la table Next © Editions ENI - All rights reserved Programe con Visual Studio 2008 El Capitulo 2 b. Seguimiento de las modificaciones Puede visualizar las porciones de cédigo que han sido modificadas desde el inicio de Visual Studio. Las modificaciones estén identificadas por un borde de color que aparece en el margen del editor de cédigo. - Un bord amarillo indica que el cédigo ha sido modificado, pero no ha sido guardado todavia. - Un borde verde indica que el cédigo ha sido modificado y guardado. System.Console. UeiteLine (Buttont .Locat ton) pt As Point pe = Button! Point Tescreen (Buttont.Locat ion) Puede también renombrar facilmente un elemento y extender automaticamente la modifica- cién al resto del cédigo. Un caso tipico es el cambio de nombre de una variable o de una clase. No debe renombrar la variable directamente en el cddigo, sino utilizar el cuadro de dialogo visualizado utilizando la opcién Cambiar nombre de! meni contextual del editor de c6digo sobre el nombre actual de la variable. a Nuevo nombre: 0 ———— Ubeacin: Form! Button! _Clck( Object, System.Eventirgs) cect © La modificacién realizada mediante este cuadro de didlogo se extiende al conjunto del cédigo en el que se usa esta variable. c. Utilizacién de las macros Como la mayoria de las herramientas Microsoft, Visual Studio es ahora capaz de gestionar las macros. Las macros le permiten registrar facilmente una serie de acciones ejecutadas en Visual Studio y reproducirlas con un simple clic en un botén de la barra de herramientas. Vamos a crear tres macros que permitan afadir la instruccién Imports para los Namespace System.Data.SqlClient, System.Data.OleDb y System.Data.Odbc. Estas ma- cros se asociaran después a tres botones de una nueva barra de herramientas. La primera parte es registrar las macros tal como se registra una secuencia con una graba- dora. E| mend Herramientas - Macros - Grabar TemporaryMacro inicia la grabacién de sus acciones. Puede entonces elegir el cddigo deseado y después parar la grabacién gracias a la barra de herramientas mostrada al comienzo de la grabacién de la macro. 52. | Visual Basic.NET (VB.NET) Presentacién de Visual Studio Después debe guardar la macro a través del mend Herramientas - Macros - Guardar TemporaryMacro. Realice estas operaciones para cada una de las tres siguientes lineas de cédigo, proporcio- nando un nombre diferente a cada macro. Inports System.Data. SqiClient Inports System. Data.OleDb Imports System. Data.Odbe Para que la utilizacién de estas macros sea més facil, vamos a juntarlas en una nueva barra de herramientas. Para empezar, tiene que crear una nueva barra de herramientas uti- lizando la opcién Personalizar del meni contextual disponible en la barra de herramientas existente. Dispostvo Edin de coo Fuente HTML |F Moga ifcrmacin de pant en las barnes de herr arenas 1 Mostrar teclas de método abreyiadoenlanformscin de pants © Editions ENI - All rights reserved Programe con Visual Studio 2008 Ea Capitulo 2 La barra de herramientas esté ahora disponible, pero no contiene ningun bot6n. Puede ahora afiadir sus botones con la ayuda del cuadro de didlogo de personalizacién de la barra de herramientas. Se Soe SSS aa. ee) Los botones se afiaden arrastrando y pegando el comando en la barra de herramientas. Los comandos aparecen en forma de texto en la barra de herramientas. Antes de cerrar el cua- dro de didlogo de personalizacién, tiene que asociar imagenes a los diferentes comandos, utilizando la opcién Cambiar imagen del botén del ment contextual de cada comando. EW Visual Basic. NET (VB.NET) © Editions ENI - All rights reserved Presentacién de Visual Studio Nombre: MyMacros. Recording ‘Sopiar magen del bot Elija también para cada botén el estilo por defecto. Su barra de herramientas esta ahora lista para su utilizacién. [rene Ahora que se ha familiarizado con el entorno de desarrollo, se tiene que familiarizar con el cédigo Visual Basic. Programe con Visual Studio 2008 Ba a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo 3 3. Las propiedades de los proyectos. . 2... 1. ee ee eee 82 a, Propiedades de aplicacién . 2 2 2 2 ee ee ee 82 b. Referencias e importaciones de un proyecto. ........ 86 c, Propiedades de depuracion. . 2 2. ee ee 87 d. Propiedades de compilacién . . 2... ee ee eee 88 e. Recursos de un proyecto. . 2 2. 2 2 eee ee ee 91 f. Pardmetros de aplicacion. © 2 2 ee 92 g. Otros parametros de configuracion. .. 2... ee ee 93 58 | a Visual Basic.NET (VB.NET) Organizacién de una aplicaci6n A. Las soluciones 1. Presentaci6n Para ayudarle en la creacién de aplicaciones, Visual Studio propone diferentes elementos que sirven para juntar los componentes de una aplicacién. E| contenedor de mas alto nivel es la solucién en la que se podran colocar uno o més proyectos. Estos proyectos contendrén, a su vez, todos los elementos para que el compilador sea capaz de generar el archivo ejecutable o la dil del proyecto. El explorador de soluciones nos permitiré manipular todos estos elementos. 2. Creacién de una solucién La creaci6n de una solucién es automatica cuando se empieza un nuevo proyecto en Visual Studio. A la hora de crear un nuevo proyecto, se le pedira una serie de informaciones acerca de éste. Pevsner) ‘Toes de proves: Bites: [retrerewokos 3] INE 13 Waal tose ‘lantilos tales de Visual Sto wee (GiAsexcn de Weds Ferme eet. es Smt Caer sean WF Fetetesnin de esd Wor &-ofie ick crea (speec ecertre e se 1 ase de itor bt de cates persnatn.. a] Moyea vce Prue sevice de Ween (lett de tres de Wr. eprtg wer as plantitas Wotton Stee doe Scapa ta [ove ave or nT iso (RET omen) thee: leeds sacin [own neve sac 3] ous aot pra Se A través de este cuadro de didlogo, va a proporcionar las siguientes informaciones: ~ La versién del Framework necesaria para generar la aplicacién. ~ El lenguaje utilizado para el desarrollo del proyecto. ~ El tipo de proyecto que debe crearse. = El nombre del proyecto. Programe con Visual Studio 2008 EE © Editions ENI - All rights reserved Capitulo 3 - La carpeta de base donde se almacenarén los archivos del proyecto. ~ El nombre de la soluci6n. - La creaci6n de una carpeta para almacenar la solucin. Después de validar este cuadro de didlogo, el explorador de soluciones {fe presenta la nueva solucién con la que va a poder trabajar. Todos los archivos de su solucién ya han sido creados y guardados en su disco, en el lugar que ha especificado al crear el proyecto. Una solucién contiene por lo menos los siguientes archivos: Un archivo con la extensidn .sIn, que es el archivo de configuracién de ia solucién. Este archivo contiene entre otras cosas la lista de todos los proyectos que componen la solucién. Se completa a medida que va afadiendo nuevos proyectos a la solucién. Un archivo con la extensién .suo, que registra las opciones asociadas a la solucién. Este archivo permite encontrar dichas opciones. Un archivo para el proyecto, con la extensién .vbproj. Este archivo contiene todas las informaciones de configuracién del proyecto, junto con la lista de los archivos que constituyen el proyecto, la lista de las referencias utilizadas en el proyecto, las opciones a utilizar para la compilaci6n del proyecto, etc. Numerosos archivos con la extensién .vb, que contendran el cédigo fuente de todas las clases, paginas y médulos que constituyen el proyecto, Un archivo .resx asociado a cada pagina de su aplicacién. Este archivo de formato XML contiene entre otras cosas Ia lista de los recursos utilizados en esta pagina. Finalmente, una solucién contiene muchos otros archivos en funcién de los elementos utilizados en su proyecto (acceso a una base de datos, archivos html...). 3. Modificacién de una solucién Siendo las soluciones contenedores, es por supuesto posible gestionar sus elementos. Puede afiadir, quitar, renombrar elementos de |a solucién. a. Afiadir un proyecto Existen muchas posibilidades para afadir un proyecto: ~) Si quiere crear un nuevo proyecto, elija la opcién Nuevo Proyecto del mend Archivo - Agregar. Un cuadro de didlogo le permitira contigurar las caracteristicas del nuevo proyecto. Este cuadro de didlogo ofrece también una carpeta por defecto para guardar el proyecto. Si esta carpeta no se corresponde al lugar en el que quiere guardar el proyecto, puede seleccionar una distinta. Esta operacién se tiene que realizar para cada proyecto que se vaya a afadir. Puede ser interesante modificar la ruta propuesta por defecto para guardar los proyectos. Para hacerlo, abra el menii Herramientas - Opcio- nes, y en el cuadro de didlogo elija la opcidn Proyectos y soluciones y modifique la Ubicacién de proyectos de Visual Studio. Ga — Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved _ Organizacién de una aplicacién + Si quiere afiadir un proyecto que ya existe, tiene que utilizar la opcién Abrir del mend Archivo - Agregar. Un cuadro de didlogo de seleccién de archivos le permite entonces elegir el archivo .vbproj de! proyecto que quiere afadir a la solucién. Cabe destacar que el proyecto permanece en su ubicacién original del disco. b. Eliminar un proyecto +) Para eliminar un proyecto, utilice el mend contextual del explorador de soluciones ha- ciendo clic con el botén derecho en el nombre del proyecto que quiere eliminar de la solucién. El proyecto queda eliminado del la solucién, pero se queda grabado en el disco. Para eliminarlo definitivamente, utilice el explorador de Windows y elimine los archivos del proyecto. Si no los elimina, e! proyecto puede volver a ser afiadido a una solucién en otro momento. c. Cambiar el nombre de un proyecto +) Para cambiar el nombre de un proyecto, utilice el mend contextual del explorador de soluciones haciendo clic con e! botén derecho en el nombre del proyecto que quiere cambiar. El nombre del proyecto se puede asi modificar en el explorador de soluciones. Esta modifi- cacién se refiere Gnicamente al nombre del archivo .vbproj asociado al proyecto. No modifi- ca en ningun caso el nombre de la carpeta en la que se encuentran los archivos del proyecto. d. Descargar un proyecto Cuando quiera excluir temporaimente un proyecto de! proceso de generacién o imposibilitar la edicién de sus componentes, puede descargar el proyecto de la solucién gracias a la opcién Descargar el proyecto. © Un proyecto descargado no se quita de la solucién, sino que simplemente se queda marcado como no disponible. Programe con Visual Studio 2008 Ea Capitulo 3 & sini [ia] Solucin inicroshopConsol’ (S proyectos) © Blappliconsola 18) Assembiyinfo.v> 19) principal.v (Bi controladores |Aepoade 4... Sf aae een El proyecto puede, por supuesto, ser rehabilitado en la soluci6n utilizando la opcién Volver a cargar el proyecto del ment contextual. 4. Organizacién de una solucién Si trabaja con una solucién que contiene muchos proyectos, puede afiadir un nivel de jerar- quias creando carpetas de soluciones. Esto le permite agrupar los proyectos dentro de una solucién. + Para hacerlo, hay que crear las carpetas dentro de la solucién, y después organizar los proyectos en estas carpetas. © Las carpetas de soluciones no crean carpetas fisicas en el disco, sino que son simple- mente contenedores légicos dentro de la solucién. a. Creacién de una carpeta de solucién Una carpeta de solucién puede ser creada de tres formas diferentes. +) Para todas ellas, hay que seleccionar la solucién en el explorador de soluciones. +) Después, utilice el botén | de la barra de herramientas del explorador de soluciones, el meni’ Proyecto - Agregar nueva carpeta de soluciones o el menti contextual dispo- nile con un clic del botén derecho en el nombre de la solucién. Independientemente del método utilizado, debe proporcionar un nombre para la carpeta creada. Ea Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. © Editions ENI - All rights reserved Organizacién de una aplicacién Lo podré encontrar en el explorador de soluciones tnicamente si la opcién correspondiente esta activada en el entorno de Visual Studio. Para ello, despliegue el ment Herramientas - Opciones, en el cuadro de didlogo seleccione la opcidn Entorno - Documentos y active la opcién Mostrar archivos varios en el Explorador de soluciones. Al igual que la carpeta Ele- mentos de la solucién, esta carpeta es una carpeta “Iégica” y no se corresponde con una carpeta fisica en el disco. 7. Configuracién de una solucién Las soluciones disponen de propiedades que permiten configurar su comportamiento a la hora de generar o de ejecutar la aplicacién. Estas diferentes propiedades se agrupan en un cuadro de didlogo accesible desde la opcién Propiedades del ment contextual de una solu- cién. Hay cuatro categorlas de propiedades disponibles: = Proyecto de inicio, = Dependencias del proyecto, = Depurar archivos de cédigo fuente, = Configuraciones. Miremos ahora en detalle algunas de ellas. a. Configuracién del proyecto de inicio En esta pagina de propiedades de la solucién se puede configurar que proyecto o proyectos se deben iniciar cuando se arranca la solucién. Sr = wala Programe con Visual Studio 2008 Ba Capitulo 3 _ Existen dos opciones disponibles: Proyecto de inicio Gnico Un combo propone fa lista de los proyectos disponibles en la solucién entre los que tiene que elegir el que se ejecutard al iniciar la solucién. Este proyecto se sefialara a partir de este momento en el explorador de soluciones con su nombre en negrita. Esta seleccién se puede realizar también a través del mend contextual de! explorador de solu- ciones eligiendo la opcién Establecer como proyecto de inicio. Proyectos de inicio miltiples Una tabla presenta la lista de todos los proyectos disponibles en la solucién. Para cada uno de ellos, se debe indicar la accién a ejecutar a la hora del lanzamiento de |a aplica- cién. Las opciones son: = Ninguna, = Iniciar, ~ Iniciar sin depurar. Si elige iniciar mas de un proyecto, deberé ademas indicar el orden en que estos proyectos se iniciarén. Este orden corresponde de hecho al orden de los proyectos en la tabla. Los botones L®J y [#1] permiten modificar este orden. b. Dependencias del proyecto La generaci6n de algunos proyectos necesita que otros proyectos se hayan generado previa- mente. Es el caso, por ejemplo, de la generacién de un proyecto que utiliza una referencia hacia otro proyecto: éste depende entonces del proyecto inicial. Ea — Visual Basic.NET (VB.NET) Organizaci6n de una aplicacion La siguiente pagina de propiedades permite configurar estas dependencias. cootiaecee: IO 2] Batatorne. [at 7] arieaner A corte 3 Rropedades comunes Praveco: Proyecto de rico SE es Depurr archives de cbgo F 2) Propiedades de corfipractn [GA cortrcndores +) En la lista de los proyectos, seleccione el que quiere utilizar para configurar sus depen- dencias. Los otros proyectos de la solucién forman entonces una lista en la que a cada uno de ellos le corresponde una casilla que habré que marcar. A la hora de generar el proyecto, todos los proyectos de los que depende serén automéaticamente regenerados, si han sido modificados desde la Ultima generacién o si no han sido nunca generados. Algunas dependencias no pueden ser modificadas, y la casilla correspondiente aparece entonces en gris. Es, en general, el caso en el que un proyecto posee una referencia a otro proyecto o en el que, afiadiendo una dependencia, se puede crear un bucle. Por ejemplo, el proyectol depende del proyecto2 y viceversa. rsa ett 2 No se puede agregar una referencia a ‘Classlibrary!’ Si se agrega este proyecto como referencia, se produc’ una ependencia crculr. Las dependencias de proyecto se pueden también configurar a través del mend contextual del explorador de soluciones con la opcién Dependencias del proyecto. © Ezitions ENI - All rights reserved Programe con Visual Studio 2008 Ez Capitulo 3 c. Depurar archivos de cédigo fuente A la hora de ejecutar paso a paso una aplicacién, el entorno Visual Studio necesita acceder al archivo fuente del cédigo que est4 depurando. Esta pagina de propiedades permite espe- cificar los directorios que se analizaran en la busqueda del cddigo fuente. paaines de propiedades de Solucion ‘micrashooConscla ai Corfiywecir: [WD =] ptstere! Fb 2] Aerator eecccpaeaters La lista Directorios que contienen cédigo fuente muestra el nombre de los directorios que seran estudiados en la busqueda del codigo fuente, durante la depuracién paso a paso de una aplicacion. Esta lista se puede generar con la barra de herramientas, cuyos botones permiten: 2] Verificar la existencia del directorio. a Afiadir un nuevo directorio. [x] Eliminar el directorio seleccionado de la lista. & Mover el directorio hacia abajo en la lista. [a] Mover el directorio hacia arriba en la lista. La lista No buscar los archivos de cédigo fuente siguientes excluye ciertos archivos de la busqueda. Ea Visual Basic.NET (VB.NET) © Ezitions ENI - All rights reserved Organizacién de una aplicacién d. Configuracién Las opciones de configuracién permiten definir cémo se generan diferentes versiones de una solucién y de los proyectos que la componen. Por defecto, estan disponibles dos confi- guraciones para una solucién en Visual Studio: la configuracién Debug y la configuracién elease. Para cada uno de los proyectos en la solucién estan disponibles las dos configuraciones. A nivel del proyecto, las configuraciones permiten definir opciones de compilacién. La confi- guracién Debug se utiliza durante el desarrollo y las pruebas del proyecto. La configuracién Release se usa para la generacién final del proyecto. Se trata, de hecho, de un sistema de tres niveles: para cada configuracién de solucién, se indica qué configuracion utilizar para cada proyecto y para cada configuracién de proyecto se especifican las opciones de compilacién. Las opciones de compilacién se pueden modifi- car a nivel de las propiedades del proyecto. Programe con Visual Studio 2008 Ea a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo 3 Biblioteca de controles Windows Como la anterior plantilla, este tipo de proyecto permite crear una biblioteca de clases utili- zable en otros proyectos. Esta biblioteca es mas especifica, ya que se dedica a crear con- troles utilizables en una aplicacién Windows. Estos controles amplian el cuadro de herra- mientas ya disponible en las aplicaciones Windows. Los siguientes elementos se afiaden automaticamente al proyecto: - Un archivo Assemblyinfo.vb utilizado para la descripcién de! proyecto, con las informaciones relativas a la version. > Una clase UserControl1 que hereda de la clase System.Windows. Forms .User Control y que proporciona las funcionalidades de base para un control Windows, con su archivo fuente UserControll.vb. Las siguientes referencias se afiaden automdticamente y se importan: ~ System = System.Core = System.Data - System.Data.DataSetExtensions = System.Drawing = System.Windows.Forms System.Xml System.Xmi.Ling Aplicacién de consola Este tipo de aplicacién debe ser ejecutada a partir de la linea de comandos de una ventana de comandos. Por supuesto, no tiene interfaz grafica, y las entradas y salidas se realizan a partir de la linea de comando y hacia la consola. Este tipo de aplicacién es muy practica para realizar pruebas con Visual Basic, ya que per- mite concentrarse en un punto especial, sin tener que preocuparse por el aspecto de la presentacién de la aplicacién. Muchos ejemplos de esta obra se basan en una aplicacién en modalidad de consola. Hay que admitir sin embargo que, a pesar de su sencillez de creacién, este tipo de aplicacién se ha quedado un poco obsoleta. Los siguientes elementos se afiaden por defecto al proyecto: - Un archivo AssemblyInfo.vb utilizado para la descripcién del proyecto, con las informaciones relativas a la version. ~ Una clase de base con su archivo fuente class1.vb. i _ Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved _Organizaci6n de una aplicacién Las siguientes referencias se afiaden automaticamente y se importan: - System - System.Core System.Data System.Data.DataSetExtensions System.Deployment System.Xml System.Xmi.Ling Servicios Windows Esta plantilla de proyecto esta pensada para la creacién de aplicaciones que se ejecuten como tareas del sistema. El lanzamiento de este tipo puede realizarse automaticamente al iniciar el sistema y no necesita una sesién de usuario abierta para poderse ejecutar. Este tipo de aplicacién no tiene interfaz de usuario. Si se tienen que comunicar informacio- ‘nes al usuario, se deben transmitir a través de los sucesos del sistema, que se pueden consultar con el visor de sucesos. Los siguientes elementos se afiaden al proyecto: - Un archivo AssemblyInfo.vb utilizado para la descripcién del proyecto, con las informaciones relativas a la versin. ~ Una clase de base con el esqueleto de los procedimientos OnStart y OnStop llamados autométicamente al iniciar y al parar el servicio. Las siguientes referencias se afiaden automaticamente y se importan: = System ~ System.Core = System.Data ‘System. Data.DataSetExtensions System.Deployment = System.ServiceProcess System.Xml ‘System.Xml.Ling Aplicaci6n WPF Esta plantilla de proyecto le permite sacar provecho del nuevo sistema de interfaz gréfica de Windows usado en Windows Vista. Los siguientes elementos son automaticamente agregados al proyecto: - Un archivo AssemblyInfo.vb utilizado para declarar la descripcién de la aplicacién y valores asociados a la version. Programe con Visual Studio 2008 Ea Capitulo 3 — = Un archivo Application.xaml y su archivo de cédigo asociado, Appli- cation.Xaml.vb, destinado a la gestién de los eventos desencadenados al nivel de la aplicacion. Una ventana base Windowl.Xaml y su archivo de cédigo asociado, Windowl.Xaml.vb. Las siguientes referencias, que son importantes, se agregan autométicamente al proyecto: = PresentationCore PresentationFramework - System - System.Core - System.Data System.Data.dataSetExtensions = System.Xml System.Xml.Ling - WindowsBase Biblioteca de controles WPF Al igual que la biblioteca de controles Windows, este tipo de proyecto permite extender la bateria de controles disponibles en una aplicacién WPF. Los siguientes elementos son agre- gados al proyecto: - Un archivo AssemblyInfo. vb utilizado para declarar la descripcién de la aplicacién y valores asociados a la version. = Un archivo UserControl1.Xaml, para la definici6n del aspecto grafico del control. - Un archivo UserControl1.Xam1.vb, para declarar el cédigo asociado al control. Las siguientes referencias, que son importantes, se agregan automaticamente al proyecto: ~ PresentationCore ~ PresentationFramework - System = System.Core System.Data = System.Data.dataSetExtensions System.Xml ‘System.Xml.Ling WindowsBase Za Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved ___Organizacién de una aplicacién Biblioteca de controles WPF personalizados Este tipo de proyecto permite también extender el cuadro de herramientas disponibles para una aplicacién WPF. Contrariamente al tipo de proyecto anterior, los controles ne se crean por completo, ya que estén basados en controles que ya existen y cuyas caracteristicas ex- tienden. Las referencias e importacién son idénticas al tipo de proyecto precedente. Proyecto vacio Esta plantilla se debe utilizar cuando se quiere crear un tipo personalizado de proyecto. Se crea s6lo el archivo del proyecto. No se afiaden automaticamente elementos y no se crean ni se importan referencias. b. Creacién de plantilla de proyecto Puede crear su propia plantilla de proyecto en funcién de sus costumbres de desarrollo y hacerla aparecer entre las plantillas predefinidas. Tiene que crear los siguientes elementos: Un archivo de definici6n que contenga los metadatos de la plantilla. Visual Studio utiliza este archivo para mostrar el proyecto en el entorno de desarrollo y para la asignacién de las propiedades por defecto al proyecto. Esta informacién esté contenida en un archivo XML que tiene la extensién .vstemplate. Un archivo para el proyecto (.vbproj). Los archivos fuente y los recursos incluidos por defecto durante la creacién de un proyecto a partir de esta plantilia. © Estos archivos deben ser comprimidos en un archivo zip. El archivo zip debe contener los archivos individualmente y no la carpeta en la que estan guardados, Programe con Visual Studio 2008 ~ El archivo .vstemplate debe tener el siguiente formato: Proyecto Personalizado Creacién de proyecto con una configuracién personalizada Vi sualBasic Pr}Perso AssemblyInfo.vb Paginal .vb Paginal .Designer.vb Paginal.resx En este archivo se encuentran: En la seccién Nombre El nombre mostrado por el cuadro de didlogo de creacién de un nuevo proyecto. En la seccién Descripcién Una descripcién detallada del proyecto. En la seccién Project Type El nombre de la carpeta en la que se clasificaré este proyecto en el cuadro de didlogo de creacin de proyecto. En la seccién Default Name El nombre utilizado por defecto para todos los proyectos creados a partir de esta plantil- la. Este nombre se completa con un sufijo numérico al crear el proyecto. En la seccién Project File El nombre del archivo de proyecto asociado a Ia plantilla. Este archivo debe estar en el archivo zip de la plantilla. En las secciones Projectitem Los elementos que forman el proyecto. Estos elementos deben también estar disponibles en el archivo zip. i Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Organizaci6n de una aplicacién ed ie Ertorno ~ JR) _Ubecacin de proyectos de Visual Stud: re | Proyectos y soluiones CiiDocuments and SettingsithieryMs documentos|Vsual tudo 20064 | General Confit propa de | jeans de roves de wun de We Seo Dreetorios de VCH Generar y eecutar LUicacén de plantas de elemento de usuario de Visual Stud: \alotes predeterminedes deV| | [C:\Documents and Settngs\thirryiMs documentos\Vcual Sudo 2008 | Control de coo Fuerte —————— Edhar de texto Mostrar Ista de errores sila generacén termina con erores # Depuracin Reslesr segment del elemento active en el plead de seusones & Deefedor de Fup de trabaio Mostra confiuracones de gener acin avanedae @ Diceiador de Wredowrs Fors Mostrar soicén sere Dieefador HTML. Guard nuevos proyectos a earos | tae a eet Dladverti at usuario cuando la ubicacén del proyecto no sea de confinza | 2 eee mostrar verkans de resutados cuando empiece ls generacién | torres de proce ‘ rarer ie aoe gg) CSc cambio de none boa canbir el nantre dee axes < 2. Modificacién de un proyecto Las plantillas de proyectos son muy titiles para crear répidamente las bases de una aplica- cién, aunque, muy a menudo, serd necesario afiadir nuevos elementos al proyecto. Se afia- den a través del menii contextual del explorador de proyecto. =) Active la opcién Agregar - Nuevo elemento para elegir el tipo de elemento que quiere afiadir al proyecto. El cuadro de didlogo propone un numero impresionante de elemen- tos que se pueden afiadir a un proyecto. © Editions ENI - All rights reserved Programe con Visual Studio 2008 Ea Plantes: Plantllasinstaladas de Visual Studio 18) Active de eign Burret de recursos Activ detexto (actor. Gp chivo SLT 2) Asisterte para formes [ij Base de datos basade en service [Base de datos local Fleas de base de datos local dose sp Clase com (G) sse de components [Bjcties de ung to Se [BiConpnto de datos BU Contr de usuario {Contd de usuario (WEF) Central personakendo Elune Acerca de | curd de igo Dagrama de dase (dlEsqiene 4 Farmaco del exporadoe Qiirome [fective ecg do Wl aa entancs tre: Core +) Después indicar un nombre para el archivo que contiene el nuevo elemento. © En funcién de los tipos de proyecto, se presentan en el mend contextual una serie de opciones adicionales que permiten afadir un nuevo elemento répidamente. Estas opciones presentan el cuadro de didlogo anterior con el tipo de elemento correspon- diente ya seleccionado. Es también posible coger un elemento existente en otro proyecto y afiadirlo a un proyecto. Utilice en este caso la opcién Agregar - Elemento existente del menti contextual del explo- rador de proyectos. Un cuadro de didlogo le permite la seleccién del archivo que se quiere incluir en el proyecto. © Editions EN! - All rights reserved Organizacién de una aplicacién SS __—____ Teo de archivo: [Archivos de codigo de VB (*.vb;*.resx;*.setting =] El botén Agregar de este cuadro de didlogo abre un meni que permite afiadir el archivo (se crea entonces una copia local del archivo) o de crear un enlace en el archivo (se usa en- tonces el archivo original). Hay que tener cuidado con esta posibilidad, ya que el archivo “no pertenece" realmente a la aplicacién, sino que puede ser compartido por diferentes apli- caciones. Si se elimina el archivo del disco, no se podré compilar ninguna de las aplicaciones que lo utilizan. © La gestion de los archivos en el explorador de soluciones es igual a la gestién de los archivos en el explorador de Windows. Los archivos se pueden copiar y pegar 0 arras- trar desde una carpeta a otra. La utilizacion de las teclas [Ctrl], [Mayds] y [Ctrl] [Mayds} durante el arrastre modifica la accion realizada. Arrastrar un archivo dentro de un mismo proyecto mueve el archivo. Si se hace entre dos proyectos, entonces se realiza una copia del archivo. Este comportamiento puede ser modificado utilizando la tecla (Mayds] cuando se arrastra. Para realizar una copia de archivo dentro de un proyecto, se usa la tecla [Ctrl] mientras se arrastra. La creacién de un enlace se realiza con la combinacién de las teclas [Ctrl] [Mayis} mientras se arrastra. Para quitar un elemento de un proyecto, se puede acceder a dos opciones a través del mend contextual del explorador de soluciones: = La opcién Eliminar elimina el archivo del proyecto, pero también del disco. = La opcién Excluir de! proyecto retira el archivo del proyecto, pero no lo elimina del disco. Esta opcién es atil si otros proyectos utilizan este archivo a través de un enlace. Programe con Visual Studio 2008 ze Capitulo 3 3. Las propiedades de los proyectos Los proyectos son elementos fundamentales en la creacién de una aplicacién con Visual Basic. Poseen muchas propiedades que permiten modificar sus comportamientos a la hora de crear o de ejecutar una aplicacién. El conjunto de las propiedades es accesible a través de un cuadro de didlogo que presenta, en distintas fichas, las diferentes listas de configuracién de un proyecto. +) Active este cuadro de didlogo con la opcién Propiedades del mend contextual del explo- rador del proyecto o con el botén Lisl de 1a barra de herramientas del explorador del proyecto. a. Propiedades de aplicacién Las propiedades presentes en esta ficha permitiran la configuracién del comportamiento de la aplicacién. Espacio de nombres de la rai [windowsApplcation! [__trfermactn de ersantleds.. (ver configu ain de UAC Zl Hsbittar marco de trabajo de la apicaciin, Proeedades el marco de abo del ckeacon para nos tier etos vous de? Ci Convertir apicaciin de instancia unica der my Setngs acer Mode de aera: [weds ¥ ode de apap [Al cerrar el formar de inicio ¥. Pantala de presentacén: [tieguna) 4) (ver eventos de apkeaciones Ei Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. : eee ‘Copyright: [Fonyricht © eri 2005 Yersindeensantinds: ft fp pp Yergindewdoo: ft fp fp ip uD: lenacose-7aco-4ef0-as4e- 0 Console.WriteLine ("1a cadenal es més larga que 1a cadena2") End Select Insercién en una cadena E| método insert de la clase String permite insertar una cadena dentro de otra. Recibe como parémetro un entero y una cadena, y devuelve la cadena de inicio con la cadena pasada por parémetro insertada en la posicién indicada por el entero pasado por pardmetro. Dim cadena3 As String cadena3 = cadena2.Insert(17, “muy ") Console.WriteLine (cadena3) El c6digo anterior muestra la linea siguiente: ei invierno seré my frio Suprimir espacios = al principio de la cadena: Console.WriteLine(ltrim(cadenal)) ° Console.WriteLine(cadenal.TrimStart ()) Programe con Visual Studio 2008 | 121] Capitulo 4 ~ al final de la cadena: Console.WriteLine(rtrim(cadenal)) ° Console.WriteLine(cadenal.TrimEnd()) - Al principio y al final: Console.WriteLine (trim(cadenal)) ° Console.WriteLine (cadenal.Trim()) Cambio a maylsculas o mindsculas - Todo en mayisculas Console. WriteLine (Ucase (cadenal) ) ° Console. WriteLine (cadenal .ToUpper ()) = Todo en mintsculas Console.WriteLine (Lease (cadenal) } ° Console.WriteLine (cadenal.ToLower ()) Busqueda en una cadena La funcién InStr 0 el método IndexOf de la clase String permiten la busqueda de una cadena dentro de otra. El primer parametro corresponde a la cadena en la cual se va a efectuar la busqueda y el segundo corresponde a la cadena buscada. La funcién devuelve un entero que nos indica la posicién en la que se ha encontrado la cadena, o cero si no se ha encontrado. Por defecto, la busqueda empieza al principio de la cadena, salvo si utiliza otra versin de la funcién InStr que recibe tres pardmetros, siendo el primero de ellos la posicién a partir de la cual debe comenzar la biisqueda y los otros dos la cadena en la que se va a buscar y la cadena buscada respectivamente. La numeracién de los caracteres es a partir de 1 para la funcién Instr. Dim busqueda As String Dim posicion As Integer busqueda = "e" posicion = InStr(cadenal, busqueda) While (posicion > 0) Console.WriteLine("cadena encontrada en 1a posicion (0}", posicion) posicion = InStr(posicion + 1, cadena, busqueda) End while Console.WriteLine("fin de la bisqueda") Obtenemos: cadena encontrada en 1a posicion 1 encontrada en la posicion & la posicion 14 Ei Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved cn Bases del lenguaje Reemplazar en una cadena A veces nos interesaria poder buscar una cadena dentro de otra, como en el ejemplo, pero también reemplazar las partes encontradas. La funcion Replace permite indicar una cade- na que sustituya a la cadena buscada, Recibe en total cinco parametros: - La cadena en la que realiza la busqueda. La cadena buscada. La cadena por la que se reemplaza. La posicion de partida. £| nimero de sustituciones deseado (-1 para que sean sustituidas todas sus ocurrencias). cadena3 = Replace(cadenal, “invierno", "verano", 1, ~ Console.WriteLine (cadena3) Obtenemos: @1 verano sera 2 6. Las estructuras Las estructuras oftecen la posibilidad de combinar datos de distintos tipos para crear un Nuevo tipo compuesto. Este nuevo tipo podrd después ser utilizado en la declaracion de variables como un tipo estandar de Visual Basic. Las estructuras son muy practicas cuando queremos manipular datos relacionados entre sf. Por ejemplo, en una aplicacién financiera, las informaciones relativas a los clientes (cédigo cliente, apellidos, nombre, direccién) pueden gestionarse de forma mas sencilla como estructuras que como variables individuales. a. Declaraci6n de una estructura La declaracién de una estructura se realiza entre las palabras clave Structure y End Structure. Entre estas dos palabras claves, se debe introducir al menos un miembro de la estructura. Los miembros de la estructura son variables procedimientos o funciones declaradas en el interior de la estructura. Como para cualquier otro elemento declarado en Visual Basic tiene la posibilidad de indicar un nivel de acceso para cada miembro de la estructura. El miembro se consideraré public por defecto. Sin embargo, los miembros de una estructura no pueden ser inicializados en el momento de su declaracién. Ejempio Public Structure Cliente Public Codigo As Integer Public Apellidos As String Public Nombre As String Public DatosDeContacto As String End Structure Programe con Visual Studio 2008 Capitulo 4 Los miembros de una estructura pueden ser variables de tipo estructura. En el ejemplo anterior, la variable DatosDeContacto puede ser dividida en forma de estructura de! tipo direcci6n. Ejemplo Public Structure Direccion Public Numero As Integer Public Calle As String Public CodigoPostal As Integer Public Ciudad As String End Structure Public Structure Cliente Public Codigo As Integer Public Apellidos As String Public Nombre As String Public DatosDeContacto As Direccion End Structure Las estructuras también aceptan procedimientos 0 funciones como miembros. Se suelen utilizar para manipular las variables miembro de la estructura. Ejemplo Public Structure Direccion Public Numero As Integer Public Calle As String Public CodigoPostal As Integer Public Ciudad As String Public Function getDireccion () As String Return Calle & "" § Numero & vbCrLf & CodigoPostal & vbTab & Ciudad.ToUpper End Function End Structure b. Utilizacién de estructuras Las estructuras se utilizan como tipos de datos clasicos. Conviene declarar una variable del tipo de la estructura. Dim Clientel As Cliente De aqui en adelante, esta variable permite acceder a sus miembros gracias al operador llamado operador de acceso. Ejemplo Clientel.codigo = 999 Clientel.Apellidos = "losApellidos” Clientel.Nombre = "elNombre" Si uno de los miembros de la estructura es de tipo estructura, debe igualmente utilizar el operador de acceso para poder manipular sus miembros. EI Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo 1. Los operadores de asignacién EI Gnico operador disponible en esta categoria es el operador =. Permite asignar un valor a una variable. Se utiliza siempre el mismo operador para cualquier tipo de variable (numéri- co, cadena de caracteres...). 2. Los operadores aritméticos Los operadores aritméticos permiten realizar cdlculos con el contenido de las variables: Operador Operacién realizada Ejempto Resultado ++ Suma 6+4 10 : Resta 12-6 6 me Multiplicacion 3*4 12 / Division 25/3 8,3333333333 \ Divisién entera 25/3 8 Mod Méduto (resto 25 mod 3 1 de la division entera) ae Potencia 5*3 125 3. Los operadores binarios Estos operadores sdlo se pueden usar sobre enteros (Byte, Short, Integer, Long). Trabajan a nivel de bit sobre las variables que manipulan. Operador Operacion realizada Ejemplo Resultado And Y Binario 45 and 255 45 Or O Binario 99 or 46 ll Xor O exclusivo 99 xor 46 77 Not Negacion Not 23 224 4. Los operadores de comparacién Los operadores de comparacién se utilizan en las estructuras de control de una aplicacién (if then, do loop...). Devuelven un valor de tipo booleano en funcién del resultado de la comparacién realizada. Este valor sera después utilizado por la estructura de control. eg Visual Basic.NET (VB.NET), a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Ertace en tema de ejecucn; la Hamada posta falar en tiempo de ejecuctn | Nrguno Teo inpicto; e supone e objeto Nogaro | iso doa vrabe akeror ala askracn | Advertoncia ¥ Furctin ucperader sn valor devueko | adverterca ¥ verse lead no tad Advortencia » Le variable de stance cbtene acceso al mito cempartido Advertencin ¥ 1 Deshatalt ar todas las advertencias C1 considera todas las advertencis como eres 1] Generar archiva de doctmentocin 9. Reger pare ete Geer everes La propiedad Option Compare permite especificar el método de comparacién utilizado por el compilador. = Con la opcién Text, el compilador no hard distincién entre mindsculas y maydsculas en una comparacién. = La opcién binary exigira una estricta igualdad para obtener como resultado true. 5. Los operadores de concatenacién Se pueden utilizar dos operadores para concatenacién de cadenas de caracteres: + y & ‘Sin embargo, la finalidad del primer operador, +, es la suma de valores numéricos. Su fun- cionamiento es bastante complejo al usarlo con cadenas de caracteres. Se aplican las reglas siguientes: = Silos dos operadores son numéricos, se suman. = Si los dos operadores son de tipo String, se concatenan. Ea Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved contre Bases del lenguaje - Si un operador es numérico y el otro es de tipo String, entonces entra en juego otro pardmetro. Si el compilador esta configurado con la opcién Strict On se genera un error de compilacion. Si el compilador est configurado con la opcién Strict Off, la cadena de caracteres se transforma implicitamente en Double y se suma al otro valor. Si la cadena de caracteres no puede convertirse en Double, se genera una excepcién. Para evitar todas estas cuestiones, utilice el operador &. Con este operador, si uno de los dos operandos no es de tipo String, se transforma automaticamente a este para poder ser concatenado. El inconveniente del operador & es que no es muy rapido. Si tiene que realizar muchas concatenaciones en una cadena es preferible utilizar la clase StringBuilder. Ejempio Dim duracion, i As Integer Dim liebre As String Dim tortuga As String Dim principio, fin As Date principio = Now For i = 0 To 100000 tortuga = tortuga se" "bi Next. fin = Now duracion = DateDif£ (DateInterval.Second, principio, fin) Console.WriteLine("duracién para la tortuga: {0} segundos", duracion) principio = Now Dim sb As New StringBuilder For i = 0 To 100000 sb.Append(* ") sb. Append (i) Next Liebre = sb.ToString fin = Now duracion = DateDiff (DateInterval.Second, principio, fin) Console.WriteLine("duracion para la liebre: {0} segundos", duracion) If liebre.Equals(tortuga) Then Console.WriteLine("las dos cadenas son idénticas") End If Resultado de la carrera: duracién para la tortuga: 107 segundos duracién para la liebre: 0 segundos las dos cadenas son idénticas iEste resultado no necesita comentarios! 6. Los operadores légicos Los operadores légicos permiten combinar las expresiones en estructuras condicionales o en bucles. Programe con Visual Studio 2008 BEY Operacién Ejemplo Resultado and Y l6gico If (test1) And (test2) verdadero si testl y test2 son verdaderos. Or O légico If (test1) Or (test2) verdadero si testl o test2’ son verdaderos. xor O exclusivo If (test) Xor (test2) verdadero si testl o test2 son verdaderos, pero falso si lo son los dos. Not Negacién If Not test Invierte el resultado de test. ‘AndAlso Y l6gico If (test1) AndAlso Igual que And pero test2 (test2) ‘sdlo sera evaiuado si test] es verdadero. OrElse O logico if (test1) orElse (test2) | Igual que Or pero test2 sdlo| sera evaluado si test] es falso. Conviene tener cuidado con los operadores AndAlso y OrElse ya que la expresién que testea en segundo lugar (test2 en este caso) no sera siempre ejecutada. Si esta segunda expresion modifica una variable, s6lo seré modificada en los siguientes casos: = el primer test es verdadero en el caso de AndAlso ~ el primer test es falso en el caso de OrElse. 7. Orden de evaluacién de los operadores Cuando combinamos varios operadores en una expresién, estos se evaldan en un orden determinado. Las operaciones aritméticas son las primeras en ejecutarse, después se ejecu- tan las de comparacién, y por tiltimo los operadores légicos. Los operadores aritméticos tienen a su vez un orden propio de evaluacién entre ellos. Este orden es e! siguiente: Potencia (*) Negacién (-) Multipticacién y division (*, /) Division entera (\) Médulo (Mod) Suma y resta (+, -), concatenacién de cadenas (+) - Concatenacién de cadenas (&) Si se necesita un orden distinto de evaluacién, ponga las expresiones que deben evaluarse antes entre paréntesis, como en el ejemplo siguiente. xe (e 4 yt fa + 2) Ey ee ~~~ Visual Basic.NET (VB.NET) © Editions ENI - All rights reserved Bases del lenguaje © Puede utilizar tantos niveles de paréntesis como sean necesarios. Es importante, sin ‘embargo, que la expresién cierre todos los paréntesis abiertos, de lo contrario el compi- lador generaré un error. C. Las estructuras de control Las estructuras de control permiten modificar el orden de ejecucién de instrucciones en el cédigo. Hay dos tipos de estructuras: ~ Las estructuras de decisién: ejecutan el cédigo 0 no en funcién de los valores de una expresion. = Las estructuras de bucle: harén que se ejecute una porcién de cédigo un cierto numero de veces, hasta que se cumpla una condicién o mientras se cumpla una condicién. 1, Las estructuras de decisién Hay dos opciones: a. Estructura If Se pueden utilizar cuatro tipos de sintaxis para la instruccién If. If condicién then instruccién Si la condici6n es cierta, la instruccién se ejecuta; en este caso, *condicién" debe ser una expresién que devuelva un booleano true 0 false. Con esta sintaxis, sélo se ejecuta la instrucci6n situada tras el then, siempre que la condicién sea verdadera. Para poder ejecutar varias instrucciones en funcién de una condicién, se debe utilizar la siguiente sintaxis: If condicién then Instruccion 1 Instruccién n End if © En este caso, si la condi das entre then y End If. ién es verdadera, se ejecutarén todas las instrucciones situa- Programe con Visual Studio 2008 Eel a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. © Editions ENI - All rights reserved Bases del lenguaje © Esta sintaxis nos permite garantizar que el codigo se ejecutard al menos una vez, ya que la condicién se evaltia después del bloque de cédigo. Las instrucciones anteriores realizan un bucle mientras una condicién sea verdadera. Las dos sintaxis siguientes efectuan un bucle hasta que la condicién sea verdadera. Do until condicién Bloque de cédigo Loop En este caso, el bucle se ejecuta hasta que la condicién sea verdadera. Si es verdadera desde el principio, el bloque de cédigo no se ejecuta. Para garantizar al menos una ejecu- cién del bloque de cédigo, conviene utilizar la siguiente sintaxis, que comprueba la condi- cién al final del bloque de cédigo. Do Bloque de cédigo Loop until condicién El bloque de cédigo se ejecuta al menos una vez, después comprueba la condicién, y vuelve a empezar hasta que la condicién se cumpla.’ Como en el caso del bucle while, la instruccién Exit Do provocaré una salida anticipada e incondicional del bucle. c. Estructura For ... Next Cuando conoce el nimero de iteraciones que se deben realizar en el bucle, es preferible utilizar la estructura for ... next. Para poder utilizarla, es necesario declarar en el cédigo una variable de contador para el bucle. La sintaxis general es la siguiente: For Contador-valor inicial To valor Final Bloque de cédigo Next Al principio del bucle, la variable Contador se inicializa con el valor inicial, y se ejecuta el cédigo. La instruccién next incrementa la variable Contador y realiza la com- paracién del valor obtenido con el valor Final del bucle. Si la variable contador es infe- rior o igual al valor Final, el bloque de cédigo se ejecuta de nuevo, si no, la ejecucién sigue con la instrucci6n siguiente a next. Por defecto, el incremento es de uno; se puede especificar un valor para el incremento afiadiendo la palabra clave step y el valor del incremento. Este valor puede ser negativo, pero en ese caso, se debe indicar un valor inicial superior al valor final. © como en tas otras estructuras, se puede salir inmediatamente del bucle for next uti- lizando la instruccién exit for. Programe con Visual Studio 2008 Fea Capitulo 4 d. Estructura For each ... next Otra sintaxis del bucle for next permite ejecutar un bloque de cédigo para cada elemen- to de una matriz o coleccién. La sintaxis general de esta instruccién es la siguiente: For each elemento in matriz Bloque de cédigo Next. No hay contador en esta estructura ya que ella misma efectda las iteraciones para todos los elementos de la matriz o coleccién. La variable element sirve para extraer los elementos de la matriz 0 de la coleccién de forma que el bloque de cédigo pueda manipularlas. El tipo de la variable element debe ser compatible con el tipo de los elementos almacenados en la matriz o en la coleccién. No debe preocuparse por el ntimero de elementos ya que la instruccion for each es capaz de gestionar el desplazamiento en la matriz o en la coleccién. iVeamos un pequefio ejemplo para clarificar la situacion! con un bucle clasico: Dim matriz() As String = {"rojo", "verde", “azul”, "blanco"} Dim cont As Integer For cont = 0 To UBound(matriz) Console.WriteLine (matriz(cont)) Next Con el bucle for each: Dim matriz() As String = ("rojo", "verde", "azul", “blanco"} Dim s As String For Each s In matriz Console.WriteLine(s) Next © como para el bucle for next, puede provocar una salida del bucle antes de haber recorrido toda la matriz utilizando la instruccién exit for. e. Otras estructuras Hay otras dos estructuras més destinadas a simplificar el desarrollo: Estructura Using End Using Esta estructura engloba un bloque de cédigo que utiliza un recurso externo, como por ejemplo una conexion a un servidor de base de datos. Esta estructura se encarga automati- camente de liberar el recurso al final del bloque de cédigo. El recurso puede crearse dentro de la estructura o existir previamente y ser utilizado bajo el control de la estructura. Al final de la estructura, el recurso se libera llamando al método Dispose. Ea Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo 4 En Visual Basic, hay cuatro tipos de procedimientos. = Los procedimientos Sub que simplemente ejecutan un bloque de cédigo al ser Ilamados. = Los procedimientos de evento que son los que son Ilamados automaticamente cuando se produce un evento durante el funcionamiento de la aplicacién (clic del ratén, pulsacién de una tecla...). Las funciones, que ejecutan un bloque de cédigo y devuelven el resultado obtenido al cédigo que las ha llamado. Los procedimientos property que permiten manipular las propiedades de los objetos creados en la aplicacion. - Los procedimientos operador, utilizados para modificar el funcionamiento de un operador cuando se aplica a una clase o estructura. Veamos ahora cémo declarar los procedimientos y funciones. 1. Procedimiento Sub El cédigo de un procedimiento debe estar situado entre las palabras clave Sub y End Sub. El procedimiento debe tener un nombre. Este nombre sera utilizado para llamarle. La sintaxis general de declaracién es la siguiente: Sub MuestraResultado() Instruccién 1 console. System.Writeline( ‘unciona!!!") Instruccién n End Sub Los paréntesis después del nombre se utilizan para especificar las caracteristicas de los parémetros que se pasaran cuando se le llame. Los paréntesis son obligatorios en la decla- racién aunque no haya parémetros. Hay muchas palabras clave que se pueden utilizar en la declaracién de un procedimiento para modificar las posibilidades de reutilizacién del procedimiento. La mayor parte de ellos estn relacionados con la programacién orientada a objetos, y se estudiaran en otro capitu- lo. Para modificar su visibilidad, puede utilizar las palabras clave que ya hemos utilizado para la declaracién de variables (Private Public Friend). Si no se utiliza ninguno, el Procedimiento sera publico. Para ejecutar su procedimiento desde el cédigo, basta con usar su nombre. Otra manera seria usando la palabra clave Call. La sintaxis es la siguiente: Call MuestraResultado() Si su procedimiento no espera parametros, la utilizacién de los paréntesis es opcional (el entorno de desarrollo Vb los afiadiré de todas formas). Ea — Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo Public Structure Cliente Public Codigo As Integer Public Apellidos As String Public Nombre As String Public Shared Operator +(ByVal cl As Cliente, ByVal c2 AS Cliente) As Cliente Dim ¢ As Cliente ¢.Codigo = cl.Codigo + c2.Codigo c.Apellidos = cl.Apellidos & c2.Apellidos c.Nombre = cl.Nombre & c2.Nombre Return c End Operator End Structure Tras esta modificacién, el compilador se muestra cooperativo, y la ejecucién del procedi- miento anterior test. muestra el siguiente resultado: 325 elienteiciiente2 nombrelnonbre2 6. Parametros de procedimientos y funciones Para que el cédigo sea més reutilizable, los valores manipulados por los procedimientos y funciones pueden pasarse como pardémetros en el momento de la |lamada al procedimiento © funcién. Cuando declara el procedimiento, debe indicar la lista de parametros que se esperaran. Esta lista se situa entre los paréntesis de la declaracién del procedimiento. Debe indicar, para cada pardmetro, su nombre y su tipo. Si se esperan varios parémetros, hay que separarlos por una coma. En el cédigo de! procedimiento, los parémetros se consideran como variables locales. Cuando se tlama al procedimiento, se deberd indicar un valor para cada uno de los para- metros esperados. Veamios un ejemplo de declaracién y de utilizacién: Function CalculoIVA(baseImponible as double, iva as double) CalculolVA = baseimponible * (1 + (iva / 100)) End function BaseInponible = 100 PrecioIVA = CalculoIVA (BaseImponible, 5.5) Console .Writeline (PrecioIVA) Para pasar una variable como parémetro a un procedimiento (Baselmponible en el ejemplo anterior), hay dos posibilidades: = pasarlo por valor: en ese caso, la informacién transmitida al procedimiento sera simplemente el contenido de la variable pasada como pardmetro. E! paso por valor es la opcién por defecto en Visual Basic. Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo$: Las distintas fichas permiten elegir, por categorias, el tipo de referencia que queremos agregar: .NET El conjunto de componentes disponibles del Framework .NET. coM Los componentes COM y ActiveX registrados en el sistema. Los otros proyectos de la solucién actual. Examinar Busqueda de un archivo (dll, ocx...) que contenga los recursos. Se pueden agregar varias referencias a la vez, utilizando la tecla [Ctrl] cuando se realiza la seleccién en este cuadro de didlogo. Después de haber realizado estas dos operaciones, los recursos presentes en el ensamblado son accesibles directamente en el cédigo del proyecto. 2. Los namespaces Los namespaces organizan de forma ldgica los objetos disponibles en un ensamblado. Se usan para evitar ambigiedades cuando se afiaden a un proyecto dos referencias que contienen elementos con nombres iguales. Por ejemplo, la clase ListBox existe en los ensamblados System.Web y System. Windows. Forms. Si al proyecto se agregan referencias a estos dos ensamblados, el com- pilador corre el riesgo de no poder determinar cual de las dos clases quiere utilizar. La utilizacién del nombre completo, incluyendo el Namespace en el que esté definida la clase, permite resolver este tipo de problema. Puede utilizar por ejemplo el siguiente cédigo: Ejemplo Dim listaWindows As System.Windows.Forms. ListBox Dim listaWeb As System.Web.UI ,WebControls. ListBox. Sin embargo, la utilizacién del nombre completo puede hacerse pesada escribiendo el cédi- go. Se puede utilizar la palabra clave imports para aligerar el cédigo. Indica al compila- dor que se sobreentienden ciertos namespaces. Por ejemplo la instruccién Imports System.Data.SqlClient autoriza la utilizacién de la siguiente declaraci6n : Dim ctn As SqlConnection que sin la importacién del Namespace habria provocado un error de compilacién: [Eitipo SaiConnection no esté dafrido | Dim ctn As Sqiconnection Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo 4 EI ejemplo siguiente define la clase Persona con dos miembros (Nombre y Apellidos) que seran serializados y un miembro (Edad) que no lo sera. Se crea una instancia de la clase y ‘se guarda en un archivo de formato XML. Ejemplo Imports System Imports System. 10 Imports System.Runtime.Serialization Imports System.Runtime. Serialization. Formatters.Soap Public Class Persona Public Nombre As String Public Apellidos As String Public Edad As Integer Public Sub New() End Sub End Class Module test Public Sub Main() Dim UnaPersona As New Persona () UnaPersona.Nombre = "Carlos" UnaPersona.Apellidos = "Sanchez" UnaPersona.Edad = 25 Dim stream As Stream = File.Open("datos.xml", FileMode.Create) Dim formatear As New SoapFormatter () formatear.Serialize(stream, UnaPersona) stream.Close() End Sub End Module La ejecucién de este cédigo genera el archivo XML siguiente: Carlos Sanchez Encontramos en el archivo nuestra instancia de la clase Persona con sus dos miembros Nombre y Apellidos, y tal y como habiamos indicado en la definicién de la clase, el miembro Edad no ha sido guardado. Ea Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. © Editions ENI - Alt rights reserved Implementacion de aplicaciones y componentes d. El editor de interfaz de usuario Con el editor de interfaz de usuario, usted puede especificar y definir las propiedades del cuadro de didlogo predefinidas que se visualizaran durante la instalacién en el equipo. Este editor contiene dos secciones: Install y Administrative Install. La seccién Install contiene los cuadros de dialogo que serdn visualizados cuando el usuario final ejecute e! programa de instalacién; la seccién Administrative Install contiene los cuadros de dialogo que se visualizarén cuando el administrador del sistema descargue el programa de instalacin en un puesto de la red. Se muestra en el editor un conjunto de cuadros de didlogo predefinidos, que pueden reorganizarse o eliminarse. Los cuadros de didlogo predefinidos se dividen en tres categorlas: - Los cuadros de didlogo Inicio se muestran antes de que la instalacién comience, y sirven generalmente para recuperar informacién del usuario o permitirle cambiar la carpeta de instalacion, Un cuadro de didlogo Progreso aporta informacién sobre el avance de una instalacién. Los cuadros de didlogo Fin no se visualizan hasta que haya terminado la instalacién. Sirven generalmente para sefialarle al usuario que la instalacién ha terminado o para permitirle ejecutar la aplicacin. Puede desplazar los cuadros de didlogo entre los nodos de categorias arrastréndololos con ayuda de los comandos Copiar y Pegar de! mend Edicién. Para que la instalaci6n se haga sin cuadros de didlogo, debe eliminarlos del editor de inter- faz de usuario. Cada cuadro de didlogo puede ser personalizado a gusto, utilizando las propiedades dispo- nibles que modifican su aspecto. En todos estos cuadros, la propiedad BannerBitmap re- presenta el logo mostrado en el cuadro de didlogo. Existen propiedades especificas para cada uno de los cuadros de didlogo y a las que se puede acceder. Cuadro de diélogo Bienvenida ~ La propiedad welcomeText contiene el mensaje de presentacién de la aplicacién. - La propiedad CopyrightWarning provee la informacion relativa al copyright de la aplicacion. Cuadro de didlogo Carpeta de instalacién - La propiedad InstallAllUsersVisible determina si los botones que permiten elegir el tipo de instalacién (para un solo usuario 0 para todos) estan visibles. Cuadro de didlogo Progreso - La propiedad ShowProgressBar permite la visualizacién de una barra de progreso durante la instalacién. Cuadro de didlogo Finalizar ~ La propiedad Update'rext contiene la informacién concerniente a las actualizaciones. Programe con Visual Studio 2008 ~ Ew a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Capitulo 11 Esta estrategia es ideal para los casos de implementacién de aplicaciones donde los equi- Pos de los usuarios no poseen conectividad de red o cuya conexién a Internet no es buena. ‘Si bien la aplicacién se instalaré a partir de un soporte removible, y aunque no es necesa- ria wn conexién de red para su instalacién, si lo es para las actualizaciones de la aplicacién. Ejecucién de la aplicacién a partir de web o de un recurso compartido Esta estrategia es similar a la primera, salvo que la aplicacién se comporta como una apli- cacién web. La aplicacién se ejecuta cuando el usuario hace clic en un hipervinculo de una pagina web (0 doble clic en un icono de un archivo compartido). Cuando el usuario cierra la aplicacién, ésta deja de estar disponible en el equipo local. Ningun elemento se agrega al ment Inicio o al grupo Agregar/Eliminar programas del Panel de control. Técnicamente, la aplicacién es descargada e instalada en un caché local de aplicaciones en el equipo, de la misma manera que una aplicacién web se descarga en el caché Web. Como para el caché Web, los archivos se almacenan en el caché de aplicaciones para ser utilizados nue- vamente. En ese momento el usuario tendré la impresién de que la aplicacion est siendo ejecutada a partir de la web o de un archivo compartido. Esta estrategia es ideal para las aplicaciones que se utilizan raramente. 3. Actualizaciones de la aplicacién ClickOnce provee de actualizaciones automaticas de la aplicacién. Una aplicacién ClickOnce lee periédicamente su archivo manifiesto de implementacién para verificar si existen actualizaciones de la aplicacién disponibles. En tal caso, la nueva versién de la aplicacién se descargara y ejecutara. Por razones de eficacia, sélo los archivos modificados seran descargados. Existen tres estrategias posibles para la actualizacién: ~ la verificacién de actualizacién al inicio de la aplicacién; ~ la verificacién de actualizacién antes de finalizar la aplicacién (ejecutada en un hilo en segundo plano); ~ la presentacién de una interfaz de usuario destinada a la actualizacién. También puede determinar la frecuencia de verificacién de actualizaciones efectuadas por Ja aplicacién o configurar una actualizacién obligatoria. Las actualizaciones de aplicacién requieren una conexién a red. En ausencia de una conexidn, la aplicacion ejecuta sin verifi- car su actualizacién, sea cual fuere la estrategia elegida. Verificacién de actualizacién antes de finalizar Por defecto, la aplicacién tiende a localizar y a leer el archivo manifiesto de implementa- ci6n en segundo plano durante su ejecucion. Si una actualizacién esta disponible, durante la préxima ejecucién, se invitara al usuario a descargar y a instalarla. Esta estrategia se utiliza para recursos de conexién de banda restringida 0 para aplicacio- nes voluminosas, que puedan necesitar descargas largas. Bal Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. © Editions ENI - All rights reserved Implementacién de aplicaciones y componentes Los botones Archivos de aplicacién, Requisitos previos, Actualizaciones y Opciones permi- ten ajustar la configuracién. El botén Archivos de aplicacién muestra el siguiente cuadro de dialogo con los archivos que constituyen la aplicacién. ee eed El estado de publicacién de cada archivo puede ser configurado con tres valores diferentes: - Incluir: el archivo estaré disponible para los usuarios en el soporte de implementacién. - Excluir: el archivo no se copia en el soporte de implementacién. - Archivo de datos: el archivo contiene datos necesarios para el buen funcionamiento de la aplicacién y sera incluido en la publicacién. E! botén Requisitos previos se usa para configurar los elementos necesarios para el funcionamiento de la aplicacién. Programe con Visual Studio 2008 Ea a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. Indice contenedor del control, 300 cursor personalizado, 297 desactivado, 298 fijar, 290 fuente, 296 mover, 285 oculto, 298 orden de las tabulaciones, 292 paso del foco, 291, 298 proteger, 289 puntos de seleccién, 288 redimensionar, 285 verificacion de la eleccién, 299 Controles de agrupacién, 336 Conversién de tipos, 102, 179 explicita, 103 implicita, 103 Conversién desde una cadena de caracteres, 108 Conversién hacia una cadena de caracteres fecha y hora, 106 formato estandar, 105 valores numéricos, 105 Coordenadas pantalla, 295 Creacin de un cuadro de didlogo, 282 Creacién de una instancia, 176 CreatePrompt, 274 Cuadro de didlogo personalizado, 282 - 283 crear, 282 crear la interfaz, 283 Cuadro de herramientas, 40 afadir controles, 40 crear una nueva ficha, 40 personalizar, 40 Cuadro de mensaje configurar, 270 valor devuelto, 272 Cuadro de recogida, 270 Cursor, 297 ky D DataAdapter, 379 FillSchema, 382 nombrar los DataColumn, 380 DataColumn, 378 auto-incrementado, 383 expresion, 382 DataReader, 371 ODataRelation, 378,386 DataRow, 378 ahadir, 389 anulacién de tas modificaciones, 392 borrar, 391 crear una instancia, 389 eliminar, 392 estado, 388 modificaci6n, 390 suspensi6n de la verificacién de las limitaciones, 390 validacién de las modificaciones, 392 versiones, 388 DataSet, 378 agregar limitaciones, 381 coleccién Tables, 379 lectura de los datos, 383 manipular los datos, 383 método Fill, 380 rellenar, 379 sin base de datos, 382 DataTable, 378 buscar datos, 395 coleccién Rows, 383 DataTable relacionados, 385 filtrar, 392 ForeignKeyConstraint, 385 navegacién de una DataTable hacia otro, 386 ndmero de lineas, 383 ordenar, 392 Visual Basic.NET (VB.NET) a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. indice Modalidad conectado inconvenientes, 362 ventaja, 361 Modalidad no conectado, 378 inconvenientes, 362 ventajas, 362 Modificacién de datos Modificaci6n de datos existentes, 436 MonthCalendar, 346 MonthlyBoldedDates, 346 MouseDown, 264 MouseEnter, 264 MouseEventArgs, 265 MouseHover, 265 MouseLeave, 265 MouseMove, 264 MouseUp, 264 MouseWheel, 264 MSDN, 30 instalacion, 30 MultiExtended, 327 Multiline, 309 Multiselect, 273 MultiSimple, 327 Mustinherit, 160, 183 MustOverride, 170 My, 209 Application, 210 Computer, 210 Forms, 210 Ressources, 210 Settings, 210 User, 210 Webservices, 210 MyBase, 180 MyClass, 180,182 Namespaces, 9 alias de importaci6n, 147 declaracion, 148 importacion, 146 Namespace raiz, 148 nombre completo, 146 Nivel de acceso de las variables friend, 112 Private, 112 Protected, 112 Protected friend, 112 Public, 122 Nodes, 331 Notifylcon, 306 Notinheritable, 160, 183 NotOverridable, 170 Nullables, 100 NumericUpDown, 328 formato de visualizacién, 328 Increment, 328 incremento, 328 Maximum, 328 Minimum, 328 O Objeto intrinseco, 176, 209 Ocultacién, 158 Ocuttacién de métodos, 170 Ofuscadores, 19 On Error, 215 On error goto etiqueta, 215 Visual Basic.NET (VB.NET) On error resume next, 215 OpenFileDialog, 273 Operador aritméticos, 126 binarios, 126 de asignacién, 126 de comparacién, 126 de concatenacion, 128 ts, 127 isNot, 127 Like, 127 légicos, 129 orden de evaluacién, 130 redefinicién, 141 TypeOt ... Is ..., 127 Option Compare, 90 Option Explicit, 89 Option Strict, 89 ORDER BY ..., 359 overloads, 168 Overridable, 169 OverwritePrompt, 274 P PageSettings, 280 PageSetupDialog, 280 Panel, 336 Pantalla de bienvenida, 85 Parametro de aplicacién, 92, 93 asignar un valor, 93 cargar, 93 guardar, 93 Parametros de procedimientos y funciones ‘opcionales, 143 paso por nombre, 143 paso por posicién, 143 Programe con Visual Studio 2008 oe Indice paso por referencia, 143 paso por valor, 142 Partial, 250 Paso del foco entre controles, 291 PasswordChar, 310 PictureBox formato de archivos aceptados, 342 modificar la imagen mostrada, 343 PointToClient, 296 PointToScreen, 295 Polimorfismo, 158 Pool de conexiones, 369 PrintDialog, 281 PrinterSettings, 280 Private, 160 Procedimiento almacenado ejecucion, 376 valor devuelto, 376 Procedimiento de evento, 139 Procedimientos property crear, 140 solo escritura, 141 solo lectura, 141 Procesador XML, 444 ProgressBar mover la barra de progreso, 307 posicién de la barra de progreso, 307 Style, 307 Propiedad creacién, 162 por defecto, 164 sdlo escritura, 164 solo lectura, 164 Proteccién optimista, 402 Proteccién pesimista, 402 Protected, 160 Protected Friend, 160 Proveedor de datos compatibilidad del cédigo, 365 ODBC, 364 OLE DB, 364 ORACLE, 364 ES Indice Proveedores disponibles, 364 SQL Server, 363 Proyecto, 70 ‘Agregar - Elemento existente, 80 Agregar - Nuevo elemento, 79 creacién, 70 creacién de plantilla de proyecto, 75 de inicio, 65 modificacién, 79 modificacién de una plantilla existente, 77 plantilias, 70 propiedades, 82 quitar un elemento, 81 utilizacién de un proyecto existente como plantilla, 77 Proyecto de instalacién, 461 agregar un tipo de archivo, 466 agregar un tipo de documento, 465 asociacién de archivo ejecutable, 465 asociacién de extensién de archivo, 465 configuracién, 462 cuadro de didlogo Bienvenida, 467 cuadro de didlogo Carpeta de instalacién, 467 cuadro de didlogo Finalizar, 467 cuadro de didlogo Inicio, 467 cuadro de didlogo Progreso, 467 cuadros de didlogo Fin, 467 editor de acciones personalizadas, 468 editor de condiciones de inicio, 468 editor de interfaz de usuario, 467 editor de registro , 464 editor de sistema de archivos, 462 editor de tipos de archivos, 465 Punto de interrupcién activar, 233 colocar, 229 condicional, 229 condiciones de ejecucién, 231 desactivar, 233 eliminar, 233 — filtros, 232 incondicional, 230 ntimero de pasos, 232 resumen, 234 Q Queue afiadir un elemento, 208 obtener un elemento, 208 R RadioButton, 323 aislar los controles, 325 RaiseEvent, 190 ReadOnly, 164 Recurso, 91 acceder a los recursos, 92 modificar, 92 Redefinicién de un operador, 141 Referencia agregar, 86 quitar, 86 Registro, 357 Relacién, 358 RemoveAt, 332 RemoveHandier, 193 Renombrar un elemento, 52 Resume, 216 resume next, 216 ~~~Visual Basic. NET (VB.NET) Recursos I, nformaticos Redes, sistemas, programacién, SGBDR, tecnologias Internet o intranet, informatica industrial... Los ambitos que abarca la informatica técnica siguen la evolucion de las tecnologias, siendo cada dia mas variados y complejos. Esta evolucién amplia los campos de aprendizaje de los nuevos expertos e impone a los profesionales una continua adaptacion de sus conocimientos. Redactados por formadores profesionales y consultores, los libros de la coleccién Recursos informaticos le aportan una ayuda eficaz para descubrir y aplicar diferentes técnicas. La presentacién de los conceptos basicos, de numerosos ejemplos y los consejos de expertos garantizan la calidad y riqueza de cada uno de estos libros. Visual Basic.NET (vB.NET) Programe cof Visual Studio 2008 Este libro sobre VB.Net esté dirigido a los desarrolladores incluso principiantes, que quieran dominar Visual Basic.NET Después de ia descripcién del entorno de desarrollo (Visual Studio 2008), e! lector descubrira la de |a programacién orientada a objetos con VB.NET y evalucionaré progresivamente hacia su uso con:el-desarrollo de aplicaciones Windows Forms formacion, y Los numerosos ejemplos y los consejos sobre {a utilizacién de las Jesarroll herramientas de depuracién le proporcionardn una valiosa ayuda durante el desarrollo de una aplicacién. pecalment Un capitulo dedicada al acceso a las bases de datos con ayuda de a ADO.NET 2.0 y de SQL le permitira evolucionar hacia el desa rrollo de aplicaciones usuario-servidor. Se presentan y detallan as potentes funcionalidades de LINQ que facilitan el acceso y la manipulacién de datos. Igualmente, se presenta XML, que facilita el intercambio formacién con ot Serica caciones, Los usuarios de las versiones anteriores descubrirn la ISBN: 978-2-7460-4505-7 novedades y mejoras en esta versién 2008 (tipos que aceptan valores NULL, métodos parciales, clases andnimas,...) perm tiendo desarrollar atin mas rapida y facilmente las ap para el framework .NET 3.5 y para Windows Vista. 9"'782746 * 045057 a distribucién de una aplicacién también se presenta con el usi Windows Installer y de la tecnologia ClickOnce. Los ejemplos citados en est wwewediciones-eni.com. bro pueden descargarse de (Gi OR eR nd

You might also like