80
Subido Por: Daniel Palacin Palacios

Visual Basic 6 0 Ultimo

  • Upload
    wilson

  • View
    19

  • Download
    2

Embed Size (px)

DESCRIPTION

visual basic

Citation preview

Visual Basic 2008

Visual Basic 2008

Subido Por: Daniel Palacin Palacios

Sesin 1

Introduccin a Microsoft .NET

En esta Sesin se tratarn los siguientes temas:

1. Microsoft .NET Introduccin al desarrollo de software. Definiendo Microsoft .NET. Plataforma Microsoft .NET.

2. El Marco .NET Definiendo el Marco .NET. Tiempo de ejecucin en Lenguaje Comn (CLR). Librera de clases .NET. Interoperabilidad con otras tecnologas. Terminologa del marco .NET.

Microsoft .NET

Introduccin al Desarrollo de Software.

Bienvenido al curso de Visual Basic .Net; a diferencia de la versin anterior no podemos hablar directamente de las caractersticas del producto, la estructura del lenguaje y sus herramientas ya que no dependen de ste sino ms bien de toda una plataforma denominada Microsoft .Net, la cual es propsito de este captulo.

Vamos ha iniciar este manual explicando las razones de la aparicin de Microsoft .Net y la evolucin que ha tenido el desarrollo de software en las computadoras personales (PC), desde la programacin estructurada finales de los 70 hasta la orientada a servicios Web XML.La primera poca del desarrollo en las PC estuvo marcada por los lenguajes estructurados tales como COBOL, Pascal, Basic, C, etc. Que eran herencia de los grandes sistemas (como las Mainframe y AS/400). Aqu el desarrollo realizaba sobre una interfase de texto o consola y se usaban libreras (conjunto de procedimientos predefinidos) que solo podan ser rehusados dentro de un programa creado en el mismo lenguaje que el de la librera.

Las limitaciones de este tipo de desarrollo eran la falta de integracin entre sistemas, no reusabilidad a nivel de sistema, demasiado cdigo para disear interfases y lgica centrada en el programador, por lo cual aparece la Programacin Orientada a Objetos (POO) con lenguajes de programacin como C+, Small talk, Prolog, etc. Los principios bsicos de la POO eran encapsulaciones, herencia y polimorfismo. Esta empez a cobrar fuerza a finales de los 80.

Si bien POO fue un gran avance en el desarrollo de software que permitir rehusar clases a travs de la herencia, el programador tena que escribir demasiado cdigo para crear las interfases, razn por la cual con el auge de Windows aparecen las herramientas Rpidas de desarrollo (RAD), tales como 4GL, Power Builder, Visual Basic, Visual Age, Visual Object, etc. Que facilitaban la creacin de las interfases grficas ya que se disponan de un conjunto de herramientas que las creaban.

Microsoft lanza en los inicios de los 90 una tecnologa denominada COM (Component Object Model) cuyo principio er a la reutilizacin del cdigo en cualquier lenguaje o aplicacin que pueda cumplir con los estndares de COM. La primera forma de implementar COM fue OLE (Object Linking &Embedding) que consista en incrustar o enlazar dentro de una aplicacin un objeto que apuntara a otra aplicacin, por ejemplo todava podemos sin salir de Word incrustar hoja o grfico de Excel.

Posteriormente esta tecnologa evoluciona en una llamada Actives que permita rehusar cdigo e interfases grficas en cualquier programa Windows. Con las aplicaciones tipo RAD ms el uso de COM se podan construir rpidamente aplicaciones reusables con una rica interfase visual, pero todo dentro del contexto de una misma mquina.

Para desarrollar sistemas para la Intranet se cre DCOM (Distributed Component Object Model) que permitira rehusar un componente (llamado servidor COM) remotamente (desde otra mquina llamada cliente COM), para lo cual aparecieron productos como Tuxido, MTS (Microsoft Transaction Server), JTS (Java Transaction Server), etc. que permitan gestionar la concurrencia del componente, realizar transacciones, ahorrar conexiones, dar seguridad, etc.

Una gran parte de los sistemas actuales Cliente/Servidor han sido desarrollados usando como clientes aplicaciones en Visual Basic (Windows) o Visual Interdev (Web), componentes hechos en Visual Basic y Servidor de Datos SQl Server, Oracle o DB2. El detalle es que COM presenta dos tipos de problemas: uno para el programador y otro para el negocio, los cuales explicamos a continuacin.

Para el programador, el problema principal de COM es la compatibilidad de versiones y el infierno de las DLL, es decir, cada vez que se modifica el componente hay que volver a registrarse y tener cuidado que las aplicaciones anteriores siguen funcionando, adems si es un sistema Cliente/Servidor el mantenimiento es un poco complicado porque hay que volver a instalar los clientes es cada mquina.

Para el negocio, la tecnologa COM slo le poda facilitar la creacin de aplicaciones internas pero no se poda integrar aplicaciones con otros negocios, por ejemplo si yo creo un componente COM en mi empresa slo puede ser usado por clientes COM ubicados en el contexto de la Intranet, es decir, mi lgica no puede ser usada ms all por otros usuarios, tales como proveedores, clientes externos, etc.

En este contexto es que aparece Microsoft .Net como una plataforma para desarrollar aplicaciones que usen Servicios Web XML, capaces de exponer lgica entre negocios.

Figura 1.1: Integracin entre Negocios. SociosB2CSociosInformacin CrditoClienteScreenFaxEmailAd-hocAplicaciones WebINTEGRACIN ENTRE NEGOCIOS

Definiendo Microsoft .Net

Microsoft .Net es una nueva tecnologa que responde a la necesidad de comunicacin total entre negocios que cada vez cuentan con sistemas ms heterogneos y con gran capacidad de procesamiento.

Microsoft .Net es la plataforma que provee todas las herramientas y teconologas necesarias para construir Aplicaciones Web Distribuidas usando protocolos Web estndares tales como Extended Markup Language (XML) y Simple Object Access protocol (SOAP).Estas aplicaciones creadas con la plataforma .Net pueden ser usadas por un gran y variado nmero de clientes, tales como PC, PC de Bolsillo (Pal PC), Celulares digitales, PC de Juegos (PC Games), PC de Auto (Auto PC), PC de Televisor (Ultimate TV) , etc.

Figura 1.2: Dispositivos Clientes .NET

Microsoft .net tambin permite la integracin entre diferentes lenguajes, pudiendo compartir informacin en forma de servicios Web XMl, lo cual beneficia la comunicacin entre negocios (Business to Business).

Expresando de forma sencilla, Microsoft .Net es la estrategia de Microsoft para distribuir software como servicio y responder a la necesidad de comunicacin entre plataformas cruzadas y de diferente tipo, para lo cual se necesita una tecnologa abierta, de bajo costo y de fcil implementacin.

Plataforma .NetMicrosoft .net se compone de un conjunto de recursos que hacen posible su implementacin, estos componentes se muestran en la siguiente ilustracin:

Figura 1.3: plataforma .Net

1. El Marco .NetEs la parte principal de la plataforma Microsoft .Net y consiste en un compilador comn para diferentes tipos de lenguajes llamados el CLR y un conjunto de componentes de una Librera de Clases .Net dentro de las cuales estn ADO .NET, ASP .NET ser tratado con mayor detalle en los temas posteriores. 2. Servidores Empresariales .NetSon un conjunto de Servidores que permiten construir, distribuir y administrar Soluciones web integradas y escalables. Estos han sido construidos basados en estndares como el Extensive Markup language (XML), entre ellos tenemos:

