Está en la página 1de 120

Enciclopedia de Microsoft ® Visual Basic

Interfaces gráficas y aplicaciones para Internet con Windows Forms y ASP.NET

3.ª edición

Fco. Javier Ceballos Sierra

Profesor titular de la Escuela Politécnica Superior Universidad de Alcalá

www.fjceballos.es

Javier Ceballos Sierra Profesor titular de la Escuela Politécnica Superior Universidad de Alcalá www.fjceballos.es
Enciclopedia de Microsoft Visual Basic Interfaces gráficas y aplicaciones para Internet con Windows Forms y

Enciclopedia de Microsoft Visual Basic Interfaces gráficas y aplicaciones para Internet con Windows Forms y ASP.NET 3.ª edición.

© Fco. Javier Ceballos Sierra

© De la edición: RA-MA 2013

MARCAS COMERCIALES: las marcas de los productos citados en el contenido de este libro (sean o no marcas registradas) pertenecen a sus respectivos propietarios. RA-MA no está asociada a ningún producto o fabricante mencionado en la obra, los datos y los ejemplos utilizados son ficticios salvo que se indique lo contrario.

RA-MA es una marca comercial registrada.

Se ha puesto el máximo empeño en ofrecer al lector una información completa y precisa. Sin embargo, RA-MA Editorial no asume ninguna responsabilidad derivada de su uso, ni tampoco por cualquier violación de patentes ni otros derechos de terceras partes que pudieran ocurrir. Esta publicación tiene por objeto proporcionar unos conocimientos precisos y acreditados sobre el tema tratado. Su venta no supone para el editor ninguna forma de asistencia legal, administrativa ni de ningún otro tipo. En caso de precisarse asesoría legal u otra forma de ayuda experta, deben buscarse los servicios de un profesional competente.

Reservados todos los derechos de publicación en cualquier idioma.

Según lo dispuesto en el Código Penal vigente ninguna parte de este libro puede ser reproducida, grabada en sistema de almacenamiento o transmitida en forma alguna ni por cualquier procedimiento, ya sea electrónico, mecánico, reprográfico, magnético o cualquier otro, sin autorización previa y por escrito de RA-MA; su contenido está protegido por la Ley vigente que establece penas de prisión y/o multas a quienes intencionadamente, reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica.

Editado por:

RA-MA Editorial C/ Jarama, 3A, Polígono industrial Igarsa 28860 PARACUELLOS DEL JARAMA, Madrid Teléfono: 91 658 42 80 Telefax: 91 662 81 39 Correo electrónico: editorial@ra-ma.com Internet: www.ra-ma.es y www.ra-ma.com ISBN: 978-84-9964-265-9 Depósito Legal: M-xxxxx-2013 Autoedición: Fco. Javier Ceballos Filmación e impresión: Closas-Orcoyen, S.L. Impreso en España Primera impresión: octubre 2013

Si no puedo dibujarlo es que no lo entiendo. (Einstein)

Dedico esta obra a María del Carmen, mi esposa, y a mis hijos Francisco y Javier.

CONTENIDO

PRÓLOGO

XXIII

PARTE 1. INTRODUCCIÓN

1

CAPÍTULO 1. INTRODUCCIÓN A MICROSOFT .NET

3

PLATAFORMA .NET

4

.NET Framework

5

Aplicaciones de cliente

7

Aplicaciones web

7

ADO.NET

9

Biblioteca de clases base

9

Entorno de ejecución común de los lenguajes

9

.NET Framework y COM+

12

Visual

Studio

13

CAPÍTULO 2. MI PRIMERA APLICACIÓN

15

MICROSOFT VISUAL STUDIO

15

Crear un nuevo proyecto

17

El formulario

21

Dibujar los controles

22

Borrar un control

27

Propiedades de los objetos

27

Bloquear la posición de todos los controles

29

Icono de la aplicación

29

Escribir los controladores de eventos

30

VIII

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Guardar la aplicación

33

Verificar la aplicación

33

Propiedades del proyecto

35

Crear soluciones de varios proyectos

36

Opciones del EDI

37

Personalizar el EDI

37

WPF

38

PARTE 2. INTERFACES GRÁFICAS

41

CAPÍTULO 3. APLICACIÓN WINDOWS FORMS

43

PROGRAMANDO EN WINDOWS

45

ESTRUCTURA DE UNA APLICACIÓN

47

Compilar y ejecutar la aplicación

51

DISEÑO DE LA INTERFAZ GRÁFICA

53

Crear un componente

53

Controles más comunes

53

Añadir una etiqueta y editar sus propiedades

54

Añadir un botón de pulsación y editar sus propiedades

56

Añadir una descripción abreviada a un componente

57

CONTROL DE EVENTOS

58

Asignar controladores de eventos a un objeto

61

CICLO DE VIDA DE UN FORMULARIO

62

PROPIEDADES BÁSICAS DE UN FORMULARIO

64

Administración de la duración

64

Administración de formularios

65

Apariencia y comportamiento

65

CONFIGURACIÓN DE UNA APLICACIÓN

66

RECURSOS DE UNA APLICACIÓN

68

ATRIBUTOS GLOBALES DE UNA APLICACIÓN

70

CICLO DE VIDA DE UNA APLICACIÓN

71

Permitir una sola instancia de la aplicación

74

Argumentos en la línea de órdenes

75

Pantalla de presentación

76

CAPÍTULO 4. INTRODUCCIÓN A WINDOWS FORMS

79

BIBLIOTECA DE CLASES DE WINDOWS FORMS

79

CAJAS DE TEXTO, ETIQUETAS Y BOTONES

82

Desarrollo de la aplicación

82

CONTENIDO IX

Objetos

83

Eventos

83

Pasos a seguir durante el desarrollo

83

El formulario, los controles y sus propiedades

84

Tecla de acceso

85

Botón predeterminado

85

Responder a los eventos

85

Enfocar un objeto

89

Seleccionar el texto de una caja de texto

90

INTERCEPTAR LA TECLA PULSADA

91

VALIDACIÓN DE UN CAMPO DE TEXTO

93

Eventos Validating y Validated

96

Expresiones regulares

99

Ejemplos de expresiones regulares

99

El motor de expresiones regulares

102

MaskedTextBox

104

EJERCICIOS RESUELTOS

105

Diseño de una calculadora

106

Objetos

106

Eventos

106

Pasos a seguir durante el desarrollo

106

Diseño de la ventana y de los controles

107

Establecer una fuente

109

Color

109

Escribir el código

110

EJERCICIOS PROPUESTOS

119

CAPÍTULO 5. MENÚS Y BARRAS DE HERRAMIENTAS

121

ARQUITECTURA

121

MENÚS

123

DISEÑO DE UNA BARRA DE MENÚS

124

Crear un menú mediante programación

125

Controlador de un elemento de un menú

128

Aceleradores y nemónicos

129

IMÁGENES EN CONTROLES

130

Recursos de una aplicación

130

LISTA DE TAREAS

133

BARRA DE HERRAMIENTAS

134

Diseño de una barra de herramientas

134

BARRA DE ESTADO

136

Diseño de una barra de estado

137

X

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

DESARROLLO DE UN EDITOR DE TEXTOS

138

Caja de texto multilínea

139

Diseño del editor

140

El portapapeles

142

Objeto My.Computer.Clipboard

142

Trabajar con texto seleccionado

143

Diseño de la barra de menús

144

Diseño de la barra de herramientas

146

Asociar un método con un elemento de un menú

147

Archivo - Salir

148

Edición - Cortar

148

Edición - Copiar

149

Edición - Pegar

149

Opciones - Fuente

149

Opciones - Tamaño

151

Habilitar o inhabilitar los elementos de un menú

152

Marcar el elemento seleccionado de un menú

153

Deshacer

154

Recordar las ediciones reversibles

154

Añadir a la interfaz la orden Deshacer

154

Listas desplegables en menús

155

MENÚS CONTEXTUALES

159

MENÚS DINÁMICOS

161

EJERCICIOS PROPUESTOS

164

CAPÍTULO 6. CONTROLES Y CAJAS DE DIÁLOGO

