
Visual Basic es el lenguaje de programación más popular de Microsoft que existe. Permite escribir aplicaciones con muchísimo menos código. Los programadores pueden arrastrar y soltar controles, como por ejemplo, botones y cuadros de diálogo y después, definir su aspecto y comportamiento. Con la versión 2005, este lenguaje al final ha dado el gran salto para convertirse en un verdadero lenguaje orientado a objetos y ahora, es capaz de aprovecharse de todo lo que ofrece el Entorno de Trabajo .NET.
Este equipo de autores combina sus años de experiencia como expertos para proporcionarle un desarrollo completo a los recursos de VB.NET. Le facilitarán con esta obra todo lo necesario para llevar sus capacidades al siguiente nivel de cocimiento, cuando tenga que escribir aplicaciones útiles. Aprenderá además, cómo tratar los problemas de seguridad, acceso de datos y el más reciente IDE de Visual Studio 2005; a trabajar con espacios de nombres, protocolos de red y plantillas genéricas, a utilizar la herencia y las interfaces, dentro de Visual Basic y descubrir lo que son definiciones de objetos, clases, instancias, abstracción y polimorfismo, entre otros muchos conceptos.
Este libro se ha escrito para ayudar a los desarrolladores con experiencia para que aprendan Visual Basic 2005. Desde aquellos que están empezando la transición de anteriores versiones, hasta aquellos que han utilizado Visual Basic durante un tiempo y necesitan obtener más conocimientos, este libro proporciona información sobre las tareas y conceptos de programación más comunes que necesiten.