Windows 2000 Server: Es el principal servidor de comunicaciones, archivos y directorios, impresoras, aplicaciones Web, etc. Es el soporte para que corran los dems servicios de otros servidores. Microsoft Application Center: Es el servidor de granjas de servidores Web y de componentes, permitiendo el balanceo de carga y la disponibilidad de aplicaciones Web y aplicaciones COM, COM+. Microsoft Biztalk Server: es el servidor de orquestacin de procesos de negocios, es decir permite integrar aplicaciones entre negocios usando XML, como el formato de intercambio comn. Microsoft Comerce Server: Antes llamado Microsoft Site Server, se utiliza para construir rapidamente sistemas de comercio electrnico BT o B (de negocio a negocio) o BT o C (de Negocio a Consumidor). Microsoft Exchange Server: Ofrece servicios de mensajera (correo electrnico9 y colaboracin entre aplicaciones (workflow). Microsoft Host Integration Server: Realiza la comunicacin entre sistemas Cliente/Servidor, aplicaciones Intranet o Internet con los sistemas legados por el negocio, tales como mainframe o AS/400. Microsoft Internet Security and Aceleration Server: Antes llamado Proxy Server, ISA Server se usa para brindar seguridad en las comunicaciones por Internet. Microsoft SQL Server: Es el servidor de datos de Microsoft que permite crear soluciones de data Warehouse y se integra con Microsoft Office.

3. Bloqueo de Servicios .NetEl Bloque de Servicios .Net se est construyendo como un conjunto de Servicios Web XML que permiten la integracin entre los usuarios y las aplicaciones clientes que corran en diferentes dispositivos (PCs, dispositivos mviles, etc.). Actualmente Microsoft tiene construido dos servicios que ofrecen ventajas para el usuario.

Microsoft Passport: Tiene un conjunto de servicios como el Single Sign In (SSI) que permite autenticar si un usuario es vlido y pude participar en un sitio web. aparte tiene otras ventajas como reducir el tiempo de autenticacin, guardar contenido personalizado, etc. Hotmail utiliza el servicio de Passport para la autenticacin de usuario y guardar informacin en este Web. Microsoft Hailtorn: Usa los servicios de Passport para guardar informacin personalizada del usuario, pero su uso principal es almacenar Servicios Web que puedan ser usados por aplicaciones de Visual Studio .Net o cualquier lenguaje compatible con .Net.

El Marco .NETDefiniendo el Marco .NETEl Marco .NET (en ingls .NET Framework) es la piedra angular de la plataforma .NET y constituye un entorno para la creacin, distribucin y ejecucin de servicios Web, as como de otros tipos de aplicaciones.Se compone de cuatro partes principales que son:

1. Tiempo de Ejecucin en Lenguaje Comn (CLR) El marco .NET es la parte ms importanteEs el RunTime comn para todos los lenguajes que soportan el Marco .Net y realiza la mayor parte de funciones para que corran las aplicaciones .Net, es el que se encarga de compilar y ejecutar una aplicacin, as como administrar su trabajo con el sistema.

2. Librera de Clases .NetSon un conjunto de componentes que sirven para acceder a travs de objetos a la mayor parte de servicios del sistema, labor que era realizada antes por las APIs de Windows, la MFC o ATL de Visual C++, etc.

3. ADO .NET y XMLADO .NET se usa para acceder a cualquier origen de datos sea relacional (bases de datos), formatos planos (textos), etc. Por su parte, XML sirve como el formato para intercambiar los datos en diferentes plataformas

4. ASP .NETEste componente incluye el soporte para la creacin, distribucin y mantenimiento de aplicaciones web as como de Servicios Web XML, que son la razn de ser de la plataforma .Net.

Figura 1.4: Componentes del Marco .NET

Tiempo de Ejecucin en Lenguaje Comn (CLR)

Introduccin al Runtime y al CLRUn Runtime es la aplicacin responsable de manejar la asignacin de memoria, inicio y eliminacin de procesos mientras un programa se est ejecutando, as como de brindar seguridad al cdigo, y tambin gestionar su relacin con otros programas o componentes.Los Runtime han sido usados por los lenguajes de programacin como Visal Basic cuyo nombre es el Bru, Visual C++ cuyo nombre es MSVCRT, pero tambin Visual Fox pro, JSCript, SmallTalk, Perl Pitn, Java, etc. tiene su propsito Runtime.Cada aplicacin Visual Basic 6 que se quera distribuir tena que distribuirse con el Runtime, lo mismo en Visual C++, la diferencia que el primero ocupaba demasiado espacio y no era tan poderoso como el segundo.El Runtime de .Net se llama el CLR (Common Language Runtime o Tiempo de Ejecucin en Lenguaje Comn) y es la solucin a los diferentes tipos de Runtime que manejan los diferentes Lenguajes de Programacin antes mencionados, que ahora sern gestionados en ejecucin por un nico Runtime comn.La ventaja de tener un solo Runtime son mltiples ya que se podr compartir las mismas estructuras, tipos de datos, clases, etc. en todos los lenguajes que cumplan las especificaciones del Marco .Net.

Servicios del CLREl CLR es el motor de ejecucin de las aplicaciones del Marco .Net proporciona una serie de servicios, entre los que se incluyen los siguientes:

Administracin del cdigo (carga y ejecucin). Aislamiento de la memoria de la aplicacin. Comprobacin de la seguridad de los tipos. Conversin de IL (Lenguaje Intermedio) a cdigo nativo. Acceso a los metadatos (informacin de tipo mejorada). Administracin de memoria para los objetos administrados. Aplicacin de seguridad de acceso al cdigo. Control de excepciones, incluyendo excepciones en varios lenguajes. Interoperabilidad entre el cdigo administrado, los objetos COM y las DLL anteriores (datos y cdigo no administrados). Automatizacin del diseo de objetos. Soporte para servicios de desarrolladores (creacin de perfiles, depuracin, etc.) Sistema de auto registro o auto descripcin de componentes (no es necesario registrar el componente en el sistema). No es necesario los elementos de COM como GUIDs, interfaces iUnknow, etc.

Nota: Con esto decimos adis al problema de la compatibilidad de versiones de las dll

Componentes del CLRPara cubrir los diferentes servicios, el CLR, ha sido diseado cuidadosamente dividindose en componentes cada uno de los cuales se encarga de brindar los servicios anteriormente descritos, los cuales se muestran a continuacin.

Figura 1.5: Componentes del CLR

A continuacin se detalla cada una de las funciones de los componentes de CLR.

ComponenteDescripcin

Class LoadorAdministra la metadata y la carga y diseo de clases.

MSIl to native CompilersConvierte el lenguaje Intermedio Microsoft en cdigo nativo (Just in Time (JIT) y Native Generation (NGEN)).

Code ManagerAdministra la ejecucin del cdigo.

Garbage Collector (GC)Provee la administracin automtica del tiempo de vida de todos los objetos. El Garbage Collector es multithread y escalable.

Security EngineProvee la seguridad basada en evidencias, basada en el origen del cdigo en adicin a la entidad del cdigo invocado.

Debug EnginePermite depurar la aplicacin y realizar el seguimiento de la ejecucin del cdigo.

Type CheckerPermite la no-conversin de tipos o no-inicializacin de variables MSIl, puede ser verificado para garantizar la seguridad de tipos.

Exception ManagerProvee el manejo de errores en forma estructurada, el cual es integrado con el manejador estructurado de errores de Windows (Structured Exception handling o SEH).

Thread SupportProvee las clases e interfases que habilitan la programacin de multithreaded.

COM MarshalerProvee el intercambio a y desde COM.

.NET Framework Class Library SupportEs el soporte para la Librera de Clases que usa el Marco .NET

Compilacin y Ejecucin del CLR.El cdigo fuente escrito en Visual C#, Visual Basic .Net u otro lenguaje que soporte el CLR es transformado primero en lenguaje intermedio (MSIL) por el compilador respectivo del lenguaje. Antes de la ejecucin, este MSIL es compilado justo a tiempo (JIT) en cdigo nativo por el procesador del sistema, tal como lo muestra la siguiente ilustracin.

Figura 1.6: Compilacin y Ejecucin del CLR

.NET FRAMEWORK

En el grfico se aprecia dos modos de trabajo: Administrado y No Administrado, es decir Administrativo es cuando .Net maneja la ejecucin de aplicacin, por ejemplo en VB, C# y C++ y No Administrativo es cuando el lenguaje accede directamente al sistema, solo en el caso de C++.

Librera de Clase .NetLibrera de Clase .Net son un conjunto de componentes que tienen una gran cantidad de clases que permiten realizar cualquier tarea a invocar a cualquier servicio del sistema, desde crear un formulario Windows hasta administrar los procesos, la entrada y salida de flujos, seguridad, recursos como memoria, video, etc.El Marco .Net proporciona un conjunto extensible y unificado de bibliotecas (APIs) orientado a objetos y jerrquico para el uso de los desarrolladores. Hoy en da los desarrolladores en C++ utilizan las Clases Base de Microsoft (Microsoft Foundation Class o MFC) los desarrolladores utilizan las Clases Base de Windows (Windows Foundation Class o WFC) y los desarrolladores de Visual Basic utilizan las APIs de Visual Basic (VB y VBA).Tan sencillo como el Marco .Net unifica los diferentes marcos de Microsoft tiene hoy en da. Como resultado, los desarrolladores no tienen ya que aprender sobre mltiples marcos para hacer su trabajo. Pero ms que eso, mediante la creacin de un conjunto en comn de APIs a travs de todos los lenguajes de programacin, el Marco .NET permite herencia de lenguaje cruzado, manejo de errores y depuracin. De hecho, todos los lenguajes de programacin desde JScript a C++, se hacen iguales y los desarrolladores son libres de escoger el lenguaje que quieren utilizar.El Marco .Net permite la creacin de grandes aplicaciones web. Sin embargo, tambin puede ayudar a crear las mismas aplicaciones que se crean hoy da. Si escribe software para Windows (utilizando ATl/COM, MFC, Microsoft Visual Basic o incluso Microsoft Win32 estndar), .Net ofrecer numerosas ventajas a la hora de crear aplicaciones. Por supuesto si se dedica al desarrollo de sitios Web , el Marco .net resultar de gran inters, comenzando por ASP .NET.

Figura 1.7: Libreras de Clases .NET

En la figura anterior, slo se muestra parte de la librera de clases del Marco .Net que corresponde a las clases de manejo del sistema, las dems clases son para el manejo de aplicaciones y servicios Windows,, ADO .NET XML .NET, las cuales se trataran cada una en un mdulo por separado debido a su importancia.

Interoperabilidad con otras TecnologasSi bien es cierto que Microsoft .net es una nueva tecnologa, esta tambin interacta y usa ciertas funciones de tecnologas anteriores como COM, COM+ y DCOM. A continuacin se expone dicha relacin

Relacin con COMEl Marco .Net ha simplificado toda la complejidad de COM en lo que respecta a la creacin y uso de componentes, el cual es transparente para el desarrollador, por ejemplo, ya no se utiliza la interfase iUnknow para crear, consultar o eliminar un objeto, ni tampoco se usa los GUIDs (Global Unique Identifiers) ya que los componentes .Net se auto describen solos y no necesitan registrarse.Los componentes COM y .net pueden comunicarse, por ejemplo en Visual Studio 6.0 se podra llamar a un componente del Marco .Net y, para el desarrollador pareciera como si se fuera un componente COM, y viceversa, un desarrollador en Visual Studio .net vera un componente del Marco .Net.

Relacin con COM+COM+ es la tecnologa de Microsoft que reemplaza a COM y es implementada por la plataforma Windows 2000 en adelante, COM+ es un conjunto de servicios dirigidos a ser escalables y seguras aplicaciones empresariales Cliente/Servidor multinivel.Los servicios de COM+ son complementarios a los servicios de programacin proporcionados por el Marco .Net, este ultimo se apoya bastante sobre el primero para realizar algunas tareas que no han sido incorporadas en el Marco .Net.Las clases del marco .Net proporciona acceso directo a los servicios de COM+, tales como el ahorro de conexiones (connection postings), transacciones, agrupacin de objetos, componentes en cola, eventos asncronos, etc.

Relacin con DCOMDCOM es la infraestructura de COM para la comunicacin remota o en proceso cruzado. El Marco .Net admite una serie de formateadotes y canales que se pueden conectar para este tipo de comunicacin.Cuando se realizan transiciones entre el cdigo administrado y no administrado, el Marco .net utiliza la infraestructura COM, concretamente, DCOM, para realizar dicha transicin.El Marco .Net admite el protocolo SOAP (Simple Object Access Protocol) para la comunicacin remota o en proceso cruzado donde la interoperabilidad es de vital importancia. Pero todava se puede usar los servicios de DCOM para la comunicacin entre clientes y componentes COM.

Terminologa del Marco .NetPara comprender el Marco .net es necesario conocer ciertos trminos que son muy usados, algunos de ellos como el CLR y la Librera de Clases ya han sido explicados anteriormente, pero otros se explican a continuacin.

Sistema de Tipos Comn (CTS)En Ingls Common Type System (CTS) permite tener un mismo tipo de datos, operadores y estructuras para todos los lenguajes de programacin del Marco .net evitando tener que aprender en cada lenguaje ciertas estructuras que tendrn otro nombre o no existirn en otro lenguajes.No hay que confundir, inicialmente cada lenguaje tendr su propio sistema de tipos, pero que al final en tiempo de ejecucin el CLR los transforma en uno solo, es decir, en tiempo de ejecucin todos los lenguajes de programacin usan los mismos tipos.

Especificacin en Lenguaje Comn (CLS)El CLs son las siglas en Ingls de Common language Specification y son el reemplazo del IDL (Interface Definition Language) de COm que se usa para describir el contenido de un componente en un lenguaje neutral, de tal manera que pueda ser usado por cualquier lenguaje de programacin.Se trata de un conjunto de construcciones y restricciones que sirve como gua para los desarrolladores de libreras (DLLs) y compiladores (EXEs) que permite que las bibliotecas se puedan utilizar en cualquier lenguaje que admite CLS y para los lenguajes que se integran entre si.El CLS es parte del CTS y se trata de un elemento importante para los desarrolladores de aplicaciones que escriben cdigo que ser utilizado por otros desarrolladores. Cuando se disean las APIs con acceso pblico siguiendo las reglas de CLS, en las que se utilizan fcilmente en todos los dems lenguajes de programacin que tienen quieran ser compatibles con el CLR.

Lenguaje Intermedio de Microsoft (MSIL)MSIL, son las siglas de Microsoft Intermediate Language y es un conjunto de instrucciones o cdigo semicompilado que es independiente de la CPU, en el que se compilan los programas del Marco .Net.Este dispone de instrucciones para cargar, almacenar, inicializar y realizar llamadas a mtodos en los objetos. Junto con los metadatos y el CTS, MSIL permite la total integracin de varios lenguajes. Antes de la ejecucin, MSIL se convierte a cdigo mquina. No se interpreta.

Datos y Cdigo AdministradoEl cdigo administrado es el que se escribe para los servicios del CLR. Para realizar esta operacin, el cdigo debe proporcionar un nivel mnimo de informacin (metadatos) en el tiempo de ejecucin. Todo el cdigo en C#, Visual Basic .Net y Jscript .Net se administra de forma predeterminada. El cdigo en Visual Studio .Net C++ no se administra de esta manera pero el compilador puede producir cdigo administrado especificando un conmutador de lnea de comandos (/CLR).Los datos administrados (datos que el recolector de elementos no utilizados del tiempo de ejecucin en lenguaje compn asigna y desasigna) estn muyRelacionados con el cdigo administrado. Los datos en C#, Visual Basic y Jscript .Net se administra de forma predeterminada. No obstante, los datos en C# se pueden marcar como no administrados mediante la utilizacin de palabras claves especiales.Los Datos en Visual C++ son no administrados de forma predeterminada (incluso cuando se utiliza el modificador /CLR); sin embargo, al utilizar extensiones administradas para C++, se puede marcar una clase como administrada utilizando la palabra clave _gc.Las ventajas de tener cdigo administrado es la interoperabilidad con las clases escritas en otros lenguajes (por ejemplo, una clase C++ administrada puede heredar de una clase de Visual Basic). Como ejemplo de restriccin tenemos que una clase distribuida nicamente puede heredar de una clase base.

EnsambladorEn ingls Assemble es el bosque bsico fundamental de una aplicacin del Marco .Net, consiste en uno o mas archivos DLL o EXE con un conjunto de funcionalidad que se crea, se le da una versin y se distribuye como una nica unidad de implementacin. Todos los tipos y recursos administrados se marcan como accesible solo en su unidad de implementacin, o bien, como accesible mediante el cdigo fuera de su unidad.Los ensambladores so auto descriptivo gracias a una parte integral de los mismos denominada muestra (Manifest). Dicha de otra manera cumple las siguientes funciones):