169

CAJAS DE DIÁLOGO MODALES Y NO MODALES

170

CAJAS DE MENSAJE

170

Requerir datos con InputBox

174

Cómo se utilizan estas cajas de diálogo

175

CAJAS DE DIÁLOGO PERSONALIZADAS

176

Crear una caja de diálogo

177

Mostrar una caja de diálogo

178

Introducción de datos y recuperación de los mismos

179

DIÁLOGO ACERCA DE

181

FORMULARIO PROPIETARIO

182

OTROS CONTROLES WINDOWS FORMS

183

Casillas de verificación

184

Botones de opción

188

Listas simples

193

Diseñar la lista

194

CONTENIDO XI

Iniciar la lista

196

Acceder a los elementos seleccionados

196

Colección de elementos de una lista

197

Clase CheckedListBox

198

Listas desplegables

198

Diseñar la lista

200

Iniciar la lista

201

Acceder al elemento seleccionado

201

Colección de elementos de una lista desplegable

202

Controles de rango definido

203

ScrollBar

203

TrackBar

207

ProgressBar

208

Control con pestañas

210

Gestión de fechas

211

FlowLayoutPanel

y TableLayoutPanel

213

CAJAS DE DIÁLOGO ESTÁNDAR

216

Cajas de diálogo Abrir y Guardar

217

Caja de diálogo Color

220

Caja de diálogo Fuente

221

REDIMENSIONAR UN COMPONENTE

222

TEMPORIZADORES

223

EJERCICIOS RESUELTOS

227

EJERCICIOS PROPUESTOS

238

CAPÍTULO 7. TABLAS Y ÁRBOLES

241

TABLAS

241

Arquitectura de un control DataGridView

243

Construir una tabla

244

Añadir las columnas a la tabla

245

Iniciar la tabla

246

Tamaño de las celdas

252

Acceder al valor de la celda seleccionada

253

ÁRBOLES

254

Arquitectura de un árbol

255

Construir un árbol

255

Añadir nodos a un árbol

256

Imágenes para los nodos del árbol

257

Iniciar el árbol

258

Acceder al nodo seleccionado

260

Recorrer todos los nodos del árbol

264

XII

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Añadir y borrar nodos

264

Añadir un nodo

265

Borrar el nodo seleccionado

268

Borrar todos los nodos excepto la raíz

268

Personalizar el aspecto de un árbol

269

VISTAS DE UNA LISTA

269

Personalizar el aspecto de una vista

270

La colección Columns

271

Elemento de la lista

272

La colección Items

273

Un ejemplo con ListView, TreeView y SplitContainer

273

EJERCICIOS RESUELTOS

276

EJERCICIOS PROPUESTOS

292

CAPÍTULO 8. DIBUJAR Y PINTAR

293

SERVICIOS DE GDI+

295

OBJETOS DE DIBUJO BÁSICOS

296

Objeto Graphics

298

Objeto

Color

299

Objeto

Pen

300

Objeto Brush

301

Objeto Point

302

Objeto

Rectangle

302

Objeto Font

303

Objeto GraphicsPath

304

MÉTODOS DE DIBUJO

304

Líneas y rectángulos

304

Elipses y arcos

305

Tartas

306

Polígonos

306

Curvas flexibles

307

Trazados

308

Regiones

308

GRÁFICOS PERSISTENTES

311

SISTEMAS DE COORDENADAS Y TRANSFORMACIONES

313

Tipos de sistemas de coordenadas

317

Transformaciones de color

318

MOSTRAR IMÁGENES

320

Mapas de bits

320

Cargar y mostrar un mapa de bits

322

Intercambiar imágenes a través del portapapeles

327

CONTENIDO XIII

CAMBIAR LA FORMA DEL PUNTERO DEL RATÓN

329

EJERCICIOS RESUELTOS

330

EJERCICIOS PROPUESTOS

340

CAPÍTULO 9. INTERFAZ PARA MÚLTIPLES DOCUMENTOS

343

CREACIÓN DE UNA APLICACIÓN MDI

344

Organizar los formularios hijo

347

EDITOR DE TEXTO MDI

348

Formulario

padre

348

Formulario hijo

350

Vincular código con los controles

352

Iniciar y finalizar la aplicación

353

Nuevo documento

353

Abrir un documento

354

Guardar un documento

355

Guardar como

356

Imprimir un documento

357

Cortar, copiar y pegar

359

Recordar las ediciones reversibles

360

Barras de herramientas y de estado

361

Menú Ventana

362

Selección actual del texto

363

El documento ha cambiado

365

Operaciones de arrastrar y soltar

366

EJERCICIOS RESUELTOS

366

EJERCICIOS PROPUESTOS

371

CAPÍTULO 10. CONSTRUCCIÓN DE CONTROLES

373

REUTILIZACIÓN DE CONTROLES EXISTENTES

373

Control TextBox extendido

374

Clasificación de las propiedades de un control

379

CONTROLES DE USUARIO

379

Construir el control de usuario

380

Añadir propiedades

381

Añadir

métodos

382

Añadir eventos

383

Opciones fecha-hora alarma o actual

383

Verificar el control de usuario

384

EJERCICIOS RESUELTOS

386

EJERCICIOS PROPUESTOS

389

XIV

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

CAPÍTULO 11. PROGRAMACIÓN CON HILOS

391

ESPACIO DE NOMBRES System.Threading

392

Clase Thread

395

Resumen de los métodos y propiedades de Thread

398

Estados de un hilo

398

ACCESO A CONTROLES DESDE HILOS

399

Delegados

399

Componente BackgroundWorker

404

Ejecutar una tarea de forma asíncrona

405

Notificar el progreso a la interfaz gráfica del usuario

406

Recuperar el estado después de la finalización de la tarea

407

Cancelación anticipada

407

MECANISMOS DE SINCRONIZACIÓN

408

Objetos de sincronización

409

Secciones críticas

410

Controladores de espera

412

DETENER UN HILO DE FORMA CONTROLADA

414

EJERCICIOS RESUELTOS

417

EJERCICIOS PROPUESTOS

420

PARTE 3. ACCESO A DATOS

421

CAPÍTULO 12. ENLACE DE DATOS EN WINDOWS FORMS

423

ASPECTOS BÁSICOS

423

Enlace de datos manual

423

Notificar cuándo cambia una propiedad

427

Enlace de datos con las clases de .NET

430

La clase Binding

431

Tipos de enlace

432

Componente BindingSource

432

Notificación de cambios en un enlace de Windows Forms

433

Crear un enlace

433

Enlaces con otros controles

435

Aplicar conversiones

435

ORÍGENES DE DATOS COMPATIBLES CON WINDOWS FORMS

439

Enlace a colecciones de objetos

442

List

442

BindingList

447

BindingSource

451

ACCEDIENDO A LOS DATOS

454

CONTENIDO XV

Ventana de orígenes de datos

457

Vinculación maestro-detalle

461

Operaciones con los datos

465

Elemento actual

465

Navegar

466

Ordenación, filtrado y búsqueda

469

BindingListView

471

Elemento actual de la vista

472

Ordenar

473

Filtrar

474

Buscar

474

Datos introducidos por el usuario

475

Error en los datos

477

Validación

478

Datos que no necesitan validación

479

CAPÍTULO 13. ACCESO A UNA BASE DE DATOS

487

SQL

488

Crear una base de datos

488

Crear una tabla

488

Escribir datos en la tabla

490

Modificar datos de una tabla

490

Borrar registros de una tabla

491

Seleccionar datos de una tabla

491

Crear una base de datos

493

Base de datos Microsoft Access

493

Base de datos Microsoft SQL Server

495

ADO.NET

496

Componentes de ADO.NET

497

Conjunto de datos

498

Proveedor de datos

500

Objeto conexión

501

Objeto orden

503

Objeto lector de datos

503

Adaptador de datos

504

Modos de conexión

506

Probando una conexión

508

ACCESO CONECTADO A UNA BASE DE DATOS

509

ATAQUES DE INYECCIÓN DE CÓDIGO SQL

512

Órdenes parametrizadas

516

