Your SlideShare is downloading. ×
Modulo   taller progwebaa2
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Modulo taller progwebaa2

1,467
views

Published on

taller de programacion

taller de programacion


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,467
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
50
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TALLER DE PROGRAMACIÓN WEB Ing. David Gil
  • 2. Unidad Didáctica: Taller de Programación Web | 2IntroducciónInternet ha creado en el mundo un nuevo modo de conectarse, trabajar y estudiar. Internet y en particular elsitio web es un entorno donde la programación marca la diferencia, al integrar los sistemas de su empresacon el entorno web.La necesidad de contar con entornos amigables e intuitivos que puedan satisfacer las necesidades deusuarios muy heterogéneos a ocasionado que el desarrollo web se centre en gran parte en un diseñoespectacular y llamativo, que en un primer momento es importante; pero para que una web sea operativano se puede supeditar todo únicamente al diseño o a la creación de páginas web sino que hay que integrarlocon la usabilidad en internet y la presencia en buscadores para obtener unos resultados óptimos. Por estosmotivos la programación web es vital en el desarrollo de intranets, tiendas online o negocios de comercioelectrónico.La Unidad Didáctica “Taller de Programación Web” ha sido planificada para dotar a los estudiantes de losconocimientos y el desarrollo de habilidades en la construcción de Aplicaciones Web usando ASP.NET conC# las cuales son las tecnologías más importantes, innovadoras y fascinantes que han surgidorecientemente en el contexto de la programación orientada a Internet que les permitirá de una manera fácily transparente la creación de Sitios Web fiables y robustos.CONTENIDOIntroducción 2Planificando el desarrollo de aplicaciones web con ASP.NET y C# 3Construyendo Sitios Web ASP.NET 30Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 3. Unidad Didáctica: Taller de Programación Web | 3Planificando el desarrollo de aplicacionesweb con ASP.NET y C#Introducción al desarrollo webLa World Wide Web y la Internet que la alimenta son, posiblemente, los desarrollos más importantes en lahistoria de la computación. Estas tecnologías nos han llevado a la era de la informática; además se hanconvertido en parte integral de la vida diaria en nuestros días.Si volteamos la mirada hacia el pasado, el crecimiento caótico de la tecnología web tubo su origen en lacreciente necesidad de estar, para bien o para mal, en el ciberespacio; es por ello que los programadoresdesarrollan sitios web por doquier sin reparar en la calidad de los mismos. Al inicio, debido a que losrequerimientos de estos sitios eran sencillos los inconvenientes pasaron por desapercibidos; confome losrequerimientos de las aplicaciones web se tornaron más complejos, quedaron al descubierto las falenciasdel desarrollo sin ningún criterio técnico.Para evitar una web enmarañada y lograr mayor éxito en el desarrollo y la aplicación de sistemas basados enWeb complejos y a gran escala, existe una apremiante necesidad de enfoques disciplinados y nuevosmétodos y herramientas con que desarrollar, desplegar y evaluar los sistemas y aplicaciones basados enWeb. Tales enfoques y técnicas deben considerar las características especiales de los nuevos medios, losambientes y escenarios operativos, y la multiplicidad de perfiles de usuario que colocan desafios adicionalesal desarrollo de aplicaciones basadas en Web.La ingeniería web aplica “sólidos principios científicos, de ingeniería y de administración, y enfoquesdisciplinados y sistemáticos para el desarrollo, despliegue y mantenimiento exitoso de sistemas yaplicaciones basadas en web de alta calidad.Atributos de los Sistemas y Aplicaciones basados en WebEn los primeros días de la World Wide Web los “sitios web” consistían en poco más que un conjunto dearchivos de hipertexto ligados que presentaban información mediante texto y gráficos limitados. Conformeel tiempo pasó, el HTML aumentó al desarrollar herramientas (por ejemplo, XML, Java) que permitieron alos ingenieros web ofrecer capacidades de cálculo junto con información. Nacieron los sistemas yaplicaciones basados en web. En la actualidad, las aplicaciones web han evolucionado en sofisticadasherramientas de computación que no sólo proporcidonan función por si mismas al usuario final, sino quetambién se han integrado con bases de datos corporativas y aplicaciones de negocios.Las aplicaciones web son diferentes a las muchas otras categorias de software informático; los sistemasbasados en web involucran una mezcla entre publicación impresa y desarrollo de software, entre marketinge informática, entre comunicaciones internas y relaciones externas, y entre arte y tecnología. En la mayoríade las aplicaciones web se encuentran los siguientes atributos.• Intensidad de red. Una aplicación web reside en una red y debe satisfacer las necesidades de una variada comunidad de clientes. Una aplicación web puede residier en la Internet. Alternativamente, una aplicación puede colocarse en una Intranet o en una Extranet.• Concurrencia. Un gran número de usuarios puede tener acceso a la aplicación web al mismo tiempo. En muchos casos, los patrones de uso entre los usuarios finales variarán enormemente.• Carga impredecible. El número de usuarios de la aplicación web puede variar en órdenes de magnitud de día con día.• Desempeño. Si un usuario de la aplicación web debe esperar demasiado puede decidir irese a cualquier otra parte.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 4. Unidad Didáctica: Taller de Programación Web | 4• Disponibilidad. Aunque la expectativa de una disponibilidad del total es poco razonable, los usuarios de las aplicaciones web populares con frecuencia demandan acceso bre la base de “24/7/365”.• Gobernada por los datos. La función primordial de muchas aplicaciones web es usar hipermedia para presentar contenido de texto, gráficos, audio y video al usuario final. Además, por lo general, las aplicaciones web se utilizan para tener acceso a información que existe en bases de datos que originalmente no eran parte integral de ambiente basado en web (por ejemplo, comercio electrónico o aplicaciones financieras).• Sensibilidad al contenido. La calidad y naturaleza estética del contenido sigue siendo un importante determinante de la calidad de una aplicación web.• Evolución continúa. A diferencia del software de aplicación convencional, que evoluciona a lo largo de una serie de planeadas liberaciones espaciadas cronológicamente, las aplicaciones web evolucionan de manera continua.• Inmediatez. Aunque la inmediatez es una característica de muchos dominios de aplicación, las aplicaciones web con frecuencia muestran un tiempo para comercializar que puede ser cuestión de unos cuantos días o semanas.• Seguridad. Puesto que las aplicaciones web están disponibles mediante el acceso a la red, es difícil, si no imposible, limitar la población de usuarios finales que pueden tener acceso a la aplicación. Con la finalidad de proteger el contenido confidencial y ofrecer modos seguros de transmisión de datos, se deben implementar fuertes medidas de seguridad a lo largo de la infraestructura que sustenta una aplicación web y dentro de la aplicación misma.• Estética. Una parte innegable de la apariencia de una aplicación web es su presentación y la disposición de sus elementos. Cuando una aplicación se diseña para comercializar o vender productos o ideas, la estética puede tener tanto que ver con el éxito como el diseño técnico.El proceso de Ingeniería WebLos atributos de los sistemas y aplicaciones basados en web tienen una profunda influencia sobre el procesode ingeniería web que se elija.La efectividad de cualquier proceso de ingeniería depende de su adaptabilidad. Esto es, la organización delequipo de proyecto, los modos de comunicación entre miembros del equipo, las actividades de ingeniería ylas tareas que deben realizarse, la información que se recolecte y cree, y los métodos empleados paraproducir un producto de alta calidad deben estar adaptados a la gente que realiza el trabajo, el plazo y lasrestricciones del proyecto, y al problema que se quiere resolver. Antes de definir un marco de trabajo deproceso para Ingeniería Web se debe reconocer que: 1. Las aplicaciones web con frecuencia se entregan de manera incremental. Esto es, las actividades del marco de trabajo ocurrirán de manera repetida conforme cada incremento se someta a ingeniería y se entregue. 2. Los cambios ocurrirán frecuentemente. Estos cambios pueden ocurrir como resultado de la evaluación de un incremento entregado o como consecuencia de cambiar las condiciones de los negocios. 3. Los plazos son cortos. Esto aminora la creación y revisión de voluminosa documentación de ingeniería, pero no excluye la simple realidad de que el análisis crítico, el diseño y la prueba deben registrarse en alguna forma.A continuación se aborda el marco de trabajo para el proceso de ingeniería web.o Comunicación con el cliente. Dentro del proceso de ingeniería web la comunicación con el cliente se caracteriza por medio de dos grandes tareas: el análisis del negocio y la formulación. El análisis delMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 5. Unidad Didáctica: Taller de Programación Web | 5 negocio define el contexto empresarial-organizativo para la aplicación web. Además, se identifican los participantes, se predicen los potenciales cambios en el ambiente o los requisitos del negocio, y se define la integración entre la aplicación web y otras aplicaciones de negocios, bases de datos y funciones. La formulación es una actividad de recopilación de requisitos que involucra a todos los participantes. El intento es describir el problema que la aplicación web habrá de resolver (junto con los requisitos básicos para la aplicación web) con el aprovechamiento de la mejor información disponible. Además, se intenta identificar áreas de incertidumbre y dónde ocurrirán cambios potenciales.o Planeación. Se crea el plan de proyecto para el incremento de la aplicación web. El plan consiste de una definición de tareas y un calendario de plazos respecto al periodo (usualmente medido en semanas) proyectado para el desarrollo del incremento de la aplicación web.o Modelado. Las labores convencionales de análisis y diseño de ingeniería del software se adaptan al desarrollo de la aplicación web, se mezclan y luego se funden en la actividad de modelado de la ingeniería web. El intento es desarrollar análisis “rápidos” y modelos de diseño que definan requisitos y al mismo tiempo representen una aplicación web que los satisfará.o Construcción. Las herramientas y la tecnología de la ingeniería web se aplican para construir la aplicación web que se ha modelado. Una vez que se construye el incremento de aplicación web, se dirige una serie de pruebas rápidas para asegurar que se descubran los errores en el diseño (es decir: contenido, arquitectura, interface, navegación). Pruebas adicionales abordan otras características de la aplicación web.o Despliegue. La aplicación web se configura para su ambiente operativo, se entrega a los usuarios finales y luego comienza un periodo de evaluación. La retroalimentación acerca de la evaluación se presenta al equipo de ingeniería web y el incremento se modifica conforme se requiera.Formulación y Planeación para Ingeniería WebComenzar siempre es difícil. Por una parte, existe una tendencia a diferir, a esperar hasta que toda t estecruzada y toda i tenga punto antes de que comience el trabajo. Por otra parte, hay un deseo de saltar ya, decomenzar a construir incluso antes de que en realidad se conozca que se necesita hacer. Ambos enfoquesson inapropiados y por ello las dos primeras actividades del marco de trabajo de la ingeniería web destacanla formulación y la planeación. La formulación valora la necesidad subyacente de la aplicación web, lascaracterísticas y funciones globales que desean los usuarios y el ámbito del esfuerzo de desarrollo. Laplaneación aborda los elementos que deben definirse para establecer un flujo de trabajo y programa, y arastrear el trabajo conforme avanza el proyecto.Formulación de Sistemas Basados en WebLa formulación se sistemas y aplicaciones basados en web representa una secuencia de acciones deingeniería web que comienza con la identificación de las necesidades del negocio, se mueve hacia unadescripción de los objetivos de la aplicación web, define grandes características y funciones y realiza larecopilación de requisitos que conducen al desarrollo de un modelo de análisis. La formulación permite quelos clientes y el equipo de desarrollo establezcan un conjunto común de metas y objetivos para laconstrucción de la aplicación web. También identifica el ámbito del esfuerzo de desarrollo y proporciona unmedio para determinar un resultado exitoso. El análisis –una actividad técnica que es una continuación de laformulación- identifica los requisitos funcionales, de comportamiento y de datos para la aplicación web.Preguntas de formulaciónSe sugiere un conjunto de preguntas que deben formularse y responderse al comienzo de la etapa deformulación:Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 6. Unidad Didáctica: Taller de Programación Web | 6 • ¿Cuál es la principal motivación (necesidad del negocio) para la aplicación web? • ¿Cuáles son los objetivos que debe satisfacer la aplicación web? • ¿Quién usará la aplicación web?Recopilación de requisitos para aplicaciones webLos objetivos globales de la recopilación de requisitos para aplicaciones web son:  Identificar requisitos de contenido.  Identificar requisitos funcionales.  Definir escenarios de interacción para diferentes clases de usuarios.Los siguientes pasos de la recopilación de requisitos se dirigen para lograr estos objetivos: 1. Pedir a los clientes que definan las categorías de usuario y describan cada categoría. 2. Comunicarse con los clientes para definir los requisitos básicos de la aplicación web. 3. Analizar la información recopilada y utilizar la información para realizar un seguimiento con los clientes. 4. Definir casos de uso que describan escenarios de interacción para cada clase de usuario.Planeación de Proyectos de Ingeniería WebDada la inmediatez de las aplicaciones web es razonable preguntar: ¿en realidad se necesita gastar tiempo yesfuerzo en la planeación y administración de una aplicación web? Dado que la gestión del proyecto seindica para los proyectos tradicionales, parecería razonable argumentar que también estaría indicada paralos grandes proyectos electrónicos. Los pequeños proyectos electrónicos tienen características especialesque los diferencian de los proyectos tradicionales. Sin embargo, incluso en el caso de los pequeñosproyectos electrónicos, la planeación se debe realizar, se deben considerar los riesgos, se debe establecerun programa y se deben definir controles de modo que eviten la confusión, la frustración y el fracaso.El Equipo de Ingeniería WebUn equipo de ingeniería web exitoso mezcla una amplia variedad de talentos que deben trabajar comoequipo en un ambiente de proyecto con alta presión. Los plazos son cortos, los cambios son inexorables y latecnología continúa cambiando. La creación de un equipo que se consolide no es un asunto sencillo.Los siguientes papeles se deben distribuir entre los miembros del equipo de ingeniería web.Desarrolladores/proveedores de contenido. Dado que el contenidos controla inherentemente lasaplicaciones web, una función del equipo se debe enfocar en la generación o recopilación del contenido.Editores de web. El variado contenido que generan los respectivos desarrolladores/proveedores se debeorganizar para incluirlo en la aplicación web. Además, alguien debe actuar como conexión entre el equipotécnico que diseña la aplicación web y los desarrolladores/proveedores de contenido sin conocimientostécnicos. Este papel lo satisface el editor web, quien debe entender tanto el contenido como la tecnologíade la aplicación web.Ingeniero web. El ingeniero web se involucra en un amplio rango de actividades durante el desarrollo deuna aplicación web, que incluyen la obtención de requisitos, el modelado de análisis, el diseñoarquitectónico, de navegación y de interfase, la implementación de la aplicación y de las pruebas. Tambiéndebe tener una sólida comprensión de las tecnologías de componentes, de las arquitecturascliente/servidor, de HTML/XML y de tecnologías de bases de datos, y un conocimiento práctico de losMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 7. Unidad Didáctica: Taller de Programación Web | 7conceptos multimedia, de las plataformas hardware/software, de la seguridad de redes y de cuestiones deapoyo a sitios web.Expertos en dominios empresariales. Un experto en dominio empresarial debe ser capaz de respondertodas las preguntas relacionadas con metas, objetivos y requisitos empresariales relacionados con laaplicación web.Especialistas de soporte. Este papel se asigna a la persona(s) que es (son) responsable(s) del apoyocontinuo a la aplicación. Puesto que las aplicaciones web evolucionan continuamente, el especialista desoporte es responsable de las correcciones, adaptaciones y mejoras al sitio, que incluyen actualizaciones decontenido, implementación de nuevos procedimientos y formas, y cambios al patrón de navegación.Administrador. Usualmente llamado “web master”, esta personas tiene la responsabilidad de la operacióndiaria de la aplicación web, lo que incluye: desarrollo e implementación de políticas para la operación de laaplicación, establecimientos de procedimientos de soporte y retroalimentación, implementación deseguridad y derechos de acceso, medición y análisis de tráfico del sitio web, coordinación de losprocedimientos de control de cambios y coordinación con el especialista de soporte. El administradortambién puede estar involucrado en las actividades técnicas que realizan los ingenieros web y losespecialistas de soporte.Planeación de aplicaciones web: subcontrataciónUn porcentaje sustancial de las aplicaciones web se subcontrata con proveedores que (supuestamente) seespecializan en el desarrollo de sistemas y aplicaciones basados en web. En tales casos, un negocio (elcliente) pide un precio fijo para desarrollar la aplicación web de uno o más proveedores, evalúa los precioscompetitivos y luego elige un proveedor para efectuar el trabajo.Planeación de aplicaciones web: ingeniería web en casaConforme las aplicaciones web se vuelven más extensas y estratégicas para los negocios, muchascompañías han optado por controlar el desarrollo en casa. No sorprende que la ingeniería web en casa segestione de manera un poco diferente a un esfuerzo de subcontratación.Los pasos siguientes se recomiendan para proyectos de ingeniería web pequeños y de tamaño moderado:  Entender el ámbito, las dimensiones de cambio y las restricciones del proyecto.  Definir una estrategia de proyecto incremental.  Realizar análisis de riesgo.  Desarrollar una estimación rápida.  Elegir un conjunto de tareas (descripción del proceso).  Establecer un programa.  Definir mecanismos de rastreo del proyecto.  Establecer un enfoque de gestión del cambio.Introducción a ASP.NETCuando la primera versión de .NET Framework fue lanzada hace casi una década, fue el inicio de unadirección nueva y radical en el diseño de software. Inspirado por lo mejor de Java, COM, y la Web, ytomando nota de los errores y limitaciones de las tecnologías anteriores, Microsoft se propuso "golpear elbotón de reinicio" en su plataforma de desarrollo. El resultado fue un conjunto de tecnologíassorprendentemente maduro que los desarrolladores pueden utilizar para hacer todo, desde la construcciónMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 8. Unidad Didáctica: Taller de Programación Web | 8de una aplicación Windows para ejecutar una consulta de base de datos y una herramienta web de creaciónde sitios conocida como ASP.NET.Hoy en día, ASP.NET es tan popular como siempre, pero ya no es tan revolucionario. Y, aunque lafuncionalidad básica que se encuentra en el corazón de ASP.NET es prácticamente el mismo de hace diezaños, Microsoft ha añadido capas de características nuevas y las abstracciones de alto nivel de codificación.También ha introducido al menos una dirección nueva que compite con las tradicionales de programaciónASP.NET, que se llama ASP.NET MVC.Los Siete Pilares de ASP.NET 1. ASP.NET está integrado con el .NET Framework. 2. ASP.NET es compilado, no interpretado. 3. ASP.NET es multilenguaje. 4. ASP.NET se encuentra alojado por el Common Language Runtime. 5. ASP.NET es orientado a objetos. 6. ASP.NET es compatible con todos los navegadores. 7. ASP.NET es fácil de desplegar y configurar.Visual StudioCon ASP.NET, tiene varias opciones para desarrollar aplicaciones web. Si lo prefiere (y no le importa eltrabajo extra), puede codificar todas las páginas web y clases a mano con un sencillo editor de texto. Esteenfoque es atractivamente sencillo, pero tedioso y propenso a errores. Los desarrolladores Profesionales deASP.NET rara vez lo hacen.En cambio, casi todos los sitios web ASP.NET a gran escala se construyen utilizando Visual Studio. Estaherramienta de desarrollo profesional incluye un amplio conjunto de herramientas de diseño, incluidas laslegendarias herramientas de depuración e IntelliSense, que captura los errores y ofrece sugerencias amedida que escribe. Visual Studio también soporta el modelo de código subyacente, que separa elcódigo .NET que escribes de las etiquetas de marcado de la página web. Visual Studio agrega un servidorweb integrado que facilita la depuración de web sites.Escribir y compilar el código a mano sería una tarea tediosa para cualquier desarrollador. Sin embargo, elIDE de Visual Studio ofrece una serie de características de alto nivel que van más allá de la gestión de códigobásico. Estas son algunas de las ventajas de Visual Studio:  Un servidor web integrado.  Desarrollo multilenguaje.  Menos escritura de código.  Intuitivo estilo de codificación.  Rápido desarrollo.  Depuración.Sitios web (Websites) y proyectos web (Web Projects)Visual Studio ofrece dos formas de crear una aplicación web ASP.NET: • Desarrollo basado en proyectos: Cuando se crea un proyecto web, Visual Studio genera un archivo de proyecto .csproj (asumiendo que se está codificando en C #) que registra los archivos en su proyecto y almacena una configuración de depuración. Cuando se ejecuta un proyectoMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 9. Unidad Didáctica: Taller de Programación Web | 9 Web, Visual Studio compila todo el código en un único ensamblado antes de lanzar su navegador web. • Desarrollo sin proyectos: Un enfoque alternativo es crear un sitio web sencillo sin ningún tipo de archivo de proyecto. En este caso, Visual Studio asume que todos los archivos en el directorio del website (y sus subdirectorios) son parte de la aplicación web. En este escenario, Visual Studio no necesita precompilar el código. En su lugar, ASP.NET compila su sitio web la primera vez que solicita una página.El Integrated Development Environment (IDE) de Visual StudioVentana DescripciónSolution Explorer (Explorador Lista los archivos y subcarpetas que están en la carpeta de la aplicaciónde soluciones) web.Toolbox (Caja de herramientas) Muestra controles de servidor incorporados de ASP.NET y de cualquier otro fabricante o controles. Los controles pueden estar escritos en cualquier idioma y usados en cualquier idioma.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 10. Unidad Didáctica: Taller de Programación Web | 10Server Explorer (Explorador de Permite el acceso a bases de datos, los servicios del sistema, las colas deservidores) mensajes, y otros recursos del lado del servidor.Properties (Propiedades) Le permite configurar el elemento seleccionado actualmente, si se trata de un archivo en el Explorador de soluciones o un control en la superficie de diseño de un formulario web.Error List (Lista de errores) Reporta los errores que Visual Studio ha detectado en el código, pero que no se han resuelto todavía.Task List (Lista de tareas) Listas de comentarios que se inician con un apodo predefinido para que pueda hacer un seguimiento de las porciones de código que desea cambiar y saltar a la posición adecuada rápidamente.Document (Documento) Permite diseñar una página web arrastrando y soltando, y la edición de la los archivos de código que tiene dentro de su Explorador de soluciones. También soporta los tipos de archivos que no sean ASP.NET, tales como HTML estático y archivos XML.Macro Explorer Le permite ver todas las macros que haya creado y ejecutarlos.Class View (Vista de clases) Muestra diferentes vistas de su aplicación, las cuales se organizan para mostrar todas los clases que has creado (y sus métodos, propiedades y eventos).Team Explorer Muestra los proyectos de equipo y le permite verificar los archivos a través de control de código fuente para que pueda trabajar en ellos. Esta ventana sólo aparece si ha instalado el Visual Studio Team Suite edición.Manage Styles and Apply Permite modificar los estilos en una hoja de estilos vinculados yStyles aplicarlos a la página Web actual.El editor de códigoMuchas de las características más prácticas de Visual Studio aparecen cuando usted comienza a escribir elcódigo que apoye su interfaz de usuario. Para iniciar la codificación, es necesario cambiar a la vista decódigo subyacente. Para cambiar de nuevo y adelante, puede usar dos botones que se colocan justo encimade la ventana del Explorador de soluciones.Agregar referencias de ensambladoDe forma predeterminada, ASP.NET construye un pequeño conjunto de ensamblados de uso común. Losensamblados .NET están disponible para todas las páginas web.Estos ensamblados se configuran a través de una máquina especial de configuración de archivo. No esnecesario tomar ninguna medida adicional para utilizar las clases en estos ensamblados.OutliningMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 11. Unidad Didáctica: Taller de Programación Web | 11Outlining permite a Visual Studio "colapsar" una subrutina, la estructura de bloque, o de la región a una solalínea. Le permite ver el código que le interesa, ocultando el código de importancia. Para cerrar una parte decódigo, haga clic en el cuadro de - junto a la primera línea. Haga clic en el cuadro de nuevo (que ahoratendrá un símbolo +)Member ListVisual Studio hace fácil para que usted pueda interactuar con los controles y las clases. Cuando escriba unpunto (.) después de una clase o nombre de objeto, Visual Studio aparece una lista de propiedadesdisponibles y los métodos.Error UnderliningUna de las características más útiles del editor de código de error es subrayado. Visual Studio es capaz dedetectar un variedad de condiciones de error, como variables no definidas, propiedades o métodos, el tipode datos no válidos las conversiones, y los elementos de código que falta. En lugar de detenerse a avisar deque un problema existe, el editor de Visual Studio en silencio subraya el código erróneo. Usted puedecolocar el ratón para ver una breve descripción del problema.El modelo de códigoVisual Studio soporta dos modelos para codificar páginas web:Inline code (código en línea): Este modelo es el más cercano a las páginas ASP tradicionales. Todo elcódigo y el código HTML es almacenados en un único archivo .aspx. El código se inserta en uno o másbloques de secuencias. Sin embargo, a pesar de que el código está en un bloque de secuencia de comandos,no pierde IntelliSense o la depuración de apoyo, y no necesitan ser ejecutados de forma lineal, de arriba aabajo (como el código ASP clásico). Este modelo es muy útil ya que mantiene todo en un paquete limpio, yes popular para la codificación de páginas web sencillas.Code-behind (código subyacente): Este modelo separa cada página Web ASP.NET en dos archivos: unarchivo. Markup aspx con HTML y las etiquetas de control, y un archivo de código .cs con el código fuentede la página (en el supuesto que estás usando C # como lenguaje de programación de su página web). Estemodelo proporciona una mejor organización, y separación de la interfaz de usuario de la lógica deprogramación esto es muy importante a la hora de la creación de páginas complejas.Proyectos WebCuando se crea un proyecto web, Visual Studio genera un número de archivos adicionales, incluyendo losarchivos de proyecto .csproj y .csproj.user y un archivo de solución .sln. Cuando se crea una aplicación,Visual Studio genera archivos temporales, que se encuentran en el directorio Obj, y uno o másarchivos .pdb (en el subdirectorio Bin) con símbolos de depuración. Ninguno de estos archivos se debeimplementar al servidor web cuando la aplicación web está completa. Además, ninguno de los archivos decódigo fuente C# (archivos con extensión .cs) se debe implementar, porque Visual Studio los precompila enun ensamblado DLL.Las ventajas más importantes del desarrollo web basado en proyectos son las siguientes:  El sistema de desarrollo basado en proyecto es más estricto que desarrollo sin proyecto: Esto es porque el archivo de proyecto muestra explícitamente cuáles archivos deben ser parte del proyecto. Esto le permite detectar posibles errores (como archivos que faltan) y deliberar incluso actos de sabotaje (como archivos no deseados, añadidos por un usuario malintencionado).  Los proyectos web permiten mayor flexibilidad en la administración de archivos: un ejemplo es si ha creado varios proyectos separados y los colocas en subdirectorios del mismo directorio virtual. En este caso, los proyectos se mantienen separados para fines de desarrollo, pero son básicamente laMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 12. Unidad Didáctica: Taller de Programación Web | 12 misma aplicación para la implementación. Con el desarrollo sin proyectos, no hay ninguna manera de mantener los archivos en estos subdirectorios separados.  Los proyectos web permiten un proceso de implementación personalizada: Los archivos de proyecto de Visual Studio trabajan con la utilidad de MSBuild, lo que permite la compilación de proyecto automatizado y personalizado. Además, obtendrá un mayor control sobre el ensamblado generado por su aplicación web.  Los proyectos Web funcionan mejor en algunos escenarios de migración: Por esta razón, ASP.NET convierte automáticamente los proyectos web de Visual Studio .NET 2003 a proyectos web de Visual Studio 2010. Esta conversión requiere menos cambios a sus páginas.Depuración en Visual StudioVisual Studio siempre ha proporcionado herramientas sólidas para la depuración de las aplicaciones web. EnVisual Studio 2010, estas herramientas son esencialmente las mismas, con algunas mejoras menores quehacen más fácil profundizar en objetos y colecciones en tiempo de ejecución.Para depurar una página web específica en Visual Studio, seleccione la página web en el Explorador desoluciones y haga clic en el botón Iniciar depuración en la barra de herramientas. (Si actualmente estáeditando la página web que desee probar, no necesita seleccionarlo en absoluto, simplemente haga clic eniniciar depurar para lanzarlo directamente.)Lo que sucede después depende de la ubicación de su proyecto. Si el proyecto está almacenado en unservidor web remoto o un directorio virtual local de IIS, Visual Studio simplemente lanza el exploradorpredeterminado y le dirige a la dirección URL correspondiente. Si ha utilizado una aplicación del sistema dearchivos, Visual Studio inicia su servidor web integrado en un puerto dinámicamente seleccionado (queimpide que entrar en conflicto con IIS, si está instalado). A continuación, Visual Studio inicia el exploradorpredeterminado y pasa una URL que señala al servidor web local. De cualquier manera, el trabajo real -compilar la página y la creación de los objetos de página- es pasado al proceso de trabajo de ASP.NET.El servidor de prueba sólo se ejecuta mientras se ejecuta Visual Studio, y sólo acepta solicitudes de suequipo. Cuando Visual Studio se inicia el servidor web integrado, añade un icono para él en la bandeja delsistema. Si desea obtener información adicional sobre el servidor de prueba, o desea cerrarlo, simplementehaga doble clic en el icono de la bandeja del sistema.Web Forms (Formularios Web)Las páginas ASP.NET (oficialmente conocidas como formularios web) son una parte vital de una aplicaciónASP.NET. Proporcionan la salida actual de una aplicación web –las páginas web, que los clientes solicitan yven en sus navegadores.Esencialmente, los formularios web le permiten crear una aplicación web utilizando la misma interfaz debasada en controles como una aplicación Windows. Para ejecutar un formulario web ASP.NET, el motorASP.NET lee todo el archivo .aspx, genera los objetos correspondientes, y dispara una serie de eventos.Usted reacciona a estos eventos utilizando código completamente orientado a objetos.Procesamiento de páginaUno de los objetivos principales de ASP.NET es crear un modelo que permite a los desarrolladores web,desarrollar rápidamente formularios web de la misma manera que los desarrolladores de Windows puedenconstruir ventanas hechas a medida en una aplicación de escritorio. Por supuesto, las aplicaciones web sonmuy diferentes de las tradicionales aplicaciones de cliente enriquecido. Hay dos obstáculos principales:Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 13. Unidad Didáctica: Taller de Programación Web | 13 • Las aplicaciones Web se ejecutan en el servidor. • Las aplicaciones web no tienen estado.Etapas de procesamiento de web formsPor el lado del servidor, el procesamiento de un formulario Web ASP.NET se lleva a cabo en etapas. En cadaetapa, se plantean diversos eventos. Esto permite que su página de conecte al flujo de procesamiento encualquier etapa y responder en cualquier momento que lo desee.La siguiente lista muestra las principales etapas en el flujo de proceso de una página ASP.NET: • Inicialización del marco de trabajo de la página. • Inicialización del código de usuario. • Validación. • Manejando Eventos • Enlace de datos automático. • Limpieza.La clase PageLa página en si misma es como una instancia de un tipo de objeto control. De hecho, todos los formulariosweb son en realidad instancias de la clase Page de ASP.NET, que se encuentra en el espacio de nombresSystem.Web.UI.Es posible que haya notado que cada clase de código subyacente explícitamente se deriva deSystem.Web.UI.Page. Esto significa que cada web form a crear está equipado con una enorme cantidadfuncionalidad de fuera de la de la caja. El FindControl () y la propiedad IsPostBack son dos ejemplos quehemos visto hasta ahora. Además, se derivan de la clase Page que da a su código las siguientes propiedadesde gran utilidad: o Session o Application o Cache o Request o Response o Server o User o TraceServer Controls (Controles de Servidor)Los controles de servidor, son una parte fundamental de la arquitectura ASP.NET. En esencia, los controlesde servidor son las clases de .NET Framework que representan los elementos visuales de un formulario web.Algunas de estas clases son relativamente sencillos y reprecentan de cerca a una etiqueta HTML específica.Otros controles son mucho más ambiciosos y hacen una representación más compleja de múltipleselementos HTML.Tipos de Server Controls  Controles de servidor HTML: Estas son las clases que envuelven los elementos estándar HTML. Aparte de este atributo, la declaración de un control de servidor HTML sigue siendo el mismo. Dos ejemplos son HtmlAnchor (para la etiqueta <a>) y HtmlSelect (para la etiqueta <select>). Sin embargo, puede convertir cualquier etiqueta HTML en un control de servidor. Si no hay una clase directa correspondiente, ASP.NET simplemente usará la clase HtmlGenericControl. Para cambiarMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 14. Unidad Didáctica: Taller de Programación Web | 14 un elemento HTML normal en un control de servidor, basta con añadir el atributo runat = "server" a la etiqueta del elemento.  Controles Web: Estas clases duplican las funciones de los elementos básicos de HTML, pero tiene un juego más consistente y significativa de propiedades y métodos que hacen más fácil al desarrollador declarar y acceder a ellos. Algunos ejemplos son los controles HyperLink, ListBox y Button. En Visual Studio, se encuentran en la ficha Estándar del Cuadro de herramientas.  Controles Enriquesidos: Estos controles avanzados tienen la capacidad de generar una gran cantidad de código HTML, e incluso JavaScript del lado del cliente para crear la interfaz. Algunos ejemplos son el Calendar, AdRotator, y los controles TreeView. En Visual Studio, muchos controles enriquesidos también se encuentran en la ficha Estándar del Cuadro de herramientas.  Controles de validación: Este conjunto de controles permite fácilmente la validación de un control de entrada asociado contra varias normas o reglas definidas por el usuario. Por ejemplo, puede especificar que la entrada no puede estar vacía, que debe ser un número, que debe ser mayor que un determinado valor, y así sucesivamente. Si la validación falla, se puede evitar el procesamiento de páginas o permitir que estos controles muestren mensajes de error en línea en la página. En Visual Studio, estos controles se encuentran en la ficha de validación de la Caja de herramientas.  Controles de datos: Estos controles incluyen cuadriculas sofisticadas y listas que están diseñados para mostrar grandes cantidades de datos, con soporte para características avanzadas tales como plantillas, edición, selección, y paginación. Este conjunto incluye también los controles de origen de datos de que permiten unirse a diferentes fuentes de datos de forma declarativa, sin necesidad de escribir código adicional.  Controles de navegación: Estos controles están diseñados para mostrar mapas de sitio y permitir al usuario navegar de una página a otra.  Controles de inicio de sesión: Estos controles son el soporte de formularios de uthentication, en el modelo de ASP.NET para autenticación de usuarios contra una base de datos y el seguimiento de su estado. En vez de escribir sus propias interfaces para trabajar con la autenticación de formularios, puede utilizar estos controles para obtener precompilados, páginas de acceso personalizables, la recuperación de la contraseña y el usuario, asistentes para la creación de usuarios.  Controles partes Web: Este conjunto de controles soporta WebParts, un modelo de ASP.NET para la construcción por componentes, portales web altamente configurables.  Controles ASP.NET AJAX: Estos controles permiten el uso de técnicas Ajax en sus páginas web sin forzar a escribir código del lado del cliente.  Controles de ASP.NET Mobile: Este es un conjunto de controles que se asemeja a los controles Web, pero están personalizados para apoyar a los clientes móviles como PDAs, teléfonos inteligentes, y otros dispositivos móviles, adaptando las páginas a las normas de marcado como HTML 3.2 o WML 1.1. Los controles móviles son muy adaptables, lo que significa que cuando se crea una página utilizando estos controles, la página se puede representar de varias maneras totalmente diferentes, dependiendo del dispositivo que está accediendo a la página.Jerarquía de controles de servidorTodos los controles de servidor se derivan de la clase base Control en el espacio de nombres (namespace)System.Web.UI.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 15. Unidad Didáctica: Taller de Programación Web | 15Debido a que todos los controles derivan de la clase base Control, tienen un denominador común básicoque puede utilizar para manipular cualquier control de la página, incluso si usted no sabe el tipo de controlespecífico.Propiedades de la clase ControlPropiedad DescripciónClientID Devuelve el identificador del control, que es un nombre único creado por ASP.NET en el momento que la página es instanciada.Controls Devuelve la colección de controles secundarios. Usted puede utilizar la colección Page.Controls para conseguir una colección de alto nivel de los controles en la página. Cada control de la colección Controls puede contener sus propio controles hijo, y los controles hijo pueden contener a su vez sus propios controles hijos, y así sucesivamente.EnableViewState Devuelve o establece un valor booleano que indica si el control debe mantener su estado a través de las devoluciones de datos de la página principal. Esta propiedad es true por defecto.ID Devuelve o establece el identificador del control. En la práctica, este es el nombre por el cual se puede acceder al control desde los scripts de servidor o de la clase de código subyacente.Page Devuelve una referencia al objeto de página que contiene el control.Parent Devuelve una referencia al control principal del control, que puede ser la página u otro control contenedor.Visible Devuelve o establece un valor booleano que indica si el control debe ser presentado. Si es false, el control se hace invisible en el lado del cliente, la etiquetaMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 16. Unidad Didáctica: Taller de Programación Web | 16 HTML correspondiente no se genera.Métodos de la clase ControlMétodo DescripciónDataBind() Enlaza el control y todos sus controles secundarios al origen de datos o expresión.FindControl() Busca un control hijo con un nombre específico en el control actual y todos los controles contenidos. Si el control hijo se encuentra, el método devuelve una referencia de tipo general del control. A continuación, puede lanzar este control para el tipo adecuado.HasControls() Devuelve un valor booleano que indica si este control tiene controles secundarios. El control debe ser un contenedor para tener controles secundarios (como una etiqueta <div>).Render() Escribe la salida HTML para el control basado en su estado actual. No se puede llarmar a este método directamente. En cambio, ASP.NET lo llama cuando la página está siendo presentada.HTML Server Controls (Controles de servidor HTML)En total, hay alrededor de 20 diferentes clases de controles de servidor HTML. Están divididos en categoríasdistintas en función de si son controles de entrada (en cuyo caso se derivan de HtmlInputControl) o puedencontener otros controles (en cuyo caso se derivan de HtmlContainerControl).Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 17. Unidad Didáctica: Taller de Programación Web | 17La clase HtmlControlTodos los controles de servidor HTML derivan de la clase base HtmlControl. La siguiente tabla muestra laspropiedades que la clase HtmlControl añade a la clase base de Control.PropiedadesPropiedad DescripciónAttributes Le permite acceder a otras páginas de atributos en la etiqueta de control. Puede utilizar esta colección para agregar atributos que no son expuestos por las propiedades específicas.Disabled Devuelve o establece el estado desactivado del control. Si es true, el control suele mostrarse como "en gris" y no es utilizable.Style Devuelve una colección de atributos CSS que se aplican para el control.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 18. Unidad Didáctica: Taller de Programación Web | 18TagName Devuelve el nombre de la etiqueta de control, tales como a, img, etc.La clase HtmlContainerControlCualquier etiqueta HTML que tiene tanto una etiqueta de apertura y una de cierre pueden incluir contenidoHTML o de otros controles. Un ejemplo es la etiqueta de anclaje, que por lo general ajusta el texto o unaimagen con las etiquetas <a> ... </ a>. Muchas otras etiquetas HTML también funcionan comocontenedores, incluyendo todo, desde la etiqueta <div> (que le permite dar formato a un bloque decontenido) a los humildes <b> etiqueta (que se aplica el formato de negrita). Estas etiquetas no se asignan aclases específicas de control de servidor HTML, pero todavía se puede utilizar con el atributo runat ="server". En este caso, interactuas con ellos mediante la clase HtmlGenericControl, que a su vez deriva deHtmlContainerControl.Para soportar la contención, la clase HtmlContainerControl añade las dos propiedades que se muestran acontinuación.PropiedadesPropiedad DescripciónInnerHtml Devuelve o establece el texto HTML en las etiquetas de apertura y de cierre. Cuando se utiliza esta propiedad, todos los caracteres se dejan como son. Esto significa que puede integrar el formato HTML (texto en negrita, agregando saltos de línea, y así sucesivamente).InnerText Devuelve o establece el texto dentro de la etiquetas de apertura y de cierre. Cuando se utiliza esta propiedad, cualquier carácter que se interprete como sintaxis HTML especial, se reemplazarán automáticamente con las entidades HTML equivalentes.La clase HtmlInputControlLos controles de entrada HTML permite la interacción del usuario. Estos incluyen las casillas de verificación,cuadros de texto, botones y cuadros de lista. Todos estos controles se generan con la etiqueta <input>. Elatributo type indica el tipo de control de entrada, como en <input type="text"> (un cuadro de texto), <inputtype="submit"> (un botón), y <input type="file"> ( los controles para subir un archivo).PropiedadesPropiedad DescripciónMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 19. Unidad Didáctica: Taller de Programación Web | 19Type Obtiene el tipo de un HtmlInputControl. Por ejemplo, si esta propiedad está establecida a text, el HtmlInputControl es un cuadro de texto para la entrada de datos.Value Obtiene o establece el valor asociado a un control de entrada. El valor asociado a un control depende del tipo de control. Por ejemplo, en un cuadro de texto esta propiedad contiene el texto introducido en el control. Para los botones, esta define el texto en el botón.Las clases de controles de servidor HTMLDeclaración de etiqueta Clase .NET Miembros específicos<a runat="server"> HtmlAnchor HRef, Target, Title, Name, ServerClick event<button runat="server"> HtmlButton CausesValidation, ValidationGroup, ServerClick event<form runat="server"> HtmlForm Enctype, Method, Target, DefaultButton, DefaultFocus<img runat="server"> HtmlImage Align, Alt, Border, Height, Src, Width<input type="button" runat="server"> HtmlInputButton Type, Value, CausesValidation, ValidationGroup, ServerClick event<input type="reset" runat="server"> HtmlInputReset Type, Value<input type="submit" runat="server"> HtmlInputSubmit Type, Value, CausesValidation, ValidationGroup, ServerClick event<input type="checkbox" runat="server"> HtmlInputCheckBox Checked, Type, Value, ServerClick eventMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 20. Unidad Didáctica: Taller de Programación Web | 20<input type="file" runat="server"> HtmlInputFile Accept, MaxLength, PostedFile, Size, Type, Value<input type="hidden" runat="server"> HtmlInputHidden Type, Value, ServerChange event<input type="image" runat="server"> HtmlInputImage Align, Alt, Border, Src, Type, Value, CausesValidation, ValidationGroup, ServerClick event<input type="radio" runat="server"> HtmlInputRadioButton Checked, Type, Value, ServerChange event<input type="text" runat="server"> HtmlInputText MaxLength, Type, Value, ServerChange event<input type="password" runat="server"> HtmlInputPassword MaxLength, Type, Value, ServerChange event<select runat="server"> HtmlSelect Multiple, SelectedIndex, Size, Value, DataSource, DataTextField, DataValueField, Items (collection), ServerChange event<table runat="server">, HtmlTable Align, BgColor, Border,<td runat="server"> BorderColor, CellPadding, CellSpacing, Height, NoWrap, Width, Rows (collection)<th runat="server"> HtmlTableCell Align, BgColor, Border, BorderColor, ColSpan, Height, NoWrap, RowSpan, VAlign, WidMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 21. Unidad Didáctica: Taller de Programación Web | 21<tr runat="server"> HtmlTableRow Align, BgColor, Border, BorderColor, Height, VAlign, Cells (collection)<textarea runat="server"> HtmlTextArea Cols, Rows, Value, ServerChange eventCualquier otra etiqueta HTML con el HtmlGenericControl Ningunoatributo runat = "server"Web Controls (Controles Web)Los controles de servidor HTML proporcionan una forma relativamente rápida para migrar a ASP.NET, perono necesariamente la mejor manera. Por un lado, los nombres de los controles HTML y sus atributos nosiempre son intuitivos, y no tienen el mismo soporte en tiempo de diseño para conectar los controladoresde eventos. Los controles HTML también tienen ciertas limitaciones, tales como las propiedades de estiloque se debe establecer a través de la sintaxis CSS (que es más difícil que establecer una propiedad directa) yque los eventos de cambio no pueden ser aplicados hasta que se realice una operación de posted back enrespuesta a otra acción. Por último, los controles de servidor HTML no pueden proveer elementos deinterfaz de usuario que no estén ya definidos en el estándar HTML. Si desea crear algún tipo de controlglobal que utiliza una combinación de elementos HTML para hacer una interfaz compleja, tienes que crearlotú mismo.Para abordar estas cuestiones, ASP.NET proporciona un modelo de mayor nivel de control web. Todos loscontroles web se definen en el espacio de nombres System.Web.UI.WebControls y se derivan de la clasebase WebControl, que ofrece un modelo más abstracto y coherente que los controles de servidor HTML.Los controles Web también permiten funciones adicionales, como la devolución automática. Pero la parterealmente importante es que no muchos controles no sólo mapean una etiqueta HTML única, sino quegeneran una salida más complejo formado por varias etiquetas de código HTML y JavaScript. Los ejemplosincluyen las listas de casillas de verificación, botones de radio, calendarios, cuadrículas editable, y asísucesivamente.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 22. Unidad Didáctica: Taller de Programación Web | 22La clase base WebControlTodos los controles Web heredan de la clase WebControl. La clase WebControl también a su vez deriva deControl. Como resultado, muchas de sus propiedades y métodos -tales como Controls, Visible yFindControl()- son similares a los de los controles de servidor HTML. Sin embargo, la clase WebControlagrega las propiedades que aparecen a continuación en la tabla.Propiedades de la clase WebControlPropiedad DescripciónAccessKey Devuelve o establece el método abreviado de teclado que permite al usuario desplazarse rápidamente al control. Por ejemplo, si se define como A, el usuario puede mover el foco a este control pulsando Alt + A.BackColor Devuelve o establece el color de fondo.BorderColor Devuelve o establece el color del borde.BorderStyle Uno de los valores de la enumeración BorderStyle, incluyendo Dashed, Dotted,Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 23. Unidad Didáctica: Taller de Programación Web | 23 Double, Groove, Ridge, Inset, Outset, Solid, y None.BorderWidth Devuelve o establece el ancho del borde.CssClass Devuelve o establece el estilo CSS para asociar con el control. El estilo CSS se puede definir en una sección de <style> en la parte superior de la página o en un archivo CSS independiente que hace referencia la página.Enabled Devuelve o establece el estado habilitado del control. Si es false, el control suele mostrarse en gris y no es utilizable.Font Devuelve un objeto con toda la información de estilo de la fuente utilizada para el texto del control.ForeColor Devuelve o establece el color de primer plano, por ejemplo el texto del control.Height Devuelve o establece la altura del control.TabIndex Un número que le permite controlar el orden de tabulación. El control con un TabIndex de 0 tiene el foco cuando la página se carga por primera vez. Al pulsar Tab mueve al usuario el control con el TabIndex siguiente más baja, siempre que esté activado. Esta propiedad sólo es compatible en Internet Explorer 4.0 y superior.Tooltip Muestra un mensaje de texto cuando el usuario pasa el ratón por encima del control. Muchos de los navegadores más antiguos no soportan esta característica.Width Devuelve o establece el ancho del control.Las clases básicas de Web ControlsASP.NET incluye controles Web que duplican cada control de servidor HTML y ofrecen la mismafuncionalidad. Estos controles web heredan de WebControl y añaden sus propias propiedades y eventos. Enla tabla siguente se resume estos controles.Declaración de HTML Generado Miembros específicosetiqueta ASP.NET<asp:Button> <input type="submit"/> or Text, CausesValidation, PostBackUrl, <input type="button"/> ValidationGroup, Click event<asp:CheckBox> <input type="checkbox"/> AutoPostBack, Checked, Text,Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 24. Unidad Didáctica: Taller de Programación Web | 24 TextAlign, CheckedChanged event<asp:FileUpload> <input type="file"> FileBytes, FileContent, FileName, HasFile, PostedFile, SaveAs()<asp:HiddenField> <input type="hidden"> Value<asp:HyperLink> <a>...</a> ImageUrl, NavigateUrl, Target, Text<asp:Image> <img/> AlternateText, ImageAlign, ImageUrl<asp:ImageButton> <input type="image"/> CausesValidation, ValidationGroup, Click event<asp:ImageMap> <map> HotSpotMode, HotSpots (collection), AlternateText, ImageAlign, ImageUrl<asp:Label> <span>...</span> Text, AssociatedControlID<asp:LinkButton> <a><img/></a> Text, CausesValidation, Validation- Group, Click event<asp:Panel> <div>...</div> BackImageUrl, DefaultButton, GroupingText, HorizontalAlign, Scrollbars, Wrap<asp:RadioButton> <input type="radio"/> AutoPostBack, Checked, GroupName, Text, TextAlign, CheckedChanged event<asp:Table> <table>...</table> BackImageUrl, CellPadding, CellSpacing, GridLines, HorizontalAlign, Rows (collection)<asp:TableCell> <td>...</td> ColumnSpan, HorizontalAlign, RowSpan, Text, VerticalAlign, Wrap<asp:TableRow> <tr>...</tr> Cells (collection), HorizontalAlign, VerticalAlignMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 25. Unidad Didáctica: Taller de Programación Web | 25<asp:TextBox> <input type="text"/> or AutoPostBack, Columns, MaxLength, <textarea>...</textarea> ReadOnly, Rows, Text, TextMode, Wrap, TextChanged eventManejando eventos de controles webLos eventos del lado del servidor trabajan de la misma forma que los eventos de servidor de los controles deservidor HTML. En lugar de ServerClick, hay un evento Click, y en lugar de los eventos genéricosServerChange hay eventos específicos, como CheckedChanged (para el RadioButton y CheckButton) yTextChanged (para el cuadro de texto), pero el comportamiento sigue siendo el mismo.El evento Click y el control ImageButtonUn control que envía información adicional es el control ImageButton. Envía un objeto especialImageClickEventArgs (del espacio de nombres System.Web.UI) que proporciona propiedades X y Y querepresentan la ubicación en donde la imagen fue clikeada. Con esta información adicional, puede crear unmapa de imagen del lado del servidor.Los controles ListLos controles List son controles web especializados que generan cuadros de lista, listas desplegables, yotros controles de repetir que puede ser enlazado a un origen de datos (como una base de datos o unacolección no modificable de valores) o mediante programación rellenados de elementos. La mayoría de loscontroles de lista permiten al usuario seleccionar uno o más elementos, pero el BulletedList es unaexcepción -se muestra una lista estática numerada o con viñetas. La siguiente tabla muestra todos loscontroles list.Control Descripción<asp:DropDownList> Una lista desplegable poblado por una colección de objetos <asp:ListItem>. En HTML, es renderiada por una etiqueta <select> con el atributo size = "1".<asp:ListBox> Un cuadro de lista poblada por una colección de objetos <asp:ListItem>. En HTML, es renderiada por una etiqueta <select> con el atributo size = "x", donde x es el número de elementos visibles.<asp:CheckBoxList> Sus elementos se representan como casillas de verificación, alineadas en una tabla con una o más columnas.<asp:RadioButtonList> Igual que el <asp:CheckBoxList>, pero los elementos se representan como botones de radio.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 26. Unidad Didáctica: Taller de Programación Web | 26<asp:BulletedList> Una lista estática numerada o con viñetas. En HTML, se representan con la etiqueta <ul> o <ol>. También puede utilizar este control para crear una lista de hipervínculos.Controles de validación de entradaUno de los usos más comunes de las páginas web (y la razón de que las etiquetas de formulario HTML secreó por primera vez) es recoger datos. A menudo, una página web le pedirá a un usuario algunainformación y luego guardarlo en un base de datos de extremo. En casi todos los casos, estos datos deberánser validados para asegurar que no almacena información inútil, falsa, o contradictoria que podrían causarproblemas más adelante.Idealmente, la validación de la entrada del usuario debería tener lugar en el lado del cliente para que elusuario sea inmediatamente informado de que hay algo malo con la entrada antes de que el formulario seaenviado de vuelta al servidor. Si este patrón se aplica correctamente, se ahorra los recursos del servidor y leda al usuario una rápida reacción. Sin embargo, independientemente de si la validación del cliente serealiza, los datos del formulario deben, también validarse en el lado del servidor. De lo contrario, unatacante astuto podría hackear la página mediante la eliminación del JavaScript del lado del cliente quevalida la entrada, guardar la nueva página, y utilizarlo para enviar los datos falsos.Escribir código de validación es una ardua tarea, sobre todo porque los modelos de programación del ladodel cliente (normalmente JavaScript) y programación del servidor (en este caso, ASP.NET) son muydiferentes. Los desarrolladores de Microsoft son muy conscientes de esto, así que, además del conjunto deHTML y controles Web, también se desarrolló un conjunto de controles de validación. Estos controlespueden ser declarados en un formulario web y luego aplicados a algún control de entrada. Una vez unido aun control de entrada, realiza el control de validación automática del lado del cliente y validación en elservidor. Si el control correspondiente está vacío, no contiene el tipo de datos correctos, o no se adhieren alas normas especificadas, el validador va a impedir que la página sea enviada de vuelta por completo.Controles de validaciónASP.NET incluye seis controles de validación. Estos controles realizan una buena parte del trabajo pesadopara usted, y permite racionalizar el proceso de validación y le ahorra de tener que escribir tedioso código.Aún mejor, los controles de validación son lo suficientemente flexibles para trabajar con reglas definidas amedida, lo que hace tu código más reusable y modular.Control de validación Descripción<asp:RequiredFieldValidator> Comprueba que el control que ha de validar no está vacío cuando se envía el formulario.<asp:RangeValidator> Comprueba que el valor del control asociado se encuentra en un rango especificado. El valor y el rango puede ser numérica - una fecha o unaMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 27. Unidad Didáctica: Taller de Programación Web | 27 cadena.<asp:CompareValidator> Comprueba que el valor del control asociado coincide con una comparación especificada (menor que, mayor que, y así sucesivamente) contra otro valor constante o control.<asp:RegularExpressionValidator> Comprueba si el valor del control que tiene que validar coincida con la expresión regular especificada.<asp:CustomValidator> Sirve para especificar cualquier rutina de validación de JavaScript lado del cliente y su homólogo del lado del servidor para llevar a cabo su propia lógica de validación personalizada.<asp:ValidationSummary> Muestra un resumen con los mensajes de error para cada uno validador fallado de la página (o en un mensaje cuadro emergente).Aplicaciones ASP.NETAnatomía de una Aplicación ASP.NETLa diferencia entre las aplicaciones ASP.NET y las aplicaciones de cliente enriquesido tiene mucho sentidocuando se considera el modelo de ejecución de ASP.NET. A diferencia de una aplicación de Windows, elusuario final nunca ejecuta una aplicación ASP.NET directamente. Por el contrario, un usuario inicia unnavegador como Internet Explorer y solicita una URL específica (comohttp://www.mysite.com/mypage.aspx) sobre HTTP. Esta petición es recibida por un servidor web. Cuandose está depuración la aplicación en Visual Studio, se puede utilizar sólo un servidor de prueba local. Alimplementar la aplicación, se utiliza el servidor web IIS.El servidor Web no tiene ningún concepto de las aplicaciones por separado simplemente pasa la solicitud alproceso de trabajo de ASP.NET. Sin embargo, el proceso de trabajo de ASP.NET cuidadosamente segregala ejecución de código en diferentes dominios de aplicación basado en el directorio virtual. Páginas Web quese alojan en el mismo directorio virtual (o uno de sus subdirectorios) se ejecutan en el mismo dominio deaplicación. Páginas Web en diferentes directorios virtuales se ejecutan en dominios de aplicación diferentes.El dominio de AplicaciónUn dominio de aplicación es un límite impuesto por el CLR que asegura que una aplicación no puede influir(o ver en los datos en memoria) de otro. Las siguientes características son una consecuencia directa delmodelo de dominio de aplicación: Todas las páginas web en una simple aplicaciones web tienen los mismo recursos de memoria, tales como datos globales de aplicación, datos de sesión de usuario, y los datos almacenados en caché. Esta información no es accesible directamente a ASP.NET o aplicaciones ASP. Todas las páginas web en una simple aplicaciones web tienen la misma configuración básicas. Sin embargo, puede personalizar algunos parámetros de configuración en subdirectorios individuales del mismo directorio virtual. Por ejemplo, puede establecer un único mecanismo de autenticación para unaMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 28. Unidad Didáctica: Taller de Programación Web | 28 aplicación web, sin importar cuántos subdirectorios tenga. Sin embargo, puede establecer las reglas de autorización diferentes en cada directorio para afinar quién está autorizado para acceder a los diferentes grupos de páginas. Todas las aplicaciones web de aumentar los eventos de aplicación global en las diferentes etapas (cuando el dominio de aplicación se creó por primera vez, cuando es destruido, y así sucesivamente). Puede conectar los controladores de eventos que reaccionar ante estos eventos de la aplicación global utilizando el código en el archivo Global.asax en el directorio virtual de la aplicación.El directorio virtual es la estructura deagrupación de base que delimita de una aplicación ASP.NET. Sepuede crear una aplicación ASP.NET legítima con una sola página web (. Aspx). Sin embargo, lasaplicaciones ASP.NET pueden incluir todos los siguientes elementos: Las páginas Web (archivos .aspx): Estas son las piedras angulares de cualquier aplicación ASP.NET. Servicios Web (.asmx): Estos permiten compartir las funciones útiles con aplicaciones en otros equipos y otras plataformas. Archivos de código subyacente (Code-behind): Dependiendo del modelo de código que está usando, también puede tener por separado los archivos de código fuente. Si estos archivos están codificados en C #, tienen la extensión .cs. Un archivo de configuración (Web.config): Este archivo contiene una serie de ajustes de nivel de aplicación que configuran todo desde la seguridad a la depuración y la gestión del Estado. global.asax: Este archivo contiene los controladores de eventos que reaccionan a los eventos de aplicación global. Otros componentes: Estos son ensamblados compilados que contienen componentes separados que ha desarrollado o componentes de terceros con una funcionalidad útil. Los componentes permiten separar los negocios y la lógica de acceso a datos y crear controles personalizados.Aplicación LifeTime (Tiempo de vida de la aplicación)ASP.NET utiliza una técnica de inicialización perezosa (lazy initialization) para la creación de dominios deaplicación. Esto significa que el dominio de aplicación para una aplicación web se crea la primera vez que serecibe una solicitud para una página en dicha solicitud.Un dominio de aplicación puede cerrarse por una variedad de razones, incluyendo si el servidor web propiose apaga. Pero, más comúnmente, las aplicaciones, se reinician a sí mismas en nuevos dominios deaplicación en respuesta a las condiciones de error o cambios de configuración. Este modelo está diseñadopara mantener una aplicación sana y para detectar características que podrían indicar que un problema seha desarrollado o el rendimiento de la aplicación ha degradado (como una larga cola de solicitudespendientes, una gran cantidad de memoria en uso, y así por el estilo). Dependiendo de la configuraciónmachine.config, dominios de aplicación puede ser reciclados basado en el tiempo que el dominio deaplicación ha estado funcionando, el número de solicitudes en cola, o la cantidad de memoria-ASP.NET recicla automáticamente los dominios de aplicación al cambiar la aplicación. Un ejemplo de ello essi modifica el archivo Web.config. Otro ejemplo es si se reemplaza una página web ya existente archivo oarchivos DLL de ensamblado. En ambos casos, ASP.NET inicia un nuevo dominio de aplicación para manejarMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 29. Unidad Didáctica: Taller de Programación Web | 29todas las futuras solicitudes y mantiene el dominio de aplicación existente con vida el tiempo suficiente paraterminar la manipulación de todas las solicitudes pendientes (incluidas las solicitudes en cola).Actualizaciones de la aplicaciónUna de las características más notables sobre el modelo de ejecución de ASP.NET es que se puedeactualizar la aplicación web sin necesidad de reiniciar el servidor web y sin preocuparse de dañar los clientesexistentes. Esto significa que usted puede agregar, sustituir o eliminar archivos en el directorio virtual encualquier momento.ASP.NET a continuación, realiza la misma transición a un nuevo dominio de aplicación que se realiza cuandose modificar el archivo de configuración web.config.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 30. Unidad Didáctica: Taller de Programación Web | 30Construyendo Sitios Web ASP.NETUna vez conocido el proceso de creación páginas web, se comenzará a considerar el desarrollo a mayor nivel-en otras palabras, la forma de agrupar un gran número de páginas web, para formar un sitio webcohesionado e integrado. En las actividades de aprendizaje desarrolladas ya se han estudiado algunos de losfundamentos del desarrollo web con ASP.NET y C#. Sin embargo, los programadores web, deben enfrentara algunas consideraciones más, tales como velar por la seguridad, por la coherencia en todas las páginas y laracionalización de la navegación web.En esta actividad de aprendizaje, se abordan los temas que se convierten en importantes cuando se deja depensar en las páginas individuales y comienza la planificación de una aplicación web completa.En primer lugar, se verá la creación de controles de usuario y luego como construir aplicaciones websofisticadas, con dos herramientas más: Los temas, que permiten establecer las propiedades de control deforma automática, y las páginas maestras, que le permiten volver a utilizar un único modelo paraestandarizar la distribución y el contenido de varias páginas. En conjunto, estas tres herramientasgarantizan que la aplicación web, aparezca como un todo único y coherente. Finalmente se abordará eltema de la seguridad en aplicaciones ASP.NET.Users Controls (Controles de Usuario)El conjunto básico de controles ASP.NET es amplio e impresionante. Incluye controles que encapsulanetiquetas HTML básicas y los controles que ofrecen un rico y nivel de diseño, tales como el Calendar,TreeView, y los controles de datos. Por supuesto, incluso el mejor conjunto de controles no puedensatisfacer las necesidades de cada desarrollador. Tarde o temprano, usted querrá darle un toque personal asus aplicaciones, y construir sus propios componentes de interfaz de usuario. En .NET, pueden desarrollarselos siguientes: • Controles de usuario: un control de usuario es una pequeña sección de una página que puede incluir código HTML estático y controles de servidor Web. La ventaja de los controles de usuario es que una vez que crear uno, se puede reutilizar en varias páginas en la misma aplicación web. Incluso puede añadir sus propias propiedades, eventos, y métodos. • Controles de servidor personalizados: son clases compiladas que generan programáticamente su propio código HTML. A diferencia de los controles de usuario (que se declaran como páginas web en forma de un archivo de texto sin formato), los controles de servidor siempre se precompilan en ensamblados DLL.Los archivos de control del usuario (.ascx), son similares a los archivos ASP.NET web form (.aspx) archivos.Al igual que los formularios web, los controles de usuario se componen de una parte de interfaz de usuariocon las etiquetas de control (el archivo .ascx) y se puede utilizar secuencias de comandos en línea o unarchivo .cs de código subyacente. Las principales diferencias entre los controles de usuario y las páginasweb son las siguientes:  Los controles de usuario comienza con una directiva de control en lugar de una directiva de página.  Los controles de usuario utilizar la extensión de archivo .ascx en lugar de .aspx, y sus archivos de código subyacente hereda de la clase System.Web.UI.UserControl. De hecho, la clase UserControl y la clase Page heredan de la misma clase TemplateControl, por lo que comparten muchos métodos y eventos.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 31. Unidad Didáctica: Taller de Programación Web | 31  Los controles de usuario no puede ser solicitada directamente por el navegador cliente. (ASP.NET dará un mensaje de error genérico para cualquiera que lo intente). En cambio, los controles de usuario están incorporados dentro de otras páginas web.Navegación en el Sitio WebLa navegación es un componente fundamental de cualquier sitio web. Aunque es bastante fácil de transferiral usuario de una página a otra, la creación de un sistema unificado de navegación que funciona a través deun sitio web completo requiere más esfuerzo. Mientras que usted puede construir su propio sistema denavegación con algunos enlaces (y mucho trabajo), ASP.NET dispone de un sistema integrado denavegación que facilita la navegación en el sitio web.Páginas con múltiples vistasLa mayoría de los sitios web dividen las tareas en varias páginas. Por ejemplo, si desea agregar un artículo asu carrito de la compra y llevarlo a la caja en un sitio de e-commerce, tendrás que saltar de una página aotra. Este es el método más limpio, y es fácil de programar, siempre que utilice algún tipo de técnica degestión de estado para transferir información de una página a otra.En otras situaciones, es posible que desee insertar el código de varias páginas diferentes dentro de una solapágina. Por ejemplo, es posible que desee proporcionar distintas vistas de los mismos datos (por ejemplo,una vista basada en cuadrícula y una vista de basada en gráfico) y permitirle al usuario cambiar de una vistaa otra sin salir de la página. O bien, es posible que desee manejar una tarea de varios pasos pequeños (comoel suministro de información de usuario de una cuenta en un proceso de registro), sin tener que preocuparseacerca de cómo transferir la información pertinente entre las páginas web.En ASP.NET 1.x, la única manera de modelar una página con múltiples vistas fue la de añadir varioscontroles Panel a una página de modo que cada panel representa una vista única o una sola etapa. Acontinuación, puede establecer la propiedad Visible de cada panel de manera que sólo se ve uno a la vez. Elproblema con este enfoque es que estorba su página con código adicional para la gestión de los paneles.Además, no es muy robusta, con un pequeño error, puede terminar con dos paneles que muestran al mismotiempo.Con ASP.NET 4, no hay necesidad de diseñar su propio sistema de visión múltiple desde cero. En su lugar,puede utilizar uno de los dos controles de alto nivel que hacen estos diseños mucho más fáciles: MultiView yWizard.El control MultiViewEl control MultiView es el más simple de los dos controles de vista múltiples. Esencialmente, el controlMultiView proporciona una forma de declarar múltiples vistas y mostrar sólo una a la vez.La creación de un MultiView es sencillo. Debe agregar la etiqueta <asp:MultiView> a su archivo depágina .aspx y luego agregar una etiqueta <asp:View> al interior de cada vista por separado. <asp:MultiView ID="MultiView1" runat="server"> <asp:View ID="View1" runat="server">...</asp:View> <asp:View ID="View2" runat="server">...</asp:View> <asp:View ID="View3" runat="server">...</asp:View> </asp:MultiView>Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 32. Unidad Didáctica: Taller de Programación Web | 32El MultiView.ActiveViewIndex determina qué vista se muestra. Este es la única vista que se representa enla página. El valor ActiveViewIndex predeterminado es -1, que significa que no se muestra ninguna vista.El control WizardEl control Wizard es una versión más glamurosa del control MultiView. Además de soportar que se muestreuna de varias vistas a la vez, incluye una buena cantidad comportamiento personalizables, incluyendobotones de navegación, una barra con enlaces a pasos, estilos y plantillas.Por lo general, los asistentes representan una sola tarea, y el usuario se mueve linealmente a través de ellos,moviéndose desde el paso actual al que le sigue inmediatamente (o el inmediatamente anterior en el casode una corrección). El control ASP.NET Wizard también es compatible con la navegación no lineal, lo quesignifica que le permite decidir hacer caso omiso de un paso sobre la base de la información que el usuarioproporciona.Por defecto, el control Wizard proporciona botones de navegación y una barra lateral con enlaces para cadapaso de la izquierda. Puede ocultar la barra lateral, estableciendo la propiedad Wizard.DisplaySideBar comofalso.Para crear un asistente en ASP.NET, sólo tiene que definir los pasos de su contenido mediante etiquetas<asp:WizardStep>. Cada paso lleva unas cuantas piezas básicas de información.Mapas de sitioCuando un sitio web cuenta con una buena cantidad de páginas, es necesario implementar algún tipo deesitea de navegación que permita al usuario pasar de una página a otra. Obviamente, se puede utilizar el kitde herramientas de controles ASP.NET para implementar casi cualquier sistema de navegación, perotodavía requiere que usted realice todo el trabajo duro. Afortunadamente, ASP.NET incluye un conjunto defunciones de navegación que se pueden utilizar para simplificar considerablemente la tarea. Al igual que contodas las mejores características de ASP.NET, la navegación ASP.NET es flexible, configurable yenchufable. Se compone de tres componentes:  Una manera de definir la estructura de navegación de su sitio web. Esta parte es el mapa del sitio XML, que es (por defecto) almacenado en un archivo.  Una manera conveniente de analizar el archivo de mapa del sitio y convertir la información en un modelo de objeto adecuado. Esta parte se realiza por el control SiteMapDataSource y el XmlSiteMapProvider.  Una manera de utilizar la información del mapa del sitio para mostrar la posición actual del usuario y ofrecer al usuario la capacidad de moverse fácilmente de un lugar a otro. En esta parte se proporciona a través de los controles que se unen con el control SiteMapDataSource, que pueden incluir enlaces, listas, menús, y los árboles.Definiendo un Site MapEl punto de partida para la navegación web basad mapa de sitio es el proveedor del mapa del sitio. ASP.NETincluye un proveedor de mapa de sitio único, llamado XmlSiteMapProvider, que es capaz de recuperar lainformación del mapa sitio a partir de un archivo XML. Si desea recuperar un mapa del sitio desde otro lugaro en un formato personalizado, tendrá que crear su propio proveedor de mapa de sitio.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 33. Unidad Didáctica: Taller de Programación Web | 33El XmlSiteMapProvider busca un archivo denominado Web.sitemap en la raíz del directorio virtual. Al igualque todos los proveedores del mapa del sitio, su tarea consiste en extraer los datos del mapa del sitio y crearel objeto SiteMap correspondiente. Este objeto SiteMap se ponen a disposición de otros controles a travésde la SiteMapDataSource.Para implementar un mapa de sitio, es necesario empezar por la creación de un archivo Web.sitemap y ladefinición de la estructura del sitio web utilizando la <siteMap> y elementos <siteMapNode>. Para agregarun mapa del sitio con Visual Studio, seleccione Sitio ➤ Agregar nuevo elemento (o Proyecto ➤ Agregarnuevo elemento en un proyecto web), seleccione la plantilla Mapa de sitio y, a continuación, haga clic enAgregar.La estructura básica de un archivo de mapa de sitio es: <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"> <siteMapNode> <siteMapNode>...</siteMapNode> <siteMapNode>...</siteMapNode> ... </siteMapNode> </siteMap>El control TreeViewEl TreeView es uno de los controles de navegación más impresionantes. No sólo le permiten representar lasvistas de árbol, si no también soporta el llenado parcial del árbol bajo demanda (y sin actualizar la páginaentera). Pero lo más importante, es compatible con una amplia gama de estilos que pueden transformar suapariencia.Al establecer sólo unas propiedades básicas, se puede cambiar el TreeView de un índice de temas de ayudapara obtener una lista de directorios de archivos y carpetas. De hecho, el TreeView no tiene por qué serinterpretada como un árbol en absoluto, sino que también puede hacer frente a datos jerárquicos, como unatabla de contenidos con la aplicación de sólo unos pocos ajustes de estilo.TreeView se puede utilizar para mostrar datos XML enlazados. También para mostrar los datos de mapasdel sitio. Ambos ejemplos utilizan la capacidad de la TreeView para unirse a fuentes de datos jerárquicos.Pero también se puede llenar un control TreeView mediante la unión a un origen de datos común (en cuyocaso obtendrá sólo un único nivel de nodos) o mediante la creación manual de los nodos, ya sea medianteprogramación o a través de declaraciónes. aspx.La última opción es la más sencilla. Por ejemplo, mediante la adición de etiquetas <asp:TreeNode> a lasección <Nodes> de un control TreeView, puede crear varios nodos: <asp:TreeView ID="TreeView1" runat="server"> <Nodes> <asp:TreeNode Text="Productos"> <asp:TreeNode Text="Hardware"/> </asp:TreeNode> <asp:TreeNode Text="Servicios"/> </Nodes> </asp:TreeView>Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 34. Unidad Didáctica: Taller de Programación Web | 34El control MenuEl control Menu es otro control poderoso que soporta datos jerárquicos. Al igual que el TreeView, puedeenlazar el menú a una fuente de datos, o puede llenar los elementos a mano (mediante declaraciones oprogramación) utilizando objetos MenuItem.La clase MenuItem no es tan rica como la clase TreeNode, por ejemplo, los objetos MenuItem no soncompatibles con casillas de verificación o la posibilidad de establecer mediante programación el estadodesplegado / contraído. Sin embargo, todavía tienen muchas propiedades similares, incluidas las decreación de imágenes, la determinación de si el elemento se puede seleccionar y especificar un enlace dedestino.Temas y Master Pages (Páginas Maestras)La construcción de una aplicación web profesional implica mucho más que el diseño de páginas webindividuales. Usted también necesita las herramientas para integrar sus páginas web en un completo yunificado sitio web. A continuación veremos dos características importantes de ASP.NET para realizar estatarea.La primer característica llamada temas (estilos), permiten definir los detalles de formato para los diversostipos de controles y la reutilización de estos formatos a la perfección en varias páginas. Temas hacen muchomás fácil de estandarizar el aspecto de su sitio web y modificarlo más tarde. Una vez que un tema estéestablecido, usted puede dar a su sitio web un nuevo aspecto con sólo cambiar la definición del tema.Una innovación más impresionante son las páginas maestras (master pages), que le permiten crearplantillas de página reutilizables. Uso de una página principal, puede definir el diseño de sus páginas web,completo con todos los detalles habituales, tales como cabeceras, barras de menús y banners publicitarios.Una vez que haya formalizado esta estructura, puede utilizar la página principal a través de su página web,asegurando que todas las páginas tienen el mismo diseño. Los visitantes pueden navegar a continuación, deuna sección a otra sin notar ningún cambio.Hojas de estilo en cascadaEl primer paso a seguir para crear una perfecta unificación del sitio web, es adoptar un estilo visualcoherente. En otras palabras, estandarizar. Si desea modificar la fuente o el borde de un botón, asegúresede cambiar para cada botón que incluya. Ser consecuente no es siempre fácil. Para ayudar a administrar losdetalles, se puede utilizar CSS o temas.CSS ofrece una solución multiplataforma para el formato de las páginas web que funciona en conjuncióncon HTML o XHTML y es soportada por prácticamente todos los navegadores modernos. De hecho, lasprimeras versiones de Visual Studio Styles.css automáticamente generaban un archivo para que ustedpueda utilizarlo en su sitio web.Usando hojas de estilo logra dos cosas. En primer lugar, estandariza el diseño para que pueda formatearpáginas rápidamente, sin la introducción de pequeños errores o idiosincrasias. En segundo lugar, se separala información de formato para que no aparezca en absoluto en sus páginas web, lo que le permite modificarel formato, sin rastrear a cada página o volver a compilar el código. Y aunque CSS no es un estándar centralde .NET, Visual Studio todavía proporciona un amplio soporte para él.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 35. Unidad Didáctica: Taller de Programación Web | 35TemasComo CSS, los temas le permiten definir un conjunto de atributos de estilo que puede aplicar a los controlesen varias páginas. Sin embargo, a diferencia de CSS, los temas no son ejecutadas por el navegador. Encambio, son soluciones ASP.NET nativas que se ejecutan en el servidor. Aunque los temas no sustituyen alos estilos, tienen algunas características que el CSS no puede proporcionar. Estas son las principalesdiferencias: • Los Temas están basados en control y no basados en HTML: Como resultado de ello, los temas le permiten definir y reutilizar casi cualquier propiedad de control. Por ejemplo, los temas le permiten especificar un conjunto de imágenes nodo común y el uso en gran número de controles TreeView o para definir un conjunto de plantillas para varios controles GridView .CSS se limita a los atributos de estilo que se aplican directamente a HTML. • Los temas se aplican en el servidor: cuando un tema se aplica a una página, la página de estilo final es enviado al usuario. Cuando se utiliza una hoja de estilo, el navegador recibe tanto la página y la información de estilo y luego los combina en el lado cliente. • Los temas pueden ser aplicados a través de los archivos de configuración: Esto le permite aplicar un tema a una carpeta entera o a todo su sitio web, sin modificar una sola página web. • Los Temas no son en cascada como CSS: Esencialmente, si se especifica una propiedad en un tema y en el control individual, el valor en el tema sobrescribe la propiedad en el control. Sin embargo, usted tiene la opción de cambiar este comportamiento y dar prioridad a las propiedades de la página, lo que hace que los temas se comporten más como hojas de estilo.Master Page (Página Maestra)Para proporcionar una solución práctica y flexible para las plantillas de página, una serie de requisitos debencumplirse:  La capacidad de definir una porción de una página por separado y reutilizarlo en varias páginas.  La capacidad de crear un diseño bloqueado que define las regiones editables. Las páginas que reutilizan esta plantilla son entonces obligadas a añadir o modificar el contenido en las regiones permitidas.  La capacidad para permitir una cierta personalización de los elementos ha reutilizar en cada página.  La capacidad de enlazar una página con una plantilla de página de forma declarativa (sin código) o para enlazar con una página de forma dinámica en tiempo de ejecución.  La capacidad de diseñar una página que utiliza una plantilla de página con una herramienta como Visual Studio.Las páginas maestras cumplen todos estos requisitos. Ofrecen un sistema de reutilización de plantillas, unamanera de limitar que las plantillas sean modificadas, y un gran soporte en tiempo de diseño.Para que esto funcione, ASP.NET define dos tipos especializados de páginas: las páginas maestras (masterpage) y páginas de contenido (content pages). Una página maestra es una plantilla de página. Al igual queuna página Web ASP.NET ordinaria, esta puede contener cualquier combinación de HTML, controles web, eincluso código. Además, las páginas principales pueden incluir marcadores de posición de contenidodefinido pora las regiones que pueden ser modificadas. Cada página de contenido referencia a una únicapágina maestra y adquiere su diseño y contenido. Además, la página de contenido puede añadir una páginaMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 36. Unidad Didáctica: Taller de Programación Web | 36de contenido específico en cualquiera de los marcadores de posición. En otras palabras, la página decontenido llena las piezas faltantes que no define la página maestra.El Modelo de Seguridad ASP.NETLa seguridad es una parte esencial de las aplicaciones web y deben tenerse en cuenta desde la primeraetapa del proceso de desarrollo. Esencialmente, la seguridad tiene que ver con la protección de sus activosde acciones no autorizadas. Puede utilizar varios mecanismos para este fin, incluida la identificación de losusuarios, la concesión o negación de acceso a los recursos sensibles, y la protección de los datos que sealmacena en el servidor y los transmitidos a través del cable. En todos estos casos, se necesita un marco detrabajo que proporcione la funcionalidad de seguridad básica. ASP.NET cubre esta necesidad con unafuncionalidad integrada que puede utilizar para la implementación de la seguridad en sus aplicaciones web.El marco de trabajo de seguridad de ASP.NET incluye clases para autenticar y autorizar a los usuarios asícomo para hacer frente a los usuarios autenticados en sus aplicaciones. Además, .NET proporciona unconjunto de clases de base para la aplicación de la confidencialidad y la integridad mediante el cifrado yfirmas digitales.Comprendiendo los peligros potencialesLa creación de una arquitectura de seguridad y diseño se requiere que haya una comprensión enprofundidad del entorno de la aplicación. No puede crear software seguro, si no sabe quién tiene acceso a suaplicación y cuáles prodrían ser los posibles puntos de ataque. Por lo tanto, el factor más importante para lacreación de una arquitectura y diseño de aplicaciones seguras se encuentra en una buena comprensión deentorno, factores tales como los usuarios, los puntos de entrada, y el potencial de las posibles amenazas conlos puntos de ataque.Directrices de código seguroPor supuesto, una arquitectura y diseño seguro por sí solo no hace su aplicación completamente segura. Essólo uno de los factores más importantes. Después de haber creado una arquitectura y diseño seguro, setiene que escribir código seguro también. En términos de aplicaciones web, se debe tener en cuentasiempre las siguientes directrices cuando se escribe el código: 1) Nunca confie en las entradas del usuario: Suponga que todos los usuarios son malos hasta demostrar lo contrario. Por lo tanto, siempre valide fuertemente la entrada del usuario. Escriba el código de validación de una manera que verifica los valores de entrada permitidos y no los valores no válidos. (Siempre hay más valores invalidos de los que podría tener en cuenta en el momento de escribir la aplicación.) 2) Nunca use la concatenación de cadenas para la creación de comandos SQL: Siempre use las declaraciones con parámetros de modo que su aplicación no sea SQL inyectable. 3) Nunca saque datos introducidos por un usuario directamente en la página web antes de la validación y codificación de la misma: El usuario puede introducir algunos fragmentos de código HTML (por ejemplo, scripts) que conducen a vulnerabilidades de secuencias de comandos. Por lo tanto, use siempre HttpUtility.HtmlEncode () para caracteres especiales, como <or> antes de sacarlos en la página, o utilizar un control Web que realize este sistema de codificación automática. 4) Nunca almacene los datos sensibles, datos críticos de negocio, o los datos que afectan a las reglas internas de realizadas por su aplicación en campos ocultos en su página web: Los camposMódulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil
  • 37. Unidad Didáctica: Taller de Programación Web | 37 ocultos se pueden cambiar fácilmente con sólo ver el código fuente de la página web, modificandolo, y guardandolo en un archivo. Luego, un atacante simplemente tiene que presentar lo guardado localmente, la página web modificado en el servidor. 5) Nunca almacene los datos sensibles o datos críticos de negocio en el estado de vista: El estado de vista no es más que otro campo escondido de la página, y puede ser decodificado y visto fácilmente. Si utiliza el EnableViewStateMac = true para la página, el estado de vista se firmará con un código de autenticación de mensajes que se crea sobre la base de una clave de equipo de machine.config del servidor web. 6) Habilitar SSL al utilizar la autenticación básica o autenticación de formularios de ASP.NET. 7) Proteja sus cookies: Siempre proteja sus cookies de autenticación cuando se utiliza la autenticación de formularios, y configure los tiempos de espera lo más breve posible y sólo el tiempo que sea necesario. 8) Usar SSL: En general, si la aplicación web procesa datos sensibles, garantiza tu sitio web utilizando SSL. No se olvide de proteger incluso a los directorios de imágenes o directorios con otros archivos no gestionados por la aplicación directamente a través de SSL.Niveles de SeguridadBásicamente, para aplicaciones web en general, las tareas fundamentales para la implementación de laseguridad (además de los asuntos identificados durante la sesión de modelado de amenazas) son siemprelos mismos:  Autenticación: En primer lugar, usted tiene que autentificar a los usuarios. La autenticación responde a la pregunta, ¿quién está aquí?. Determina quien está trabajando con su aplicación en el otro extremo.  Autorización: En segundo lugar, tan pronto como usted sabe quien está trabajando con su aplicación, su aplicación tiene que decidir qué operaciones, el usuario puede ejecutar y los recursos que el usuario puede acceder. En otras palabras, la autorización responde a la pregunta, ¿cuál es su nivel de acreditación?  Confidencialidad: Mientras el usuario está trabajando con la aplicación, usted tiene que asegurarse de que nadie más es capaz de ver los datos sensibles tratados por el usuario. Por lo tanto, usted tiene que cifrar el canal entre el navegador del cliente y el servidor web. Además, usted posiblemente tenga que codificar los datos almacenados en el backend (o en forma de cookies en el cliente), incluso tiene que evitar que los administradores de bases de datos o de otros miembros del personal de la empresa en donde la aplicación Web se encuentra hospedada visualicen los datos de la aplicación.  Integridad: Por último, usted tiene que asegurarse de que los datos transmitidos entre el cliente y el servidor no sean cambiados por agentes no autorizados. Las firmas digitales proporcionan una forma de mitigar este tipo de amenaza.Módulo 3: Gestión de Aplicaciones para Internet y Producción Multimedia Ing. David Gil

×