Establece la entidad del ensamblador (en forma de un nombre de texto), as como la versin, cultura y firma digital (en caso de que el ensamblador vaya a compartir entre las aplicaciones). Define que archivos (por nombre y archivo hash) componen la implementacin del ensamblador. Especifica los tipos y recursos que forman el ensamblador, incluyendo cuales se exportan desde el mismo. Enumera las dependencias en tiempo de compilacin de otros ensambladores. Especfica el conjunto de permisos necesarios para la correcta ejecucin del ensamblador.

Esta informacin se utiliza en tiempo de ejecucin para resolver referencias, aplicar las directivas del enlace de versiones y validar la integridad de los ensambladores cargados. El tiempo de ejecucin puede determinar y ubicar el ensamblador para cualquier objeto de ejecucin, ya que todos los tipos se encargan en el contexto de un ensamblador.Asimismo, los ensambladores constituyen la unidad en la que se aplican los permisos de seguridad de acceso al cdigo. La prueba de entidad de cada ensamblador se considera individualmente cuando se determina los permisos que contiene para otorgar al cdigo.

Espacio de NombreUn espacio de nombre (NameSpace) es un esquema de denominacin lgica para los tipos en los que un nombre de tipo sencillo, como OLEDB, va precedido de un nombre jerrquico separado por puntos. Dicho esquema se encuentra totalmente bajo el control del desarrollador.Las herramientas de diseo se pueden utilizar los espacios de nombre para facilitar a los desarrolladores el proceso de exploracin y referencia a los tipos en su cdigo. El concepto de espacio de nombre no esta relacionado con el del ensamblador. Un nico ensamblador puede contener tipos cuyos nombre jerrquicos dispongan de distintas races de espacio de nombre y una raz lgica de este tipo puede abarcar vario0s ensambladores.En el Marco .Net, un espacio de nombre es una conveniencia lgica de denominacin en tiempo de diseo, mientras que un ensamblador establece el mbito de nombre para los tipos en los tiempos de ejecucin.En Visual Basic, por ejemplo para ser uso de un Assemble hay que usar los espacios de nombre con la declaracin Imports, por ejemplo si quisiramos acceder con SQL Server y manejar archivos de texto en una aplicacin Windows realizar la siguiente declaracin:

Imports System.Windows.FormsImports System.Data.SQlImports System.IO

Sesin 2

VISUAL STUDIO .NET

En esta Sesin se tratarn los siguientes temas:

1. Introduccin a Visual Studio .NET Definiendo Visual Studio. Herramienta Rpida de Desarrollo (RAD).

2. Lenguajes .NET Neutralidad de Lenguajes .NET Lenguajes en .NET

3. Entorno Integrado de Desarrollo (IDE) Descripcin del IDE compartido. Administracin de Ventanas. Diseadores. Herramientas de datos.

Introduccin a Visual Studio .NET

Definiendo Visual Studio .NET.

Visual Studio .NET es la herramienta Rpida de Desarrollo (RAD) de Microsoft para la siguiente generacin de Internet que son los servicios Web XML. Esta herramienta permite la creacin de aplicaciones usando el Marco .NET, es decir usando el CLR, la librera de Clases, ADo .NET, ASP .NET, etc.

Es un Software que brinda las herramientas necesarias para crear, distribuir, administrar y dar mantenimiento a aplicaciones Web distribuidas que usan servicios Web XML, todo esto con una gran facilidad, rapidez y bajo costo.

Se puede crear aplicaciones Web directamente usando el Framework .NET y algn programa editor, por ejemplo el Bloc de Notas, pero el tiempo que llevar el desarrollo no justificara el ahorro de costos, en cambio, si se utiliza una Herramienta como Visual Studio .NET el tiempo de desarrollo se reducir enormemente.

Visual Studio .NET permite tambin la integracin y el uso cruzado de lenguajes de programacin: Visual Basic .NET, Visual C++ .NET y Jscript .NET.

A diferencia de la versin anterior no existe. Visual Interdev, ni Visual J++, adems Visual Fox Pro .NET no comparte las caractersticas unificadas del Marco .NET.

Figura 2.1: Estructura del Marco .NET y Visual Studio

.NET FRAMEWORK

Lenguajes en .NET

Neutralidad de Lenguajes .NETEl Marco .NET es neutral con respecto al lenguaje y admite prcticamente cualquiera de ellos.Esto trae consigo los siguientes beneficios para el desarrollador:

Cdigo Reusable y Compartido: Antes no exista una integracin total del equipo de desarrollo cuando cada grupo usaba herramientas diferentes como Visual Basic 6, Visual C++, Visual J++, en cambio ahora, el cdigo escrito en cualquier lenguaje pudo ser usado desde otro, ya que todas son clases .NET.

Acceso a APIs igual para todos los Lenguajes: Actualmente, todos los lenguajes del Marco .NET comparte las mismnas clases o APIs del sistema, antes cada lenguaje acceda a las APIs de una manera, de ellos C++ era l ms fuerte, hoy en da con .Net no existe diferencias entre potencias del lenguaje.

Herencia Cruzada entre Lenguajes: Se puede crear una clase en un lenguaje y heredarse desde otra clase escrita en diferente lenguaje .NET, lo que permite la reutilizacin total del cdigo por parte de diferentes desarrolladores.

Manejo de errores cruzado entre Lenguajes: Se puede controlar errores desde una clase por ms que el error ocurra en un objeto creado en otro lenguaje distinto al de la clase que controla el error, tambin se puede realizar el seguimiento de una aplicacin aunque incluya llamadas a otros lenguajes, etc.

Figura 2.2: Relacin cruzada entre Lenguajes .NET.

Aplicacin VB .NET

Aplicaciones Visual C# .NETClase AClase BClase CClase D

Herramienta Rpida de Desarrollo (RAD)La principal ventaja de Visual Studio .NET es realizar la creacin de aplicaciones de forma fcil y rpida, tan slo con arrastras y soltar objetos se pueden crear desde aplicaciones Windows hasta servicios Web XML.Entre algunas de las ventajas del soporte RAD de Visual Studio tenemos:

Creacin de Pginas Web mediante formularios Web: Visual Studio .NET incluye un diseador de pginas Web HTML y ASP .NET basado en formularios Web, el diseador permite arrastras controles, clases de datos, y otros objetos y configurar sus propiedades como si fuese un formulario de aplicacin para Windows.

Creacin de Servicios Web XML: Para crear servicios web XML, Visual Studio .NET incluye una plantilla con servicios Web de ejemplo, los cuales puedes modificar y personalizar a tu medida.Eligiendo el lenguaj que desea, que pudo ser visual Basic .NET, visual C# .NET o Visual C++ .NET.

Acceso a Servicios Web XML: Una vez creado los servicios web XML, deben usarse en otras aplicaciones del negocio, para ello visual Studio .NET cuenta con el Explorador de Servidores (Server Explorer ) que permite ver los servicios Web publicados y usarlos con solo un arratre. Tambin podemos usar un Servicio Web haciendo referencia desde un proyecto mediante la opcin Add Web Reference del men Project.

Creacin de Componentes .NET: Crear componentes o controles de usuario, es tan simple como crear un formulario ya que usando la herencia se puede pasar todas las caractersticas de un objeto a otro, esto esta presente en todos los objetos creados en Visual Studio .NET, sean esquemas y datos.

Existen mas caractersticas RAD en Visual Studio .NET las cuales trataremos ms adelante.

Lenguajes en .NET

En Visual Studio .NET viene los siguientes Lenguajes de Programacin: Visual Basic .NET. Visual C# .NET. Visual C++ .NET. Visual Foxpro .NET (No administrado por el Marco .NET). Visual Jscript .NET.

Adems de estos lenguajes, el Marco .NET soporta otros lenguajes, entre los cuales se destacan: COBOL: http://www.adtools.com/info/withepaper/net.html/ Pascal: http://www2.fit.qut.edu.au/CompSci/PLAS/ComponenPascal/ Smalltalk: http://www.qks.com Eiffel: http://dotnet.eiffel.com/ ML: http://research.microsoft.com/Projects/SML.NET/index.htm APL: http://www.dyadic.com Oberon: http://www.oberon.ethz.ch/lightning/ Scheme: http://rover.cs.nwu.edu/-scheme/ Mercury: http://www.cs.mu.oz.au/research/mercury/ Pitn: http://aspn.activestate-com/ASPN/NET/index Haskell: http://haskell.cs.yale.edu/ghc/ Mondrian: http://www.mondrian-script.org

Se ha dado el nombre de algunos lenguajes junto a sus respectivas pginas de web donde se puede encontrar informacin sobre estos e inclusive bajarse el compilador del lenguaje compatible con .NET.

Figura 2.3: Listado de Lenguajes . NET C. VISUAL C++. VISUAL BASIC. VISUAL C#. SMALLTALK. OBERON. SCHEME. MERCURY. PYTHON

COBOL. JSCRIPT .NET. EIFFEL. HASKELL/MONDRIAN. PASCAL. ML. APL. ALICE.

Entorno Integrado de Desarrollo (IDE)

Descripcin del IDE Compartido.Visual Studio .NET tiene un Entorno Integrado de desarrollo nico o compartido para crear aplicaciones usando cualquiera de los lenguajes de programacin, que puede ser Visual Basic, Visual C++ o C#.

En esta nueva versin de Visual Studio Foxpro mantiene su propio IDE (similar al de la versin 6), adems Visual Interdev ya no es parte de Visual Studio, ya que las herramientas de desarrollo para Web estn disponibles a travs de los web forms disponibles desde IDE comn.Al iniciar Visual Studio .NET aparece (por defecto) la pgina de inicio, tal como se muestra en la figura 2.4

Figura 2.4: Ventana del Visual Studio .NET.

Desde esta pgina de inicio podemos elegir la opcin Get Started para crear un nuevo proyecto o abrir uno existente o reportar un error del IDE de Visual Studio, si elegimos new project se presentar la ventana que se muestra en la figura 2.5.

Figura 2.5: Ventana de Crear un nuevo Proyecto.

Esta ventana esta dividida en 2 secciones: en el lado izquierdo se encuentran los tipos de proyectos que se puedan realizar (Visual Basic, Visual C#, Visual C++, etc.) y en el lado derecho se encuentran las plantillas o tipos de aplicaciones, que varan de acuerdo al tipo de proyecto.

Si se elige Visual Basic, Visual C#, las plantillas se pueden dividir en tres: Para Windows, para Web (Aplicaciones, Servicios, Librera de Clases, Librera de Controles, proyecto Vaci) y de Consola.

En el caso de elegir como tipo de proyecto Visual Basic y como plantilla Windows Application hay que seleccionar la ubicacin del nuevo proyecto y escribir el nombre de este, el cual crear una carpeta con el mismo nombre en el lugar seleccionado. A continuacin la figura 2.6 muestra el IDE compartido de Visual Studio .NET en el caso de elegir una Aplicacin para Windows.

Figura 2.6: IDE Compartido de Visual Basic .NET

987653214

Entre las partes del nuevo IDE de Visual Studio .NET tenemos:1. men Bar.2. Toolbars.3. Server Explorer Windows (Ctrl. + Alt + S).4. Toolbox (Ctrl + Alt + X).5. Output Window (Ctrl + Alt + O).6. Status Bar.7. Window Form Designer.8. Solution Explorer Window (Ctrl + R).9. Properties Window (F4).10. Search Window (Ctrl + Alt + F3).11. Dynamic help Window (Ctrl + F1).

Existen nuevas ventanas en Visual Studio .Net entre las cuales tenemos:

Class View (Ctrl. + Shift + C). Resource View (Ctrl + Shift + E). Macro Explorer (Alt + F8). Document Outline (Ctrl + Alt + T). Task List (Ctrl + Alt + K). Command Window (Ctrl + Alt + A).

Administracin de ventanasEl manejo de ventanas en Visual studio .NET es ms simple y rpido pudiendo acceder a cualquier elemento de manera fcil debido a nuevas ventanas, tales como:

Auto ocultar: Esta caracterstica es nueva en Visual Studio .NET y permite ocultar una ventana permitiendo liberar espacio en el IDE, para mostrar nuevamente la ventana solo hay que ubicar el Mouse cerca del nombre de la ventana que aparece en una ficha.

Ventanas acoplables: Al igual que visual Basic 6, esta nueva versin permite acoplar ventanas las cuales estn fijas en el IDE. Podemos elegir si una ventana se va a Auto ocultar o si se va a acoplar. Al acoplar la ventana tendremos la posibilidad de ver siempre su contenido.

Fichas de Documentos: En la versin anterior de Visual Studio .NET el trabajo con varios documentos era tedioso porque para acceder un documento abierto (por ejemplo un mdulo de informacin) haba que hacerlo mediante el men WINDOWS o dando clic en el botn View Code o doble clic sobre el nombre del objeto. Ahora el acceso es muy rpido a travs de las fichas que hay en la parte superior del Editor.

Navegacin a travs de IDE: Podemos navegar a travs de los documentos visitados usando la barra web, pudiendo ir hacia Atrs, Adelante, Detener, Actualizar, Ir al inicio como si se tratase de un Browser y si navegramos a travs de pginas web, lo que facilita la bsqueda de una pgina ya abierta.

Ventana de Ayuda Rpida: Una de las caractersticas mas importantes de Visual Studio .NET es la ayuda inteligente o ayuda rpida que permite mostrar una ventana todos los tpicos relacionados a donde se encuentre el cursor (si esta en el editor) o al objeto seleccionado (si estamos en el diseador del formulario), por ejemplo, si estamos en el editor escribiendo una funcin aparecern los tpicos relacionados a esta, si nos encontramos seleccionando un control, aparecern los temas referentes a este.

Todas estas nuevas caractersticas hacen que el trabajo del desarrollador sea mas productivo, centrndose en la lgica de la aplicacin y no en el mantenimiento de esta ya que es mas fcil al utilizar las nuevas caractersticas de Administracin de ventanas, anteriormente comentadas.

DISEADORES:Para realizar la construccin de aplicaciones o creacin de componentes o servicios disponemos de diseadores que facilitan la labor de construccin de interfaces, creacin de sentencias, etc.La mayora de diseadores se habilitan al elegir una plantilla de Visual Studio.NET y casi todos generan cdigo al disear controles sobre el contenedor respectivo, caractersticas totalmente distintas a la forma de trabajo en Visual Basic 6.0, que ocultaba el cdigo generado por el diseador.Entre los diseadores que trae Visual Studio.NET tenemos:

Windows Form Designer: Se muestra al elegir cualquiera de dos plantillas Windows Application o Windows Control Lybrary, habilitando en el toolbox ,os controles para Windows que sern usados para construir la interfase de la aplicacin arrastrando dichos controles hacia el formulario o control de usuario.

Web Form Designer: Se muestra al elegir la plantilla Web Application Habilitando en el toolbox los controles para Web y los controles HTML que sern usados para construir la pagina Web que correr en el IIS (Archivo aspx) arrastrando dichos controles hacia el formulario Web.

Component Designer: este diseador se muestra a elegir una de dos plantillas: Class Library o Windows Service y tambin trabaja con los controles para Windows, creando una interfase re usable desde otra aplicacin.

Web Service Designer: Sirve para disear servicios Web y es mostrado al elegir una plantilla Web Service, tambin trabaja con los controles para Windows, componentes, etc.

Existen mas diseadores, pero que lo trataremos en la categora de herramientas de datos, debido al tipo de trabajo que realizan los datos, el cual se trata como tema siguiente:

HERRAMIENTA DE DATOS:Si se quiere realizar un trabajo rpido con datos, tal como modificar la estructura de la Base de datos, crear tablas, consultas, procedimientos almacenados, etc., existen herramientas que permiten realizar esta labor reduciendo enormemente el proceso de desarrollo en el caso de hacerse por otros medios.

Entre las principales herramientas que trabajan con datos tenemos:

Server Explorer: Sin duda una de las principales herramientas de Visual Studio .NET y no solo para acceder datos sino para mostrara y para administrar los diferentes servidores o recursos del sistema tales como Base de Datos, Servicios Web, Aplicaciones COM, etc. Con solo arrastrar el objeto este puede ser usado en una aplicacin. Tambin se tratara con mayor detalle en el modulo de acceso a datos.

Data Adapter Wizard: Es un asistente que permite crear un Data Adapter que es un comando (Select, Insert, Update, Delete) con el cual se podr generar un conjunto de registros o Dataset. La misma funcin puede ser cubierta por el Server Explorer con solo arrastrar los campos hacia el formulario.

Query Designer: Es un diseador que permite crear consultas SQL de manera sencilla arrastrando tablas o consultas sobre este y eligiendo los campos que se vern en la consulta de datos, tambin se puede realizar filtros o especificar criterios de seleccin. Adems no solo se pueden construir consultas SELECT sino tambin se pueden crear consultas INSERT, UPDATE o DELETE, etc.

DataBase Project: Es un tipo de plantilla que sirve para trabajar con una Base de datos, para lo cual debe existir una conexin o un origen de datos, este tipo de proyectos da la posibilidad de crear y modificar scripts de creacin de tablas, consultas, vistas, desencadenantes, procedimientos almacenados, etc.

Editor de Scripts: Uno de los mas principales herramientas para trabajar con base de datos remotas como SQL Server, Oracle, etc, es utilizar el editor de scripts que permite crear tablas, consultas, vistas, etc. Mostrando con colores las sentencias o palabras reservadas del lenguaje Transact-SQL.

Depurador de Procedimientos Almacenados: Visual Studio .NET incorpora un apurador de Store Procedure que puede realizar seguimiento paso a paso por lnea de cdigo, por sentencia o por instruccin, adems crea puntos de interrupcin, permitiendo un mayor control y seguimiento del cdigo en caso de errores.

Todas estas herramientas mencionadas, son nuevas en Visual Studio .NET, a excepcin del Quero Builder que es el mismo de la versin anterior de Visual Studio. Como se habr dado cuenta muchas herramientas de acceso a datos de Visual Basic 6 han sido eliminadas, tales como: data Enviorment, Data View, Data Report, y otras ms, pero en su reemplazo existen las que ya hemos mencionado.

Sesin 3

Visual Basic .NET

En esta Sesin se tratarn los siguientes temas:

1. Introduccin a Visual Basic .NET

2. Caractersticas del lenguaje Tipos de datos. Variables. Arreglos Procedimientos.

3. Manejo de Threads Introduccin de los Threads Implementacin de los Threads Estado de una Thread

4. Depuracin Barras de Depuracin Ventanas de Depuracin

5. Control de Excepciones Tipos de Errores Formas de Controlar Excepciones Opciones de Control de Excepciones

Introduccin a Visual Basic .NET

En los mdulos anteriores hemos tratado el Marco .NET ahora trataremos Visual Basic .NET, pero hay que remarcar que las caractersticas del lenguaje dependen del marco .NET, y las herramientas son compartidas por el IDE de Visual Studio .NET.

Visual Basic :NET es la versin 7 de esta popular herramienta, esta ultima versin tiene cambios radicales, tanto en su concepcin (.NET), en el lenguaje, las herramientas usadas, etc. Entre las nuevas caractersticas de Visual Basic .Net tenemos:

Dos tipos de desarrollos bien desarrollos bien diferenciados: Aplicaciones para Windows Aplicaciones para Internet

Acceso a datos usando ADO.NET el cual permite

Nuevo depurador que permite realizar seguimientos de cdigo escrito en diferentes lenguajes .NET.

Creacin y uso de XML para intercambio de datos entre aplicaciones.

Lenguaje Orientado a Objetos, con soporte de Herencia mltiple, y polimorfismo a travs de la sobrecarga de propiedades, mtodos y funciones con el mismo nombre.

Control de errores o excepciones en forma estructurada (Try..catch..Finally)

Soporte de Multithread para que la ejecucin pueda ejecutar mltiples tareas en forma independiente.

Uso de NameSpaces para referirse a una clase que se va usar en la aplicacin. Los Assemblies reemplazan a la Librera de Tipos, en un Assemblie pueden existir uno o ms NameSpces.

Reestructuracin en los Tipos de Datos; existen nuevos tipos de datos y se han modificado y eliminado cierto tipo de datos.

Cambio con el Lenguaje: nuevas formas de declarar variables, conversin explicita de tipo de datos (no existe conversin forzosa), no existen procedimientos sino funciones, etc.

Caractersticas del lenguajeTipo de Datos

Tipo V. BasicEstructura tipo .Net RuntimeTamao AlmacenadoRango de valores

BooleanSystem.Boolean4 bytesTrae o False

ByteSystem.Byte1 Byte0 a 255 (sin signo)

CharSystem.char2 Bytes0 a 65535 (sin signo)

DateSystem.dateTime8 BytesEntero 1,1 CE Hasta Diciembre 31,9999

DecimalSystem.decimal12 bytes+/- 79,228,162,514264,337,593,543,950,335 sin punto decimal; numero mas corto (no 0) es: +/- 0.0000000000000000000000000001

Double (doble-presicion punto-flot.)System.double8 bytes-1.79769313486231E308 hasta -4.94065645841247E-324 para valores negativos; 4.94065645841247E-324 hasta 1.79769313486232E308 para valores positivos

IntegerSystem.int324 bytes-2,147,483,684 to 2,147,483,647

LongSystem.int648 bytes-9,223,372,036,854,775,808 hasta 9,223,372,036,854,775,807

ObjectSystem.object4 bytesCualquier tipo de dato

ShortSystem.int162 bytes-32,768 a 32,767

Single (simple precision punto-flot.)System.single4 bytes-3.402823E38 hasta -1.4401298E-45 para valores negativos; 1.4401298 hasta 3.402823E38 para valores positivos.

String (tamao-var.)System.string(class)10 bytes + (2*tamao cd)0 hsta aproximadamente 2 billones de caracteres Unicote

User-Defined type (estructura)(heredado desde system.value type)Suma de tamaosCada miembro de la estructura tiene un rango determinado, es decir pueden tener sus propios tipos de datos distintos uno de otros.

Notas: Se ha eliminado el tipo de dato variant y es reemplazado por Object, tambin el dato currency ahora es decimal y el Type ahora es Structure. Adems no existen String de tamao fijo, sino que todos dinmicos.

Variables:

Una variable es un dato temporal en memoria que tiene un nombre, un tipo de dato, un tipo de vida y un alcance, los cuales lo dan forma como se declare estaUna variable debe cumplir con las siguientes reglas. Debe iniciar con carcter alfabtico. Debera contener solo caracteres alfabticos, dgitos y carcter de subrayado El el nombre no debe exceder a 255 caracteres, etc.

Declaracin de Variables:A diferencia de Visual Basic 6 en VB .NET se puede declarar varias variables en una sola instruccin y adems se pueden asignar directamente sus valores. Otra observacin es que es necesario definir el tipo de declaracin y el tipo de dato (antes si no se hacia se asuma un tipo de declaracin y un tipo de dato variant, que ahora no existe).

Sintaxis:As[=]

Existen varios tipos de declaracin que detallamos a continuacin en la siguiente tabla:

DeclaracinLugar de DeclaracinAlcance o mbito

PublicModulo o claseGlobal, en todo el proyecto

ProtectedClaseEn la clase declarada o en una derivada

FriendClaseEn el Assemblie

PrivateModuloSolo en el modulo

DimProcedimientoSolo en el procedimiento

StaticProcedimientoSolo en el procedimiento

Alcance de las variables:Para las variables declaradas a nivel de procedimiento (Dim y Static) existe un nuevo alcance que es a nivel de estructura o bloque, que puede ser For-Next, If-Enf If, Do-Loop, etc. Las variables definidas dentro de un bloque solo valdrn en este bloque.

Opciones de trabajo:Por defecto en VB.NET es necesario declarar las variables usadas (Option Explicit) y tambin es necesario que asigne el mismo tipo de dato a la variable (Option Strict), si deseamos Declaracin Implcita (por defecto Object) y conversin forzosa de tipos (ForeCast), aunque no es recomendable por performance, podemos conseguirlo de dos formas: mediante Propiedades del proyecto, opcion Build y elegir Off en las listas de Option Explicit y Option Strict o mediante declaracin al inicio de todo el cdigo.

Option Explicit OffOption Strict Off

Arreglos:Un array o arreglo es un conjunto de variables que tienen el mismo nombre pero diferentes ndice que permite simplificar el uso de estas y aumentar la velocidad de acceso a los datos que almacena el array.

El array puede tener uno mas dimensiones (hasta 60) y cada dimensin tiene un limite inferior que siempre es 0 y un limite superior que es equivalente al tamao de la dimensin del array menos 1. Esta caracterstica es distinta que en la versin anterior, en donde el limite inferior del array podra empezar en cualquier numero.La clase base :NET de donde se heredan los Array y pertenece al siguiente NameSpace: System.array.

Declaracin de Arrays:A diferencia de Visual Basic 6, en VB.Net se puede declarar e inicializar un array que no tiene tamao definido.Otra diferencia es que no exista la sentencia Option base que haga que el limite inferior del array empiece en 0 o 1, este siempre empezara en 0 e ira hasta n-1.

Sintaxis:([Tamao])As[=]

Ejemplo:Dim Alumnos(30), Cursos(10) as StringDim Edades() as byte={18,20,25,27}Dim Sueldos( , )As decimal

Redimensionando ArraysUna vez definido la dimensin de un array, este puede modificarse usando las sentencias ReDim, siempre y cuando el array haya sido declarado como dinmico (con Dim).

Sintaxis:Redim [Preserve]([Tamao])As[]

Ejemplo:Dim I, Arreglo() As IntegerRedim Arreglo(5)For I=0 to Ubound(Arreglo)Arreglo(I)=INext I

Procedimientos:Un procedimiento es un bloque de cdigo o conjunto de instrucciones que es definido en la aplicacin y que puede ser usado varias veces mediante una llamada.

Dos caractersticas nuevas de los procedimientos, incorporadas en esta versin son:

Recursividad: Es la capacidad del procedimiento para llamarse a si mismo. Sobrecarga: Consiste en que varios procedimientos pueden tener el mismo nombre.En Visual Basic tenemos varios tipos de procedimientos:

Subrutinas: Ejecutan una accin sin retornar un valor. Funciones: Ejecutan una accin retornando un valor. De Eventos: Se desencadenan con la interaccin del usuario a algn evento. De Propiedades: Devuelven y asignan valores a propiedades de un objeto.

Declaracin de un Procedimiento:Subrutina:

[Public|Private|Friend] Sub ([Optional][By Val|By Ref] As )

[Exit Sub]

Function:

[Public|Private|friend] Function () As

[Exit Function]

[=|return(Valor)]

End Function

Notas:

El tipo de argumento por defecto es By Val (En la versin anterior era ByRef) Si se usa Optional debe inicializarse con un valor (antes no era obligatorio) Se puede usar return para regresar a la llamada del procedimiento.LLAMADA A UN PROCEDIMIENTO:Antes exista una forma de llamar a una subrutina y dos formas de llamar funciones (o como subrutina o como funcin, esta ultima mediante parntesis). En cambio ahora, existe una sola forma de llamar procedimientos, sea subrutinas o funciones, que escribiendo el nombre seguido de parntesis y entre estos los parmetros (si los hay).

Sintaxis:

[Variable=]([Parmetro(s)])

MANEJO DE THREADS

Introduccin a los ThreadsUn Thread es la unidad bsica para que el sistema operativo pueda ejecutar un proceso. Una aplicacin (AppDomain) siempre inicia un solo thread, pero este a su vez puede iniciar otros threads. Al proceso de ejecutar varios threads, la llamaremos threading.

La ventaja principal de los threads es tener varias actividades ocurriendo en forma simultnea, lo cual es una gran posibilidad para que los desarrolladores puedan trabajar con varios procesos sin perjudicar otras tareas. Por ejemplo, el usuario pueda interactuar con la aplicacin mientras se va ejecutando una consulta de miles de registros.Se recomienda el uso de Threads en las siguientes situaciones: Para comunicaciones sobre una red, servidor Web o Servidor de Base de Datos. Al ejecutar operaciones que demoren bastante tiempo. Para mantener siempre disponible la comunicacin entre el usuario y la interfase, mientras se van ejecutando tareas en segundo plano, etc.

El uso de Threads intensivamente disminuye los recursos del sistema operativo, por tanto solo se recomienda usar en los casos ya descritos, sino la performance de la aplicacin disminuir.

Implementacin de ThreadsPara implementar Threads se usa el NameSpace: System.threading.Thread y luego se hace uso de los mtodos que se definen a continuacin:

Star: Inicia un Thread, el cual es un proceso de llamada asncrona. Para saber el estado del Thread hay que usar las propiedades Threadstate y IsAlive. Abort: Cancela un Thread iniciado, si deseamos saber el estado nuevamente podemos usar las propiedades ThreadState y IsAlive. Sleep: Ocasiona una pausa en milisegundos del bloqueo de instrucciones. Suspend: Tambin ocasiona una pausa en el bloque de instrucciones. Resume: Reinicia una pausa originada con el mtodo Suspend. Interrupt: Interrumpe una pausa originado una excepcin. Join: Espera un Thread.

Estado de un ThreadUn Thread puede tener diferentes estados en un mismo tiempo, para saber su estado se encuentra la propiedad ThreadState que devuelve un valor que indica el estado actual Thread.

AccinEstado de Transicin

Otro Thread llama a Thread.startUnchanged

El Thread inicia su ejecucinRunning

El Thread llama a Thread.SleepWaitSleepJoin

El Thread llama a Monitor. Espera en otro objetoWaitSleepJoin

El Thread llama a thread.join en otro ThreadwaitSleepJoin

Otro Thread llama a Thread.SuspendSuspendRequest

El Thread responde a un requerimiento de Thread.SuspendSuspended

Otro Thread llama a Thread.resumeRunning

Otro Thread llama a Thread.InterruptRunnig

Otro Thread llama a Thread.AbortAbort.Request

El Thread responde a Thread.AbortAborted

DepuracionLa depuracin es el proceso de realizar un seguimiento a una aplicacin para analizar variables, expresiones, objetos, etc. Y probar sus valores en diferentes escenarios, as como probar el desempeo de su aplicacinEn VB.NET, existe un mismo depurador para Visual Basic.NET y C# (Cdigo Administrativo), el cual tiene las siguientes mejoras:

Depurar a travs de diferentes lenguajes: Se puede depurar aplicaciones escritas en diferentes lenguajes que son parte de una misma solucin, por ejemplo una aplicacin cliente para la interfase de usuario escrita en visual Basic o C# y una aplicacin servidor escrita en Visual C++. Adjuntar Programas en Ejecucin: es posible adjuntar un programa que se esta ejecutando al depurador, y depurar el programa como si tuviera en el IDE de Visual Studio. Esto se realiza a travs de la ventana de Procesos, que muestra todos los procesos que estn ejecutndose mientras se corre una aplicacin. Depuracin remota: Se puede aadir y depurar un proceso que esta ejecutndose en una computadora remota, por ejemplo podemos depurar una aplicacin cliente Windows que llama a una Web service que esta corriendo en otra maquina, pudiendo depurar a este Web service como si estuviera en la maquina donde esta corriendo la aplicacin cliente. Depuracin de Aplicaciones Multi Thread: Una nueva caracterstica del Visual Basic es el soporte de aplicaciones Multi Thread, para lo cual se dispone de la ventana de Thread en donde se muestra los Threads que se encuentren en ejecucin. Depuracin de Aplicaciones Web: Esta caracterstica ha sido mejorada, permitiendo adjuntar una pagina ASP.NET al proceso que se encuentra en ejecucin, que puede ser una aplicacin Web y realizar el proceso de depuracin de la pagina como si estuviera en la computadora local, etc. Barras de depuracin: Contiene los comandos para realizar la depuracin, como el seguimiento paso a paso, fijar puntos de interrupcin, mostrar las ventanas de depuracin, etc. Ventanas de Depuracin: Son ventanas donde se muestra el estado en que se encuentra las variables, procedimientos, objetos, etc. Algunas permiten el anlisis o inspeccin y otras la visualizacin o modificacin de estado de objetos.

Barras de DepuracinExisten 2 barras de depuracin que a continuacin se describen:

Barra de Depuracin: Es el principal barra que contiene todos los comando de depuracin (34 total), desde ejecutar una aplicacin hasta fijar desensamblar.

Figura 3.2 barra de depuracin

Inicia la ejecucin de la aplicacin.

Ejecuta la aplicacin sin entrar en depuracin

Interrumpe la ejecucin e ingresa al modo pausa Finaliza la ejecucin de la Aplicacin Quita todas las aplicaciones anexadas Reinicia nuevamente la ejecucin de la aplicacin. Aplica los cambios realizados al cdigo si es que esta modo pausa. Ejecuta paso a paso incluyendo procedimientos Ejecuta paso a paso sin incluir procedimientos Retrocede al paso anterior en un seguimiento paso a paso. Line indica el tipo de depuracin paso a paso, puede ser por lnea (por defecto), por sentencia o por instruccin. Pasa a la siguiente sentencia a depurarse Ejecuta la sentencia o lnea especificada por el cursor del Mouse en una ventana Inserta un punto de interrupcin donde se detendr la ejecucin Habilita o deshabilita un punto de interrupcin previamente insertado Borra o elimina todos los puntos de interrupcin fijado Visualiza la ventana Breakpoints Presenta las ventana excepciones para controlar errores Muestra la ventana de documentos ejecutndose Visualiza la ventana autos Presenta la ventana local Muestra la ventana This que contiene la clase actual Activa la ventana Watch conteniendo las expresiones de anlisis Visualiza la ventana Inmediate Presenta la ventana CallStack o de llamada a Pila Muestra la ventana Threads Activa la ventana de Mdulos Visualiza la ventana de proceso de ejecucin Presenta la ventana Quick Watch o de anlisis rpido Muestra la ventana de contenido de memoria Muestra la ventana del desensamblador de cdigo Visualiza la ventana de registros del procesador Presenta la venta del desensamblador para fijar cursor

Barra de Ubicacin de Depuracin: Es una nueva barra que muestra informacin de la aplicacin que se esta depurando, tal como el nombre del programa, el thread y el procedimiento que se encuentra en ejecucin (en la pila).

Control de excepcionesDurante el desarrollo y ejecucin de una aplicaron pueden presentarse diferentes tipos de errores, los cuales impiden el normal funcionamiento de la aplicacin. A estos errores se les llama excepciones.

Tipo de ErroresLo errores o excepciones se pueden clasificar en 3 tipos

Error de Sintaxis: Suceden al escribir el cdigo en la aplicacin. Una ayuda para corregir errores de sintaxis , es usar la sentencia Option Explisit que fuerce a declarar variables y evitar expresiones invalidas.

Errores Lgicos: Ocurre una vez usada la aplicacin y consiste en resultados inesperados o no deseados.

Tambin podemos disminuir errores o excepciones de tipos de datos no deseados usando la sentencia Option Strict que evita la conversin forzosa y verifica que el tipo de dato asignado sea del mismo tipo que la variable o funcin, o que un parmetro pasado sea del mismo tipo, etc.

Errores de tiempo de ejecucin: Este tipo de error sucede en plena ejecucin de la aplicaron, despus de haber sido compilado el cdigo.Existen 2 formas de controlar errores o excepciones en VB .Net.:

Control no estructurado: se implementa usando la sentencia On Error GoTO.Inicio Procedimiento()On Error GoTo Exit Sub:[Resume | resume next | Resume etiqueta]Fin procedimiento

Control Estructurado: Es la forma mas recomendable de controloas errores y es una nueva caracteristica de visual Basic .NET; la estructura es la siguiente:

Inicio Procedimiento()Try[Exit Try]

[Catch 1[[As]][When ]][Exit Try]

[Catch 2[[As]][When ]][Exit Try]...[Catch n[[As]][When ]][Exit Try]FinalyEnd TryFin Procedimiento

Opcin del Control de Excepciones

Figura Ventana Excepciones

Sesin 4

Creando Aplicaciones para Windows

En esta Sesin se tratarn los siguientes temas:1. Usando Windows Forms Introduccin. Objeto formulario Uso del ToolBox

2. Usando controles para Windows Forms Controles label, texbox y button Controles groupbox,radiobutton y checkbox Controles listbox, checkedlistbox y combobox

3. Interfaces Introduccin Creando aplicaciones MDI Controles treeview y ListView

4. Aadiendo Menus, Dialogos y Barras Mens Dilogos Barras

Usando Windows Forms

IntroduccinWindows es una clasa base del marco .NET usada para crear aplicaciones que corrern sobre Windows, esta se encuentra disponible al elegir en Visual Basic la plantilla Windows Aplication.Al elegir una aplicacin para Windows automticamente se realizan los siguientes cambios:

En el toolBox aparecer una ficha llamada Windows Forms conteniendo los controles para trabajar con formularios Windows y controles de usuario. En el cdigo del formulario aparecer la referencia a la clase base heredad:

Inherits System.Windows.Forms.Form

Para ilustrar la funcionalidad que podemos obtener de Windows tenemos la figura 4.1, que resume los principales objetos usados en Windows, para lo cual se parte de la clase base llamada System, luego se muestran algunos de los objetos de la clase Drawing y de la clase Winforms anteriormente comentadas.

Figura 4.1: Modelo de Objetos para WindowsWindows

FormsFormTextbox

Clipboard

Screen

Cabe comentar que dentro de la clase Windows encontramos definido el formulario y los controles para Windows (Label, button, textbox, men, etc), as como tambin objetos no visuales de utilidad como Application (reemplaza al objeto App de VB6), clipboard, help, Screen, etc.

Objeto formularioEl objeto formulario es el contenedor principal de toda la aplicacin para Windows y se encuentra en el siguiente NameSpace:

System.Windows.Forms.FormEn Visual Studio .NET el formulario ha sufrido muchos cambios, tanto en propiedades, mtodos y eventos, tal como se encuentra en los siguientes cuadros.

PropiedadesPROPIEDADDESCRIPCIN

AutoscrollEs una nuevo propiedad que permite desplazarse pro el formulario a traves de una barra si es que los controles sobrepasa en area del cliente

BackColorEspecifica el color de fondo del formulario

BackGroundImageAntes llamada Picture permite mostrar una imgen de fondo sobre el formulario

BorderStyle

ControlBoxSi esta en true muestra el men de controles de la barra de titulo, si esta ne false no los muestra

CursorEspercifia el cursor que aparecera al situar el Mouse sobre el formulario. Antes era propiedad Mouse printer

FontConfigura la fuente de los textos de los controles excepto textbox de los textos mostrados

ForeColorEspecifica el color del texto de los controes excepto del textbos y de los textos mostrados con metodos de dibujo

Gridsize Determina el tamao de las rehilklas que se muestra en tiempo de diseo para disear controles

IconIndica el icono del formulario, este se muestra en la barra de titulo de la ventana

IsMDIcontainerDetermina si es que el formulario es un MDI, antes se creaba un formulario MDI aadiendo el men Project

LocationIndica la posicin del formulario con respecto a la esquina superior izquierda de la pantalla, antes habia que configurar la propiedad top y left

OpacityEs una nueva propiedad, que indica la forma de visualizacion del formulario, que puede ser desde opaco 100% hasta transparente

RightToLeftDetermina la alineacin de los textos con respecto a sus controles por defecto es no, es decir se alinean de izquierda a derecha, si es true de derecha a izquierda

SizeConfigura el tamao del formulario en pixeles

StarPositionIndica la posicin en que aprarecera por primera vez en el formulario con respecto a la pantalla

TextAntes se llamaba caption y permite mostrar el texto de la barra de titulo en el formulario

TopMostPosiciona en primer plano la ventana, siemrpe y cuando no este desactivada

WindowStateDetermina la forma en que se presenta la ventana puede ser Normal Minimizada o Maximizada

MetodosMTODODESCRIPCIN

ActivateActiva el formulario y le da el foco

ActivateControlActiva un control del formulario

CloseCierra el formulario descargandolo de la memoria

FocusPone el foco sobre el formulario

HideOculta el formulario sin descargarlo de la memoria

Refresh Repinta el formulario y sus controles

setLocationUbica el formulario en cierta posicin de la pantalla

SetSize Configura el tamao de la ventana en pixeles

ShowMuestra un formulario como ventana no modal

ShowDialogMuestra un formulario como ventana modal

Eventos EVENTODESCRIPCIN

ActivatedOcurre al activarse el formulario

ClicSe desencadena al dar clic con el Mouse sobre el formulario

ClosingOcurre mientras se esta cerrando el formulario

ClosedSe habilita al cerrar el formulario es similar al evento unload

DeactivatedOcurre al desactivarse el formulario

DoubleClickSe desencadena al dar Doble clic en el Mouse sobre el formulario

GotofocusOcurre al ingresar el foco sobre el formulario

LoadSe produce al cargar los controles del formulario

LostfocusOcurre al salir el foco del formulario

MouseenterSe habilita al ingresar el Mouse sobre el rea cliente del formulario

MouseLeaveSe habilita al salir el Mouse sobre el rea cliente del formulario

MoveEste evento se habilita al mover la ventana o formulario

PaintOcurre al pintarse la ventana en pantalla

ResizeOcurre cada vez que se modifica de tamao el formulario

Uso del ToolBoxEl ToolBox es la caja de herramientas donde se encuentran los controles que se van ha usar para disear la interface de los diferentes tipos de aplicaciones, este varia de acuerdo al tipo de plantilla elegida.A continuacin se presenta el Toolbox cuando una plantilla Windows Forms, Components y General.

Figura 4.2: ToolBox para aplicaciones Windows

Para usar un control del ToolBox solo hay que elegir la ficha adecuada y luego seleccionar el control y arrastrarlo sobre el formulario o contenedor sobre donde se desea ubicarlo, tambin se puede dar doble clic sobre el control y aparecer por defecto en la posicin 0,0 del formulario (antes se ubicaba al centro del este).

Usando controles para Windows Forms

Controles Label, TextBox y Button

Control Label

PropiedadesPROPIEDADDESCRIPCIN

AnchorEs una nueva propiedad que permite ajustar el ancho del control

AutosizeAjusta el texto de la etiqueta al tamao del control

BacckColorEspecifica el Color de fondo de la etiqueta

BorderStyleControla la apariencia del borde de la etiqueta. Tiene 3 opciones

CursorEspecifica el cursor que aparece al situar el Mouse sobre la etiqueta

DockDa la posibilidad de acoplar la etiqueta a un lado del contenedor, puede ser arriba, abajo, izquierda, derecha o al centro.

EnabledHabilita o deshabilita la etiqueta

FontConfigura la fuente del text de la etiqueta

ForecolorEspecifica el color del texto de la etiqueta

LocationIndica la posicin de la etiqueta con respecto a su contenedor

LockedBloquea el control para que no se mueva o modifique de tamao

Right ToLeftDetermina la alineacin del texto con respecto al control

SizeConfigura el tamao del control en pixeles

TextVisualiza el texto de la etiqueta

TextAlignAlinea el texto hacia el control, sea: izquierda, derecha o centro

VisibleVisualiza o no el control

MtodosMTODODESCRIPCIN

FindFormDevuelve el formulario en que se encuentra el control

FocusPone el foco sobre la etiqueta

HideOculta la etiqueta, sin descargarla de la memoria

RefreshRepinta la etiqueta

SetLocationUbica la etiqueta en una cierta posicin de la pantalla

SetSizeConfigura el tamao de la etiqueta

ShowPone visible la etiqueta

EventosEVENTODESCRIPCIN

ClicSe desencadena al dar clic con el Mouse sobre la etiqueta

DoubleClickSe desencadena al dar doble clic con el Mouse sobre la etiqueta

GotFocusOcurre al ingresar el foco sobre el control

LostFocusOcurre al salir el foco del control

MouseEnterSe habilita al ingresar el Mouse sobre la etiqueta

MouseLeaveSe habilita al salir el Mouse de la etiqueta

Mouse MoveSe desencadena al pasar el Mouse sobre la etiqueta

Control TextBox

PropiedadesPROPIEDADDESCRIPCIN

CharactercasingNueva propiedad que convierte a maysculas o minsculas el texto.

LinesMuestra el contenido de cada lnea del texto.

MaxLengthDetermina el nmero de caracteres que se pueden ingresar en este.

MultiLineSi es trae se pueden escribir varias lneas de texto.

PasswordCharSeala el carcter que aparecer como mscara de entrada

ReadOnlyIndica que el control solo se puede ver pero no editar. Antes se llamaba Locked.

ScrollBarsHabilita las barras de desplazamiento si el control es multilnea.

WordWrapCambia de lnea al llegar al final de un texto multilnea.

MtodosMTODODESCRIPCIN

Append TextAade texto al final del texto actual

ClearBorra el contenido del cuadro de texto

CopyCopia el texto y lo enva al portapapeles

CutCorta el texto y lo enva al portapapeles.

PastePega el texto del portapapeles al cuadro.

Reset textInicializa el texto

SelectSelecciona el texto.

UndoDeshace el ltimo cambio en el texto

EventosEVENTODESCRIPCIN

Key Down Ocurre al pulsar hacia abajo una tecla extendida

Key PressOcurre al pulsar una tecla normal

Key UpOcurre al soltar una tecla extendida previamente pulsada

TextChangedEs un nuevo evento que reemplaza al evento Change

ValidatedRehabilita despus de validarse el control

ValidatingSe habilita cuando el control esta validndose

Control Boton

Propiedades PROPIEDADESDESCRIPCIN

NameGeneralmente usaremos el prefijo btn

BackGroundImageEspecifica la imagen de fondo que usara el botn

DialogResult Determina el valor del formulario padre si se da clic sobre el botn

FlatStyleDetermina el estilo o apariencia del control. Tiene 3 valores

ImageImagen que se mostrara en el control

ImageAlignAlineacin de la imagen dentro del control

MtodosMTODOPROPIEDAD

NotifyDefaultIndica si el botn serpa el control por defecto. Es de tipo lgico

PerformeclickEjecuta el evento clic del botn

EventosEVENTODESCRIPCIN

ClicSe desencadena al dar clic con el Mouse sobre la etiqueta

GetFocusOcurre al ingresarse el foco sobre el botn

LostFocusOcurre al salir el foco del botn

Mouseenter Se habilita al ingresarse el Mouse sobre el botn

MouseLeaveSe habilita al salir el Mouse del botn

Controles Groupbox, RadioButton, y Chekbox

Control GroupBoxAntes conocida como Frame, es un contenedor que se utiliza para agrupar varias opciones que pueden ser de opcin nica como el RadioButton o de opcin mltiple como los CheckBoxEste control se utiliza como contenedor y por si solo no tiene mucha funcionalidad es por eso que solo veremos sus principales mtodos y eventos.

PropiedadesPROPIEDADDESCRIPCIN

NameGeneralmente utilizaremos el prefijo GBX

EnabledDetermina si el botn esta habilitado o deshabilitado

TextIndica que se mostrara como encabezado del control

VisibleMuestra y oculta el control y todo su contenido

MtodosMTODODESCRIPCIN

FocusPone el foco sobre el control

Hide Oculta el control, sin descargarlo de la memoria

ShowPone visible el cuadro de grupo

EventosEVENTODESCRIPCIN

GetFocusOcurre al ingresar el foco sobre el control

LostFocusOcurre al salir el foco del control

Control RadioButton

Antes conocido como OptionButton, es un control en que solo se puede seleccionar uno por contenedor

PropiedadesPROPIEDADDESCRIPCIN

NameGeneralmente usaremos el prefijo rbn

ApperanceControla la apariencia del control, puede ser normal

AutoCheckCambia de estado cada vez que se da clic al boton

CheckAlignControla la alineacin del boton

CheckedIndica si el boton ha sido seleccionado o no

MetodosMTODODESCRIPCIN

FocusPone el foco sobre el radiobutton

HideOculta el radiobutton

ShowMuestra el radiobutton

EventosEVENTODESCRIPCIN

CheckedChangedOcurre al cambia la propiedad checked del radiobutton

ClicSe desencadena al dar clic con el Mouse sobre el boton

DoubleClickSe desencadena al dar doble clic con el mouse

Control CheckBox

Este control mantiene el mismo nombre anterior, es un contro que se puede seleccionar varios por contenedor

PropiedadesPROPIEDADDESCRIPCIN

NameGeneralmente usaremos el prefijo chk

ApperanceControla la apariencia del control, puede ser normal

AutoCheckCambia de estado cada vez que se da clic al boton

CheckAlignControla la alineacin del boton

CheckedIndica si el boton ha sido seleccionado o no

CheckStateDevuelve el estado del checkbox que puede ser sin marca o marcado

ThreeState Habilita o deshabilita el estadoindeterminado del checkbox vez que se el tercer click

MetodosMTODODESCRIPCIN

FocusPone el foco sobre el checkbox

Hide Oculta el checkbox sin descargarlo de memoria

ShowPone visible el control

EventosEVENTODESCRIPCIN

CheckedChangedOcurre al cambia el valor de la propiedad checked del control

CheckedStateChangedOcurre al cambiar el valor de la propiedad CheckedStateChanged del control

Controles ListBox, CheckedListBox y ComboBox

Control ListBox

PropiedadesPROPIEDADESDESCRIPCIN

NameGeneralmente usaremos el prefijo lst

ColumnWidthIndica el ancho de cada columna en una lista de varias columnas

HorizontalExtentIndica el ancho mismo en pxeles que se requiere para que aparezca la barra horizontal

HorizontalScollBarMuestra u culta la barra de desplazamiento horizontal de la lista

Integral height Determina que las opciones de la lista se vean en forma completa

ItemHeightDevuelve el Alto en pxeles de cada elemento de la lista

temsEs la principal propiedad y se refiere a los elementos de la lista

MultiColumnIndica si los elementos se pueden ver en varias columnas

ScrollAlwaysVisibleVisualiza siempre las 2 barras de desplazamiento

SelectionMode Determina la forma de seleccin

SortedOrdena la lista en forma ascendente

SelecteIndexDevuelve o establece el ndice del elemento seleccionado

MtodosMTODOSDESCRIPCIN

findStringDevuelve el ndice de un elemento buscado en una lista. Sino existe devuelve -1 y si existe devuelve un numero mayor que -

FindStringExact Realiza una labor similar al mtodo anterior pero compara con exactitud la cadena

GetSelectedDevuelve True si un elemento ha sido seleccionado o False sino

EventosEVENTOSDESCRIPCIN

DoubleClickOcurre al dar dos veces clic sobre la lista

SelectedIndexChangedOcurre al cambiar el ndice del elementos seleccionado

Collection ItemsPara trabajar con los elementos de una lista se hace uso de la coleccin tems, la cual se detalla a continuacin

PropiedadesPROPIEDADESDESCRIPCIN

AllDevuelve un objeto con todos los elementos de la lista

Count Devuelve el numero de elementos de la lista

MtodosMTODOSDESCRIPCIN

AddAade un elemento al final de la lista

ClearBorra todos los elementos de la lista

InsertInserta un elementos en la posicin indicada por el ndice

RemoveElimina un elemento de la lista de acuerdo a su ndice

Control CheckedListBoxEs un nuevo control que antes se obtena configurando la propiedad style del control ListBox a Checked. Como es smil al control ListBox solo mencionaremos las caractersticas distintas que tiene el control CheckListBox

PropiedadesPROPIEDADESDESCRIPCIN

NameGeneralmente usaremos el prefijo ckl

CheckedOnClickEstablece si el control podr ser fijado la primera vez al dar clic

ThreeDChekBoxIndica si la apariencia de los tems se mostrara en 3D o plano

MtodosMTODOSDESCRIPCIN

GerItemCheckedDevuelve True si un cierto tems ha sido seleccionado o False si no

GetItemCkeckState Devuelve el valor de la propiedad CkeckState

SetitemChjeckedEstablece o quita la seleccin de un cierto elemento

SetItemCheckState Establece la propiedad CheckState de un cierto elemento

EventosEVENTOSDESCRIPCIN

ItemCheckOcurre al seleccionar un elemento y poner el Check en true

SelectedIndexChangedOcurre al seleccionar otro elemento

Control ComboBox

PropiedadesPROPIEDADESDESCRIPCIN

NameGeneralmente usaremos el prefijo cbo

tems Es la principal propiedad y se refiere a los elementos del combo

maxDropDownitemsIndica el mximo numero de elementos que se mostraran al desplegarse el combo

Maxlenght Determina el mximo numero de caracteres que se podrn escribir

SortedOrdena los elementos del combo en forma ascendente

StyleEspecifica el tipo de combo que puede ser. Simples dropdown, y dropdownlist

SelectedIndexDevuelve o establece el ndice del elemento seleccionado

TextSe refiere al texto escrito en el cuadro del combo

MtodosMTODOSDESCRIPCIN

FindStringDevuelve el ndice de un elemento buscado en el combo. Sino existe devuelve -1 y si existe devuelve un numero mayor que -1

FindStringExactRealiza una labor similar al mtodo anterior pero compara con exactitud la cadena

EventosEVENTOSDESCRIPCIN

ClicOcurre al dar clic con el Mouse a un elemento de la lista

DoubleClick Se da al dar dos veces clic sobre un elemento de la lista

SelectedindexChangedOcurre cuando al cambiar el ndice del elemento seleccionado

SelectionChangeCommitedSe da cuando se selecciona un elemento del combo

TextChanged|Ocurre al cambiar la propiedad Text del combo

Coleccin temsLa coleccin de tems del combo es similar a la del ListBox

PropiedadesPROPIEDADESDESCRIPCIN

AllDevuelve un objeto con todos los elementos del combo

CountDevuelve el numero de elementos del combo

MtodosMTODOSDESCRIPCIN

AddAade un elemento al final del combo

ClearBorra todos los elementos del combo

InsertInserta un elemento en la posicin indicada por el ndice

RemoveElimina un elemento del combo de acuerdo a su ndice

Interfaces

IntroduccinUna interfase es el medio de comunicacin entre 2 entidades, en nuestro caso, la interfase sirve de enlace entre el usuario y la aplicacin.En la evolucin de la computacin se indica con interfaces de texto o de consola, las cuales predominan desde los iniciaos de la computacin hasta casi la mitad de la dcada de los 80. Luego aparecen las interfaces graficasDesde que trabajamos en ambiente Windows, las interfaces han ido evolucionando de acuerdo a la facilidad del usuario para acceder a los elementos de la aplicacin y entre las principales interfaces tenemos:

SDI (Single Documento Interfase): interfase de Simple Documento, muestra una sola ventana con un cierto documento en la aplicacin, el acceso a las ventanas es secuencial, por lo que no estn recomendable. Algunas aplicaciones con SDI son los accesorios de Windows. MDI (MLTIPLE DOCUMENT INTERFASE). Interfase de Mltiples Documentos, muestra varios documentos en sus respectabas ventanas, que aparecen sobre una ventana principal. El acceso a las ventanas es directo porque generalmente en la ventana padre existe un men. Algunas aplicaciones con MDI son los programas de Office, Word y Excel. TREEVIEW LISTVIEW(Vista de rbol Lista) Muestra los elementos de aplicacin en un rbol y en el lado derecho muestra una lista con los detalles, puede mostrarse junto a un SDI, como en el caso del explorador de archivos de Windows o puede mostrarse junto a un SDI como en el caso del ENTERPRISE MANAGER DE SQL SERVER 6

Con la evolucin de Internet tambin se distinguen diferentes tipos de interfaces en el browser, pero no se tocan en este capitulo, si no que nos centraremos en la creacin de interfaces para aflicciones Windows.

Creando Aplicaciones MDIUna aplicacin MDI consta de dos partes: un formulario MDI padre y uno o mas formularios MDI hijos, la creacin de ambos es muy sencilla en VB.NET

CREANDO UN FORMULARIO MDI PADREPara crear formulario MDI padre solo hay que configurar la propiedad ISMDICONTAINER del formulario a True

A diferencia de la versin anterior esta versin permite colocar cualquier control Winform dentro del formulario MDI, pero esto har que los formularios hijos se muestren en segundo plano ya que en primer plano se vern los controles del formulario MDI padre

CREANDO UN FORMULARIO MDI HIJOPara crear un formulario MDI hijo solo que configurar la propiedad parent disponible solo en tiempo de ejecucin del formulario hijo apuntado al formulario padre y luego usar Show para mostrarlo

Protected Sub mnuArchivo_Nuevo_Click(ByVal sender as ..)Dim x As New frmHijo()x.MDIparent = fmrPadrex.Show()End Sub

ORGANIZANDO FORMULARIO MDI HIJOSi es que se desea organizar los formularios MDI hijos se debe usar el mtodo layoutMDI del formulario MDI padre junto con una constante de tipo MDILayout que tiene 4 valores: ArrageIcons, Cascade, TileHorizntal y TileVertical.A continuacin se muestra como ordenar en cascada los formularios MDI hijos

FrmPadre.LayoutMDI(MDILayout.Cascade)

CONTROLES TREE VIEW Y LISTVIEWEstos 2 controles casi siempre trabajan juntos, uno muestra los elementos de la paliacin y el otro su contenido o detalle. Antes estaban disponibles como controles ActiveX, ahora en estn disponibles como WinForm

Trabajando con el ImageList

Para llenar una lista de imgenes realice los siguientes pasos: Doble clic al control ImageList del ToolBox y se mostrara en la parte inferior del diseador de formularios Configurar la propiedad Name usando el prefijo Ils seguido del nombre y la propiedad ImageSize que define el tamao de la imgenes Seleccionar la propiedad Image que es una coleccin y pulsar sobre el botn , entonces aparecer el dialogo Image Collection Editor en el cual se aadirn las imgenes con el botn Add y se eliminaran con Remove

TRABAJANDO CON EL TREEVIEWEl trabajo con el treeView es mas sencillo en VB.NET para lo cual realiza lo siguiente Llenar un IMAGELIST con las imgenes que se usaran en el TreeView Dar doble clic al control TreeView y configurar la propiedad Name escribiendo el prefijo tvw seguido del nombre. Configurar la propiedad ImageList eligiendo el nombre de la lista Imgenes Seleccionar la propiedad Nodes que es una coleccin y pulsar sobre el botn aparecer el dialogo TreeNode Edito Para crear un nodo principal dar clic en el botn Add Root luego seleccionar el nodo y escribir en Label el texto que ira en el nodo, finalmente en las lista imgenes y SelecteImgae elegir la imgenes que se vern en el nodo Para crear un nodo hijo dar clic en el botn AddChild y llenar las lista

TRABAJANDO CON EL LISTVIEWEl trabajo con el ListView es similar al del TreeView, realizando los siguientes pasos Llenar dos imagelist con las imgenes que se usaran en el ListView, para vista de iconos grandes y otro de iconos pequeos Dar doble clic al control ListView y configurar la propiedad Name escribiendo el prefijo Lvw seguido del nombre Configurar las propiedades LargeImageList y SmallImageList eligiendo el nombre de las lista de imgenes grande y pequea respectivamente Seleccionar la propiedad LIstItems que es una coleccin y pulsar sobre el botn aparecer el dialogo en el cual se aadirn tems con el botn aadir y eliminaran con remove Para aadir un ListItem clic add y escribir en Text el testo del item, en Index indicar el ndice de la imagen de las lista. Adems de llenar la coleccin de tems tambin se debe llenar la coleccin de columnas.

Aadiendo Mens Dilogos y BarrasUna vez creada la interfase de la paliacin ,k es necesario aumentar caractersticas que ayuden a facilitar al usuario, tales como mens que permitan organizar opciones, dialogazo que permitan elegir opciones rpidamente.

MensUn men muestra un conjunto de opciones distribuidas y organizadas de acuerdo a categoras que el usuario defina

1. Mens Principales: se acoplan en algn extremo del formulario, generalmente en la parte superior de este2. Mens Contextuales: tambin llamados flotantes, generalmente se muestran al dar clic derecho sobre algn objeto y su contenido varia de acuerdo al contexto

Control Main MenPermite crear un men principal para lo cual se realizaran los siguientes pasos

Dar doble clic sobre el control MainMenu del ToolBox y se mostraran 2 objetos uno en la parte superior del formulario que es donde se crearan las opciones del men y otro en la parte inferior del diseador de formularios que representa a todo el men Para crear una opcin del men solo hay que escribir directamente donde dice TypeHere, luego configuramos el nombre de la opcin del men Para crear una opcin que se aun separador simplemente en el Text escribir Despus de crear todas las opciones del men principal escribir cdigo para cada opcin generalmente en el evento clic. Aunque si deseamos realizar una accin como mostrar un mensaje al pasar por la opcin puede usar el evento Select.

CONTROL CONTEXT MENSe usa para crear un men contextual para lo cual se realizaran los siguientes pasos Dar doble clic sobre el control contextMenu del ToolBox y se mostrara 2 objetos uno en la parte superior de formulario que es donde se crearan las opciones del men y otro en la parte inferior del diseador de formulario que representa a todo el men contextual La creacin de las opciones del men contextual es similar a la creacin del men principal aunque si se desea crear un men contextual de un solo nivel las opciones se deben crear en forma horizontal pero se vern en forma vertical Finalmente el men contextual debe mostrarse al dar clic derecho sobre un cierto objeto generalmente un control, antes se consegua esto programando con el evento MouseDown del objeto, ahora solo configuramos la propiedad ContextMenu del objeto asignndole el objeto men contextual

DILOGOSControles OpenFileDialog y SaveFileDialog

Estos controles se usan para facilidad el trabajo con archivos, el primero se refiere al dialogo de abrir archivos y del segundo al guardar archivos que en la versin anterior estaban disponibles como controles ActiveX

PropiedadesPROPIEDADESDESCRIPCIN

NamePara el OpenFileDialog generalmente usaremos el prefijo odgPara el SaveFileDialog usaremos sdg

AddExtensionAade automticamente la extensin al nombre de archivo

checkFileExistCheckea que exista el archivo antes de regresar el dialogo

CheckPathExistChequea que exista la ruta del archivo antes de regreses del dialogo

CreatePromptSolo para el dialogo guardar, si la propiedad es true pide informacin al usuario cuando el archivo es creado

DefaultExIndica la extensin por defecto del archivo

FileName Indica el archivo escrito o seleccionado del dialogo

FilterEspecifica el tipo de archivo que se mostrara en el dialogo

FilterIndexDetermina el ndice del filtro del dialogo, este empieza en 1 y depende de la lista

InicialdirectoryMuestra un cierto directorio inicial parta los archivos del dialogo

MultiselectSolo para el dialogo abrir. Determina si se pueden seleccionar varios archivos

Overwirte Solo para el dialogo abrir

Readonlychecked Solo para el dialogo abrir, determina el estado del checkbox readonly en el dialogo abrir

RestoredirectoryControla si el dialogo restaura el directorio actual antes de cerrarse

ShowHelpVisualiza o no el botn de ayuda en el dialogo

Title Indica el titulo a mostrarse en la barra de titulo

ValidatenamesControla que el nombre del archivo no tenga caracteres invlidos

MtodosMTODOSDESCRIPCIN

OpenfileDevuelve un stream indicando el archivo abierto en el dialogo de abrir o grabado

ShowdialogMuestra el dialogo del archivo sea de abrir o de guardar

EventosEVENTOSDESCRIPCIN

FileokOcurre al dar clic sobre le botn OK del dialogo de archivo

Control FontdialogEste control se usa para mostrar el dialogo de fuente y poder acceder a sus caractersticas como el tipo de fuente, tamaos estilos y efectos.

PropiedadesPROPIEDADESDESCRIPCIN

NameGeneralmente usaremos el prefijo fdg

Allowscriptchange Controla si el conjunto de caracteres de fuente puede ser cambiado

ColorDevuelve el color de la fuente seleccionado

FontmustexistIndica si se mostrara un reporte de error

Maxsize Mximo tamao de la fuente en puntos

Minsize Mnimo tamao de la fuente en puntos

ScriptsonlyControla si excluir los caracteres OEM y smbolos

ShowapplyDetermina si se vera el botn de aplicar el dialogo

ShowcolorIndica si se mostrara el color elegido

ShoweffectsMuestra el cuadro de efectos que trae

MtodosMTODOSDESCRIPCIN

ShowdialogMuestra el dialogo de la fuente

EventosEVENTOSDESCRIPCIN

ApplyOcurre al dar clic sobre el botn aplicar del dialogo fuente

Control ColorDialog

Este co