Introducción
La importancia de Visual Basic
A quién va dirigido este libro
Qué necesita para ejecutar los ejemplos
De qué trata este libro
Convenciones
Cómo descargarse el código de ejemplo para el libro
1. ¿Qué es Microsoft.NET?
¿Qué es .NET?
Una amplia y completa plataforma para el futuro
¿Qué ocurre con DNA y COM?
Un recorrido por el Entorno de Trabajo .NET
El Motor de Ejecución Común
Objetivos claves de diseño
Desarrollo más rápido y sencillo
Excelente soporte de herramientas
Implementación más segura y sencilla
Escalabilidad
Metadatos
Soporte e integración de varios lenguajes
Un sistema de tipo común
Espacios de nombres
La siguiente capa. La Estructura de Clases en el Entorno de Trabajo .NET
¿Qué hay en la Estructura de Clases .NET?
Interfaces de Programa y de Usuario
Formularios Windows
Aplicaciones de cliente comparadas con las aplicaciones basadas en navegadores
Formularios Web
Aplicaciones de Consola
Servicios Web
XML como metalenguaje .NET.
La función que realiza COM
La no utilización interna de COM
Algunas cosas nunca cambian
Cambios de los dispositivos .NET en Visual Basic
Cómo le afecta .NET
Un espectro de modelos de programación
Reducir barreras en cuanto al desarrollo en Internet
Bibliotecas de funcionalidad preescrita
Una implementación más sencilla
El futuro de .NET
Principales diferencias en .NET 2.0
Resumen
2. Introducción a Visual Basic 2005 y Visual Studio 2005
Visual Studio .NET: Comienzo
Visual Studio .NET
Explorador de soluciones
My Project (Mi proyecto)
Referencias
Pantalla de información de ensamblado
Atributos del ensamblado
La nueva ventana de código
Fichas comparadas con MDI
Personalizar el editor de texto
IntelliSense ampliado
La ventana de Propiedades
Ayuda dinámica
Trabajar con Visual Basic 2005
Ejecutar ProVB.NET
Propiedades de los Formularios configuradas por código
Mejorar la aplicación de ejemplo
Añadir un control y un gestor de eventos
Personalizar el código
Trabajar con la sentencia Imports
Añadir comentarios XML
Personalizar el gestor de eventos
Revisar el código
Opciones de Generación
Construir aplicaciones
Ejecutar una aplicación en el Depurador
Otras ventanas relacionadas con el depurador
Funciones o características útiles de Visual Studio
La Lista de tareas
La Ventana Comandos
El Explorador de servidores
Grabar y utilizar macros en Visual Studio 2005
Resumen
3. Variables y tipos
Diferencias entre los tipos por valor y los tipos por referencia
Tipos por valor (estructuras)
Tipos primitivos
Boolean
Los tipos Integer
Tipos sin signo (unsigned)
Tipos decimales
Char y Byte
DateTime
Conversiones explícitas
Opciones del compilador
Llevar a cabo conversiones explícitas
El método CType
Tipos por referencia (clases)
La clase Object
La clase String
El método String()
El método SubString
Los métodos PadLeft y PadRight
La clase String no es modificable
La clase DBNull e IsDBNull()
Matrices
La función UBound
Matrices multidimensionales
La sentencia ReDim
Colecciones
Los espacios de nombres System.Collections.Specialized y las plantillas de tipos de datos (generics)
Paso de parámetros
Encapsulado
Palabra clave y métodos suprimidos
Elementos de Visual Basic 6.0 eliminados en .NET
Resumen
4. Introducción a la sintaxis de objetos
Terminología de la orientación a objetos
Objetos, clases e instancias
Composición de un objeto
Interfaz
Implementación o comportamiento
Variables de la instancia o campos
Trabajar con objetos
Instanciación y declaración de objetos
Referencias sobre objetos
Desreferenciar o dejar de referenciar objetos
Enlazado posterior respecto del enlazado anterior
Implementar el enlazado posterior
Utilización de la función CType
Utilización de la función DirectCast
Utilizar la función TryCast
Crear clases
Crear clases básicas
La palabra clave Class
Campos
Métodos
Propiedades
Eventos
Constructores
Finalización y destrucción (borrado)
Conceptos avanzados
Sobrecargar métodos
Sobrecargar constructores
Métodos, variables y eventos compartidos
Sobrecarga de operadores
Delegados
Clases comparadas con componentes
Resumen
5. Herencia e Interfaces
Herencia
Implementar la herencia
Crear una clase base
Crear una subclase
Sobrecargar métodos
Sobrescribir métodos
Ocultación
Niveles de herencia
Interactuar con la clase base, con su clase y con su objeto
Constructores
El ámbito Protected
Eventos y herencia
Métodos compartidos
Eventos compartidos
Crear una clase base abstracta
Evitar la herencia
Interfaces múltiples
Interfaces de objetos
Utilizar la interfaz nativa
Interfaces secundarias
Definir la interfaz
Utilizar la interfaz
Implementar la interfaz
Combinar interfaces y herencia
Resumen
6. Motor de Ejecución Común (Common Language Runtime)
Elementos de una aplicación .NET
Módulos
Ensamblados
Tipos
Versionar e implementar o instalar
Un mejor soporte para el versionado
Mejor instalación
Integración entre lenguajes
El sistema de tipos común
Metadatos
Mejor soporte para los metadatos
Atributos
El Reflection API (API para acceso a metadatos de los ensamblados)
Desensamblador del lenguaje IL
Gestión de memoria
Depuración de memoria tradicional
Referencias circulares
El Depurador de Memoria del CLR
El método Finalize
La interfaz IDisposable
Utilizar IDisposable
Asignación de memoria para objetos más rápida
Optimizaciones del Depurador de Memoria
Resumen
7. Aplicación de Objetos y Componentes
Abstracción
Encapsulación
Polimorfismo
Firmas del método
Implementar el polimorfismo
Polimorfismo mediante enlazado en tiempo de ejecución
Polimorfismo con interfaces múltiples
Polimorfismo mediante el acceso a metadatos de ensamblados (Reflection)
Polimorfismo mediante el acceso a los metadatos de ensamblados e interfaces múltiples
Polimorfismo con herencia
Resumen del polimorfismo
Herencia
Cuándo utilizar la herencia
Aplicación comparada con la herencia del entorno de trabajo
Herencia e interfaces múltiples
Aplicar la herencia y las interfaces múltiples
¿Hasta qué nivel de detalle llegar?
Problemas de fragilidad en la clase base
Cambios en la interfaz
Cambios en la implementación
Resumen
8. Plantillas genéricas
Utilizar las plantillas genéricas
Plantillas genéricas de tipos
Uso básico
Herencia
Métodos de plantillas genéricas
Crear plantillas genéricas
Plantillas genéricas de tipos
Clases
Otras características de las plantillas genéricas de clases
Clases y herencia
Estructuras
Interfaces
Plantillas genéricas de métodos
Restricciones
Restricciones sobre los tipos
Restricciones de clases y estructuras
Restricción de constructor (New)
Restricciones múltiples
Plantillas genéricas y enlazado en tiempo de ejecución
Resumen
9. Espacios de nombres
¿Qué es un espacio de nombres?
Espacios de nombres y referencias
Espacios de nombres comunes
Importar y denominar los espacios de nombres
Importar espacios de nombres
Referenciar espacios de nombres en ASP.NET
Denominar o utilizar alias para los espacios de nombres
Crear sus propios espacios de nombres
My
My.Application
My.Computer
My.Forms
My.Resources
My.User
My.WebServices
Resumen
10. Depuración y gestión de excepciones
Una breve revisión sobre el gestor de errores en VB6
Excepciones en .NET
Propiedades y métodos importantes de las excepciones
Cómo se diferencian las excepciones respecto al objeto Err en VB6
Palabras clave para la gestión estructurada de excepciones, en VB.NET
Las palabras clave Try, Catch y Finally
La palabra clave Throw
Lanzar una nueva excepción
La sentencia Exit Try
Estructuras Try anidadas
Utilizar las propiedades de las excepciones
La propiedad Message
Las propiedades InnerException y TargetSite
Las propiedades Source y StackTrace
El método GetBaseException
La propiedad HelpLink
Interoperatividad con el gestor de errores VB6
Registro de errores
El Registro de Eventos
Eventos, métodos y propiedades
Escribir en archivos de trazas
Analizar problemas y medir el rendimiento mediante la clase Trace
Resumen
11. Acceso a datos mediante ADO.NET 2.0
Mejoras en la arquitectura ADO.NET 2.0
Componentes ADO.NET
Proveedores de Datos .NET
Objeto Connection
Formato de la cadena de conexión: OleDBConnection
Formato de la cadena de conexión: SqlConnection
El objeto Command
Utilizar procedimientos almacenados con objetos Command
Crear un procedimiento almacenado
Invocar a un procedimiento almacenado
Objeto DataReader
Ejecutar comandos en modo asíncrono
Objetos DataAdapter
El Proveedor de Datos .NET para SQL Server
El Proveedor de Datos .NET para OLE DB
El componente DataSet
DataTableCollection
DataRelationcollection
ExtendedProperties
Crear y utilizar objetos DataSet
Crear objetos DataSet de forma estructurada
Objetos DataTable de ADO.NET
Mejoras sobre los objetos DataSet y DataTable de ADO.NET 2.0
Indexación
Serialización
Integración de un DataReader
Independencia de un objeto DataTable
Trabajar con el Modelo Común de Proveedor
Mejoras en el grupo (pool) de conexiones en ADO.NET 2.0
Construir un componente de acceso a datos
Constructores
Propiedades
Estructura XML de un procedimiento almacenado
Métodos
ExecSpReturnDataSet
ExecSpReturnDataReader
ExecSpReturnXmlReader
ExecSp
ExecSpOutputValues
Utilizar Objetos DataSet para vincularlos a DataGrids
Resumen
12. Utilización de XML en Visual Basic 2005
Una introducción a XML
El proceso de poner en serie ('serialización') XML
Atributos de estilo para el código fuente
Soporte de documentos con System.Xml
Analizadores de estilo para secuencias XML
Escribir una secuencia XML
Leer una secuencia de datos XML
La clase XmlReaderSettings
Tratar XML utilizando XmlTextReader
Gestionar excepciones
Utilizar el objeto MemoryStream
Modelo de Objetos de Documentos (DOM)
DOM para tratar elementos XML originales (raw)
DOM convirtiendo atributos XML
Transformaciones XSLT
Transformación XSLT entre estándares XML
Utilizar XML en Visual Basic 2005
Otras clases e interfaces en System.Xml.Xsl.
ADO.NET
Características XML incorporadas del servidor SQL Server 2000 y ADO.NET
XML y el servidor SQL Server 2005
Resumen
13. Seguridad en el Entorno de Trabajo NET 2.0
Conceptos y definiciones de seguridad
Permisos en el espacio de nombres System.Security.Permissions
Permisos de acceso al código
Permisos basados en funciones
Permisos de identidad
Gestionar los permisos de acceso al código
Gestión de la política de seguridad
Calcular los permisos mínimos requeridos por una aplicación
Utilizar Visual Studio para calcular los permisos mínimos
Herramientas de seguridad
Tratar con excepciones utilizando la clase SecurityException
Fundamentos de la criptografía
Algoritmos hash
Algoritmos hash criptográficos
SHA
MD5
RIPEMD-160
PKCS
Certificados X509
Capa de conexiones seguras
Resumen
14. Formularios Windows (Windows Forms)
La importancia de los Formularios Windows
Resumen de las modificaciones en la versión 2.0 de los Formularios Windows
Instancias por defecto de los formularios
Modificaciones en los controles existentes
Propiedades MaximumSize y MinimumSize
Propiedad UseWaitCursor
Autocompleción en cuadros de texto y cuadros combinados
Controles nuevos
Control WebBrowser
Control MaskedTextbox
Controles TableLayoutPanel y FlowLayoutPanel
Sustitución de controles antiguos de Formularios Windows
El espacio de nombres System.Windows.Forms
Utilizar formularios
Mostrar formularios en SubMain
Configurar el formulario de inicio
Localización o ubicación de inicio
Bordes del formulario
Siempre visible: la propiedad TopMost
Formularios hijos
Método AddOwnedform()
Propiedad Owner
Colección OwnedForms
Convertir los formularios en transparentes y traslúcidos
La propiedad Opacity
La propiedad TransparencyKey
La propiedad Region
Herencia Visual
Formularios con barras de desplazamiento (scroll)
Formularios en tiempo de ejecución
Controles
Orden de tabulación de control
Matrices de controles
Redimensionamiento automático y posicionamiento de los controles
Acoplamiento (docking)
Ajuste de los controles
El control Splitter
Control FlowLayoutPanel
Las propiedades Padding y Margin
El control TableLayoutPanel
Controles de proveedores extendidos
ToolTip
HelpProvider
ErrorProvider
Propiedades de los proveedores extendidos
Trabajar con controles de proveedores extendidos, desde el código
Capacidades avanzadas para la entrada de datos
Autocompleción (o autocompletar)
El control MaskedTextbox
Validar la entrada de datos
El evento Validating
La propiedad CausesValidation
Barras de herramientas y el nuevo control ToolStrip
Crear un ToolStrip y añadir elementos a la barra de herramientas
Permitir al usuario mover elementos de la barra de herramientas
Crear un conjunto estándar de elementos de la barra de herramientas
Alterar los elementos de la barra de herramientas en el Diseñador
Menús
Añadir elementos estándar a un menú
Iconos y marcas de verificación para los elementos de menú
Menús de contexto
Manipular los menús de forma dinámica, en tiempo de ejecución
Diálogos comunes
OpenFileDialog y SaveFileDialog
Control ColorDialog
Control FontDialog
Controles de diálogos para imprimir
Arrastrar y soltar
Los controles contenedores GroupBox y Panel
Resumen de los controles estándar Windows.Forms
Controles retirados
Utilizar los controles ActiveX
Otros trucos de programación que vienen bien
Formularios MDI
Crear un formulario padre MDI
Diferencias existentes en VB6 y VB.NET respecto de los formularios padre MDI
Formularios hijo MDI
Un ejemplo de formulario MDI en VB.NET
Ordenar las ventanas hijas
Formularios de cuadros de diálogo
DialogResult
Resumen
15. Funciones avanzadas de los Formularios Windows(Windows Forms)
Empaquetar la lógica en los controles visuales
Desarrollar controles personalizados en .NET
Heredar de un control existente
Construir un control compuesto o combinado
Escribir un control partiendo de cero
Heredar a partir de un control existente
Repaso del proceso
Añadir lógica adicional a un control personalizado
Crear una propiedad para un control personalizado
Coordinar una propiedad con el IDE de Visual Studio
Configurar un valor por defecto en un atributo
Técnicas alternativas para trabajar con el IDE
Otros atributos útiles
Definir un evento personalizado para el control heredado
Crear un control CheckedListBox que limite el número de elementos seleccionados
Las clases base Control y UserControl
La clase Control
La clase UserControl
Una clase UserControl compuesta
Crear una clase UserControl compuesta
¿Cómo funciona el redimensionamiento?
Configurar un tamaño mínimo
Ofrecer propiedades de los subcontroles
Ir paso a paso por el ejemplo
Construir un control partiendo de cero
Dibujar o distribuir un control personalizado con GDI+
GDI+
El espacio de nombres System.Drawing
La clase System.Drawing.Graphics
Utilizar las capacidades GDI+ en un Windows Form
Adjuntar un icono en la barra de herramientas
Incorporar controles en otros controles
Resumen
16. Construcción de Aplicaciones Web
Un sitio Web en acción
Configurar el entorno
El formulario Web HelloWorld
La estructura de un Formulario Web
Modelo de página de archivo único
Modelo de página con código asociado
La plantilla para la presentación
Un ejemplo más complejo
El flujo de procesos en los formularios Web ASP.NET
Los controles disponibles en los Formularios Web
El concepto de los controles del lado del servidor
Los controles de tipo servidor HTML
Controles de tipo servidor ASP.NET
Controles de Validación
Controles de usuario
Eventos en Formularios Web
El ciclo de vida del formulario Web
Categorías de eventos
Eventos intrínsecos
Eventos del lado del cliente con respecto a los eventos del lado del servidor
Eventos con respuesta del servidor comparados con los eventos sin respuesta
Eventos de tipo 'burbuja'
Eventos de sesión y de aplicación
Formularios Web respecto a ASP
Pasar el control entre los Formularios Web
Un ejemplo final
Resumen
17. Funciones avanzadas de ASP.NET 2.0
Aplicaciones y páginas
Envío a través de páginas
Compilación avanzada de ASP.NET
Páginas principales
Crear una página principal
Crear la página de contenido
Declarar la página principal para que comprenda todas las aplicaciones
Proporcionar contenido por defecto en la página principal
Aplicaciones basadas en datos
Utilizar los controles GridView y SqlDataSource
Permitir la edición y borrado de registros con GridView
¡Esto no es todo!
Navegación
Utilizar el control de servidor SiteMapPath
Control de tipo servidor Menu
El control de tipo servidor TreeView
Gestión de roles y usuarios
Personalización
Configurar ASP.NET
Resumen
18. Ensamblados
Ensamblados
Manifest
La sección de identidad
El número de versión
Nombres seguros
La referencia a la configuración local
Ensamblados referenciados
La directiva .publickeytoken
La directiva .Locale
Ensamblados e implementación
Ensamblados privados de una aplicación
Ensamblados compartidos
La Caché de Ensamblado Global (GAC)
Problemas del versionado
Aislamiento de la aplicación
Ejecución simultánea
Autodescripción
Políticas de versionado
La política de versionado por defecto
Política Automática de la Ingeniería de Corrección Rápida
Archivos de configuración
Configuraciones de inicio
Configuraciones del entorno de ejecución
Carga dinámica de ensamblados
La clase Assembly
Hacer que los ensamblados trabajen
Resumen
19. Implementación
Implementación de la aplicación
¿Por qué es más fácil la implementación en .NET?
El infierno o caos de las DLL
En .NET no se necesita registro
Ejecución simultánea
Implementación XCOPY
Utilizar el Instalador de Windows
Proyectos de implementación de Visual Studio .NET
Plantillas de proyectos
La plantilla de Proyecto CAB
La plantilla Proyecto de módulo de combinación
La plantilla de Proyecto de instalación
La plantilla de Proyecto de programa de instalación Web
La plantilla de Proyecto CAB de Smart Device
El Asistente para proyectos de instalación
Crear un proyecto de implementación
Ejercicios prácticos
Una aplicación Windows
Una aplicación Web de ASP.NET
Modificar el proyecto de implementación
Propiedades de los proyectos
La página de construcción Generar
El editor del sistema de archivos
Añadir elementos en una carpeta
Añadir carpetas especiales
Crear accesos directos
El editor del Registro
Añadir un valor a una clave de registro
Importar archivos de registro
El editor de tipos de archivo
El editor de interfaz de usuario
Modos de instalación
Personalizar el orden de los cuadros de diálogo
Añadir cuadros de diálogo
Propiedades de los cuadros de diálogo
El editor de acciones personalizadas
Añadir una acción personalizada
El editor de condiciones de inicio
Añadir una búsqueda de archivo
Modificar las propiedades de búsqueda de archivos
Crear una condición de inicio
Generar o construir
Implementación en Internet de aplicaciones Windows
Implementación 'no-touch'
Actualización automática
Utilizar una aplicación de inicio
Limitaciones de la implementación 'no-touch'
La implementación ClickOnce
Configurar una aplicación para ClickOnce
Aplicaciones instaladas localmente, respecto a las instaladas 'on-line'
Implementar una aplicación con conexión
Implementar una aplicación que está disponible sin línea o sin conexión
Archivos y directorios generados por ClickOnce
Firmar el manifest
El proceso de actualización
Opciones de configuración ClickOnce
El programa previo de inicio (Bootstrapper)
ClickOnce con respecto a otras tecnologías de implementación
Opciones de implementación personalizadas
Actualizador de bloques de aplicación (Updater Application Block)
Resumen
20. Trabajando con el COM clásico e Interfaces
El COM clásico
COM y .NET en la práctica
Un componente heredado
Paso 1: Definir la interfaz
Paso 2: Implementar el componente
Paso 3: Registrar un componente heredado
La aplicación .NET
Referenciar el componente heredado
En la aplicación .NET
Probarlo todo junto
Utilizar Tlblmp directamente
Enlace en tiempo de ejecución
Un ejemplo de enlace en tiempo de ejecución
El objeto COM de ejemplo
El entorno de trabajo para el cálculo
Ejecutar el entorno de trabajo para el cálculo
Controles Active X
Un control ActiveX heredado
Paso 1: Crear el control
Paso 2: Registrar un control heredado
Otra vez una aplicación .NET
Probarlo todo de nuevo
Utilizar los componentes .NET en el mundo COM
Un componente .NET
RegAsm
Realizar pruebas con una aplicación VB6
TlbExp
Resumen
21. Servicios de Empresa (o Globales)
Transacciones
Las propiedades ACID
Componentes transaccionales
Un ejemplo de transacciones
Crear nuestras bases de datos
Introducir datos en las bases de datos
La lógica de negocio (o empresarial)
Registrar el componente
Asignarle un nombre seguro al ensamblado
Registrar con Servicios de Componentes
La Consola de Servicios de Componentes
Una aplicación de prueba
El atributo Transaction
Datos inválidos
Algo va mal
Otros aspectos de las transacciones
Just-In-Time (Sobre la marcha)
Object Pooling (Agrupación o Conjunto de Objetos)
Controlar las cosas
Los componentes encolados
Un ejemplo de los componentes encolados
De nuevo las consolas
Generar el cliente
Hacer llamadas a la cola
Transacciones con componentes encolados
Resumen
22. Ejecución de hilos o subprocesos (threading)
¿Qué es un hilo o un subproceso?
Procesos, dominios de aplicación (AppDomain) y subprocesos
Planificación de los subprocesos
Seguridad y afinidad de los subprocesos
Cuándo utilizar los subprocesos
Diseñar una tarea en segundo plano
Aplicaciones interactivas
Aplicaciones de servidor
Implementar la ejecución de subprocesos
Una rápida 'incursión'
Opciones de ejecución de subprocesos
Utilizar el conjunto de subprocesos
Enviar un trabajo manualmente a la cola
Utilizar System.Timers.Timer
Crear manualmente un subproceso
Datos compartidos
Evitar compartir datos
Transferir la propiedad de los datos
Transferir la propiedad de los datos
Compartir datos con la sincronización
Soporte de sincronización incorporado
Objetos de sincronización
Bloqueos exclusivos y la sentencia SyncLock
Resumen
23. Servicios Web XML
Introducción a los Servicios Web
Los primeros diseños de arquitectura
El punto de vista de las redes
Desarrollo de aplicaciones
Fusionar los dos con la Web
Las bases y el origen de los Servicios Web
DCOM
Invocación Remota de Métodos en Java
CORBA
Los problemas
Los otros participantes
Lo que todos pasaron por alto
HTTP: un protocolo independiente del lenguaje
XML: Lenguaje ampliado basado en marcas
SOAP: La transferencia que necesita
El lenguaje de descripción de Servicios Web
Generar o construir un Servicio Web
Un ejemplo realista
Utilizar Visual Studio 2005 para generar Servicios Web
Usar el servicio
Visual Basic y System.Web.Services
Espacio de nombres System.Web.Services
Espacio de nombres System.Web.Services.Description
Espacio de nombres System.Web.Services.Discovery
Espacio de nombres System.Web.Services.Protocols
Construyendo una arquitectura con los Servicios Web
¿Por qué los Servicios Web?
Cómo se conjuga todo esto
Gestión de estados para los Servicios Web XML
Utilizar DNS como modelo
DISCO
El proyecto UDDI
La seguridad en los Servicios Web
El Protocolo de Seguridad (SSL)
Seguridad a nivel de directorio
Otros tipos de seguridad
Los inconvenientes
Seguridad
Estado
Transacciones
Velocidad y conectividad
Dónde vamos a partir de aquí
Resumen
24. Conexión remota
Información general sobre la conexión remota
Terminología básica
Los objetos SingleCall, Singleton y Activated
Objetos SingleCall
Los objetos Singleton
Los objetos Activated
Los objetos que se pueden poner en serie
Implementar la conexión remota
Un ejemplo sencillo
La biblioteca DLL
Aplicación remota
Aplicación cliente
Utilizar IIS como un host de conexión remota
Crear el host
Actualizar la aplicación del cliente
Utilizar formateadores binarios en IIS
Utilizar Activator.GetObject
Diseño basado en interfaces
DLL como interfaz
Actualizar la aplicación del cliente
Utilizar proxies generados
Proxy DLL
Crear la aplicación cliente
Resumen
25. Servicios Windows
Ejemplos de Servicios Windows
Características de un Servicio Windows
Interactuar con los Servicios Windows
Crear un Servicio Windows
Las clases del Entorno de Trabajo .NET para los Servicios Windows
La clase ServiceBase
Las clases orientadas a la instalación
Varios servicios en un mismo ejecutable
La clase SeviceController
Otros tipos de Servicios Windows
Crear un Servicio Windows con Visual Basic
Crear un servicio de control de un contador
Instalar el servicio
Iniciar el servicio
Desinstalar el servicio
Controlar un contador de rendimiento
Crear un contador de rendimiento
Integrar el contador en el servicio
Cambiar el valor en un contador de rendimiento
Comunicar con el servicio
La clase ServiceController
Integrar un ServiceController en el ejemplo
Más sobre ServiceController
Comandos personalizados
Pasar cadenas a un servicio
Crear un observador de archivos
Escribir eventos utilizando un Eventlog
Crear un FileSystemWatcher
El componente FileSystemWatcher
La propiedad EnableRaisingEvents
La propiedad Path
La propiedad NotifyFilter
La propiedad Filter
La propiedad IncludeSubdirectories
Añadir código FileSystemWatcher en OnStart y OnStop
El componente EventLog
El evento Created
Depuración del servicio
Depurar un servicio
Resumen
26. Programación en Red
Hacer que se transmita un mensaje: protocolos, direcciones y puertos
Direcciones y nombres
Puertos: no se utilizan sólo para los barcos
Cortafuegos: No podemos vivir ni con ellos, ni sin ellos
El espacio de nombres System.Net
Solicitudes Web (y respuestas)
Trabajar con FileWebRequest y HttpWebRequest
Organizarlo todo
Trabajar con FtpWebRequest
Simplificar las solicitudes Web comunes con WebClient
Crear su propio servidor Web con HttpListener
Crear su servidor Web
Resumen
27. Visual Basic e Internet
Descargar recursos de Internet
Interfaces de conexión (sockets)
Generar la aplicación
Crear ventanas de conversación
Crear el formulario Conversation
Iniciar conexiones
Recibir conexiones de entrada
Enviar mensajes
La clase Message
Cerrar la aplicación
Utilizar el explorador de Internet en las aplicaciones
Formularios Windows y HTML: ¡No existe ningún problema!
Permitir una exploración sencilla por la Web en la aplicación de Windows
Lanzar el Explorador de Internet desde la aplicación Windows
Actualizar las URL y los títulos de las páginas
Crear una barra de herramientas
Mostrar documentos utilizando el control WebBrowser
Imprimir utilizando el control WebBrowser
Resumen
Apéndice A. El compilador Visual Basic
El archivo vbc.exe.config
Pasos sencillos de compilación
Salida del compilador
/nologo
/utf8output
/verbose
Optimización
/filealign
/optimize
Archivos de resultados
/doc
/netcf
/out
/target
Ensamblados .NET
/addmodule
/delaysign
/imports
/keycontainer
/keyfile
/libpath
/reference
Depurar y comprobar errores
/bugreport
/debug
/nowarn
/quiet
/removeintchecks
/warnaserror
Ayuda
/?
/help
Lenguaje
/optionexplicit
/optionstrict
/optioncompare
Preprocesador: /define
Recursos
/linkresource
/resource
/win32icon
/win32resource
Varios
/baseaddress
/codepage
/main
/noconfig
/recurse
/rootnamespace
/sdkpath
Observar el archivo vbc.rsp
Apéndice B. Recursos Visual Basic
En la Web
Libros
Índice alfabético
Otros clientes que compraron Visual Basic 2005, también compraron:
Otros libros de Visual Basic 2005: