Click here to load reader
Upload
edwinalb
View
704
Download
332
Embed Size (px)
DESCRIPTION
Diseño web
Citation preview
A C C E S O A L O S C A P T U L O S A D IC IO N A L E S D E L L IB R O
Para acceder a los captulos 19 a 29 y apndices E y F (todos en ingls) mencionados en el texto, visite el sitio Web del libro:
www.pearsonenespaol.com /deitel
Utilice una moneda para descubrir el cdigo de acceso.(No use objetos filosos |>orque podra daarlo).
r 1
l_ J
IMPORTANTEEste cdigo de acceso tiene vigencia de 2 dias!
Asegrese que el cdigo no aparezca d a ad o ya que slo puede usarse una vezy no ser reem plazado en ningn caso.
www.detodoprogramacion.com
Internet &World Wide WebCMO PROGRAMAR
www.detodoprogramacion.com
www.detodoprogramacion.com
Internet & World Wide WebCMO PROGRAMARQuinta edicin
Paul DeitelD e i te l & A ssociates, Inc.
Harvey DeitelD e ite l & A ssociates, Inc.
Abbey DeitelD e ite l & A ssociates, Inc.
T r a d u c c i n
Alfonso Vidal Romero ElizondoIngeniero en Sistemas Electrnicos
ITESM , Campus Monterrey
R e v b i n t c n ic a
Sergio Fuenlabrada Veliz que/Edna M artha M iranda Chvcz
Jos Luis Lpez Goytia Judith Sonck Ixdczm a
M ario Alberto Sesma M artnez sk a r A rm ando Gmez Coronel
Academia de Computacin Unidad Profesional Interdisciplinaria de Ingeniera y Ciencias Sociales y Administrativas (UPI1CSA)
Instituto Politcnico Nacional, Mxico
Sandra Luz G m ez CoronelAcademia de Electrnica
Unidad Profesional Interdisciplinaria de Ingeniera y Tecnologas Avalizadas (UPITEA)Instituto Politcnico Nacional, Mxico
PEARSON
www.detodoprogramacion.com
D a to s d e c a ta lo g a c i n b ib lio g rfica
DEITEL, PAUL; DEITEL, HARVEY Y DEITEL, ABBEY
Cmo programar Internet & World Wide Web
Quinta edicin
PEARSON EDUCACIN. Mxico. 2014
ISBN: 978-607-32-2290-7
rea: Computacin
Formato: 20 x 25.5 cm Pginas: 720
Authorizcd translation from thc English languogc cdition cntitlcd INTERNET AND WORLD WIDE WEB HOW TO PROCiRAM, 5th cdition by (HARVEY & PAUL) DEITEL & ASSOCIATES; HARVEY DEITEL; ABBF.Y DEITEL, publishcd by Pcarson Education, Inc., publishing as Prenticc Hall, Copyright C 2012. Alt rights rcscrvcd.ISBN 9780132151009
Traduccin autorizada de la edicin en idioma ingles titulada IN IERNET AND WORLD WIDE WEB HOW TO PROGRAM, 5* edicin por (HARVEY & PAUL) DEITEL & ASSOCIATES; HARVEY DEITEL; ABBEY DEITEL, publicada por Pcarson Education, Inc., publicada como Prentioe Hall, Copyright O 2012. Todos los derechos reservados.
Esta edicin en espaol es la nica autorizada.
QUINTA EDICIN, 2014
Edicin en espaol
Direccin General:Direccin Educacin Superior:Editor Sponsor:
Editor de Desarrollo:Supervisor de Produccin:Gerencia Editorial
Educacin Superior Latinoamrica:
Philip de la VegaMario Co nuerasLuis M. Cruz Castilloc-mail: [email protected] Gutirrez HernndezGustavo Rivas Romero
Marisa de Anta
D.R. 2014 por Pcarson Educacin de Mxico, S.A. de C.V.Atlaoomulco 500-5o. pisoCol. Industrial Atoto, C.P. 53519Nnucalpan de Jurez, Estado de Mxioo
Cmara Nacional de la Industria Editorial Mexicana. Reg. nm. 1031.
Reservados todos los derechos. Ni la totalidad ni parte de esta publicacin pueden reproducirse, registrarse o transmitirse, por un sistema de recuperacin de informacin, en ninguna forma ni por ningn medio, sea electrnico, mecnico, foloquimico, magntico o clectroptico, por fotocopia, grabacin o cualquier otro, sin permiso previo por escrito del editor.
El prstamo, alquiler o cualquier otra forma de cesin de uso de este ejemplar requerir tambin la autorizacin del editor o de sus representantes.
ISBN VERSIN IMPRESA: 978-607-32-2290-7 ISBN VERSIN E-BOOK: 978-607-32-2291-4 ISBN F.-CHAPTF.R: 978-607-32-2292-1
Impreso en Mxico. Printed in Mxico. 1 2 3 4 5 6 7 8 9 0 - 16 15 14 13
PEARSONwww.pearsonenespanol.com
www.detodoprogramacion.com
En memoria de TauC(.Baran,
diseador de Ca red de comunicaciones distribuidas y de [a conmutacin de paquetes, que Ce sobreviven y forman Ca base de Cos protocolos u tidzados en Internet en Ca actuaddad.
Paul, Harvey y Abbey Dettel
www.detodoprogramacion.com
Marcas registradas
deitrl, d insecto con los dos pulgares hacia artiba y dive into son marcas registradas de Oeitel & Associates, Inc.
Apache es marca rcgisrmda de The Apache Software R>undation.
Apple, iPhonc, iPad, OS y Safari son marcas registradas de Apple. Inc.
CSS, D O M , X H TM L y XML son marcas registradas del Consorcio World W ide Web.
Firefbx es marca registrada de Mozilla Foundation.
Googlc es marca registrada de Google. In c
JavaScript, Java y todas las marcas basadas en Java son marcas comerciales o registradas de Oracle en Estados Unidos y otros pases.
Microsoft, Internet Explorer, Sihrerlight y el logotipo de W indows son marcas comerciales o registradas de Microsoft Corporation en Estados Unidos y/o en otros pases.
Opera es marca registrada de O pera Software.
www.detodoprogramacion.com
Prefacio xix
Antes de empezar xxxi
1 Introduccin a las computadoras e Internet I1.1 Introduccin 2
1.2 Internet en la industria y la investigacin 31.3 H T M L 5, CSS3, JavaScript, Canvas y jQ uery 6
1.4 Demostraciones 9
1.5 Evolucin de Internet y de la W orld W ide Web 10
1.6 Fundamentos de la Web 12
1.7 Arquitectura de aplicaciones multinive! 16
1.8 Com paracin entre las secuencias de comandos del lado del cliente y del lado del servidor 17
1.9 Consorcio W orld W ide Web (W 3C ) 181.10 Web 2.0: a socializar 18
1.11 Jerarqua de datos 23
1.12 Sistemas operativos 251.12.1 Sistemas operativos de escritorio y de Notcbook 25
1.12.2 Sistemas operativos mviles 26
1.13 Tipos de lenguajes de programacin 271.14 Tecnologa de objetos 29
1.15 M antenerse actualizado con las tecnologas de la informacin 31
2 Introduccin a HTML5: parte I 372.1 Introduccin 38
2.2 Edicin de H T M L 5 382.3 El primer ejemplo de H T M L 5 38
2.4 Servicio de validacin de H TM L5 del W 3C 41
2.5 Encabezados 41
www.detodoprogramacion.com
2.6 Vinculacin 42
2.7 Imgenes 45
2.7.1 A tributo a l t 472.7.2 Elementos vacos 47
2.7.3 Uso de imgenes como hipcrvnculos 47
2 .8 Caracteres especiales y reglas horizontales 49
2 .9 Listas 51
2.10 Tablas 54
2.11 Formularios 58
2.12 Vinculacin interna 65
2.13 Elementos meta 67
2.14 Recursos Web 69
3 Introduccin a HTML5: parte 2 763.1 Introduccin 77
3.2 Nuevos tipos 1nput de formularios de H T M L 5 77
3.2.1 in p u t tipo c o lo r 80
3.2.2 In p u ttip o d a te 82
3.2.3 in p u t tipo da te tim e 82
3.2.4 in p u t tipo d a te tlm e - lo c a l 82
3-2.5 in p u t tipo em ail 83
3.2.6 in p u t tipo month 84
3.2.7 in p u t tiponum ber 84
3.2.8 in p u t tipo range 85
3-2.9 in p u t tipo sea rch 85
3.2.10 in p u t tipo t e l 86
3-2.11 In p u t tipo tim e 86
3.2.12 in p u t tipo u r l 87
3.2.13 In p u t tipo week 87
3.3 Elementos in p u t y d a t a l i s t y el atributo autocom plete 87
3-3.1 A tributo a u to c o n p le te del elemento in p u t 87
3.3.2 Elemento d a t a l i s t 90
v i i i Contenido
www.detodoprogramacion.com
ix
90
96
96
96
96
96
96
96
97
98
98
105106
106
108
111
114
116
118
120
122
123
127
130
132
136
Elementos de estructura de pgina
3.4.1 Elemento header
3.4.2 FJemcnto nav
3.4.3 Elemento f ig u re y elem ento f ig e a p tio n
3.4.4 Elemento a r t i c l e
3.4.5 Elemento summary y elemento d e ta l l s
3.4.6 Elemento s e c tio n
3.4.7 Elemento a s ld e
3.4.8 Elemento m eter
3.4.9 Elemento fo o te r
3.4.10 Semntica a nivel de texto: elemento mark y elemento wbr
Introduccin a las hojas de estilo en cascada (Cascading Style Sheets, CSS): parte IIntroduccin
Estilos en lnea
Hojas de estilo incrustadas
Estilos conflicruados
Vinculacin de hojas de estilo externas
Pos icio namiento de los elementos: posicionam icnto absoluto, z-Index
Posicionamiento de los elementos: posicionamiento relativo, span
Fondos
Dimensiones de los elementos
Modelo de cajas y flujo del texto
Tipos y consultas de medios
Mens desplcgables
(Opcional) Hojas de estilo de usuarios
Recursos Web
www.detodoprogramacion.com
X Contenido
5 Introduccin a las hojas de estilo en cascada(Cascading Style Sheets , CSS): parte 2 142
5.1 Introduccin 143
5.2 Sombras de texto 143
5-3 Esquinas redondeadas 144
5.4 Color 145
5.5 Sombras de cajas 146
5.6 Gradientes lineales: introduccin a los prefijos de proveedor 148
5.7 Gradientes radiales 151
5.8 (Opcional: Web Kit solamente) Trazo de texto 153
5.9 Mltiples imgenes de fondo 153
5.10 (Opcional: W ebKit solamente) Reflejos 155
5.11 Bordes de imgenes 156
5.12 Animacin: selectores 159
5.13 Transiciones y transformaciones 162
5.13.1 Las propiedades t r a n s l t lo n y tra n s fo rm 162
5.13.2 Inclinacin 164
5.13.3 Transiciones entre imgenes 165
5.14 Descarga de fuentes Web y la regla fon t-face 166
5.15 M dulo de diseo de caja flexible y selectores : n th -c h i Id 168
5.16 Diseo m ulticolum na 171
5.17 Consultas de medios 173
5.18 Recursos Web 177
6 JavaScript:introduccin a las secuencias de comandos 185
6.1 Introduccin 186
6.2 Su primera secuencia de comandos: m ostrar una lnea de texto conJavaScript en una pgina Web 186
6.3 Cm o modificar su prim era secuencia de com andos 189
www.detodoprogramacion.com
Contenido x i
6.4 Cmo obtener la entrada del usuario mediante dilogos prompt 192
6.4.1 Pgina de bienvenida dinm ica 192
6.4.2 Suma de enteros 196
6.5 Conceptos de la memoria 199
6 .6 Aritmtica 200
6.7 Toma de decisiones: operadores de igualdad y relacinales 202
6 .8 Recursos W eb 207
7 JavaScript: instrucciones de control I 2147.1 Inirod uccin 215
7 .2 Algoritmos 215
7 .3 Pscudocdigo 215
7 .4 Instrucciones de control 215
7 .5 Instruccin de seleccin 1f 218
7 .6 Instruccin de seleccin i f . . . e l s e 219
7 .7 Instruccin de repeticin whi le 223
7 .8 Formulacin de algoritmos: repeticin controlada por contador 225
7 .9 Formulacin de algoritmos: repeticin controlada por centinela 228
7 .10 Formulacin de algoritmos: instrucciones de control anidadas 234
7.11 Operadores de asignacin 238
7.12 Operadores de incremento y decrcm ento 239
7.13 Recursos W eb 242
8 JavaScript: instrucciones de control II 2 5 18.1 Introduccin 252
8.2 Fundamentos de la repeticin controlada por contador 252
8.3 Instruccin de repeticin fo r 253
8.4 Ejemplos sobre el uso de b instruccin fo r 256
8.5 Instruccin de seleccin mltiple svritch 261
8.6 Instruccin de repeticin d o . . .w h lle 264
8.7 Instrucciones break y co n tin u 266
www.detodoprogramacion.com
x Contenido
8.8 Operadores lgicos 268
8.9 Recursos Web 271
9 JavaScript: funciones 2789.1 Introduccin 279
9.2 Mdulos de programas en JavaScript 279
9.3 Definiciones de (unciones 280
9.3-1 La (uncin cuadrado definida por el program ador 281
9.3.2 La (uncin mximo definida por el program ador 283
9.4 Notas sobre las (unciones definidas por el programador 285
9.5 Generacin de nmeros aleatorios 286
9.5.1 Escalar y desplazar nmeros aleatorios 286
9-5.2 Visualizar imgenes aleatorias 287
9.5.3 Tirar el dado repetidas veces y m ostrar las estadsticas 291
9.6 Ejemplo: Juego de probabilidad; introduccin a los elementos audio y v ideo de H TM L5 296
9 .7 Reglas de alcance 306
9.8 Funciones globales de JavaScript 308
9.9 Recursividad 309
9.10 Com paracin entre recursividad e iteracin 313
10 JavaScript: arreglos 32410.1 Introduccin 325
10.2 Arreglos 325
10.3 Declaracin y asignacin de arreglos 327
10.4 Ejemplos del uso de arreglos 327
10.4.1 Creacin, iniciaiizacin y aum ento del tam ao de arreglos 327
10.4.2 Iniciaiizacin de arreglos con listas inidalizadoras 331
10.4.3 Suma de los elementos de un arreglo con fo r y f o r . . . in 332
10.4.4 Uso de los elementos de un arreglo como contadores 334
10.5 Generador de imgenes al azar m ediante el uso de arreglos 337
www.detodoprogramacion.com
Contenido x i
10.6 Referencias y parmetros de referencia 339
10.7 Paso de arreglos a funciones 340
10.8 O rdenam iento de arreglos m ediante el mtodo s o r t de A rray 343
10.9 Bsqueda en arreglos con el m todo 1 ndexOf de A rray 344
10.10 Arreglos multidimensionales 347
I I JavaScript: objetos 36011.1 Introduccin 361
11.2 O bjeto Math 361
11.3 O bjeto S tr in g 363
11.3.1 Fundamentos de caracteres y cadenas 363
11.3.2 Mtodos del objeto S tr ln g 363
11.3.3 Mtodos de procesamiento de caracteres 365
11.3.4 Mtodos de bsqueda 366
11.3.5 Divisin de cadenas y obtencin de subeadenas 369
11.4 O bjeto Date 371
11.5 Objetos Bool ean y Number 376
11.6 O bjeto document 377
11.7 Bsquedas favoritas en T w itter almacenamiento Web de H TM L5 378
11.8 Uso de JSO N para representar objetos 385
12 Modelo de objetos de documento (DOM ):objetos y colecciones 395
12.1 Introduccin 396
12.2 Modelado de un docum ento: nodos y rboles del D O M 396
12.3 Recorrido y modificacin de un rbol de D O M 399
12.4 Colecciones del D O M 409
12.5 Estilos dinmicos 411
12.6 Usa de un tem porizador y de estilos dinmicos para crear efectos anim ados 413
www.detodoprogramacion.com
423
423
425
429
433
436
438
440
440
44445
445
446
448
450
452
454
456
457
459
461
463
467
468
468
470
472
Contenido
Modelo de objetos de JavaScript: un anlisis ms detalladointroduccin
Repaso del evento load
El evento mousemove y el objeto even t
Sustituciones con mouseover y mouseout
Procesamiento de formularios con focus y bl ur
Ms procesamiento de formularios con subm it y re s e t
Burbujeo de eventos
Ms eventos
Recurso Web
HTML5: introduccin a canvasIntroduccin
Sistema de coordenadas de canvas
Rectngulos
Uso de rutas para dibujar lincas
D ibujo de arcos y crculos
Sombras
C u n as cuadrticas
C u n as de Bezier
Gradientes lineales
Gradientes radiales
Imgenes
M anipulacin de imgenes: procesamiento de los pxeles individuales de un canvas
Patrones
Transformaciones
14.14.1 M todos s c a le y t r a n s a t e : dibujo de elipses
14.14.2 M todo r o t a t e : creacin de una animacin
14.14.3 M todo t r a n s fo m : dibujo de rectngulos sesgados
www.detodoprogramacion.com
X V
474
476
477
479
482
484
484
486
487
487
488
489
492
493
494
496
496
498
499
51 I512
512
515
521
523
526
534
534
537
Contenido
Tocto
Ajuste del tamao del elemento canvas para llenar la ventana del navegador
Transparencia alfa
Composicin
Ju eg o del ca n
14.19.1 Docum ento de H TM L5
14.19.2 Variables de instancia y constantes
14.19.3 Funcin c o n fig u ra r Juego
14.19.4 Funciones In lc ia rT em p o rizad o r y detenerT em porlzador
14.19.5 Funcin re in ica rE lem en to s
14.19.6 Funcin nuevoJuego
14.19.7 Funcin a c tu a lIz a rP o s ic io n e s : anim acin manual cuadro por cuadro y deteccin de colisiones simple
14.19.8 Funcin dispararB alaD eC anion
14.19.9 Funcin a l InearC anion
14.19.10 Funcin d ib u ja r
14.19.11 Funcin m ostrarO lalogoJuegoTerinlnado
Mtodos save y re s to re
Una nota sobre SVG
Una nota sobre canvas 3D
XM LIntroduccin
Fundamentos de XM L
Estructuracin de datos
Espacios de nombres de XML
Definiciones de tipo de docum ento (D T D )
D ocum entos de esquemas XM L del W 3C
Vocabularios de XML
15.7.1 M athM L
15.7.2 O tros lenguajes de marcado
www.detodoprogramacion.com
x v i Contenido
15.8 Lenguaje de hojas de estilos cxtcnsiblc y transformaciones XSL 538
15.9 Modelo de objetos de docum ento (D O M ) 547
15.10 Recursos Web 565
16 Aplicaciones enriquecidas de Internethabilitadas para Ajax con XM L y JSON 571
16.1 Introduccin 572
16.1.1 Com paracin entre aplicaciones Web tradicionales y aplicaciones Ajax 573
16.1.2 Aplicaciones Web tradicionales 573
16.1.3 Aplicaciones Web Ajax 574
16.2 Aplicaciones enriquecidas de Internet (RIA) con Ajax 574
16.3 Historia de Ajax 577
16.4 Ejemplo crudo de Ajax mediante el uso del objeto XMLHttpRequest 577
16.4.1 Solicitudes asincronas 578
16.4.2 Manejo de excepciones 581
16.4.3 Funciones de rcrrollamada (callbadc) 582
16.4.4 Evento, propiedades y m todos del objeto XMLHttpRequest 582
16.5 Uso de XML y el D O M 583
16.6 Creacin de una aplicacin real com patible con Ajax 587
16.6.1 Uso de JSO N 587
16.6.2 Funcionalidad enriquecida 588
16.6.3 Interaccin con un servicio Web en el servidor 597
16.6.4 Anlisis de datos de JSO N 597
16.6.5 Crear elementos de H TM L5 y establecer manejadoras de eventos al instante 598
16.6.6 Im plem entacin de escritura adelantada 598
16.6.7 Im plem entacin de un formulario con validacin asincrona 599
I 7 Servidores Web (Apache y US) 60517-1 Introduccin 606
17.2 Transacciones de H T T P 606
17.3 Arquitectura de aplicacin multinivel 610
17.4 Com paracin entre secuencia de comandos del lado cliente y del lado servidor 611
www.detodoprogramacion.com
x v ii
611
611
612
612
613
613
614
614
614
614
615
617618
618
620
623
624
624
626
628
629
631
631
632
633
634
634
635
637
642
644
Acceso a servidores Web
Instalacin de Apache, M ySQL y PH P
17.6.1 Instalacin de XAMPP
17.6.2 Ejecucin de XAMPP
17.6.3 Pruebe su configuracin
17.6.4 Ejecucin de los ejemplos mediante el servidor H T T P Apache
Microsoft IIS Express y WcbMatrix
17.7.1 Instalacin y ejecucin de IIS Express
17.7.2 Instalacin y ejecucin de WebMatrix
17.7.3 Ejecucin de los ejemplos del lado cliente usando US Express
17.7.4 Ejecucin de los ejemplos de PH P usando IIS Express
Base de datos: SQL, MySQL, LINQ y Java DBIntroduccin
Bases de datos relacinales
Generalidades acerca de las bases de datos relacinales: h base de datos Books
SQL
18.4.1 Consulta SELECT bsica
18.4.2 La clusula WHERE
18.4.3 La clusula ORDER BY
18.4.4 Cmo fusionar datos de varias rabias: INNER J0IN
18.4.5 La instruccin INSERT
18.4.6 La instruccin UPDATE
18.4.7 La instruccin DELETE
MySQL
18.5.1 Instrucciones para configurar una cuenta de usuario de M ySQL
18.5.2 Creacin de bases de datos en MySQL
(Opcional) Consultas integradas en lenguajes (L IN Q ) de Microsoft
18.6.1 Consultar un arreglo de valores i n t mediante L IN Q
18.6.2 Consultar un arreglo de objetos Employee mediante L IN Q
18.6.3 Consultar una coleccin genrica mediante L IN Q
(Opcional) L IN Q para SQ L
www.detodoprogramacion.com
x v i i i Contenido
18.8 (Opcional) Consultar una base de datos con L IN Q 645
18.8.1 Creacin de clases de L IN Q para SQ L 645
18.8.2 Vinculaciones de datos entre controles y las clases de L IN Q para SQ L 648
18.9 (O pcional) Vinculacin dinmica de resultados de consultas de L IN Q para SQ L 652
18.9.1 Creacin de b G U I DisplayQueryResult 652
18.9.2 Codificacin de la aplicacin D isp lay Query R e su lt 654
18.10 Java DB/Apache Derby 656
A Caracteres especiales de HTML A l
B Colores de HTML Bl
C Tabla de precedencia de operadores de JavaScript Cl
D Conjunto de caracteres ASCII DI
ndice 11
Los captulos 19 a 29 y apndices E y F se encuentran en su id iom a original (ingls) en el sitio web del libro.
1 9 P H F
20 Web App Development with ASP.NET in C#2 I Web App Development with ASP.NET in C#: A Deeper Look22 Web Services in C#23 Web App Development with ASP.NET in Visual Basic24 Web App Development with ASP.NET in VB: A Deeper Look25 Web Services in Visual Basic26 JavaServer* Faces Web Apps: Part I27 JavaServer' Faces Web Apps: Part 228 JavaServer in Java29 HTML5 WebSockets and Web Workers Apndices E y F
www.detodoprogramacion.com
La ciencia, la tecnologa y las diversas formas de arte, todas unen a la humanidad en un solo sistema nter conectado.
-Z hores Alcksandrovich Medvcdc
Bienvenido a la programacin en Internet y Web. Este libro presenta tecnologas de com putacin de vanguardia para estudiantes, profesores y desarro liado res de software.
El m undo de la com putacin en especial, el de la programacin en Internet y Web cambia de manera constante. Esta nueva edicin se enfoca en H TM L5 y las tecnologas relacionadas en su ecosistema. Analizaremos con detalle las nuevas y emocionantes caractersticas de H TM L5, CSS3. la ms reciente edicin de JavaScript (ECM AScripr 5) y el elemento canvas de H TM L5. Nos enfocamos en tecnologas clave populares que le ayudarn a crear aplicaciones basadas en W eb e In ternet para n teractuar con otras aplicaciones y bases de datos, las cuales forman la base de los tipos de aplicaciones en red de nivel empresarial que son populares en la industria actual.
Este libro es apropiado para cursos de programacin del lado del d ien te y del lado del servidor, tanto a nivel introductorio com o intermedio. Tambin es adecuado para profesionales que deseen actualizar sus aptitudes tcnicas con las tecnologas ms recientes de programacin en Internet y Web.
La base del libro es el reconocido mtodo de cdigo activo de Dcitel: los conceptos se presentan en el contexto de docum entos H T M L 5 funcionales completos, hojas de estilo CSS3, secuencias de com andos de JavaScript, docum entos de XML. programas y archivos de bases de datos, en vez de hacerlo a travs de fragmentos separados de cdigo. Cada ejemplo de cdigo completo viene acompaado de ejemplos de ejecuciones reales. El cdigo fuente est disponible, en ingls, en la pgina del autor (w vw .deitel .com /books/i w 3htp5/) y en el sitio Web de este libro.
Si surge alguna duda o pregunta a medida que lea el libro, enve un correo electrnico a d e i t e l f l d e i t e l . com; le responderemos oportunam ente. Para obtener actualizaciones sobre este libro, visite *Avw.deitel .com/ b o o k s/iw 3 h tp 5 /, nase a nuestras com unidades en Facebook (w w w .faceb o o k .co m /d e ite lfan ) y Tw itter (@ deitel), o suscrbaseal boletn electrnico Dciut* Suzz Online (www .d e i t e l .c o m /n e w s le tte r /su b sc r ib e . html).
Caractersticas nuevas y actualizadasHe aqu las actualizaciones que realizamos en esta nueva edicin:
Nuevo capitulo 1. El nuevo captulo 1 atrae el inters de los estudiantes con hechos y cifras interesantes, para emocionarlos en cuanto al hecho de estudiar el desarrollo de aplicaciones de Internet y Web. El captulo incluye una tabla de una parte de la investigacin hecha posible por las computadoras e Internet, las tendencias de tecnologa y discusiones sobre el hardware actuales, una tabla de publicaciones de
www.detodoprogramacion.com
X X Prefacio
negocios y de tecnologa, y sitios Web que le ayudarn a m antenerse actualizado con las noticias y tendencias ms recientes sobre tecnologa, adems de ejercicios actualizados.
Nuevas caractersticas de H TM L5. El captulo 3 introduce las caractersticas ms recientes de H TM L5, incluyendo los nuevos tipos de entradas de formularios de H TM L5 y los elementos de estructura de pgina (figura 1). luis nuevas caractersticas de HTM 1.5 no se imp/ementan de manera universal en todos los tuivegadores Web. Esto est cam biando a m edida que los proveedores de navegadores liberan nuevas versiones. Hablaremos sobre muchas caractersticas adicionales de H TM L5 en el resto del libro.
Nuevas caractersticas de HTML5
Tipos de entradas de formulario
coloremailsearchweek
datenoothte lelemento Input
Elementos de estructura de pgina
headera r t lc lemeter
navsumnaryfooter
datetlnenunbertlMelemento d a ta lls t
datetlne-localrangeurlatributo autoconplete
figure flgcaptlonsectlon asldesemntica a nivel de texto (marcado de saltos de lnea potenciales)
Figura I | Nuevos tipos de entradas de formulario y elementos de estructura de pgina de HTML5.
Nuevas caractersticas de C SS3. E l captulo 5 in troduce las caractersticas ms recientes d e CSS3 (figura 2). Las nuevas caractersticas de CSS3 no se implementan de numera universal en todos los navegadores Web. Esto est cam biando a medida que los proveedores de navegadores liberan nuevas versiones.
Nuevas caractersticas de CSS3
som bras d e texto
som bras d e cuadros
m ltiples imgenes de fondo
transiciones
M dulo de diseo de cuadro
flexible
consultas d e m edios
esquinas redondeadas
gradientes lineales
bordes de imgenes
transformaciones
selectores : n t h - c h i l d
Caractersticas que no son estndar
tex t-stroke reflexin
color
gradientes radiales
anim aciones
regla fo n t-fa c e
diseos de varias colum nas
Figura 2 | Nuevas caractersticas de CSS3
www.detodoprogramacion.com
Caractersticas nuevas y actualizadas x x i
Tratam iento actualizado de JavaScript. Reforzamos la cobertura de JavaScript en los caprulos 6 al 16. JavaScript se ha convertido en el lenguaje de secuencias de comandos del lado del cliente estndar por excelencia para aplicaciones basadas en Web, debido a su naturaleza altam ente portable. Nuestro enfoque, que es apropiado para principiantes, sirve para dos fines: introduce las secuencias de comandos del lado del cliente (captulos 6 al 16) para que las pginas Web sean ms dinmicas e interactivas, y proporciona la base de programacin para las secuencias de comandos del lado del servidor en PH P que se presentan en el capitulo 19. JavaScript es similar a las caractersticas fundamentales de los lenguajes C, C++, C # y Java. Una vez que aprenda JavaScript le ser ms fcil aprender estos otros lenguajes de programacin populares.
Nuevo canvas de H T M IS . El captulo 14 sustituye los captulos de Flash y Silverlight de la edicin anterior con el nuevo elemento canvas de H TM L5 para grficos en 2D (figura 3). canvas est integrado al navegador, con lo que se elimina la necesidad de com plem entos como Flash y Silverlight y nos ayuda a mejorar el rendim iento y la conveniencia, adems de reducir costos. Al final del captulo usar canvas para crear un juego d e can anim ado con efectos de audio, como el que creamos en Flash en ediciones anteriores de este libro.
Caractersticas de canvas de HTML5
rectngulos
som bras
lincas
curvas cuadrticas
gradientes lineales gradientes radiales
imgenes patrones
transparencia alfa composicin
Figura 3 | Caractersticas de canvas de HTML5.
arcos y crculos
curvas de Bczicr
m anipulacin de imgenes
Transformaciones
Ejercicios de m ultim edia nuevos y actualizados. El captulo 14 incluye varios ejercidos multimedia nuevos y actualizados (figura 4).
Ejercicios de multimedia nuevos y actualizados
M ejoras al juego d d can
Anim acin
Signo de m arquesina dcsplazablc
Audio dinm ico y caleidoscopio grfico
Bandido de un solo brazo
Juego de billar
Crucigram a
Imgenes giratorias
Transicin aleatoria en tre imgenes
M arquesina de im genes desplaza ble
G enerador de rompecabezas autom tico
C arrera de caballos
D iseador de fuegos artificiales
Acertijo del 15
C olorear fotografas c imgenes en blanco y negro
R doj digital
A udio de fondo
R doj anlogo
G enerador de laberintos y cam inante
Tejo
Planificador d e pisos
Probador de tiem po de reaccin
R obot aspiradora
Probador de la vista
Figura 4 | Ejercicios multimedia nuevos y actualizados.
www.detodoprogramacion.com
x x Prefacio
Cdigo evaluado en siete navegadores. Para la edicin an te rio r probam os el cdigo en dos navegadores de escritorio: In ternet Explorer y Firefox. A hora probam os todo el cdigo en las versiones ms actuales d e siete navegadores populares: cinc para el e sc r ito r io (C h ro m c, In te rn e t E xp lo rer, F irefox, O p e ra y S afari) y dos para dispositivos m viles (iP h o n e /iP ad y A n d ro id ). H TM L5 y CSS3 estn en evolucin, por lo que no se han aprobado an los estndares finales. Los proveedores de navegadores estn im plcm entando caractersticas de m anera selectiva, que tienen una buena probabilidad d e estandarizarse. A lgunos proveedores tienen mayores niveles de cum plim ien to que otros con respecto a las caractersticas. C on cada nueva versin d e los navegadores, la tendencia ha sido aum entar de m anera considerable el grado de funcionalidad im plem cntado. El sitio de p rueba de H T M L 5 (h tm l5 te s t.co m ) m ide qu tan bien soporta cada navegador los estndares y especificaciones pendientes. Puede ver los resultados de las pruebas y las caractersticas soportadas p o r cada navegador. Tam bin puede revisar sitios com o h t tp : / / c a n iu s e .c o m / , en donde ob tendr una lista de las caractersticas cubiertas por cada navegador. No todos los documentos en este libro se desplegarn correctamente en todos los navegadores. En vez de elegir slo capacidades que existan de m anera u n iversal, dem ostram os las caractersticas nuevas y em ocionantes en el navegador que m aneje m ejor esas funcionalidades. A m edida que lea este libro, ejecute cada ejem plo en varios navegadores Web para que pueda verlo c in tcractuar con l d e la m anera que se p lane originalm ente. Y recuerde que todo est cam biando con rapidez, as que tal vez un navegador que no soportaba cierta caracterstica al m om ento de escribir este libro podra soportarla al m om ento en que usted lo lea.
Cdigo H T M L 5, C SS3 y JavaScrip t va lidado. Todo el cdigo H T M L 5, CSS3 y JavaScript en el libro se valid m edian te el uso de v a l1 d a to r .w 3 .o rg /p a ra H T M L 5, j1 g s a w .w 3 .o rg /c s s -v a l1 - d a to r para CSS3 y j a v a s c r lp t l 1n t.com para JavaScript. No todas las secuencias de comandos se validan en su totalidad, pero la mayora lo hacen. A unque todo el cdigo funciona correctam ente, tal vez reciba advertencias (o posibles errores) al validar cdigo co n algunas de las nuevas caractersticas.
Aplicaciones para sm artphones y tablets. Es probable que est familiarizado con la explosin de aplicaciones disponibles para las plataformas iP h o n e /iP ad y A ndro id . H ay casi un milln d e aplicaciones entre las dos. A nteriorm ente, para escribir aplicaciones en estas plataformas se requera un conocim iento detallado de cada una y, en el caso de Phone/iPad, el proceso era controlado de manera estricta por Apple; Android es ms abierto. C on las tcnicas que aprender en este libro, podr escrib ir aplicaciones portables entre una gran variedad d e plataformas de escritorio y mviles, incluyendo Phone/iPad y Android. Induso podr vender esas aplicaciones bajo sus propios trminos (o a travs de dertas tiendas de aplicaciones tambin). Esta posibilidad es emocionante! Es una de las verdaderas virtudes de desarrollar con H T M L 5, CSS3 y JavaScript en general, y con el elem ento canvas de H T M L 5 en particular. Ejecutar una aplicacin H T M L 5 en su sm artphonc o tablct es tan simple como abrirla en su navegador Web com patible. Tal vez an se encuentre con algunos problemas deportabilidad.
Nuevas capacidades de alm acenam iento Web de H TM L5, En el captulo 11 usaremos las nuevas herramientas de almacenamiento Web de H T M L 5 para crear una aplicacin Web que almacene en la com putadora las bsquedas favoritas de un usuario de Twitter, para facilitar el acceso en lo sucesivo. El almacenamiento Web reemplaza a la tecnologa controvcrsial de Las cookies, adems d e ofrecer mucho ms espacio de almacenamiento. El captulo 11 tam bin incluye una breve introduccin a JSO N , un medio para crear objetos de JavaScript; por lo general se utilizan para transferir datos sobre Internet entre programas del lado del cliente y del lado del servidor.
www.detodoprogramacion.com
Caractersticas nuevas y actualizadas x x l
Juego de dados mejorado con elementos de a u d io y video de H TM L5. El juego de los dados (Craps) en el captulo 9 incluye ahora un elemento de audio de H T M L 5, que reproduce un sonido cada vez que el usuario tira los dados. Tambin incluimos un vnculo a una pgina con un elemento de v id eo de H TM L5 incrustado, que reproduce un video para explicar las regias del juego.
Caso de estudio de jQ uery y A jax. En b edicin anterior de este libro se incluy una aplicacin de calendario en b que se utilizaban las bibliotecas D ojo (que eran populares en ese m om ento) para crear b interfaz de usuario, com unicarse con el servidor en forma asincrona, manejar eventos y m anipular el D O M . Desde entonces, jQ uery se convirti en b biblioteca m is p o p u b r de JavaScript. En esta edicin actualizamos b aplicacin de calendario (captulo 16) mediante el uso de jQ uery y b colocamos en lnea oomo un caso de estudio de jQ uery y Ajax.
Nuevas herram ientas W ebsocketsy Web Workers de H TM L5. Agregamos un tratam iento en lnea de dos nuevas tecnologas: WebSockets, que proporciona un modelo simple de red y Web Workers, que nos permite usar mulrihilos en una pgina Web.
Aplicaciones Web habilitadas para A jax. Actualizamos el captulo sobre b creacin de aplicaciones Web habilitadas para Ajax, con aplicaciones que demuestran las actuabzaciones parciales de pginas y las capacidades de escritura adelantada (type-ahead); cada una de estas herramientas son capacidades dave de las Aplicaciones enriquecidas de Internet (Rich Internet Applications).
H TM L D O M y X M L D O M . M ejoramos nuestra forma de tratar los temas de m anipulacin d e D O M , eventos de JavaScript y m anipubcin de XM L D O M con JavaScript.
L IN Q . D esde la ltim a edicin del libro. M icrosoft in trodu jo L 1N Q (C onsultas integradas en len guajes) para su stitu ir a SQ L en el acceso a bases de datos. El cap tu lo 18 ofrece una in troduccin a los fundam en tos de L IN Q y una in troduccin a L IN Q para SQ L (la tecnologa que sustituye a SQ L).
Los captulos 19 a 29 y apndices E y F se encuentran en ingls en la pgina web d e l libro(www. pearso n enespa o I. co m /dei tcl).
Cobertura actualizada de PHP. El captulo 19 se actualiz a b versin ms reciente de PHP. Si empieza este libro como principiante y estudia el lenguaje JavaScript en los captulos 6 al 13, tendr la experiencia de programacin necesaria para com prender b programacin del lado del servidor en PHP. [Nuestra forma de exponer la program acin del lado del servidor en A SRN ET exige un conocim iento de C # o Visual Basic; para JSF se requiere conocim ientos de Java].
A SR N E T, A jax en A S P .N E T y servicios Web. Esta secuencia actualizada de tres captulos se ofrece ahora para cada uno de los dos lenguajes cbve de desarrollo de aplicaciones de Microsoft: C# y Visual Basic Estos captulos estn disponibles en el sirio Web del libro.
JavaServer Faces (JSF), A jax en J S F y servicios Web. Esta secuencia actualizada de tres captulos, disponibles en lnea, se concentra en b creacin de aplicaciones JSF habilitadas para Ajax.
Servicios Web. Ahora contam os con captulos sobre cm o crear servicios Web basados en SOAPj servicios Web basados en REST con A SPN ET en Visual Basic, ASRNET en C # y JSF en Java.
Aplicaciones cliente/servidor. Tenemos varios casos de estudio del b d o del cliente que perm iten a los estudiantes interactuar con servicios Web im piem entados previamente, los cuales estn alojados ent e s t . d e i t e l . com.
www.detodoprogramacion.com
x x iv Prefacio
Casos de estudio nuevos y actualizados. El libro incluye casos de estudio m uy completos, en los que se utilizan varias tecnologas: Visor d e portadas de Deitel (JavaScript/DOM ), Librera de direcciones (Ajax), Juego del can (Canvas de H TM L5), Lista de correo (PH P/M ySQ L), Libro de visitantes y Base de datos de libros protegida por contrasea (ASP.NET), Libreta de direcciones (JavaServer Faces) y Biackjack (servicios Web JAX-WS).
Nuevas herram ientas pedaggicas
Ejercicios "H acerla d iferen ci ' en el capitulo 1. Lo alentamos a usar las computadoras e Internet para investigar y resolver problemas sociales importantes. Estos ejercicios estn diseados para aum entar la conciencia y el anlisis en torno a los problemas im portantes a los que se enfrenta el m undo. Esperamos que usted los aborde con sus propios valores, polticas y creencias. D un vistazo a los diversos recursos Hacer la diferencia que proporcionamos, incluyendo nuestro nuevo C entro de recursos para hacer la diferencia en www.deitel .cow/M akingADifference. en donde obtendr ideas adicionales que ral vez. desee investigar ms a fondo.
Nmeros de pgina de los trm inos clave en los resmenes de los captulos. En los trm inos clave que aparecen en los resmenes de los captulos 1 a 18, incluimos el nm ero de pgina en donde se define el trmino.
Grfico de dependenciasEl grfico de la figura 5 muestra la organizacin modular del libro y las dependencias entre los captulos para ayudar a los profesores a planear su programa de estudios. Cmo programar en Internet y World Wide 5/e es un libro apropiado para una variedad de cursos de programacin de nivel introductorio e interm edio, en especial de programacin del lado del cliente y del lado del servidor. Los captulos 1 al 18 estn en el libro impreso; los captulos 19 a 29 y algunos apndices se encuentran en ingls en el sitio web de este libro.
Le recomendamos estudiar todas las dependencias de un captulo antes de estudiarlo, aunque tam bin es posible usar o tro orden. Algunas de las dependencias se aplican slo a secciones de los captulos, por lo que aconsejamos a los profesores que exploren el material antes d e disear un curso de estudio. El libro est diseado para cursos que ensean programacin Web slo del lado del cliente, cursos que ensean programacin Web slo del lado del servidor y cursos que ensean una com binacin de lo anterior. Los lectores interesados en estudiar las tecnologas del lado del servidor deben saber cmo crear pginas Web mediante H T M L 5 y CSS3, adems de la programacin basada en objetos en JavaScript. Los captulos 15 y 16 pueden ensearse com o parte de una unidad del lado del cliente, al principio de una unidad del lado del servidor, o pueden dividirse entre ambas unidades.
Apndice en lnea de accesibilidad de HTML5D e conform idad con la Iniciativa de accesibilidad de W 3C , sus pginas y aplicaciones W eb deben ser accesibles de modo que las personas con discapacidades puedan percibir, comprender, navegar c intcractuar en Web, y que puedan tam bin contribuir con la Web. 1 En un apndice en lnea, enum eram os las cuestiones de accesibilidad que debe tener en cuenta al disear pginas Web y aplicaciones basadas en Web. Tambin proporcionamos recursos que muestran cmo usar H TM L5, CSS3, JavaScript y diversas tcnicas de diseo para crear pginas y aplicaciones Web accesibles. Segn sea apropiado, enlazamos la informacin en este apndice de vuelta con los captulos y secciones apropiadas, para que pueda ver cmo es posible mejorar las aplicaciones para aum entar el nivel de accesibilidad en Web.
1. h ttp ://tw*w .w 3 .o rg /W A I/ in t r o / a c c e s s ib i l1t y . php.
www.detodoprogramacion.com
Apndice en linea de accesibilidad de HTML5 x x v
Introduccinducon a las computadoras e Internet
Introduccin a HTML5 y CSS3 *-2 htroduccin a HTM15: Parte I
13 Introduccin a HTML5: Parte 2
I4 Introduccin a las hojas de estilo en
aseada (Cascading Styfe Sheets. CSS): Parte l
f 5 Introduccin a las hojas de estilo en cascada
(Cascading Styfe Sheets. CSS): Parte 2V '
Fundamentos de programacin en JavaScript
6 JavaScript: introduccin a las secuencias de comandos
f7 JavaScript: instrucciones de control I
8 JavaScript: instrucciones de control II
T9 JavaScript: fundones
T10 JavaScript: arreglos
i I JavaScnpt: objetos
T-1 2 Modelo de objetos de docimento (DOM ):
objetos y colecciones
13 Manejo de objetos de JavaScnpt:un anlisis ms detallado
14 HTM15: Irtroduccin a canvas
Fundamentos de Ajax l X M l
Introduccin al desarrollo del lado del servidor
17 Servidores Web (Apache e IIS)
18 Base de datos: SQL. MySQl. LINQ y Java Dfl
I9PH P
Server-Side Development w ithA SP .N ET and C#2
20 Web App Development -* with ASP.NTT in C I
21 Web App Development with ASP.NET in C#: A Deeper look
I22 Web Se unces in C
Server-Side Development with A SP.N ET and V B 3
23 Web App Development with ASP.NET in Visual Basic
*- 24 Web App Development with ASP.NET in V B : A Deeper Look
i25 Web Services in Visual Basic
Server-Side Development with JavaServer Faces and Java4
26 JavaServer Faces Web Apps: Part i -
- 27 JavaServer Faces Web Apps: Part 2
128 Web Services in Java
WebSockets and W eb Workers29 HTML5 WebSockets * id Web Workers
yN
lAplicaconesennquecidasde Internet habilitadas para Ajax con XML y JSON
1. E3 capitulo 19 (en el sitio W eb) asume slo que usted est lamilianzado con los Andamentos de programacin que se presentan en los captulos 6 al 13.
2. Los captulos de C# requieren conocimiento de C l y d e las bibliotecas de clases de Microsoft .NET.3. Los captulos de Visual Basic requeren conocimiento de Visual Basic y de las bibliotecas de dasesde Microsoft .NET.4 Los captulos de Java requeren conocimiento de Java y de las bibliotecas de clases de Java.
Figura 5 | Grfico de dependencias de captulos de Cmo programar en Internet y World Wide Web. quinta edicin.
www.detodoprogramacion.com
x x v i Prefacio
Apndice de geolocalizacin en HTML5 en lneaLa API de geolocalizacin de H T M L 5 le perm ite crear aplicaciones Web que recopilen informacin sobre la ubicacin (por ejemplo, las coordenadas de latirud y longitud) mediante el uso de tecnologas com o GPS, direcciones IP, conexiones W i-F o conexiones a torres celulares. Esta tecnologa es soportada por los siete navegadores de escritorio y mviles que utilizamos para probar el cdigo de todo el libro.
La especificacin de la API de geolocalizacin lista varios casos de uso,* incluyendo:
buscar puntos de inters en el rea del usuario anotacin de contenido con informacin sobre b ubicacin mostrar b posicin del usuario en un mapa proveer navegacin por rutas alertar al usuario cuando haya puntos de inters cercanos proveer informacin local actualizada etiquetar ubicaciones en actualizaciones de estado en sitios de redes sociales
Por ejemplo, podra crear una aplicacin Web mvil basada en la ubicacin que utilice b informacin de ubicacin del GPS de un sm artphone para rastrear la ru ta de un corredor en un mapa, calcular la distancia recorrida y b velocidad promedio. De manera similar, podra crear una aplicacin que devuelva una lista de negocios cercanos. En este apndice en lnea, crearemos una aplicacin mvil basada en b ubicacin.
Mtodos de enseanzaCmo programar en Internet y World Wide Web, quinta edicin contiene cientos de ejemplos funcionales completos en toda una variedad de marcado, estilos, secuencias d e comandos y lenguajes de programacin. Hacemos nfasis en la claridad y nos concentramos en b creacin de software bien diseado.
Sombreo de sin taxis. Para mejorar b leg ib ilidad , sombreamos b sintaxis del cdigo as como b mayora de los entornos de desarrollo integrados y los editores de cdigo colorean b sintaxis del cdigo. Nuestras convenciones de sombreo de sintaxis son:
lo s com entarlos aparecen a s i l a s p a la b ra s c la v e aparecen a s il a s constantes y lo s valores l i t e r a l e s aparecen a s i el r e s to del cdigo aparece en negro
Resaltado de cdigo. Colocamos rectngulos grises alrededor de los segmentos de cdigo cbve.
Uso de Juentes para dar nfasis. Colocamos los trm inos cbve y b referencia a b pgina del ndice para cada ocurrencia d e definicin en texto en neg rita para facilitar su localizacin. Enfatizamos los com ponentes en pantalla en la fuente Helvtica en negrita (por ejemplo, el m en Archivo) y el texto del programa en b fuente Lucida (por ejemplo. 1nt conteo 5).
Acceso Web. Todos los ejemplos de cdigo fuente se pueden descargar de:
www.deitel.com/books/1w3htpS vww.pearsonenespaftol.com/deitel
O bjetivos. Las citas de apertura van seguidas de una lista de objetivos del captulo.
2. h ttp://w w v.w 3.org/TR/geolocation-A PI/#usecases_sect1on.
www.detodoprogramacion.com
Mtodos de enseanza x x v i i
Ilustraciones/figuras. Incluim os una gran cantidad de tablas, dibujos lineales, docum entos, secuencias de comandos, programas y salidas de programa.
Tips de program acin. Incluimos tips de programacin para ayudarle a enfocarse en los aspectos im portantes del desarrollo de software. Estos tips y prcticas representan lo m ejor que hemos podido recabar a lo largo de siete dcadas combinadas de experiencia en la programacin y la enseanza.
Buenas prcticas de programacinLas Buenas prcticas d e program acin llaman a atencin hacia tcnicas que le ayudarn a producir programas ms claros, comprensibles y fciles de mantener.
, A Errores comunes de programacinj r Al poner atencin en estos Errores com unes de program acin se reduce a probabilidad de que usted pueda
cometerlos.
Tips para prevenir erroresEstos tips contienen sugerencias para exponer los errores y eliminarlos de sus programas; muchos de ellos describen aspectos de programacin que evitan que os errores entren siquiera a los progamas
Tips de rendimientoEstos tips resaltan as oportunidades para hacer que sus progamas se ejecuten ms rpido, o para minimizar la cantidad de memoria que ocupan.
T T Tips de portabilidadLos T ips de portab ilidad le ayudan a escribir cdigo que pueda ejecutarse en una variedad de plataformas.
tara? Observaciones de ingeniera de softwareluis Observaciones de ingeniera de software resaltan los asuntos de arquitectura y diserio, lo cual afecta la construccin de los sistemas de software, especialmente los de gan escala.
Vietas de resumen. Presentamos un resumen detallado del captulo, estilo lista con vietas, seccin por seccin, para una revisin rpida de los puntos clave. Para facilitar la referencia, incluimos el nm ero d e pgina de cada ocurrencia de definicin de los trm inos clave en el texto.Ejercicios de autoevaluacin y respuestas. Se incluyen ejercicios extensos de autoevaluacin y sus respuestas para que los lectores practiquen por su cuenta.
Ejercicios. Los ejercicios de los captulos incluyen: recordatorio simple de Li terminologa y los conceptos im portantes cul es el error en este cdigo? escritura de instrucciones individuales escritura de funciones y secuencias de comandos completas proyectos im portantes
ndice. Incluimos un ndice extenso. Las ocurrencias de definicin de los trminos clave se resaltan con un nmero de pgina en negrita .
www.detodoprogramacion.com
x x v i Prefacio
Recursos para el profesorLos siguientes suplementos estn disponibles en ingls slo para profesores a travs del C entro de recursos de Pearson .p ea rso n en esp a o l. ccxn/deitel):
D iapositivas de Pow erPoint*que contienen todo el cdigo y las figuras del texto, adems de elementos en vietas que sintetizan los puntos clave.
M anual de soluciones con soluciones para la gran mayora de los ejercicios de final de captulo. Revise el Ccnrro de recursos para el profesor si desea determ inar cules ejercicios tienen soluciones.
H acceso est lim itad o estric tam ente a profesores un iversitarios q u e im partan clases con base en el libro . I-os profesores s lo p u ed en ob tener acceso a travs d e sus rep resen tan tes de Pearson. Si no es un miembro docente registrado, pngase en contacto con su representante de Pearson o visite twwv.pearsonh1ghered.com / e d u c a to r / r e p lo c a to r / .
N o se proveen soluciones p a ra los ejercicios d e proyectos . Revise nuestro C entro de recursos de proyectos de programacin en donde encontrar muchos ejercicios adicionales y posibles proyectos (www. d e i t e l . com /Program m ingProjects/).
ReconocimientosAgradecemos a Barbara D eitel las extensas horas que dedic a este proyecto. Somos afortunados al haber trabajado con el equipo de editores tan profesionales de Pearson. Apreciamos la orientacin, inteligencia y energa de Michael Hirsch, editor en jefe de Ciencias computacionales. Carole Snyder reclut a los revisores del libro y se hizo cargo del proceso de rev isin. Bob Engelhardt se hizo cargo de la produccin del libro.
RevisoresQ uerem os agradecer los esfuerzos de nuestros revisores de la cuarta y qu in ta edicin. Revisaron a conciencia el texto y los programas, proporcionando innum erables sugerencias para mejorar la presentacin: T im othy Boronczyk (consultor), Roland Bouman (M ySQL AB), C hris Bowen (M icrosoft), Peter Brandano (Kool- C onnect Technologies, Inc.), M att C ho tin (Adobe), Chris C o rn u tt (PHPDcvcloper.org), Phil C osta (Adobe), Um achirra Dam odaran (Sun Microsystems), Vadiraj D eshpandc (Sun Microsystems), Justin Ercnkrantz (The Apache Software Foundation), C hristopher Finke (Netscape), Jesse James G arrett (Adaptive Path), Mike H arsh (M icrosoft), C hris H eilm ann (M ozilla), Kevin H enrikson (Z im bra.com ), T im H euer (M icrosoft), M olly E. Holrzschlag (W 3C ), Ralph H oopcr (Univcrsity o f Alabama, Tuscaloosa), C hris H orton (University o f Alabama), John H rvatin (M icrosoft), Johnvey H w ang (Splunk, Inc.), Joe Kromcr (New' Pcrspective y el G rupo d e usuarios d e Adobe Flash de Pittsburgh), Jennifer Kyrnin (Gua de diseo Web en A bout.com ), Eric Lawrence (M icrosoft). Pete LePagc (M icrosoft), Dr. Roy Levow (Florida A tlantic University), Billy B. L. Lim (Illinois State University), Shobana Mahadevan (Sun Microsystems), Patrick M incault (Program ador d e Flash independiente), A nand Narayanaswamy (M icrosoft), John Pcterson (Insync y V .I.O ., Inc.), Jennifer Powers (University o f Albany), Ignacio Ricci (Ignacioricci.com), Jake R utter (onerutter.com ), Robin Schu- machcr (M ySQL AB), Jos A ntonio G onzlez Seco (Parlam ento de Andaluca), Dr. Georgc Scmeczko (Royal & SunAlliance Insurance C aada), Steven Shaffer (Penn State University), Michael Sm ith (W 3C ), Karen Te- gtmeyer (Model Technologies, Inc.), Paul Vencill (M IT R E ), Raymond Wcn (M icrosoft), Eric M . W endelin (Auto-crol Technology Corporacin), Raymond F. W ism an (Indiana University), Keith W ood (Hyro, L td.) y Daniel Zappala (Brigham Young University).
www.detodoprogramacion.com
Acerca de los autores x x ix
A medida que lea el libro, sinceramente apreciaremos sus comentarios, crticas, correcciones y sugerencias para mejorarlo. Dirija su correspondencia a:
d e i t e l S d e i t e l . com
Le responderemos oportunam ente. Esperamos que disfrute rrabajando con Cmo programar en Internet y World Wide Web, quinta edicin.
Paul Harvey y Abbey Deitel
Acerca de los autoresfeu l J . D eite l, C E O y D irector Tcnico de Deitel &t Associates, Inc., es egresado del MIT, en donde estudi Tecnologa de la Informacin. A travs de Deitel & Associates, Inc., ha im partido cientos de cursos sobre Java, C++, C , C#, Visual Basic y programacin en Internet a d ien tes de la industria, incluyendo: Cisco, IBM, Siemens, Sun Microsystems, Dell, Lucent Technologies, Fidclity, NASA en el Centro Espacial Kennedy, el N ational Severe Storm Laboratory, W hite Sands Missile Range. Rogue Wave Software, Boeing, SunGard H igher Education, Stratus, Cam bridge Technology Partners, O ne Wave, Hyperion Software, Adra Systems. Entergy. CahlcDara Systems, Norte! Networks, Puma, iRobot, Invensys y muchos ms. l y su coautor, el Dr. Harvey M. Deitel, son autores de los libros de programacin ms vendidos en d m undo.
Dr. H arvey M . D eite l, Presidente y Consejero de Estrategia de D eitel & Associates, Inc., tiene 50 aos de experiencia en el campo de la com putacin. El Dr. D eitel obtuvo una licenciatura y una maestra por el M IT y un doctorado por La Universidad de Boston. Tiene muchos aos de experiencia como profesor universitario, La cual induye un puesto vitalicio y el haber sido presidente del departam ento de Ciencias de la com putacin en el Boston College antes de fundar, con su hijo Paul J. Deitel, D eitel & Associates, Inc. l y Paul son coautores de varias docenas de libros y paquetes de video LiveLcssons, y piensan escribir muchos ms. Los textos de los Deitel se han ganado el reconocimiento internacional y han sido traducidos al japons, alemn, ruso, chino, espaol, coreano, francs, polaco, italiano, portugus, griego, urd y turco. El Dr. Deitel ha im partido cientos de seminarios profesionales de programacin para grandes empresas, instituciones acadmicas, organizaciones gubernamentales y diversos sectores del ejrcito.
Abbey D eitel. presidenta de D eitel & Associates, Inc., es graduada de b Carnegie M ellon Universitys Tepper School o f M anagement, de donde recibi una licenciatura en Administracin industrial. Abbey ha estado adm inistrando bs operaciones comerciales de Deitel & Associates, Inc. duran te 14 aos. H a contribuido en numerosas publicaciones de D eitel 8 Associates, adems de ser coaurora de iPhone fo r Programmers: An App-Driven Approach y Androidfor Programmers: An App-Driven Approach.
Capacitacin corporativa de Deitel & Associates, Inc.Deitel & Associates, Inc., es una empresa reconocida a nivel mundial, dedicada al entrenam iento corporativo y b creacin de contenido. La empresa proporciona cursos impartidos por profesores en bs iastalaciones de sus clientes en todo el m undo, sobre b mayora de los lenguajes y plataformas de programacin, como Java, C++, Visual C + +*, C, Visual C #", Visual Basic*, XML*. Python*, tecnologa de objetos, programacin en Internet y Web, desarrollo de aplicaciones para Android c Phone*, y una lista cada vez mayor de cursos adicionales de programacin y desarrollo de software. Los fundadores de Deitel & Associates, Inc. son Paul J. Deitel y el Dr. Harvey M. Deitel. Sus clientes incluyen muchas de bs empresas ms grandes del m undo, agencias gubernam entales, sectores del ejrcito e instituciones acadmicas. A lo brgo de su sociedad editorial de 36 aos con Prcnticc
www.detodoprogramacion.com
x x x Prefacio
Hall/Pearson, D citcl & Associates, Inc. ha publicado libros de texto de vanguardia sobre programacin, libros profesionales y cursos de video Livel^essons. Puede contactarse con Dcitcl & Associates, Inc. y con los aurores por medio de correo electrnico:
d efte lO d e ite l .con
Para conocer ms acerca de la empresa, sus publicaciones y su currculum m undial de la Serie de Capacitacin Corporativa Dive Into*, visite:
w ww .deitel.co*/tra1n1ng/
Suscrbase al boletn de correo electrnico DeiteT Ruzz Online en:
w w w .d e1 te l.co m /n ew sle tte r/su b scrib e .h tn il
Y nase a las comunidades de los autores en Facebook (****. f acebook. com /Deitel Fan) y Twitter (
Antes de empezar
Antes de comenzar a usar este libro asegrese de tener un navegador Web reciente; luego siga estas instrucciones para descargar los ejemplos.
Cmo obtener el cdigo fuente'Iodos los ejem plos para Cmo programar en Internet y World Wide Web, quinta edicin estn disponibles, en ingls, en
www.deitel.com/books/1w3htp5/
(Los ejemplos de loscaprulos 1 a 18, en espaol, los encontrar el sitio web de este libro en www. pearsonenes- pafiol.com /de1 t e 7).
S no se ha registrado an en nuestro sitio Web. vaya a vwwv.dei t e l .com y haga clic en el vnculo egister (Registro) debajo de nuestro logo en la esquina superior izquierda de la pgina. Llene los campos con sus daros. No hay cargo por registrarse; tam poco com partirem os su informacin con terceros. Le enviaremos slo correos electrnicos relacionados con la adm inistracin de su cuenta, a menos que se registre por separado para nuestro boletn de correo electrnico gratuito Deitel* Buzz Online en w w w .d e ite l.c o m /n e w sle tte r/su b sc rib e .h tm l. Despus de registrarse en el sitio, recibir un correo electrnico de confirmacin con su cdigo de verificacin. Haga clic en el vinculo del correo electrnico de confirmacin para completar su registro. Configure su cliente de correo electrnico para que el correo de confirmacin no se filtre como correo basura y de esta manera recibir correos de d e i t e l . com.
A continuacin, vaya a www .d e i t e l .com e inicie sesin usando el vnculo Login debajo de nuestro logo, en b esquina superior izquierda de la pgina. Vaya a vwwv .d e i t e l . com /books/iw 3htpS/. Encontrar el vnculo para descargar los ejemplos bajo el encabezado Download Code Examples and Other Premium Conten for Registered Users (Descargar ejemplos de cdigo y contenido Premium adicional para usuarios registrados). Anote b ubicacin en donde eligi guardar el archivo Z IP en su com putadora. Extraiga los archivos de ejemplo a su disco duro mediante el uso de un programa extractor de archivos ZIP. Si trabaja en un bboratorio de computadoras, pregunte a su profesor en dnde puede guardar el cdigo de ejemplo.
Navegadores Web utilizados en este libroProbamos todo el cdigo en las versiones ms actuales de siete navegadores populares: cinco para dispositivos de esc rito rio (C hrom e, In te rn e t Explorer, F irefox, O p era , Safari) y dos para dispositivos m viles (iP h o n e / Pad y A ndroid). H T M L 5 y CSS3 estn en evolucin, por lo que no se han aprobado an los estndares finales. Los proveedores d e navegadores estn im plcm cntando, d e m anera selectiva, caractersticas que tienen una buena probabilidad de estandarizarse. A lgunos proveedores tienen mayores niveles de cum plim iento
www.detodoprogramacion.com
x x x i i Antes de em pezar
que o tros con respecto a las caractersticas. C on cada nueva versin de los navegadores, la tendencia ha sido aum entar d e manera considerable el grado de funcionalidad im plem entado. El sitio de prueba de H T M L 5 (h tm l5 test.co m ) m ide qu tan bien soporta cada navegador los estndares y especificaciones pendientes. Puede ver los resultados de las pruebas y las caractersticas soportadas p o r cada navegador. Tam bin puede revisar sitios com o h t tp : / /c a n iu s e .c o m / , en donde obtendr una lista de las caractersticas cubiertas por cada navegador. No todos los docum entos en este libro se desplegarn correctam ente en todos los navegadores. En vez de elegir slo capacidades que existan de manera universal, dem ostram os las caractersticas nuevas y emocionantes en el navegador que m aneje m ejor esas funcionalidades. A m edida que lea este libro, ejecute cada ejemplo en varios navegadores W eb para que pueda verlo e in teractuar con l de la m anera que se plane originalm ente. Y recuerde que rodo est cam biando con rapidez, as que tal vez un navegador que no soportara cierta caracterstica al m om ento d e escribir este libro podra soportarla al m om ento en que usted lo vaya a leer.
Vnculos para descargar navegadores WebPuede descargar los navegadores Web de las siguientes ubicaciones:
Google Chrom e: http://vrtvw .google.com /chrom e
Mozilla Firefox: h ttp ://w w w .m oz111a.o rg /f1 refox /new /
Microsoft Internet Explorer (slo W indows): h ttp ://w vrtv .m icrosoft.com /1e Apple Safari: h ttp ://w v rtv .ap p le .co m /sa fa r1 /
Opera: h ttp ://w vrtv .opera.com /
Le recomendamos que instale todos los navegadores disponibles para su plataforma.
Software para los captulos de ASP.NET con C# y Visual BasicLos captulos de A SRN ET con C # (captulos 20 al 22) y Visual Basic (captulos 23 al 25) (todos en ingls en el sitio web) y los de servicios Web requieren Visual Web Developcr 2010 Express y SQL Server 2008 Express. Puede descargar estas herramientas desde vrtrtv.microsoft. com /express. D ebe seguir las instrucciones de instalacin predeterminadas para cada herramienta.
Software para los captulos sobre JavaServer Faces y Java Web ServicesAl principio del captulo 26 (en ingls, en el sitio web) hablaremos sobre el software requerido para los captulos de JavaServer Faces y Java Web Sen-ices (captulos 26 a 28).
Ahora est listo para comenzar sus estudios de programacin Web con Cmo programar en Internet y World Wide Web. quinta edicin. Esperamos que disfrute el libro! Si tiene alguna pregunta, sintase libre de enviarnos un correo electrnico a d e1 te l d e 1 te l. com. I>c responderemos oportunam ente.
www.detodoprogramacion.com
Introduccin a las computadoras e Internet
La gente usa Internet y la Web para crear cosas que no han construido, escrito, dibujado o comunicado en ningn otro lado. Tim fkrnm-Lcc
Qu maravilloso es que nadie necesite esperar un solo momento para empezara mejorar el mundo.Anne Frank
El hombre sigue siendo la computadora ms extraordinaria de todas.John F. Kennedy
O b j e t i v o sEn este capitulo aprender a:
Discernir lo esencial del hardware de computadoras, software e Internet.
Familiarizarse con la evolucin de Internet y de la World Wide Web.
Reconocer la manera en que HTML5. CSS3 y JavaScript estn mejorando el desarrollo de aplicaciones Web.
Familiarizarse con la jerarqua de datos.
Distinguir los diversos tipos de lenguajes de programacin.
Familiarizarse con los conceptos de la tecnologa de objetos.
Construir aplicaciones de Internet, despus de ver interesantes y divertidas demostraciones.
www.detodoprogramacion.com
Plan
gene
ral
2 Captulo I Introduccin a las computadoras e Internet
\
.1 Introduccin
.2 Internet en la industria y la investigacin
3 HTML5.CSS3. JavaScript. Canvas yjQuery
4 Demostraciones
5 Evolucin de Internet y de la World Wide Web
6 Fundamentos de la Web
7 Arquitectura de aplicaciones multinivel
8 Comparacin entre las secuencias de comandos del lado del cliente y del lado del servidor
9 Consorcio World Wide Web (W3C)
1.10 Wb 2.0: a socializar
1.11 Jerarqua de datos
1.12 Sistemas operativos
1.12.1 Sistemas operativos de escritorio y de Notebook
1.12.2 Sistemas operativos mviles
1.13 Tipos de lenguajes de programacin
1.14 Tecnologa de objetos
1.15 Mantenerse actualizado con las tecnologas de la informacin
Ejercicios de autoevaluacin | Respuestas a los ejercicios de autoevaluacin | Ejercicios
l.l Introduccin
Bienvenido al em ocionante y, rpidamente, cam biante mundo de la programacin en Internet y en la Web. Hay ms de dos mil millones de usuarios de Internet en todo el mundo; esto equivale aproxim adam ente al 30% de la poblacin de la T ierra.1 En la actualidad hay en uso ms de mil millones de com putadoras de propsito general, adems de o tros miles de millones de computadoras incrustadas que se utilizan en telfonos celulares, telfonos inteligentes (smartphones), com putadoras tipo tablet, electrodomsticos, automviles y dems; y m uchos de estos dispositivos estn conectados a Internet. De acuerdo con un estudio realizado por el G rupo de soluciones de negocios de Internet de Cisco, haba 12.5 mil millones de dispositivos habilitados para Internet en 2010 y se pronostica que esa cifra llegar a 25 mil millones para 2015, y a 50 mil millones para 2020.1 Las tecnologas de programacin en Internet y en la W eb que aprender a usar en este libro estn diseadas para ser portables, lo que le perm itir disear pginas W eb y aplicaciones que se ejecuten a travs d e un enorm e rango de dispositivos habilitados para Internet.
Empezar por aprender sobre las tecnologas de programacin del lado del cliente que se utilizan para crear pginas Web y aplicaciones que se ejecutan en el cliente (es decir, en el navegador del dispositivo del usuario). Usar el Lenguaje de marcado de hipertexto 5 (H TM L5) y las Hojas de estilo en cascada 3 (CSS3) (las versiones ms recientes de las tecnologas H T M L y CSS) para agregar caractersticas y efectos poderosos, dinmicos y divertidos a las pginas y aplicaciones Web, como audio, video, animacin, dibujos, manipulacin de imgenes, diseo de pginas para varios tamaos de pantalla, acceso al almacenamiento en la Web y mucho ms.
Aprender sobre JavaScript: el lenguaje preferido para im plem entar el lado del cliente de las aplicaciones basadas en Internet (en la seccin 1.3 hablaremos sobre JavaScript con ms detalle). I>os captulos 6 al 13 presentan una extensa cobertura de JavaScript y sus herramientas. Tambin aprender sobre jQuery. la biblioteca de JavaScript que est cambiando, espectacularmente, el m undo del desarrollo Web. A lo largo del libro tam bin veremos un nfasis sobre el desarrollo con Ajax, que nos ayudar a crear aplicaciones ms tiles y con un mejor desempeo.
En captulos posteriores aprender sobre la programacin del lado del clientr. las aplicaciones que responden a las solicitudes de los navegadores Web del lado del cliente, com o buscar en Internet, revisar el saldo de su
1. w y w .1 n te r n e tw jr ld s ta t s .c o m / s ta ts .h tm .2. nww.dSCO.com/web/about/ac79/doCS/1nnov/IoT_IBSG_04llFINAL.pdf.
www.detodoprogramacion.com
1.2 Internet en la industria y la investigacin 3
cuenta de banco, ordenar un libro por Amazon, ofertar en una subasta d e eBay y pedir boletos para un concierto. Presentaremos material condensado y popular sobre cuatro lenguajes de programacin en Internet/W eb para crear el lado del servidor de las aplicaciones diente/servidor basadas en Internet y en la Web. Los captulos 19 al 22 y 23 al 28 presentan tres populares tecnologas del lado del servidor: PHP, ASP.NET (tanto en C # como en Visual Basic) y JavaServer Faces.
Asegrese de leer d prefacio y la seccin antes d e empezar para tener una idea de lo que se cubre en el libro y cmo configurar su com putadora para ejecutar los cientos de ejemplos de cdigo. El cdigo est disponible en www. d e l te 1 .com /books/iw 3htpS y en w tw t.p ea rso n h ig h ered .co n /d e ite l. Use el cdigo fuente que incluimos para ejecutar cada programa y secuencias de comandos (script) a medida que los vaya estudiando. Pruebe cada ejem plo en varios navegadores. Si le interesan los smartphoncs y las computadoras tipo tablct, asegrese de ejecutar los ejemplos en sus navegadores en dispositivos Phone, iPad . Android, los sm artphone, las tablet, y otros. Las tecnologas cubiertas en este libro y el soporte en buscadores estn evolucionado rpidamente. No todas as caractersticas de todas las pginas que vamos a crear se desplegarn correctamente en todos los navegadores. Los siete navegadores que usaremos son gratuitos.
la ley de MooreEs com n que piense que la mayora de los productos y servicios costarn un poco ms cada ao. Sin embargo, en los cam pos de las com putadoras y las comunicaciones ha ocurrido lo contrario, en especial con relacin a loe costos del hardware q u e da soporte a estas tecnologas. Los costos del hardware han dism inuido con rapidez durante varias dcadas. Aproximadamente cada uno o dos aos, las capacidades de las computadoras se duplican sin que el precio se incremente. Esta notable observacin se conoce en el mbito com n com o la Ley de M oore, y debe su nom bre a la persona que identific esta tendencia: G ordon Moore, cofndador de Intel uno de los principales fabricantes de procesadores para las com putadoras y los sistemas incrustados de la actualidad . La Le>' de M oore y las observaciones relacionadas son especialmente ciertas en cuanto a la cantidad de memoria que tienen las computadoras para los programas, la cantidad de almacenamiento secundario (como el almacenamiento en disco) que tienen para guardar los programas y datos durante periodos extensos, y las velocidades de sus procesadores las velocidades con que las computadoras ejecutan sus programas (es decir, realizan su trabajo) . Se ha producido un crecimiento similar en el campo de las comunicaciones, en donde los costos se han desplomado a m edida que la enorm e dem anda por el ancho d e banda de las comunicaciones (es decir, la capacidad de transmisin de informacin) atrae una com petencia intensa. N o conocemos o tros campos de trabajo en los que la tecnologa mejore con tanta rapidez y los costos dism inuyan de una manera tan drstica. Dicha mejora colosal est fomentando sin duda la Revolucin de a informacin.
1.2 Internet en la industria y la investigacinEstamos viviendo una poca emocionante en el campo de la com putacin. M uchas de las empresas ms influyentes y exitosas de Las ltim as dos dcadas estn relacionadas con la tecnologa: Apple, IBM, Hewlett Packard, Dell, Intel, M otorola, Cisco, Microsoft, Google, Amazon, Facebook, Twitter, G roupon, Foursquare, Yahoo!, eBay, y muchas ms. Estas compaas son im portantes empleadores de personas que estudian ciencias com putad o nales, sistemas d e informacin o disciplinas relacionadas. Cuando escribimos este libro, Apple era la em presa ms valiosa del m undo.
En el pasado, la mayora de las aplicaciones de com putadora se ejecutaban en equipos que no estaban conectados entre s, mientras que en la acrualidad es posible escribir aplicaciones de Internet para comunicarse entre computadoras en todo el m undo.
Las figuras 1.1a 1.4 proporcionan unos cuantos ejemplos de la forma en que se utilizan las computadoras e Internet en la industria y la investigacin. La figura 1.1 lista dos ejemplos de cmo se utilizan las computadoras e Internet para mejorar los servicios mdicos.
www.detodoprogramacion.com
4 Captulo I Introduccin a las computadoras e Internet
Nombre Descripcin
Registros de salud Podran incluir el historial mdico de un padenre, prescripciones, vacunas, resultadoselectrnicos de laboratorio, alergias, informacin de seguros y dems. Al poner esa informacin a
disposicin de los proveedores de servicios mdicos a travs de una red segura logramos mejorar el cuidado de los pacientes, se reduce la probabilidad de error y, en general, aumenta b eficiencia del sistema de servicios mdicos.
Proyecto Genoma 1 Proyecto Genoma Humano se fund para identificar y analizar los ms de 20000 genesHumano en el ADN humano. El proyecto utiliz programas de computadora para analizar datos
genticos complejos, determinar las secuencias de los miles de millones de pares base qumicos que conforman d ADN humano y almacenar b informacin en bases de datos disponibles a travs de Internet para los investigadores en muchos campos.
Figura I . I | Las computadoras c Internet en los servicios mdicos.
La figura 1.2 proporciona un ejemplo de las emocionantes formas en que se utilizan las computadoras e Internet para hacer el bien social. En los ejercicios que se encuentran al final de este captulo tendr que proponer otros proyectos en los que se utilicen las computadoras e Internet para hacer la diferencia".
Nombre Descripcin
AMBER Alert El sistema de alerta AMBER (Nios norteamericanos extraviados: transmisin de respuestaa emergencias) se utiliza para buscar nios secuestrados. Las autoridades notifican a los funcionarios de transporte estatal y a las transmisoras de TV y radio, quienes a su vez transmiten alertas en TV, radio, seales de trfico enmpulanzadas, Internet y dispositivos inalmbricos.AM BER Alert se asoci hace pooo con Facebook, cuyos usuarias pueden dar Like" a las pginas de AM BER Alert por ubicacin para recibir alertas en sus fuentes de noticias.
WorldCommunity Grid
IVrsonas de todo el mundo pueden donar su poder de procesamiento de cmputo que no utilicen, mediante b instalacin de un programa de software seguro gratuito que permite a Wirid Community Grid (mmw . worl dcommun t y g r l d . o r g ) aprovechar b capacidad que no se uriiioc. Este poder de cmputo, al cual se accede a travs de Internet, se utiliza en lugar de costosas supo-computadoras para realizar proyectos cientficos de investigacin que estn haciendo b diferencia, ya sea proporcionar agua potable a pases del tercer mundo, combatir el cncer, cultivar arroz ms nutritivo para repones que combaten d hambre y otras cosas ms.
One Laptop Per Child (OLPQ
One Laptop Per Child (one .1ap top .o rg ) proporciona, a nios pobres en todo d mundo, bptops econmicas de bajo consumo de energa y habilitadas para Internet; con esto es posible fomentar d aprendizaje y reducir b divisin digital.
Figura 1.2 Proyectos que utilizan computadoras e Internet para el bien social.
Nosotros dependemos de las computadoras y de Internet para comunicar, navegar, coLaborar y ms. La figura1.3 muestra algunos ejemplos de cmo es que las computadoras e Internet proveen b infraestructura para estas tareas.
www.detodoprogramacion.com
1.2 Internet en la industria y la investigacin 5
Nombre
Computacin n la nube
GPS
Robots
Correo electrnico, mensajera instantnea, chat de video y FTP
Figura 1.3 | Ejempl
Descripcin
La com pu tac in en la n u b e nos permite usar software, hardware c informacin almacenada en la nube (es decir, se accede a computadoras remotas va Internet y est disponible bajo demanda) en vez de tener que almacenarla en nuestra computadora personal. Amazon es uno de los principales proveedores de servicios pblicos de computacin en La nube.Puede rentar capacidad de almacenamiento adicional mediante d Amazon Simple Storagc Service (Amazon S3) o aumentar las capacidades de procesamiento mediante EC2 de Amazon (Nube de cmputo clstica de Amazon). Estos servicios, que le permiten aumentar o disminuir los recursos para satisfacer sus necesidades en un momento dado, son por lo general ms efectivos en costos que comprar hardware costoso para asegurarse de ccncr el suficiente almacenamiento y poder de procesamiento para satisfacer sus necesidades en sus niveles pico. Las aplicaciones de negocios (como el software CRM) son a menudo costosas, requieren de cierto nivel de hardware considerable para ejecutarse y de un personal de soporte experimentado para asegurar que se ejecuten de manera apropiada y segura. Al usar los servicios de computacin en la nube traspasamos b carga de tener que manejar estas aplicaciones de nuestra empresa al proveedor de servicios, con lo cual ahorramos dinero.
Los dispositivos del Sistema de posicionamicnro global (GPS) usan una red de satlites para recuperar informacin con base en la ubicacin. Varios satlites envan seales con etiqueta de fecha y hora al dispositivo GPS, d cual calcula la distancia hada cada satlite con base en el tiempo en d que b seal sali d d satlite y el tiempo en el que lleg. Eso informacin se utiliza para determinar la ubicacin exacta dd dispositivo. Los dispositivos GPS pueden proporcionar indicaciones paso a paso y ayudarle a encontrar negocios cercanos (restaurantes, gasolincras, etc.) con facilidad, adems de algunas puntos de inters. El sistema GPS se utiliza en numerosos servicios de Internet basados en b ubicacin, como las aplicaciones chcck'in en linca, para que usted pueda encontrar a sus amigos (por ejemplo, Foursquarc y lacebook), en aplicaciones para hacer ejercicio como RunKccper, que rastrean el tiempo, b distancia y b velocidad promedio de su rutina de trotar en exteriores, aplicaciones de citas que le ayudan a buscar una pareja cercana y aplicaciones que actualizan en forma dinmica bs condiciones cambiantes del trfico.
Los robots pueden usarse para tarcas cotidianas (como b aspiradora Roomba de iRobot), para entretenimiento (como bs mascotas roboticas), combate militar, expediciones en b profundidad dd ocano y exploracin espacial (como el Rover de b NASA en Marte) y dems. RoboEarth (vww*. ro b o e a rth . org) es una World Wide Web para robots", ya que permite a los robots aprender unos de otros mediante b comparticin de informacin, con lo cual mejoran sus habilidades de realizar tarcas, navegar, reconocer objetos y otras cosas ms.
Los servidores basados en Internet soportan todo tipo de mensajera en lnea. Los mensajes de corroo dectrnico pasan por un servidor de correo que tambin almacena esos mensajes. Las aplicaciones de mensajera instantnea fl.M) y chat de video tales como AIM, Skypc, YSihoo! Mcssengcr y otras ms le permiten comunicarse con terceras personas en tiempo real, mediante el envo de mensajes y video a travs de los servidores. FTP (protocolo de transferencia de archivos) le permite intercambiar archivos entre mltiples computadoras (por ejemplo, una computadora cliente que est en su escritorio y un servidor de archivos) a travs de Internet, mediante el uso de los protocolos TCP/IP para transferir datos.
s de infraestructura de computadoras e Internet.
La figura 1.4 lista algunas de bs emocionantes formas en que se utilizan bs computadoras e Internet en el entretenim iento.
www.detodoprogramacion.com
6 Captulo I Introduccin a las computadoras e Internet
Nombre Descripcin
iTuncs y la App Store
l'uncs es b tienda de medios de Apple, en donde puede comprar y descargar msica, pelculas, programas de televisin, c-hoolcs, tonos de celular y apps (para iPhonc, ilbd y iPad) sobre la Internet. El servicio iCbud de Apple le permite almacenar sus compras de medbs en b nube" y utilizarlos desde cualquier dispositivo con iOS (el sistema operativo mvil de Apple). En junio de 2011 Apple anunci, en su Conferencia mundial de desarrollado res (WWDC), que se haban descargado 15 mil millones de canciones a travs de iTuncs. lo cual convirti a Apple en d principal vendedor de msica, liara julio de 2011 sr haban descargado 15 mil mitones de aplicaciones de b App Store (www. appl e . com/pr/1 i brary/2011/07/07Apples-App- Store-Dotwiloads-Top-15-Bi 11 io n . html).
TV por Interna Los dispositivos de TV por Interna (como Apple TV y GoogleTV) le permiten acceder a una enorme cantidad de contenido bajo demanda, como juegos, noticias, pdcubs. programas de tdevisin. etctera.
Programacin de juegos
Se espera que los ingresos mundiales por juegos de video lleguen a $65 mil millones en 2011 (uk. reuters.com/article/2011/06/06/us-videogames- factboxidUKTRE75552I20110606). El desarrollo de los juegos ms sofisticados puede costar hasta $100 millones. Cali cfDuty2: Modem Warfaree Acdvisbn, que sali a b venta en 2009, obtuvo $310 milbnes en slo un da en Norteamrica y el Reino Unido (news. c n e t . com/8301-13772 3-10396593-52.html?tag=mncol ;txt) Losjuegos sociales m linca, que permiten a usuarios en todo el mundo competir entre s a travs de Interna, estn creciendo con rapidez. Zynga (creador de juegos en lnea populares, como Fitrmville y Mafia Wari) se Sind en 2007 y ya tiene ms de 265 millones de usuarios al mes. Para dar cabida al aumento en trfico. Zynga agregar 1000 servidores cada semana (techcrunch. COm/2010/09/22/zyngamoves-l-petabyte-of-data-da11y-adds-1000-servers-a-week/).
Figura 1.4 | Ejemplos de computadoras e Internet en el entretenimiento.
1.3 HTML5, CSS3, JavaScript, Canvas y jQueryEn este libro aprender sobre las versiones ms recientes de varias tecnologas clave de desarrollo de aplicaciones Web del bdo del cliente. Esta seccin le mostrar una breve descripcin general de cada una:
H T M L 5Los captulos 2 y 3 introducen el H T M L (Lenguaje de marcado de hipertexto): un tipo especial de lenguaje de computadora que se conoce com o lenguaje de marcado y est discriado para especificar tanto el contenido com o b estructura de pginas Web (tambin conocidas como documentos) de una manera portable. H TM L5, que se encuentra en desarrollo, es la versin emergente de HTM L. Este lenguaje nos permite crear contenido que se despliega de manera apropiada a travs de todo el extraordinario rango de dispositivos conectados a Internet: smartphones, computadoras tipo tablct, computadoras tipo notebook, computadoras de escritorio, dispositivos de propsito especial como pantallas gigantes en auditorios de conciertos y estadios deportivos, y muchos ms.
En esta seccin conocer los fundamentos de H TM L5 y las tcnicas ms sofisticadas tales como: creacin de tablas, creacin de formularios para recolectar la entrada del usuario y el uso de nuevas caractersticas en H TM L5, incluyendo los elementos de estructura de pgina que nos permiten dar significado a las partes de una pgina (por ejemplo: encabezados, reas de navegacin, pies de pgina, secciones, figuras, captura de figuras, y ms).
www.detodoprogramacion.com
13 HTML5. CSS3, JavaScript. Canvas y jQ uery 7
Hay una versin ms estricta" de H T M L , conocida como XH TM L (Lenguaje de marcado de hipertexto ectemible). Este lenguaje se basa en XM L (Lenguaje de marcado extensible, que presentamos en el captulo 15) y se utiliza con frecuencia. Muchas de las tecnologas del Lado del servidor que veremos ms adelante en el libro producen pginas W eb com o docum entos X H T M L de manera predeterminada, aunque la tendencia se inclinasin duda a H TM L5.
Hojas de estilo en cascada (CSS)Aunque H T M L 5 ofrece herramientas para controlar la presentacin de un docum ento, es mejor no mezclar a presentacin con el contenido. H T M L 5 debera usarse slo para especificar la estructura y el contenido de un docum ento.
Los captulos 4 y 5 usan las hojas de estilo en cascada (CSS) para especificar la presentacin o el estilo de los elementos en una pgina Web (fuentes, espaciado, tamaos, colores, posicionamicnto). La tecnologa CSS se dise para aplicar estilo a las pginas Web portables en forma independientea su contenido y estructura. Al separar el estilo de las pginas d e su contenido y estructura, es posible cambiar con facilidad su apariencia visual en un sitio Web completo, o en una parte de un sitio Web, con slo intercambiar una hoja de estilo por otra. CSS3 es la versin actual de CSS y se encuentra en desarrollo. En el captulo 5 introducim os muchas nuevas caractersticas en CSS3.
JavaScriptJavaScript es un lenguaje que nos ayuda a crear pginas W eb dinmicas (es decir, pginas que pueden m odificarse al instante en respuesta a ciertos eventos, como la entrada del usuario, cambios en el tiem po, etctera) y aplicaciones de com putadora. N os perm ite realizar la programacin del lado del cliente de las aplicaciones Web. Adems, ahora existen varios proyectos dedicados a JavaScript del lado del servidor, incluyendo C om m onjS (www.commonjs.org), Node.js (n o d e js .o rg )y Jaxcr ( ja x e r .o rg ) .
JavaScript fue creado por Netscape, la empresa que construy el prim er navegador Web de gran popularidad. Tanto Netscape como M icrosoft han sido instrum entos en la estandarizacin de JavaScript por medio de ECM A International (form alm ente conocida com o la Asociacin de fabricantes europeos de computadoras) como ECM AScript. La versin ms reciente del estndar, ECM AScripr 5, corresponde a la versin de JavaScript que vamos a usar en este libro.
Los captulos del libro sobre JavaScript son ms que una simple introduccin al lenguaje. Tambin presentan los fndamcnros de la programacin de computadoras, incluyendo cstrucniras de control, funciones, arreglos, rceursivi- dad, cadenas y objetos. Aprender que JavaScript es un lenguaje portable de secuencias de comandos (scripr) y que los programas escritos en JavaScript pueden ejecutarse en navegadores Web a travs de una extensa gama de dispositivos.
la s navegadores Web y su portab ilidadAsegurar una apariencia visual consistente en los navegadores del lado del d ien te es uno de los mayores desafos al desarrollar aplicaciones basadas en Web. En la actualidad no existe un estndar al que deban adherirse los proveedores de software en cuanto a la creacin de navegadores Web. Aunque la mayora com parten un conjunto com n de caractersticas, cada uno podra desplegar las pginas en form a distinta. Los navegadores estn disponibles en muchas versiones y en muchas plataformas diferentes (M icrosoft W indows, Apple Macintosh, linux , UNIX, e tc ) . Ixis proveedores agregan caractersticas a cada nueva versin que, algunas veces, producen problemas de incom patibilidad entre plataformas. Es difcil desarrollar pginas Web que se desplieguen correctamente en todas las versiones de cada navegador.
Todos los ejemplos de cdigo en el libro se probaron en los cinco navegadores de escritorio ms populares y en los dos navegadores mviles ms conocidos (figura 1.5). El soporte de las caractersticas de H T M L 5, CSS3 y JavaScript vara segn el navegador. El sido Web H TM L5 Test (h t tp : / /h tm l 5 test.com ) asigna una puntuacin a cada navegador con base en el nivel de soporte para las caractersticas ms recientes de estos estndares en
www.detodoprogramacion.com
Captulo I Introduccin a las computadoras e Internet
evolucin. La figura 1.5 lista los cinco navegadores de escritorio que usamos por orden inverso a sus puntuaciones en la prueba de H TM L5, del ms al menos compadble al momento de escribir este libro. Se espera que Internet Explorer 10 (IE10) tenga una clasificacin de compatibilidad mucho mayor que IE9. Tambin puede revisar sitios como h ttp :/ /c a n iu s e .c o m , en donde obtendr una lista de las caractersticas cubiertas por cada navegador.
T ip d e portabilidad l . lEn la Web hay muthof navegadores distintos, incluyendo muchas versiones antiguas con menos capacidades, por lo que es difcil para los autores y desarrolladores de aplicaciones Web crear soluciones universales. El W3C est trabajando en la bsqueda de una plataforma universal del lado del cliente (h ttp: //m u . w3. org/2006/ webapl/adnin/cbarter) .
Navegador
Participacin aproximada en el mercado al mes de agosto de 2011 (http://gs.statcounter.com)
ftjntos obtenidos de los 450 de html5tesLcom
hit regadores ele escritorio Participacin en el mercadoGoogic Chromc 13 17% 330Mozilla Fia-fox 6 27% 298Apple Safari 5.1 7% 293Opera 11.5 2% 286Internet Expbrcr 9 40% 141
Navegadores mviles Participacin en el mercado de dispositivos mviles
Phone 1 5% (de navegadores mviles) 217Android 18% (de navegadores mviles) 184
Figura 1.5 | Puntuaciones de la prueba de HTML5 para los navegadores utilizados para probar los ejemplos.
jQ u eryEn la actualidad, jQ uery (jQ uery .o rg ) es la ms popular de cientos d e bibliotecas de JavaScript} Simplifica la programacin en JavaScript al facilitar la m anipulacin de los elementos de una pgina Web e interactuar con los servidores de una forma portable a travs de varios navegadores Web. Provee una biblioteca de controles personalizados de interfaz grfica de usuario (G U I) (ms all de b s controles bsicos de G U I que ofrece H