Internet&World Wide Web Cómo Programar 5ta

1

Click here to load reader

description

Diseño web

Transcript of Internet&World Wide Web Cómo Programar 5ta

  • 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