Procedimientos almacenados

517

XVI

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

TRANSACCIONES

518

Transacción implícita TransactionScope

519

Transacciones explícitas

523

ESCRIBIR CÓDIGO INDEPENDIENTE DEL PROVEEDOR

525

CONSTRUIR COMPONENTES DE ACCESO A DATOS

531

Capa de presentación

533

Operaciones contra la base de datos

533

Objetos de negocio

535

Capa de acceso a datos

537

Capa de lógica de negocio

541

Diseño de la capa de presentación

542

Lógica de interacción con la capa de presentación

544

Desacoplar la IU del resto de la aplicación

547

Adaptar la colección de objetos

548

Capa de lógica de negocio

551

Lógica de interacción con la capa de presentación

554

Validación

555

ACCESO DESCONECTADO A UNA BASE DE DATOS

555

ASISTENTES DE VISUAL STUDIO

559

Crear la infraestructura para el acceso a la base de datos

561

Crear el conjunto de datos

566

Agregar un control rejilla al formulario

567

Código subyacente

568

Asistente para configurar orígenes de datos

570

VISTA EN DETALLE DEL CONJUNTO DE DATOS

574

Diseño del formulario

576

Vincular las cajas de texto con el conjunto de datos

577

Controles de navegación

579

Añadir, borrar y buscar datos

582

CONTROL BindingNavigator

586

DISEÑO MAESTRO-DETALLE

587

EJERCICIOS RESUELTOS

596

EJERCICIOS PROPUESTOS

616

CAPÍTULO 14. LINQ

619

RECURSOS DEL LENGUAJE COMPATIBLES CON LINQ

619

Declaración implícita de variables locales

620

Matrices de tipos definidos de forma implícita

620

Tipos anónimos

620

Propiedades autoimplementadas

621

Iniciadores de objetos y colecciones

621

CONTENIDO XVII

Métodos extensores

622

Expresiones lambda

623

El delegado Func(Of T , TResu )

625

Operadores de consulta

626

Árboles de expresiones lambda

629

EXPRESIONES DE CONSULTA

632

Compilación de una expresión de consulta

635

Sintaxis de las expresiones de consulta

637

Cláusula Group

637

Productos cartesianos

638

Cláusula

Join

638

Cláusula Into

639

Cláusula Let

640

PROVEEDORES DE LINQ

641

ENTITY FRAMEWORK

642

MARCO DE ENTIDADES DE ADO.NET

643

Consultar un modelo de objetos

647

ACCESO A UNA BASE DE DATOS

651

Conectarse a la base de datos

652

Generar el modelo de entidades

652

Las clases de entidad y el contexto de objetos

661

Propiedades de navegación

664

Mostrar datos en una interfaz gráfica

666

Una aplicación con interfaz gráfica

667

Vincular controles con el origen de datos

668

Proveedor de datos

669

Filtros

673

Contextos de corta duración

675

REALIZAR CAMBIOS EN LOS DATOS

675

Modificar filas en la base de datos

680

Insertar filas en la base de datos

682

Borrar filas en la base de datos

685

Problemas de concurrencia

689

El seguimiento de cambios

695

CODE FIRST: UN NUEVO MODELO DE TRABAJO

700

Aplicando Code First

702

Definir el modelo de entidades

702

Definir el contexto de objetos

703

Anotaciones en datos y convenciones predeterminadas

704

Cadena de conexión

705

Generar la base de datos

707

Validación de entidades

710

Atributos de anotación de datos

710

XVIII

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Interfaz fluida

712

Code First desde una base de datos existente

713

Cadena de conexión

715

Contexto de objetos

715

El modelo de entidades

716

Acceder a los datos

717

EJERCICIOS RESUELTOS

718

EJERCICIOS PROPUESTOS

720

PARTE 4. APLICACIONES PARA INTERNET

721

CAPÍTULO 15. ASP.NET

723

ASP.NET

725

Conceptos básicos de ASP.NET

726

Páginas web ASP.NET

727

Controles

HTML

728

Controles de servidor web

729

Presentación del texto

730

Controles de entrada

730

Envío y devolución

732

Exploración

733

Controles de diseño

733

Selección de fechas

733

Controles con enlaces a datos

734

Controles de validación

734

Un ejemplo de diseño de una página web ASP.NET

735

Software para el desarrollo de aplicaciones ASP.NET

737

Componentes de una página web ASP.NET

739

¿Cómo se publica una aplicación web?

741

Crear un directorio virtual

742

Convertir la aplicación en una aplicación web de IIS

744

Seguridad asociada con una carpeta

746

Modelo de ejecución de una página web ASP.NET

747

Lógica de negocio

749

Enlaces de datos en ASP.NET

753

Expresiones de enlace de datos

753

Controles de lista enlazados a datos

754

Modelo de enlace de ASP.NET

757

GridView

759

Seleccionar datos

761

Actualizar y eliminar datos

762

CONTENIDO XIX

Insertar datos (FormView)

765

Estado del modelo y validación

767

Asistente para publicar un proyecto web ASP.NET

768

CAPÍTULO 16. FORMULARIOS WEB

773

APLICACIÓN WEB ASP.NET

774

Crear la capa de acceso a datos

778

Añadir un nuevo formulario web

780

Descripción de un formulario web ASP.NET

781

Agregar controles y texto a la página

782

Ciclo de vida de una página

784

Modelo de eventos de ASP.NET

787

Añadir los controladores de eventos

787

Obtener acceso a la base de datos

790

CONTROLES DE VALIDACIÓN

792

HERRAMIENTA DE PRECOMPILACIÓN ASP.NET

796

PROCESAMIENTO DE FORMULARIOS

798

Formato de la petición HTTP

798

Petición HTTP get

799

Petición HTTP post

800

Respuestas en el protocolo HTTP

801

Contexto de un formulario web

801

Redireccionar una solicitud a otra URL

803

ESTADO DE UNA PÁGINA ASP.NET

803

Administración de estado en el cliente

804

Cookies

804

Cadenas de consulta

806

Campos de formulario ocultos

807

Estado de vista

807

Administración de estado en el servidor

809

Estado de aplicación

810

Estado de sesión

810

Bases de datos

811

MEJORANDO EL RENDIMIENTO EN EL SERVIDOR

812

Almacenamiento en la caché de resultados

812

Configurar el almacenamiento en caché a nivel de página

813

Actualización dinámica de fragmentos de una página en caché

814

Configurar el almacenamiento en caché por programación

815

Almacenamiento en caché de datos procedentes de SQL Server

816

Reducir la información hacia y desde el servidor

817

CONTROLES DE SERVIDOR COMO ORIGEN DE DATOS

819

XX

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

SQL y desarrollo web

820

Control SqlDataSource

822

Responder a los eventos

826

LINQ y desarrollo web

828

Control EntityDataSource

829

Responder a los eventos

835

Generar la consulta Select mediante código

836

Realizar cambios en los datos

838

Actualizar y eliminar filas en la base de datos

839

Controlar los errores en una página ASP.NET

841

Insertar filas en la base de datos

841

MODELO DE ENLACE DE ASP.NET

847

Realizar cambios en los datos

852

Actualizar y eliminar filas en la base de datos

852

Controlar los errores en una página ASP.NET

855

Insertar filas en la base de datos

855

Capa de la lógica de negocio

860

Paginación, ordenación y filtrado

863

EJERCICIOS PROPUESTOS

869

CAPÍTULO 17. SERVICIOS WEB

871

Integrar un servicio web en una aplicación

872

SERVICIOS WCF

873

MODELO DE PROGRAMACIÓN DE WCF

874

Implementar un servicio WCF

875

Definir un contrato

876

Configuración del servicio WCF

882

Implementar un cliente WCF

884

Configuración del cliente WCF

888

Obtener acceso al servicio web

888

Ejecución asíncrona

890

Seguridad en WCF

893

SERVICIOS WEB Y LINQ

894

Arquitectura de N capas lógicas y N niveles físicos

895

Crear la base de datos

896

Crear el servicio WCF

897

Cliente WCF

904

Llenar la lista

907

Mostrar datos

908

Actualizar datos

909

Cambiar foto

909

CONTENIDO XXI

Agregar datos

910

Borrar datos

911

Errores

inesperados

911

EJERCICIOS PROPUESTOS

912

CAPÍTULO 18. SEGURIDAD DE APLICACIONES ASP.NET

919

ARQUITECTURA ASP.NET

920

CICLO DE VIDA DE UNA APLICACIÓN ASP.NET

921

GRUPOS DE APLICACIONES EN IIS

922

AUTENTICACIÓN DE WINDOWS

923

AUTORIZACIÓN

930

SUPLANTACIÓN DE IDENTIDAD

932

AUTENTICACIÓN MEDIANTE FORMULARIOS

933

CONTROLES PARA INICIO DE SESIÓN

938

SERVICIO DE SUSCRIPCIONES

951

SEGURIDAD EN LA TRANSMISIÓN DE DATOS

958

Criptografía simétrica

959

Criptografía

asimétrica

959

AUTENTICACIÓN USANDO CERTIFICADOS

961

Instalar un certificado SSL en IIS 7.0 o superior

963

Certificado de cliente rechazado

968

CAPÍTULO 19. PÁGINAS MAESTRAS

969

ESTRUCTURA DE UNA PÁGINA MAESTRA

969

Controles de usuario web

974

Mejorar el aspecto de la interfaz

979

Temas y máscaras en ASP.NET

980

Perfiles

983

EJERCICIOS RESUELTOS

987

Base de datos

988

Cliente web

992

CAPÍTULO 20. AJAX

1001

FUNDAMENTOS DE AJAX

1003

XMLHttpRequest

1004

AJAX con ASP.NET

1012

GENERACIÓN DE CÓDIGO JAVASCRIPT

1014

Fichero JavaScript

1015

XXII

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Vincular un evento con una función JavaScript

1015

Inyectar código JavaScript desde el lado del servidor

1017

ASP.NET AJAX

1018

Crear un sitio web ASP.NET AJAX

1019

Clase ScriptManager

1020

Clases ScriptManager y ScriptManagerProxy

1028

Clase UpdatePanel

1028

Clase AsyncPostBackTrigger

1030

Clase UpdateProgress

1031

Cancelar una llamada asíncrona

1033

Clase Timer

1034

Servicios web

1034

Métodos de página

1038

EJERCICIOS RESUELTOS

1040

PARTE 5. ACERCA DEL MATERIAL ADICIONAL

Y DE LOS APÉNDICES

1043

1045

HERRAMIENTAS DE DESARROLLO PÁGINAS WEB

1061

INTERNACIONALIZACIÓN

1093

.NET PARA LINUX

1103

ÍNDICE

1105

PRÓLOGO

Visual Basic es hoy el lenguaje de programación más popular del mundo. Desde que Microsoft liberó Visual Basic 1.0 en 1991 han tenido lugar muchos cambios. Visual Basic 1.0 revolucionó la forma de desarrollar software para Windows; desmitificó el proceso de desarrollo de aplicaciones con interfaz gráfica de usua- rio y abrió este tipo de programación a las masas. En sus posteriores versiones, Visual Basic ha continuado proporcionando nuevas características que facilitaron la creación de aplicaciones para Windows cada vez más potentes; por ejemplo, la versión 3.0 introdujo el control de datos para facilitar el acceso a bases de datos, y la versión 4.0 mejoró y potenció este acceso con los objetos DAO. Con la apari- ción de Windows 95, Microsoft liberó Visual Basic 4.0 que abrió la puerta al desarrollo de aplicaciones de 32 bits y a la creación de DLL. La versión 5.0 mejo- ró la productividad con la incorporación de la ayuda inteligente y la introducción de los controles ActiveX. Posteriormente la versión 6.0 nos introdujo en la pro- gramación de Internet con las aplicaciones DHTML y el objeto WebClass. Des- pués dispusimos de Visual Basic .NET que vino a revolucionar el mundo de las comunicaciones permitiendo escribir aplicaciones escalables para Internet. Siguie- ron Visual Basic 2005, 2008, 2010 y ahora Visual Basic 2012, una evolución del lenguaje Visual Basic, que se diseñó para generar aplicaciones con seguridad de tipos y orientadas a objetos de manera productiva. Esta generación de Visual Ba- sic continúa la tradición de ofrecer una manera rápida y fácil de crear aplicaciones basadas en .NET Framework.

Visual Basic .NET, después Visual Basic 2005, 2008, 2010 y ahora Visual Basic 2012, cambian la idea de programar de las versiones iniciales. Ahora se re- quiere una programación orientada a objetos, lo que obligará al desarrollador a programar de forma ordenada, con unas reglas metodológicas de programación análogas a las de otros lenguajes de programación orientados a objetos como C++, C# o Java por citar algunos de los más utilizados.

XXIV

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

La palabra “Visual” hace referencia, desde el lado del diseño, al método que se utiliza para crear la interfaz gráfica de usuario si se dispone de la herramienta adecuada (con Microsoft Visual Studio se utiliza el ratón para arrastrar y colocar los objetos prefabricados en el lugar deseado dentro de un formulario) y desde el lado de la ejecución, al aspecto gráfico que toman los objetos cuando se ejecuta el código que los crea, objetos que formarán la interfaz gráfica que el usuario de la aplicación utiliza para acceder a los servicios que ésta ofrece. La palabra “Basic” hace referencia al lenguaje BASIC (Beginners All-Purpose Symbolic Instruction Code), un lenguaje utilizado por más programadores que ningún otro lenguaje en la historia de la informática. Visual Basic ha evolucionado a partir del lenguaje BASIC original y ahora está soportado por una biblioteca orientada a objetos di- rectamente relacionada con la interfaz gráfica de Windows. Y “NET” hace refe- rencia al ámbito donde operarán nuestras aplicaciones web (Network - red).

Resumiendo, Visual Basic es un lenguaje orientado a objetos seguro y ele-

gante que permite a los desarrolladores construir un amplio rango de aplicaciones

seguras y robustas que se ejecutan sobre .NET

incluye entre otras cosas la biblioteca básica de .NET y el compilador Visual Ba- sic) junto con otros componentes de desarrollo, como ASP.NET (formularios web

y servicios web) y ADO.NET, forman un paquete de desarrollo denominado Mi-

crosoft Visual Studio que podemos utilizar para crear aplicaciones Windows tra- dicionales (aplicaciones de escritorio que muestren una interfaz gráfica al usuario)

y aplicaciones para la Web. Para ello, este paquete proporciona un editor de códi-

.NET Framework (que

Framework.

go avanzado, diseñadores de interfaces de usuario apropiados, depurador integra- do y muchas otras utilidades para facilitar un desarrollo rápido de aplicaciones.

Para quién es este libro

Este libro está pensado para aquellas personas que quieran aprender a desarrollar aplicaciones que muestren una interfaz gráfica al usuario, aplicaciones para acce- so a bases de datos y para Internet (páginas web). Para ello, ¿qué debe hacer el lector? Pues simplemente leer ordenadamente los capítulos del libro, resolviendo cada uno de los ejemplos que en ellos se detallan.

Evidentemente, no vamos a enseñar a programar aquí, por eso es necesario tener algún tipo de experiencia con un lenguaje de programación orientado a obje- tos (Visual Basic, C#, Java, etc., son lenguajes orientados a objetos). Haber pro- gramado en .NET y con Visual Basic sería lo ideal, así como tener conocimientos de HTML y XML. Estos requisitos son materia de mis otros libros Microsoft Vi- sual Basic - Lenguaje y aplicaciones y Microsoft Visual Basic - Curso de pro- gramación, ambos editados también por RA-MA y Alfaomega Grupo Editor.

PRÓLOGO XXV

Microsoft Visual Basic - Lenguaje y aplicaciones se centra en la programa- ción básica: tipos, sentencias, matrices, métodos, ficheros, etc., y hace una intro- ducción a las interfaces gráficas, a las bases de datos y a las aplicaciones para Internet, y Microsoft Visual Basic - Curso de programación cubre la programa- ción básica (expuesta en menor medida en el libro anterior) y la programación orientada a objetos (POO) en detalle: clases, clases derivadas, interfaces, espacios de nombres, excepciones, etc.; después, utilizando la POO, añade otros temas co- mo estructuras dinámicas de datos, algoritmos de uso común, hilos (programación concurrente), etc. Éste sí que es un libro de programación con Visual Basic en to- da su extensión. Puede ver más detalles de cada uno de ellos en mi web:

www.fjceballos.es.

Cómo está organizado el libro

El libro se ha estructurado en 20 capítulos más algunos apéndices que a continua- ción se relacionan. Los capítulos 1 y 2 nos introducen en .NET y en el desarrollo de aplicaciones de escritorio. Los capítulos 3 al 11 nos enseñan a desarrollar apli- caciones de escritorio que muestran una interfaz de ventanas al usuario. Los capí- tulos 12 al 14 cubren el enlace a datos, el acceso a bases de datos (ADO.NET), el lenguaje de consultas integrado (LINQ) y el acceso a bases de datos con Entity Framework. Y los capítulos 15 al 20 nos enseñan cómo desarrollar aplicaciones para Internet (ASP.NET) a base de formularios web, servicios web WCF y AJAX.

CAPÍTULO 1. INTRODUCCIÓN A MICROSOFT .NET CAPÍTULO 2. MI PRIMERA APLICACIÓN CAPÍTULO 3. APLICACIÓN WINDOWS FORMS CAPÍTULO 4. INTRODUCCIÓN A WINDOWS FORMS CAPÍTULO 5. MENÚS Y BARRAS DE HERRAMIENTAS CAPÍTULO 6. CONTROLES Y CAJAS DE DIÁLOGO CAPÍTULO 7. TABLAS Y ÁRBOLES CAPÍTULO 8. DIBUJAR Y PINTAR CAPÍTULO 9. INTERFAZ PARA MÚLTIPLES DOCUMENTOS CAPÍTULO 10. CONSTRUCCIÓN DE CONTROLES CAPÍTULO 11. PROGRAMACIÓN CON HILOS CAPÍTULO 12. ENLACE DE DATOS EN WINDOWS FORMS CAPÍTULO 13. ACCESO A UNA BASE DE DATOS CAPÍTULO 14. LINQ CAPÍTULO 15. ASP.NET CAPÍTULO 16. FORMULARIOS WEB CAPÍTULO 17. SERVICIOS WEB

CAPÍTULO 18. SEGURIDAD DE APLICACIONES ASP.NET CAPÍTULO 19. PÁGINAS MAESTRAS CAPÍTULO 20. AJAX APÉNDICE A. HERRAMIENTAS DE DESARROLLO APÉNDICE B. PÁGINAS WEB APÉNDICE C. INTERNACIONALIZACIÓN

XXVI

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Qué se necesita para utilizar este libro

Este libro ha sido escrito utilizando el paquete Microsoft .NET Framework Softwa- re Development Kit (SDK) versión 4.5 que forma parte del entorno de desarrollo Microsoft Visual Studio 2012 que incluye todo lo necesario para escribir, construir, verificar y ejecutar aplicaciones .NET. Por lo tanto, basta con que instale en su má- quina Microsoft Visual Studio 2012, o superior, en cualquiera de sus versiones o, como alternativa, descargue desde http://www.microsoft.com/express/ los paquetes Visual Studio Express 2012 for Windows Desktop y for Web e instálelos (opcio- nalmente puede instalar también SQL Server 2012 Express, caso del autor).

Nota: para probar las aplicaciones web se recomienda instalar el servidor de aplicaciones IIS (Internet Information Services) que incluye Windows (Inicio > Panel de control > Agregar y quitar programas > Windows). Esto tiene que ha- cerlo antes de instalar Microsoft Visual Studio 2012 o Visual Studio Express 2012 for Web.

Sobre los ejemplos del libro

El código fuente de todos los ejemplos del libro podrá descargarse, según se indi- ca en los apéndices, de la web www.ra-ma.es desde la página web correspondiente al libro.

Agradecimientos

He recibido ayuda de algunas personas durante la preparación de este libro y, por ello, les estoy francamente agradecido. También deseo expresar mi agradecimien- to a Microsoft Ibérica por poner a mi disposición, en particular, y de todos los lec- tores, en general, el software que el estudio de esta obra requiere.

Francisco Javier Ceballos Sierra

http://www.fjceballos.es/

P A R T E

P A R T E 







Introducción

Introducción a Microsoft .NET

Mi primera aplicación

P A R T E

P A R T E 







Interfaces gráficas

Aplicación Windows Forms

Introducción a Windows Forms

Menús y barras de herramientas

Controles y cajas de diálogo

Tablas y árboles

Dibujar y pintar

Interfaz para múltiples documentos

Construcción de controles

Programación con hilos

P A R T E

P A R T E 







Acceso a datos

Enlace de datos en Windows Forms

Acceso a una base de datos

LINQ

P A R T E

P A R T E 







Aplicaciones para Internet

ASP.NET

Formularios web

Servicios web

Seguridad de aplicaciones ASP.NET

Páginas maestras

AJAX

P A R T E

P A R T E  







Acerca del material adicional

y de los apéndices

Herramientas de desarrollo

Páginas web

Internacionalización

.NET para Linux

Índice

APÉNDICE A

F.J.Ceballos/RA-MA

HERRAMIENTAS DE DESARROLLO

Cuando se utiliza un entorno de desarrollo integrado (EDI), lo primero que hay que hacer una vez instalado es asegurarse de que las rutas donde se localizan las herramientas, las bibliotecas, la documentación y los ficheros fuente hayan sido establecidos; algunos EDI sólo requieren la ruta donde se instaló el compilador. Este proceso normalmente se ejecuta automáticamente durante el proceso de ins- talación de dicho entorno. Si no es así, el entorno proporcionará algún menú con las órdenes apropiadas para realizar dicho proceso. Por ejemplo, en los EDI que se presentan a continuación las rutas a las que nos referimos quedan establecidas du- rante la instalación de los mismos.

VISUAL STUDIO

Visual Studio proporciona una variedad de herramientas tanto para desarrollado- res individuales como para equipos de desarrollo.

http://www.microsoft.com/express/

Ediciones Visual Studio Express

Es la nueva línea de productos que expanden Visual Studio ofreciendo herramien- tas ligeras y sencillas de aprender y de usar para aficionados, entusiastas y apren- dices que quieren crear sitios Web y aplicaciones para Windows. Su descarga es gratuita y dependiendo del tipo de aplicación a desarrollar optaremos por una u otra herramienta de desarrollo de las siguientes:

Visual Studio Express for Web.

1046

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Visual Studio Express for Windows Desktop.

Visual Studio Express for Windows Phone.

Visual Studio Team Foundation Server Express.

Ediciones de Visual Studio para profesionales

Visual Studio en sus versiones professional, premium y ultimate, ofrece una fle- xible herramienta de desarrollo para desarrolladores de aplicaciones de línea de negocio o programadores ocasionales que estén construyendo aplicaciones móvi- les, basadas en Windows o para la Web, soluciones sobre Microsoft Office Sys- tem utilizando Excel, Word e InfoPath, y con herramientas de software de ciclo de vida productivas, integradas y extensibles que permiten a las empresas reducir la complejidad en la creación de soluciones orientadas a servicios. La utilización de estas versiones requiere comprar una licencia.

APLICACIÓN DE CONSOLA

En el capítulo 2 vimos una introducción al desarrollo de aplicaciones con interfaz gráfica de usuario, pero no abordamos el desarrollo de aplicaciones de consola que en ocasiones puede ser útil. Veamos un ejemplo a continuación utilizando cualquiera de las ediciones de Visual Studio.

Para editar y ejecutar el programa HolaMundo utilizando cualquiera de las ediciones de Visual Studio, los pasos a seguir son los siguientes:

1. Partiendo de la página de inicio de MS Visual Visual Basic Express, hacemos

para crear un proyecto nuevo, o bien ejecutamos la

orden Archivo > Nuevo proyecto. Esta acción hará que se visualice una ven- tana que mostrará los tipos de plantillas que puede utilizar; la elección de una u otra dependerá del tipo de aplicación que deseemos construir. La figura si- guiente muestra esta ventana:

clic en Nuevo proyecto

APÉNDICE A: ENTORNOS DE DESARROLLO

1047

APÉNDICE A: ENTO RNOS DE DESARROLLO 1047 Para que la ventana anterior muestre la lista Ubicación

Para que la ventana anterior muestre la lista Ubicación y la caja Nombre de la solución tiene que habilitar, si no lo está, la opción “Guardar nuevos proyec- tos al crearlos”. Para ello, ejecute la orden Herramientas > Opciones > Pro- yectos y soluciones y seleccione esta opción en la ventana que se visualiza:

y seleccione esta opción en la ventana que se visualiza: Para nuestro ejemplo, elegimos la plantilla

Para nuestro ejemplo, elegimos la plantilla “Aplicación de consola”. Después, especificamos el nombre del proyecto y su ubicación; observe que el proyecto será creado en una carpeta con el mismo nombre. A continuación pulsamos el botón Aceptar y obtendremos el esqueleto del proyecto de acuerdo con la plantilla seleccionada. Para cambiar el nombre asignado al fichero .vb, hace- mos clic sobre Module1.vb y utilizando el botón derecho del ratón, seleccio-

1048

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

namos del menú contextual que se visualiza la orden Cambiar nombre; tam- bién podemos hacer este cambio a través de la ventana de propiedades.

hacer este cambio a través de la ventana de propiedades. Si necesitáramos añadir un fichero nuevo

Si necesitáramos añadir un fichero nuevo a este proyecto, haríamos clic con el botón derecho del ratón sobre el nombre del proyecto y seleccionaríamos Agregar > Nuevo elemento. Después, elegiríamos el tipo de elemento que deseamos añadir y, finalmente, haríamos clic en el botón Agregar.

2. A continuación editamos el código que compone el programa. Después, antes de compilar la aplicación, podemos verificar que se trata de una aplicación de consola: Proyecto > Propiedades de HolaMundo > Aplicación > Tipo de re- sultado > Aplicación de consola.

APÉNDICE A: ENTORNOS DE DESARROLLO

1049

APÉNDICE A: ENTO RNOS DE DESARROLLO 1049 3. Para compilar el programa, ejecutamos la orden Generar

3. Para compilar el programa, ejecutamos la orden Generar HolaMundo del me- Generar. Finalmente, para ejecutar el programa seleccionamos la orden Iniciar sin depurar del menú Depurar, o bien pulsamos las teclas Ctrl+F5. También puede ejecutar el programa seleccionando la orden Iniciar depura- ción del menú Depurar, o bien pulsando la tecla F5. Los resultados de la compilación se muestran en la ventana Resultados. La acción de ejecutar el programa acarrea también su compilación si fuera necesario.

DEPURAR UNA APLICACIÓN

¿Por qué se depura una aplicación? Porque los resultados que estamos obteniendo con la misma no son correctos y no sabemos por qué. El proceso de depuración consiste en ejecutar la aplicación paso a paso, indistintamente por sentencias o por métodos, con el fin de observar el flujo seguido durante su ejecución, así como los resultados intermedios que se van sucediendo, con la finalidad de detectar las anomalías que producen un resultado final erróneo.

Por ejemplo, para depurar una aplicación utilizando el depurador del entorno de desarrollo de Visual Studio, ejecute la orden Depurar > Paso por instrucciones y utilice las órdenes del menú Depurar o los botones correspondientes de la barra de herramientas (para saber el significado de cada botón, ponga el puntero del ra- tón sobre cada uno de ellos).

1050

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

1050 ENCICLOPEDIA DE MICROSOFT VISUAL BASIC De forma resumida, las órdenes dis ponibles para depurar una

De forma resumida, las órdenes disponibles para depurar una aplicación son las siguientes:

Iniciar o F5. Inicia la ejecución de la aplicación en modo depuración hasta encontrar un punto de parada o hasta el final si no hay puntos de parada.

Alternar puntos de interrupción o F9. Pone o quita un punto de parada en la línea sobre la que está el punto de inserción.

Detener depuración o Mayús+F5. Detiene el proceso de depuración.

Paso a paso por instrucciones o F11. Ejecuta la aplicación paso a paso. Si la línea a ejecutar coincide con una llamada a un método definido por el usuario, dicho método también se ejecutará paso a paso.

Paso a paso por procedimientos o F10. Ejecuta la aplicación paso a paso. Si la línea a ejecutar coincide con una llamada a un método definido por el usua- rio, dicho método no se ejecutará paso a paso, sino de una sola vez.

Paso a paso para salir o Mayús+F11. Cuando un método definido por el usuario ha sido invocado para ejecutarse paso a paso, utilizando esta orden se puede finalizar su ejecución en un solo paso.

Ejecutar hasta el cursor o Ctrl+F10. Ejecuta el código que hay entre la últi- ma línea ejecutada y la línea donde se encuentra el punto de inserción.

Inspección rápida o Ctrl+Alt+Q. Visualiza el valor de la variable que está ba- jo el punto de inserción o el valor de la expresión seleccionada (sombreada).

Para ejecutar la aplicación en un solo paso, seleccione la orden Iniciar sin de- purar (Ctrl+F5) del menú Depurar.

Además de la barra de herramientas Depurar, dispone también de la barra de herramientas Generar reducida que se muestra en la figura siguiente:

Generar reducida que se muestra en la figura siguiente: Esta barra de herramientas pone a su

Esta barra de herramientas pone a su disposición las órdenes siguientes:

Generar aplicación. Compila la aplicación y genera el fichero ejecutable co- rrespondiente.

APÉNDICE A: ENTORNOS DE DESARROLLO

1051

Generar solución. Compila y genera todos los proyectos que componen la so- lución.

Cancelar. Detiene el proceso de compilación o de generación del fichero eje- cutable.

ARGUMENTOS EN LA LÍNEA DE ÓRDENES

Si ejecuta una aplicación desde el EDI que requiere argumentos en la línea de ór- denes, ¿dónde se introducen estos argumentos? Haga clic sobre el nombre del proyecto con el botón derecho del ratón y seleccione la orden Propiedades. Des- pués, en la ventana que se visualiza, seleccione el panel Depurar y escriba los ar- gumentos según puede observar en la figura:

los ar- gumentos según puede observar en la figura: CONECTAR A LOCALDB O A SQLEXPRESS El

CONECTAR A LOCALDB O A SQLEXPRESS

El servidor de base de datos que se instala con Visual Studio es diferente depen- diendo de la versión de Visual Studio que haya instalado:

Si se utiliza Visual Studio 2010 se creará una base de datos SQL Express.

Si se utiliza Visual Studio 2012 se creará una base de datos LocalDB. Esto no significa que no pueda utilizar una base de datos SQL Express.

SQL Server Express

SQL Server 2012 Express es el motor de base de datos gratuito, potente, pero sen- cillo, que se integra perfectamente con el resto de productos Express. Se trata de

1052

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

una versión aligerada de la nueva generación de SQL Server que puede descargar gratuitamente del sitio web de Microsoft.

Este producto tiene el mismo motor de base de datos que toda la familia SQL Server y utiliza el mismo lenguaje SQL. Otra característica interesante es la movi- lidad de las bases de datos de un servidor a otro con XCOPY. Con esta utilidad podemos mover un fichero MDF de una máquina a otra a cualquier ubicación dentro de su sistema de ficheros, quedando la base de datos movida lista para tra- bajar. Para utilizar esta base de datos deberemos hacer uso de la opción Attach- DBFilename en la cadena de conexión, según se muestra a continuación:

connectionString="Data Source=.\sqlexpress;Initial Catalog=;

Source=.\sqlexpress;Initial Catalog=; Integrated

Integrated Security=True;AttachDBFileName=C:\bd\bd_editorial.mdf"

La entrada Data Source especifica el servidor de base de datos que vamos a utilizar y AttachDBFilename, la localización del fichero de base de datos. Ob- sérvese que la entrada Initial Catalog está vacía.

Para crear una base de datos utilizando SQL Server Express tiene que hacerlo desde la línea de órdenes (véase también el capítulo titulado Acceso a una base de datos). Para iniciar la consola que le permita trabajar contra el motor de base de datos SQL Server, localice en su instalación el fichero SQLCMD.EXE, cambie a ese directorio y ejecute la orden:

SQLCMD -S nombre-del-ordenador \SqlExpress

la orden: SQLCMD -S nombre-del-ordenador \SqlExpress Una vez iniciada la consola, puede escribir órdenes SQL a

Una vez iniciada la consola, puede escribir órdenes SQL a continuación del símbolo “>”. Para ejecutar un bloque de sentencias escriba GO. Para salir, escriba QUIT. Por ejemplo, el guión que muestra la figura siguiente crea la base de datos

APÉNDICE A: ENTORNOS DE DESARROLLO

1053

tfnos con una tabla telefonos, añade tres filas a la tabla y, finalmente, selecciona todas las filas de la tabla con todas sus columnas:

todas las filas de la tabla con todas sus columnas: Para ver la relación de órdenes

Para ver la relación de órdenes que puede utilizar a través de la aplicación SQLCMD ejecute la orden help como se muestra en la figura siguiente. Obsérvese que cada orden va precedida por dos puntos (:).

la orden help como se muestra en la figura siguiente. Obsérvese que cada orden va precedida

1054

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

SQL Server 2012 Express LocalDB

Microsoft SQL Server 2012 Express LocalDB es un modo de ejecución de SQL Server Express destinado a los desarrolladores de programas con el fin de sustituir la característica de instancias de usuario de SQL Server Express, que ha quedado obsoleta. La instalación de LocalDB copia un conjunto de archivos mínimo nece- sario para iniciar el motor de base de datos de SQL Server. Una instancia de SQL Server Express LocalDB se puede administrar con la herramienta de línea de ór- denes SqlLocalDB.exe.

SQL SERVER MANAGEMENT STUDIO EXPRESS

Si instaló SQL Server, habrá comprobado que no dispone de una herramienta de administración de bases de datos. Por tal motivo, Microsoft también ha desarro- llado una nueva aplicación para gestionar bases de datos que puede obtener de forma gratuita de Internet en la dirección especificada a continuación:

http://www.microsoft.com/es-es/downloads

Esta aplicación presenta una interfaz gráfica, muy sencilla de utilizar, para realizar tareas típicas como crear bases de datos, gestionar las tablas de la base, los procedimientos almacenados, crear usuarios, etc.

Cuando inicie SQL Server Management Studio Express, le serán solicitados el nombre del servidor de bases de datos, el tipo de autenticación, y el usuario y la contraseña sólo si eligió autenticación SQL Server:

la contraseña sólo si eligió autenticación SQL Server: Una vez realizada la conexión con el gestor

Una vez realizada la conexión con el gestor de bases de datos, le será mostra- da la ventana de la figura siguiente. Seleccione en la lista del panel de la izquierda la base de datos con la que desea trabajar, haga clic en el botón Nueva consulta de

APÉNDICE A: ENTORNOS DE DESARROLLO

1055

la barra de herramientas y, después, escriba en el mismo las sentencias SQL que desee ejecutar. Para ejecutar una sentencia SQL haga clic en el botón Ejecutar de la barra de herramientas.

clic en el botón Ejecutar de la barra de herramientas. CREAR UNA BASE S DE DATOS

CREAR UNA BASES DE DATOS

Si no instaló SQL Server 2012 Express puede crear una nueva base de datos local al proyecto siguiendo los pasos especificados a continuación. Haga clic con el bo- tón secundario del ratón sobre el nombre del proyecto para agregar un nuevo ele- mento y seleccione Base de datos basada en servicio. A continuación se abrirá el asistente para la configuración de orígenes de datos y, como no hay ningún objeto de base de datos disponible porque la base de datos es nueva, haga clic en Cance- lar para crear y agregar la base de datos vacía al proyecto. A continuación puede continuar añadiendo las tablas, los datos de las tablas, las relaciones entre las ta- blas, etc. Puede ver un ejemplo en el apartado Ejercicios resueltos del capítulo Acceso a una base de datos.

Si instaló SQL Server 2012 Express (nombre predeterminado del servidor:

sqlexpress), entonces es posible añadir al proyecto elementos nuevos de tipo base

1056

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

de datos utilizando el explorador de bases de datos. Para ello, abra el Explorador de bases de datos (Ver > Otras ventanas > Explorador de bases de datos). Haga clic con el botón secundario del ratón sobre el nodo Conexiones de datos y selec- cione Agregar conexión. Elija como origen de datos Microsoft SQL Server. Se vi- sualizará la ventana siguiente:

SQL Server . Se vi- sualizará la ventana siguiente: Escriba el nombre de la base de

Escriba el nombre de la base de datos y haga clic en Aceptar. Se visualizará el mensaje La base de datos ‘bd_telefonos’ no existe. ¿Desea intentar crearla?:

‘bd_telefonos’ no existe. ¿Desea intentar crearla?: Haga clic en Sí . Observará en el bd_telefonos ha

Haga

clic

en

.

Observará

en

el

bd_telefonos ha sido creada.

explorador

de

bases

de

datos

que

APÉNDICE A: ENTORNOS DE DESARROLLO

1057

El paso siguiente es añadir las tablas. Despliegue el árbol correspondiente a la nueva conexión, haga clic con el botón secundario del ratón sobre el nodo Tablas y agregue una nueva tabla. Después complete el proceso de creación de la misma.

Después complete el proceso de creación de la misma. Puede ver un ejemplo de este proceso

Puede ver un ejemplo de este proceso en el apartado Ejercicios resueltos del capítulo Acceso a una base de datos.

INSTALACIÓN DE ASP.NET EN WINDOWS

ASP.NET queda instalado automáticamente cuando instaló Visual Studio o, en su defecto, Visual Studio Express for Web. Ahora bien, para crear y ejecutar aplica- ciones para Internet necesitará un servidor de aplicaciones, en el caso de la plata- forma Windows éste es IIS (Internet Information Server). La instalación de IIS debe ser anterior a la de .NET Framework. Si no se hizo así, ASP.NET no estará habilitado en IIS y no podremos realizar aplicaciones ASP.NET. En este caso, la solución es registrar manualmente ASP.NET en IIS.

Registro manual de ASP.NET en IIS

Para registrar manualmente ASP.NET en IIS, abra una ventana de consola, sitúese en la carpeta C:\WINDOWS\Microsoft.NET\Framework\vx.x.xxxxx y ejecute:

aspnet_regiis.exe -i -enable

Esto habilitará IIS para la ejecución de ASP.NET, registrará las extensiones de ASP.NET (aspx, amsx, asax, etc.) y ya podremos empezar a trabajar con ASP.NET.

Si echa una ojeada a todas las opciones disponibles (aspnet_regiis.exe -help) podrá observar algunas muy interesantes, como -c, que instala las secuencias de órdenes del cliente de esta versión en el subdirectorio aspnet_client de todos los directorios de sitios IIS.

1058

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

Si la operación anterior no solucionó el problema, pruebe a reparar la instala- ción actual a partir del material adicional del producto. Si esto tampoco soluciona- ra el problema, sólo queda desinstalar el producto y volverlo a instalar.

DEPURAR CÓDIGO JAVASCRIPT

En una aplicación ASP.NET que incluya código JavaScript (véase el capítulo 20) es posible utilizar el depurador de Visual Studio o de Visual Web Developer para depurar ese código.

Para poder depurar código JavaScript, el primer paso es habilitar esta opción en el navegador. En el caso de Internet Explorer, seleccione Herramientas > Op- ciones de Internet > Opciones avanzadas y asegúrese de que no esté seleccionada la opción “Deshabilitar la depuración de scripts”:

la opción “Deshabilitar la depuración de scripts ”: Cumplido el requisito anterior, sólo queda poner en

Cumplido el requisito anterior, sólo queda poner en el código JavaScript a de- purar la sentencia debugger. De esta forma, cuando inicie la depuración de la aplicación y el flujo de ejecución pase por esta sentencia, la ejecución se detendrá y podrá continuarla paso a paso.

function CargarTabla(resultado, contexto)

{

debugger;

var elementos =

APÉNDICE A: ENTORNOS DE DESARROLLO

1059

LoadXmlFromString(resultado).getElementsByTagName("string"); TablaResultados = document.getElementById("TablaDeResultados"); if (TablaResultados != null)

{

//

DESARROLLO

Para el desarrollo de una aplicación, lo habitual es crear un modelo de clases si- guiendo algún patrón, por ejemplo el patrón de arquitectura de software Model- View-ViewModel (MVVM) utilizado por WPF y Silverlight, que es un sucesor del ampliamente conocido Model-View-Controller (MVC) utilizado por ASP.NET MVC, nacido del entorno Smalltalk a finales de los años 70.

En MVC la aplicación se compone de tres tipos de objetos que tienen respon- sabilidades distintas con el objetivo de separar la capa visual de su correspondien- te programación y acceso a datos:

El modelo. Es el responsable de los datos y de la lógica de negocio de la apli- cación.

La vista. Es el responsable de mostrar los datos al usuario y de permitir su ma- nipulación desde y hacia el modelo.

El controlador. Es el responsable de implementar las respuestas a los eventos o acciones de los usuarios e invocar peticiones al modelo y probablemente a la vista.

e invocar peticiones al modelo y probablemente a la vista. Con el modelo MVC cada tipo
e invocar peticiones al modelo y probablemente a la vista. Con el modelo MVC cada tipo
e invocar peticiones al modelo y probablemente a la vista. Con el modelo MVC cada tipo

Con el modelo MVC cada tipo de objeto es responsable de una cosa, lo que simplifica el desarrollo, comprensión y la realización de pruebas del código fuen- te. Además, es fácil remplazar las vistas, o tener más de una actuando sobre los mismos datos.

En el caso de las aplicaciones Silverlight, el .NET Framework dispone de la capacidad de usar enlaces (bindings) para transferir directamente datos desde el controlador hacia la vista, por lo que el controlador solo es responsable de imple-

1060

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

mentar el comportamiento de esta. En este caso, el controlador se denomina mo- delo de vista (view model), dando origen al patrón MVVM donde:

El modelo. Representa los datos o información con la que se trabaja y en la mayoría de los casos la lógica de negocio asociada. Debe encontrarse comple- tamente aislado de la interfaz de usuario.

La vista. Representa la información en la interfaz de usuario y es capaz de aceptar la entrada de datos del usuario a través de controles, teclado, ratón u otros elementos en forma de controles desde la interfaz gráfica.

El modelo-vista. Objeto que separa y aísla completamente a la vista del mode- lo, se puede pensar en este tipo de objetos como una abstracción de la vista, que además hace las funciones de intermediario, transformando los datos reci- bidos del modelo en datos aptos para la vista y viceversa.

bidos del modelo en datos aptos para la vista y viceversa. Por lo tanto MVVM comparte
bidos del modelo en datos aptos para la vista y viceversa. Por lo tanto MVVM comparte
bidos del modelo en datos aptos para la vista y viceversa. Por lo tanto MVVM comparte

Por lo tanto MVVM comparte todos los beneficios de MVC, pero con una ventaja adicional: la simplificación que resulta de usar enlaces declarativos para transferir los datos desde y hacia el modelo a la vista.

la simplificación que resulta de usar enlaces declarativos para transferir los datos desde y hacia el

APÉNDICE B

F.J.Ceballos/RA-MA

PÁGINAS WEB

¿Quién no ha oído hablar de Internet? La respuesta es evidente, porque donde quiera que esté oirá hablar de Internet. ¿Por qué? Porque hoy en día forma parte del mundo de los negocios y del comercio, aunque en sus inicios no fue ésta la in- tención. Hay muchas empresas que le proporcionan conexión las 24 horas del día por un precio asequible. Pero, ¿qué es Internet?, ¿qué servicios ofrece?

¿QUÉ ES INTERNET?

Internet, es decir, inter-red, es una red de redes informáticas distribuidas por todo el mundo que intercambian información entre sí mediante la familia de protocolos TCP/IP. Puede imaginarse Internet como una gran nube con ordenadores conecta- dos:

Internet como una gran nube con ordenadores conecta- dos: Cliente Servidor Cliente Internet surgió de un

Cliente

como una gran nube con ordenadores conecta- dos: Cliente Servidor Cliente Internet surgió de un programa
como una gran nube con ordenadores conecta- dos: Cliente Servidor Cliente Internet surgió de un programa

Servidor

gran nube con ordenadores conecta- dos: Cliente Servidor Cliente Internet surgió de un programa de investigación

Cliente

Internet surgió de un programa de investigación realizado por la Agencia de Proyectos de Investigación Avanzados de Defensa (DARPA) de los Estados Uni- dos sobre la conexión de redes informáticas. El resultado fue ARPANet (1969). Esta red crece y a principios de los años 80 se conecta con CSNet y MILNet, dos redes independientes, lo que se considera como el nacimiento de Internet (Inter-

1062

ENCICLOPEDIA DE MICROSOFT VISUAL BASIC

national Network of computers). También forman parte de esta red NSI (NASA Science Internet) y NSFNet (National Science Foundation Net).

Durante muchos años Internet ha servido para que muchos departamentos de investigación de distintas universidades distribuidas por todo el mundo pudieran colaborar e intercambiar información. Sólo recientemente ha comenzado a formar parte de los negocios y de nuestra vida cotidiana.

Internet ha hecho que el mundo empresarial se haya replanteado sus sistemas de comunicación internos y externos y en la mayoría de los casos los haya encau- zado vía Internet. Esto ha dado lugar a dos subpoblaciones dentro de Internet: in- tranets y extranets.

Intranet

Una intranet no es más que una red local que utiliza los mismos protocolos que Internet, independientemente de que esté o no conectada a Internet. ¿Qué ventajas tiene una intranet? Fundamentalmente dos: independencia de los proveedores ha- bituales de soluciones y una única forma de trabajar que evita tener que aprender sistemas nuevos, lo que redunda en un ahorro de formación. Por otra parte, una intranet suele estar dotada de una velocidad bastante mayor que la habitual en In- ternet, lo que posibilita una comunicación muy fluida, incluso, cuando se trata de flujos de información multimedia.

Terminología Internet

Desde el punto de vista físico, Internet no es una simple red, sino miles de redes informáticas que trabajan conjuntamente bajo los protocolos TCP/IP (Transmision Control Protocol/Internet Protocol - Protocolo de Control de Transmisiones/Pro- tocolo Internet), entendiendo por protocolo un conjunto de normas que regulan la comunicación entre los distintos dispositivos de una red. Desde el punto de vista del usuario, Internet es una red pública que interconecta universidades, centros de investigación, servicios gubernamentales y empresas.

El conjunto de protocolos de Internet está compuesto por muchos protocolos relacionados con la asociación formada por TCP e IP y relacionados con las dife- rentes capas de servicios de la red; esto es, las funciones de una red se pueden agrupar en capas de servicios de la red. Imagínese las capas como distintas esta- ciones por las que debe pasar un paquete de información cuando realiza la ruta de un ordenador a otro conectados a diferentes puntos dentro de Internet. Por ejem- plo, el protocolo TCP/IP visto desde este punto de vista puede imaginárselo de forma resumida así:

APÉNDICE B: PÁGINAS WEB

1063

Aplicación (FTP, Telnet, Gopher, Word Wide Web) API de Windows Sockets

Transporte (TCP y UDP)

Red

(IP)

Enlace (controlador de dispositivo, tarjeta de red, protocolos de control de la línea)

Entre dos capas puede haber una interfaz de programación (API) para inter- pretar los mensajes o paquetes a medida que van pasando.

Utilizar una interfaz de programación, como la API de Windows Sockets, li- bera al programador de tratar con detalles de cómo se pasan los paquetes de in- formación entre las capas inferiores.

Las capas de enlace y de red se encargan de empaquetar la información y de