Herramienta software para la      evaluación      psicosocial de deportistas y      entornos deportivos                   ...
Por otro lado, otro objetivo es la familiarización por parte del programador de las tecnologíasusadas para dicho desarroll...
Se trata, por tanto, de conseguir que el sitio Web se convierta en un lugar de obligadaconsulta tanto para profesionales d...
Por .NET entendemos el conjunto de tecnologías Microsoft destinadas al desarrollo        deaplicaciones informáticas. Esta...
Visual C++ se mejora para cumplir con más estándares, el Visual C++                        Toolkit 2003.                  ...
escribir la lógica de negocio. Los programadores pueden utilizar docenas de controles queencapsulan tareas comunes como co...
Figura 1. Arquitectura de la plataforma .NET2.5.     CLR, el núcleo del Framework    El Common Language Runtime o CLR (Len...
diferencia importante respecto al modo de acceso a los servicios    ofrecidos por los algunos sistemas operativos actuales...
•   Distribución transparente: El CLR ofrece la infraestructura necesaria                           para crear objetos rem...
La siguiente figura ilustra la arquitectura conceptual de la plataforma .NET. En ella sepueden observar los elementos que ...
Figura 4. Biblioteca de Clases Base de .NET   La biblioteca de clases base maneja la mayoría de las operaciones básicas qu...
•   ADO .NET2.6.1.   Espacios de nombres   Espacios de nombres: La forma de organizar la biblioteca de clases de .NET dent...
Acceso a la política de seguridad en que se basa elSystem.Security                                                    CLR....
•   System.Threading: proporciona clases e interfaces que                                 permiten la programación multipr...
Figura 5. Lenguajes .NET   La plataforma .NET incluye más de 5000 clases para ayudar a los programadores en eldesarrollo d...
Durante la ejecución de las aplicaciones el .NET Framework traduce el código intermedio enel que ha realizado la compilaci...
•   La misma aplicación que se ejecuta bajo Windows podría                               funcionar en un dispositivo móvil...
Si un programador trabaja en Visual Basic y está evaluando “cambiar” a C#, no se puededudar. Existen muchísimas razones pa...
ventaja de integrarse mejor con aplicaciones nativas de la plataforma sobre la cual estemostrabajando.   Claro que, si acc...
Dispone de todas las características propias de cualquier lenguaje orientado aobjetos: encapsulación, herencia y polimorfi...
inútiles o que se produzcan errores porque el programador libere áreas                         de memoria ya liberadas y r...
esa forma, se puede utilizar la aplicación sin que el usuario tenga que instalarla previamente ensu máquina.4.1.2.   ¿Qué ...
completos en el entorno integrado de programación                                     IDE de Visual Studio.               ...
En el proyecto se han usado algunas de estas funciones o variables usando el espaciode nombres System.Web para poder dispo...
Variables de aplicación: Cada vez que una página es solicitada se regenera completamente.Es por eso que no guarda valores,...
4.1.5.   Formularios Web de ASP .NET   Son el marco de trabajo de la página de formularios Web de ASP .NET es un modelo de...
4.1.6.      Arquitectura ASP .NET   Es una implementación completamente nueva de ASP, escrita de cero en C#. Utilizalengua...
•   Archivo Global.asax: Los archivos global.asax contienen el                                código necesario para respon...
implementa un conjunto de tecnologías que hacen que una página funcione de manerainteractiva, esto es que no veamos el fas...
•    XHTML (o HTML) y hojas de estilos en cascada (CSS). Estas dos                              tecnologías trabajan en la...
•   Portabilidad entre plataformas: No requieren instalación de                            plugins, applets de Java, ni ni...
XMLHttpRequest los usuarios pueden experimentar esperas en                                la intefaz de la aplicación Web,...
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Herramienta software para la evaluación
Upcoming SlideShare
Loading in …5
×

Herramienta software para la evaluación

717 views

Published on

Published in: Sports
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
717
On SlideShare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Herramienta software para la evaluación

  1. 1. Herramienta software para la evaluación psicosocial de deportistas y entornos deportivos Sergio Luis González Ruiz hergio@gmail.com http://www.menpas.com Antonio Hernández Mendo Universidad de Málaga mendo@uma.es (España) José Luis Pastrana Brincones pastrana@lcc.uma.es Resumen El objetivo de esta herramienta software es el apoyo a la evaluación del comportamiento psicosocial de los deportistas y de los usuarios de entornos deportivos, a través de la implementación de unos cuestionarios y tareas psicológicas donde se evalúa su conducta como deportista (o prácticamente de actividad deportiva) y en relación al entorno, así como su comportamiento de usuario. La importancia de esta herramienta radica en tres puntos fundamentales. Por un lado la rapidez en la evaluación tanto de deportistas como de organizaciones, instituciones o entornos y su consecuente inmediatez en la obtención de los resultados de dicha evaluación. En segundo lugar cubre una necesidad existente dentro de la psicología on-line como es la evaluación en Psicología del Deporte, no sólo de deportistas sino de organizaciones y entornos deportivos. El tercero, y quizás más ambicioso, la elaboración de una base de datos de baremación de cuestionarios e inventarios aceptados por la comunidad científica internacional de carácter supranacional. No existe un lugar on line con carácter profesional y gratuito donde puedan acceder los profesional y ofrezcan pruebas psicológicas con información de las propiedades psicométricas y garantías metodológicas. Palabra claves: Software. Evaluación psicosocial. Deportistas. Entornos deportivos http://www.efdeportes.com/ Revista Digital - Buenos Aires - Año 15 - Nº 144 - Mayo de 20101/1Introducción La importancia de esta herramienta radica en tres puntos fundamentales. Por un lado larapidez en la evaluación tanto de deportistas como de organizaciones, instituciones o entornosy su consecuente inmediatez en la obtención de los resultados de dicha evaluación. En segundolugar cubre una necesidad existente dentro de la psicología on-line como es la evaluación enPsicología del Deporte, no sólo de deportistas sino de organizaciones y entornos deportivos. Eltercero, y quizás más ambicioso, la elaboración de una base de datos de baremación decuestionarios e inventarios aceptados por la comunidad científica internacional de caráctersupranacional. Gracias a las nuevas tecnologías podemos ofrecer a los usuarios la posibilidad de realizar on-line cualquiera de los cuestionarios o aplicaciones que se describen en este proyecto.Simplemente hace falta una conexión a Internet y darse de alta en la aplicación y podráacceder de forma cómoda y amigable a la realización de las pruebas que crea oportunas,obteniendo los resultados de las mismas al finalizar la prueba seleccionada. El objetivo de esta herramienta software es el apoyo a la evaluación del comportamientopsicosocial de los deportistas y de los usuarios de entornos deportivos, a través de laimplementación de unos inventarios psicológicos y programas donde se evalúa su conductacomo deportista y en relación al entorno, así como su comportamiento de usuario.
  2. 2. Por otro lado, otro objetivo es la familiarización por parte del programador de las tecnologíasusadas para dicho desarrollo del proyecto, basándose principalmente en la tecnología .NET. Eluso de esta tecnología ha sido una gran experiencia, con un entorno de desarrollo muyamigable y fácil de usar. Esta tecnología la veremos en capítulos posteriores. Entre estos inventarios, tareas y programas se encuentran: 1. IPED: Cuestionario para evolución de perfiles psicológicos de ejecución deportiva (Hernández Mendo, 2006). 2. POMS: Cuestionario de Evaluación de Estados de Humor (McNair, Lorr, Droppleman, 1971; Hernández Mendo y Ramos, 1995). 3. ICPAF: Cuestionario para evaluación de la calidad de programas deportivos (Hernández Mendo, 2001; Morales Sánchez, Hernández Mendo, y Blanco, 2005). 4. CUVACOT: Cuestionario para Valoración de Actividades de Ocio y Tiempo libre (Hernández Mendo, 2001). 5. BURNOUT: Cuestionario que evalúa el estrés en el trabajo. (Maslach y Jackson, 1986). 6. EPI: Cuestionario de Personalidad para adultos (Eysenck, y Eysenck, 1975). 7. MODRIAN: Cuadricula coloreada (Zeki y Shipp, 1988; Zeki, 1992; Hernández Mendo, y Ramos, 2000). 8. EFECTO STROOP: interferencia semántica producida como consecuencia de la automaticidad en la lectura. Esto ocurre cuando el significado de la palabra interfiere en la tarea de nombrar, por ejemplo, el color de la tinta en que está escrita (Ridley Stroop, 1935). 9. CSAI 2: Inventario del Estado de Ansiedad en Competición – 2. (Martens, 1982; Martens, Burton, Vealey, Bump & Smith, 1990). 10. STAI: Cuestionario de Ansiedad Estado-Rasgo. (Spielberger, Gorsuch, & Luschene, 1970). 11. SCAT: Sport Competition Anxiety Test (Martens, 1977). 12. SERVQUAL: Cuestionario que evalúa las características de los servicios deportivos (Parasuraman, Zeithaml y Berry, 1985, 1988; Morales Sánchez, Hernández Mendo y Blanco, 2009). Los datos obtenidos de los inventarios serán almacenados en una base de datos, que seráexportable a distintos paquetes estadísticos. A partir de esta base de datos se realizará unainterpretación gráfica de los valores obtenidos. Se pretende controlar que el acceso a estos inventarios y programas se realice una vez queel usuario se ha dado de alta en nuestra base de datos rellenando previamente un formulario ycomprobando en la medida de lo posible que los datos introducidos son correctos. El acceso a la aplicación y a los resultados obtenidos por los usuarios sólo podrán serrealizado por el gestor de la aplicación, pudiendo consultar por diferentes categorías comonacionalidad, grupo de personas (p.e. deporte practicado), género, edad, profesión u otroscampos. Estos datos se interpretarán gráficamente o a través de otros mecanismos Un objetivo importante además de la funcionalidad óptima, es construir un entorno amigabley cómodo favoreciendo de esta manera el acercamiento del usuario al mismo.
  3. 3. Se trata, por tanto, de conseguir que el sitio Web se convierta en un lugar de obligadaconsulta tanto para profesionales de la materia como para la realización de los inventarios yprogramas por parte de usuarios, con la gran ventaja de que se puede acceder cómodamentedesde casa con sólo poseer conexión a Internet.1. Etapas de desarrollo del proyecto Vamos a dividir el proyecto en 4 etapas, que pasaremos a describir: • Estudio de la plataforma. Se utilizará la plataforma .NET de Microsoft© (Herbert, 2002) y los distintos servicios que provee a la hora del desarrollo de aplicaciones, así como el estudio de herramientas como Ajax y el lenguaje C# (Ceballos, 2007). • Estudio de Técnicas de Bases de datos. Se estudiarán/repasarán SQL y las principales técnicas de diseño de tablas. • Implementación de la aplicación. Aplicando técnicas y estándares estudiados anteriormente se desarrollará una aplicación visual para la evaluación psicosocial de deportistas y entornos deportivos. Instalación y documentación de las diferentes aplicaciones útiles que usemos para el desarrollo de nuestra aplicación. • Alojo de la aplicación en un servidor Web permanente, para que se pueda tener acceso público a él mediante cualquier navegador. Pero antes del alojo de la aplicación se han realizado varias pruebas a la aplicación para solucionar posibles errores que pudieran existir en casos extremos o poco usuales1.2. Medios materiales y herramientas que se pretenden utilizar • Conexión a Internet, pues la aplicación es de acceso remoto. • Programa de análisis y metodología orientada a objetos MagicDraw. • Se desarrollara en un portátil TravelMate 243LC (Intel Celaron 2.5GHz, 256 MB DDR SDRAM, 30 GB disco duro ultra ATA/100). • Microsoft Visual Studio 2005. • Microsoft Word y Access.2. Introducción a la plataforma .NET2.1. Introducción La aparición de .NET a mediados del año 2001 ha supuesto un antes y un después en eldesarrollo de software para entornos Microsoft. Pues más que una nueva versión o adaptaciónde las tecnologías existentes, la arquitectura .NET representa un cambio de filosofía en laconstrucción de aplicaciones. Antes de la llegada de .NET, las tecnologías de desarrollo proporcionadas por Microsoft seencontraban bastante dispersas, de modo que cada tipo de aplicación requería su propiolenguaje de programación, su propio entorno de desarrollo. Precisamente, este ha sido uno delos grandes logros de .NET, el proporcionar un marco de trabajo común para todos los tipos dedesarrollo.
  4. 4. Por .NET entendemos el conjunto de tecnologías Microsoft destinadas al desarrollo deaplicaciones informáticas. Estas tecnologías se basan en la utilización de un modelo dedesarrollo unificado, lo que significa que podrán ser utilizadas tanto para el desarrollo deaplicaciones que se ejecuten en entorno Windows, como para las que se vayan a ejecutar enentorno Web (como este proyecto) o incluso para aquellas cuyo entorno de ejecución seencuentra en un dispositivo electrónico. Podemos decir que .NET es un programa de software que conecta información, usuarios,sistemas y dispositivos. Incluye clientes, servidores y herramientas para programadores, y estáformado por: • Windows .NET Framework: permite generar y ejecutar todo tipo de software, incluidas aplicaciones basadas en web, aplicaciones cliente inteligentes y servicios web XML. Estos componentes facilitan la integración, ya que comparten datos y funcionalidad a través de una red mediante protocolos estándar independientes de la plataforma, como XML, SOAP y HTTP. • Varias herramientas para programadores, como Microsoft© Visual Studio .NET (David y Julián, 2002) que ofrece un entorno de desarrollo integrado (IDE) para sacar el máximo partido a la productividad de los programadores con .NET Framework. • Un conjunto de servidores, incluidos Microsoft Windows Server, Microsoft SQL Server y Microsoft BizTalk Server, que integran, ejecutan, operan y administran servicios Web XML y aplicaciones basadas en Web. • Software cliente, como Windows XP, Windows CE o Microsoft Office XP, que ayuda a los programadores a ofrecer una experiencia positiva para el usuario a través de la amplia familia de dispositivos y productos existentes.2.2. Versiones .NET Hasta la fecha, se han sucedido cuatro versiones de .NET. • La primera versión la 1.0 fue lanzada a mediados de 2001. En esta versión se produjo un cambio sustancial, puesto que supuso la introducción de la plataforma .NET de Microsoft. • Visual Studio .NET 2002 supuso también la introducción del lenguaje C#, un lenguaje nuevo diseñado específicamente para la plataforma .NET, basado en C++ y Java. Se presentó también el lenguaje J# sucesor de J++ el cual, en lugar de ejecutarse en una máquina virtual de Java, se ejecuta únicamente en el framework .NET. El lenguaje Visual Basic fue remodelado completamente y evolucionó para adaptarse a las nuevas características de la plataforma. • A esta le sucedió la versión 1.1. Visual Studio .NET 2003 supone una actualización menor de Visual Studio .NET. Se actualiza el .NET Framework a la versión 1.1. También se añade soporte con el fin de escribir aplicaciones para determinados dispositivos móviles, ya sea con ASP .NET o con el .NET Compact Framework. Además el compilador de
  5. 5. Visual C++ se mejora para cumplir con más estándares, el Visual C++ Toolkit 2003. • Después nos encontramos con Net 2.0 Visual Studio 2005 se empezó a comercializar a través de Internet a partir del 4 de Octubre de 2005 y llegó a los comercios a finales del mes de Octubre en inglés. En castellano no salió hasta el 4 de Febrero de 2006. (Esta es la versión usada para este proyecto.) • Más recientemente NET 3.5 incluye biblioteca ASP .NET AJAX para desarrollar aplicaciones Web más eficientes, interactivas y altamente personalizadas que funcionen para todos los navegadores más populares y utilicen las últimas tecnologías y herramientas Web, incluyendo Silverlight y Popfly. Visual Studio 2008 fue liberado (RTM) el 17 de Noviembre de 2007 en inglés, mientras que la versión en castellano no fue liberada hasta el 2 de Febrero de 2008. • El nuevo framework está diseñado para aprovechar las ventajas que ofrece el novedoso sistema operativo "Windows Vista" a través de sus subsistemas "Windows Communication Foundation" (WCF) y "Windows Presentation Foundation" (WPF)[.] El primero tiene como objetivo la construcción de aplicaciones orientadas a servicios mientras que el último apunta a la creación de interfaces de usuarios más dinámicas que las conocidas hasta el momento.2.3. Características principales NET Framework es el componente de Microsoft Windows que permite crear y ejecutar lapróxima generación de aplicaciones de software y servicios Web XML, componentes quefacilitan la integración compartiendo datos e información a través de la red mediante protocolosestándar independientes de la plataforma. .NET Framework se compone de dos elementos principales: • Common Language Runtime (Lenguaje Común de Ejecución). • Un conjunto unificado de bibliotecas de clases, tales como o ADO .NET para el acceso a datos sin rigidez. o ASP .NET para aplicaciones Web y servicios Web XML. o Windows forms para aplicaciones cliente inteligentes. El Framework permite una arquitectura flexible, ya que usa los servicios Web comomecanismo de comunicación nativo. Esto facilita la integración de aplicaciones a través deintranets o de Internet, a la vez que proporciona la posibilidad de aprovechar las aplicaciones ylos recursos de programación y de tecnologías de la información existentes. Promueve un desarrollo más rápido pudiendo emplear uno de los muchos lenguajes deprogramación que admite para generar todo tipo de aplicaciones basadas en Windows, talescomo servicios Web XML, aplicaciones cliente inteligentes o aplicaciones Web para dispositivos,PCs y servidores. Además permite la integración de aplicaciones escritas en distintos lenguajes.Para dar soporte a esta ventaja del Framework, Microsoft desarrolló el entorno de desarrollointegrado (IDE) Visual Studio .NET. Además utiliza un diseño totalmente basado encomponentes y sin estructura predefinida, por lo que permite a los programadores centrarse en
  6. 6. escribir la lógica de negocio. Los programadores pueden utilizar docenas de controles queencapsulan tareas comunes como conectar bases de datos o mostrar una vista preliminar,evitando tener que escribir en lenguaje de definición de interfaz (IDL: Interface DefinitionLanguage). Mejora el rendimiento de las aplicaciones Web típicas gracias a ASP .NET, que incorporafunciones avanzadas de compilación y almacenamiento en caché. El Framework administra lamemoria, los procesos y los subprocesos con el objeto de evitar las pérdidas de memoria. Incrementa la seguridad con funciones tales como el control exhaustivo a nivel de métodosobre las tareas que las aplicaciones pueden llevar a cabo o no, basándose en quién escribió elcódigo, el propósito del mismo, desde dónde se ha instalado y quién está intentando ejecutarlo.2.4. Arquitectura .NET La nueva tecnología de Microsoft ofrece soluciones a los problemas de programaciónactuales, como son la administración de código o la programación para Internet. Paraaprovechar al máximo las características de .NET es necesario entender la arquitectura básicaen la que esta implementada esta tecnología y así beneficiarse de todas las características queofrece esta nueva plataforma. El Framework de .NET es una infraestructura sobre la que se reúne todo un conjunto delenguajes y servicios que simplifican enormemente el desarrollo de aplicaciones. Mediante estaherramienta se ofrece un entorno de ejecución altamente distribuido, que permite crearaplicaciones robustas y escalables. La plataforma .NET se ejecuta sobre la plataforma hardware. Uno de sus componentes es elCLR. Todos los otros componentes se ejecutan sobre el CLR y de esta forma sonindependientes de la plataforma hardware (siempre que ésta sea Windows). Sobre el CLR se ejecutan una serie de librerías que son utilizadas por los programas,simplificando el desarrollo al ofrecer una serie de servicios ya programados, listos parareutilizar. Hay una librería básica que contiene soporte para estructuras de datos,interoperabilidad con el código .NET, entre otros servicios. Hay librerías para acceso a bases dedatos y XML así como para interfaz gráfica, tanto para el escritorio como para el Web. Estas librerías son usadas por los programas compilados. Entre estos programas podemosdestacar a los compiladores para los diferentes lenguajes .NET, que traducen los programas encada uno de estos lenguajes a programas compilados. La plataforma .NET es gratuita y libremente distribuible. Es un requisito imprescindible paradesarrollar y ejecutar los programas .NET y su curva de aprendizaje es lenta, debido a la grancantidad de clases existentes en las diferentes librerías.
  7. 7. Figura 1. Arquitectura de la plataforma .NET2.5. CLR, el núcleo del Framework El Common Language Runtime o CLR (Lenguaje común en tiempo de ejecución) es el motorde ejecución de las aplicaciones .NET, que se encarga de ejecutar todo el código .NET. Es laparte encargada de traducir en tiempo de ejecución el código intermedio de las aplicaciones ylibrerías a código máquina, adaptándolo a las características del sistema operativo donde seestá produciendo la ejecución. Es el componente de la máquina virtual del .NET Framework de Microsoft. Laimplementación del estándar Common Language Infrastructure que define un ambiente deejecución para los códigos de los programas. El CLR ejecuta una forma de código intermedio(bytecode) llamada Common Intermediate Language (CIL, anteriormente conocido como MSIL). A pesar de que algunas implementaciones del Common Language Infrastructure se ejecutanen sistemas operativos no Windows, el CLR se ejecuta sólo en sistemas operativos de MicrosoftWindows. Además de la integración de lenguajes, también se encarga del cumplimiento de las normasde seguridad y la administración de la memoria, los procesos y los subprocesos entre otros. Las principales características y servicios que ofrece el CLR son: • Eliminación del “infierno de las DLLs”: En la plataforma .NET desaparece el problema conocido como “infierno de las DLLs” que se da en los sistemas operativos actuales de la familia Windows, problema que consiste en que al sustituirse versiones viejas de DLLs compartidas por versiones nuevas puede que aplicaciones que fueron diseñadas para ser ejecutadas usando las viejas dejen de funcionar si las nuevas no son 100% compatibles con las anteriores. • Modelo de programación consistente: A todos los servicios y facilidades ofrecidos por el CLR se accede de la misma forma: a través de un modelo de programación orientado a objetos. Esto es una
  8. 8. diferencia importante respecto al modo de acceso a los servicios ofrecidos por los algunos sistemas operativos actuales, en los que a algunos servicios se les accede a través de llamadas a funciones globales definidas en DLLs y a otros a través de objetos• Integración de lenguajes: Desde cualquier lenguaje para el que exista un compilador que genere código para la plataforma .NET es posible utilizar código generado para la misma usando cualquier otro lenguaje tal y como si de código escrito usando el primero se tratase. Microsoft ha desarrollado un compilador de C# que genera código de este tipo, así como versiones de sus compiladores de Visual Basic (Visual Basic .NET) y C++ (C++ con extensiones gestionadas) que también lo generan y una versión del intérprete de JScript (JScript .NET) que puede interpretarlo• Modelo de programación sencillo: Con el CLR desaparecen muchos elementos complejos incluidos en los sistemas operativos actuales (registro de Windows, GUIDs, etc.) El CLR no es que abstraiga al programador de estos conceptos, sino que son conceptos que no existen en la plataforma .NET• Ejecución multiplataforma: El CLR actúa como una máquina virtual, encargándose de ejecutar las aplicaciones diseñadas para la plataforma .NET. Es decir, cualquier plataforma para la que exista una versión del CLR podrá ejecutar cualquier aplicación .NET. Microsoft ha desarrollado versiones del CLR para la mayoría de las versiones de Windows. Por otro lado ha firmado un acuerdo con Corel para portar el CLR a Linux y también hay terceros que están desarrollando de manera independiente versiones de libre distribución del CLR para Linux.• Gestión de memoria: El CLR incluye un recolector de basura que evita que el programador tenga que tener en cuenta cuándo ha de destruir los objetos que dejen de serle útiles. Este recolector es una aplicación que se activa cuando se quiere crear algún objeto nuevo y se detecta que no queda memoria libre para hacerlo, caso en que el recolector recorre la memoria dinámica asociada a la aplicación, detecta qué objetos hay en ella que no puedan ser accedidos por el código de la aplicación, y los elimina para limpiar la memoria de “objetos basura” y permitir la creación de otros nuevos.• Soporte multihilo: El CLR es capaz de trabajar con aplicaciones divididas en múltiples hilos de ejecución que pueden ir evolucionando por separado en paralelo o intercalándose, según el número de procesadores de la máquina sobre la que se ejecuten.• Aislamiento de procesos: El CLR asegura que desde código perteneciente a un determinado proceso no se pueda acceder a código o datos pertenecientes a otro, lo que evita errores de programación muy frecuentes e impide que unos procesos puedan atacar a otros.• Tratamiento de excepciones: En el CLR todos los errores que se puedan producir durante la ejecución de una aplicación se propagan de igual manera: mediante excepciones. Esto es muy diferente a como se venía haciendo en los sistemas Windows hasta la aparición de la plataforma .NET, donde ciertos errores se transmitían mediante códigos de error en formato Win32.
  9. 9. • Distribución transparente: El CLR ofrece la infraestructura necesaria para crear objetos remotos y acceder a ellos de manera completamente transparente a su localización real, tal y como si se encontrasen en la máquina que los utiliza. • Seguridad avanzada: El CLR proporciona mecanismos para restringir la ejecución de ciertos códigos o los permisos asignados a los mismos según su procedencia o el usuario que los ejecute. Es decir, puede no darse el mismo nivel de confianza a código procedente de Internet que a código instalado localmente o procedente de una red local; puede no darse los mismos permisos a código procedente de un determinado fabricante que a código de otro; y puede no darse los mismos permisos a un mismo códigos según el usuario que lo esté ejecutando o según el rol que éste desempeñe. • Seguridad de tipos: El CLR facilita la detección de errores de programación difíciles de localizar comprobando que toda conversión de tipos que se realice durante la ejecución de una aplicación .NET se haga de modo que los tipos origen y destino sean compatibles.Figura 2. Common Language Runtime (CLR)2.6. Biblioteca de clases La plataforma .NET nos ofrece infinidad de funcionalidades que se utilizan como punto departida para crear las aplicaciones. Existen funcionalidades básicas (por ejemplo todo lorelacionado con la E/S de datos o la seguridad) y funcionalidades avanzadas en las que sefundamentan categorías enteras de aplicaciones (acceso a datos, creación de aplicacionesWeb...). Toda esta funcionalidad está implementada en forma de bibliotecas de funciones quefísicamente se encuentran en diversas DLL. A su conjunto se le denomina Base ClassesLibrary(Biblioteca de clases base o BCL) y forman parte integral de la plataforma .NET, es decir,no se trata de añadidos que se deban obtener o adquirir aparte.
  10. 10. La siguiente figura ilustra la arquitectura conceptual de la plataforma .NET. En ella sepueden observar los elementos que se han mencionado en apartados anteriores (lenguajes,CLR, CLS...) y en qué lugar de se ubican las bibliotecas de clases base:Figura 3. Distintos elementos de la plataforma .NET y cómo se relacionan entre sí Todo lo que se encuentra en la BCL forma parte de la plataforma .NET. De hecho existe talcantidad de funcionalidad integrada dentro de estas bibliotecas que el mayor esfuerzo que todoprogramador que se inicia en .NET debe hacer es el aprendizaje de las más importantes. Detodos modos Visual Studio ofrece mucha ayuda contextual (documentación, Intellisense...) yuna vez que se aprenden los rudimentos resulta fácil ir avanzando en el conocimiento de la BCLa medida que lo vamos necesitando. BCL es una librería incluida en el .NET Framework formada por cientos de tipos de datos quepermiten acceder a los servicios ofrecidos por el CLR y a las funcionalidades másfrecuentemente usadas a la hora de escribir programas. Además, a partir de estas clasesprefabricadas el programador puede crear nuevas clases que mediante herencia extiendan sufuncionalidad y se integren a la perfección con el resto de clases. Esta librería está escrita en MSIL, por lo que puede usarse desde cualquier lenguaje cuyocompilador genere MSIL. A través de las clases suministradas en ella es posible desarrollarcualquier tipo de aplicación, desde las tradicionales aplicaciones de ventanas, consola o serviciode Windows NT hasta los novedosos servicios Web y páginas ASP .NET. En la siguiente figura podemos ver el conjunto de clases comunes accesibles desde todos loslenguajes que corren sobre el Framework.
  11. 11. Figura 4. Biblioteca de Clases Base de .NET La biblioteca de clases base maneja la mayoría de las operaciones básicas que se encuentraninvolucradas en el desarrollo de aplicaciones, incluyendo entre otras: • Interacción con los dispositivos periféricos • Manejo de datos (ADO .NET) • Administración de memoria • Cifrado de datos • Transmisión y recepción de datos por distintos medios (XML, TCP/IP) • Manejo y administración de excepciones • Manejo del sistema de ventanas • Herramientas de despliegue de gráficos (GDI+) • Herramientas de seguridad e integración con la seguridad del sistema operativo • Manejo de cadenas de caracteres y expresiones regulares • Operaciones aritméticas • Manipulación de fechas, zonas horarias y periodos de tiempo • Manejo de arreglos de datos y colecciones • Manipulación de archivos de imágenes • Generación de código • Manejo de idiomas • Interacción con el API Win32 o Windows API. • Compilación de código Esta funcionalidad se encuentra organizada por medio de espacios de nombres jerárquicos. La Biblioteca de Clases Base se clasifica, en tres grupos clave: • ASP .NET y Servicios Web XML • Windows Forms
  12. 12. • ADO .NET2.6.1. Espacios de nombres Espacios de nombres: La forma de organizar la biblioteca de clases de .NET dentro delcódigo es a través de los espacios de nombres (namespaces), donde cada clase está organizadaen espacios de nombres según su funcionalidad. Por ejemplo, para manejar ficheros se utiliza elespacio de nombres System.IO y si lo que se quiere es obtener información de una fuente dedatos se utilizará el espacio de nombres System.data. Todo lo que tiene que ver con el manejode estructuras de datos XML en la plataforma .NET se encuentra bajo el espacio denombres System.xml. La funcionalidad fundamental para crear aplicaciones Web está en elespacio de nombres System.web. La principal ventaja de los espacios de nombres de .NET es que de esta forma se tiene todala biblioteca de clases de .NET centralizada bajo el mismo espacio de nombres (System). Lasclases incluidas en las bibliotecas proporcionan las funcionalidades básicas que puede necesitartoda aplicación. Además, desde cualquier lenguaje se usa la misma sintaxis de invocación, ya que a todos loslenguajes se aplica la misma biblioteca de clases. Dada la amplitud de la BCL, ha sido necesario organizar las clases en ella incluida enespacios de nombres que agrupen clases con funcionalidades similares. Por ejemplo, losespacios de nombres más usados son: Utilidad de los tiposEspacio de nombres de datos que contiene Tipos muy frecuentemente usados, como los tipos básicos, tablas, excepciones, fechas, númerosSystem aleatorios, recolector de basura, entrada/salida en consola, etc. Colecciones de datos de uso común como pilas, colas,System.Collections listas, diccionarios, etc. Manipulación de bases de datos. Forman laSystem.Data denominada arquitectura ADO .NET.System.IO Manipulación de ficheros y otros flujos de datos.System .NET Realización de comunicaciones en red. Acceso a los metadatos que acompañan a los módulosSystem.Reflection de código.System.Runtime.Remoting Acceso a objetos remotos.
  13. 13. Acceso a la política de seguridad en que se basa elSystem.Security CLR.System.Threading Manipulación de hilos. Creación de interfaces de usuario basadas enSystem.Web.UI.WebControls ventanas para aplicaciones Web. Creación de interfaces de usuario basadas enSystem.Windows.Forms ventanas para aplicaciones estándar.System.XML Acceso a datos en formato XML.Tabla 1. Espacios de nombres de la BCL más usados A continuación explicaremos con más detalle algunos de ellos: • Microsoft.CSharp, Microsoft.JScript y Microsoft.VisualBasic: contienen las clases necesarias para compilar y generar código mediante el lenguaje C#, JScript y Basic .NET correspondientemente. • Microsoft.Win32: proporciona dos tipos de clases: las que controlan los eventos desencadenados por el sistema operativo y las que manipulan el Registro del sistema. • System: contiene clases fundamentales y clases base que definen los valores y tipos de datos de referencia, eventos y controladores de eventos, interfaces, atributos y excepciones de procesamiento comúnmente utilizados. Otras clases proporcionan servicios para convertir tipos de datos, manipular parámetros de métodos, realizar cálculos matemáticos, invocar programas remotos y locales, administrar el entorno de aplicaciones y supervisar aplicaciones administradas y no administradas. • System.Collections: Esta librería contiene interfaces y clases para el tratamiento de colecciones, las cuales representan una estructura de programación muy utilizada en las aplicaciones .NET.en ellas se definen diversas colecciones de objetos, tales como listas, colas, matrices, tablas hash y diccionarios. • System.IO: contiene las clases para la realización de operaciones de entrada salida de datos en un programa, como puede ser la transferencia de información entre aplicaciones y un archivo de disco. Permite lectura y escritura sincrónica y asincrónica en archivos y secuencias de datos. • System.Text: contiene clases que permiten representar codificaciones de caracteres ASCII, Unicode, UTF-7 y UTF-8; clases bases abstractas para convertir bloques de caracteres a y desde bloques de bytes; y una clase auxiliar que procesa y da formato a objetos String sin crear instancias intermedias dicha clase.
  14. 14. • System.Threading: proporciona clases e interfaces que permiten la programación multiproceso. Este espacio de nombres incluye una clase ThreadPool, que administra grupos de subprocesos y una clase Mutex para sincronizar subprocesos mutuamente excluyentes. System.Threading también proporciona clases para la programación de subprocesos y la notificación de espera. Actualmente se ha introducido un nuevo espacio de nombres correspondiente a la nueva interfaz diseñada para la próxima entrega de Windows (conocida hasta ahora como Longhorn). Las bibliotecas antes citadas las podemos agrupar en bibliotecas de clase Base, las citadas acontinuación, se podrían definir como bibliotecas de interfaz grafica, se trata de bibliotecas queincluyen clases específicamente desarrolladas para la creación de aplicaciones basadas enentorno gráfico. Las dos bibliotecas más importantes que componen este grupo son: • Windows.Form: Incluye todas las clases para la creación de aplicaciones Windows en .NET. Entre otras proporciona nuevas versiones de controles Windows clásicos que se utilizaban en las antiguas aplicaciones de visual Basic, así como otros nuevos mucho más potentes y sofisticados. • ASP .NET. Esta librería se puede considerar como otro de los grandes logros de la plataforma .NET. En ella encontramos todo lo necesario para la creación de aplicaciones que se van a ejecutar en un entorno Web. Proporciona clases tanto para la construcción de objetos gráficos (controles Web) como para la implementaron de objetos de servidor (objetos ASP). Dado que este Proyecto es una aplicación Web, esta librería será objeto de un profundo estudio.2.7. Lenguajes de programación ( .NET) Actualmente es posible utilizar un gran número de lenguajes de programación para crearaplicaciones .NET; entre ellos están Visual Basic, c#, C++, Delphi o incluso Cobol.
  15. 15. Figura 5. Lenguajes .NET La plataforma .NET incluye más de 5000 clases para ayudar a los programadores en eldesarrollo de todo tipo de programas. Estas clases se agrupan en librerías y todas ellas vanincorporadas en el entorno de ejecución de .NET. Estas librerías son comunes para todos los lenguajes soportados por la plataforma, es decir,no hay una versión de la librería para c#, otra para VB .NET, etc., sino que el mismo conjuntode clases puede ser utilizado por cualquiera de los lenguajes. Cada una de las librerías de laplataforma se encuentra compilada en un ensamblado de tipo ddl.2.7.1. - C#, el lenguaje nativo de .NET Framework Se trata de un lenguaje nacido con la propia plataforma .NET y es conocido también comoVisual c# .NET. Como se puede deducir, de su nombre, su sintaxis es parecida al del lenguajeC; además tiene grandes similitudes con otros lenguajes de programación orientados a objetoscomo C++ y Java, lo que le permite ser el lenguaje más utilizado en la creación de aplicaciones.NET. C# es un lenguaje de programación orientado a objetos desarrollado por Microsoft comoparte de su iniciativa .NET. Microsoft basó C# en C++ y Java y fue diseñado para combinarpotencia y velocidad de programación. Es el lenguaje con el que se ha desarrollado laplataforma Microsoft .NET, y necesita esta para que los programas escritos en C# puedanejecutarse. Además necesita de las librerías de la plataforma y del compilador JIT para quecompile durante la ejecución del programa el código IL.2.8. Entorno de desarrollo Uno de los grandes logros de Microsoft con el lanzamiento de la plataforma NET ha sido lacreación de un único entorno de desarrollo para la construcción de las aplicaciones. VisualStudio .NET es un entorno de desarrollo con el que podemos crear cualquier tipo de aplicación.NET, desde programas para Windows hasta utilidades para una agenda electrónica, pasando,por supuesto por la creación de aplicaciones de entornos Web, pudiendo además utilizar paraello cualquiera de los lenguajes soportados por la plataforma. Todas las utilidades del entorno Visual Studio .NET, como son la compilación y ejecución deprogramas o las herramientas de depuración, están disponibles para todos estos tipos deaplicaciones. El .NET Framework constituye el núcleo fundamental de .NET al proporcionar la plataformapara el desarrollo y ejecución de las aplicaciones. Se trata de una capa software que se encuentra entre la aplicación y el sistema operativo,pudiendo llegarse a considerar una extensión de este. De hecho, aunque se distribuye de formaindependiente, las últimas versiones de los sistemas operativos Microsoft, como Windows 2003Server, ya incorporan el .NET Framework.
  16. 16. Durante la ejecución de las aplicaciones el .NET Framework traduce el código intermedio enel que ha realizado la compilación a código máquina, además de proporcionar todas las clasesnecesarias para la ejecución de la aplicación.3. El lenguaje de programación C#3.1. El lenguaje C# Creado específicamente por Microsoft para trabajar sobre la plataforma .NET y, sin duda, elpreferido por la mayoría de los programadores para el desarrollo de todos los tipos deaplicaciones que se van a ejecutar bajo esta plataforma. C# (Ceballos, 2007) es uno de los lenguajes más modernos que podemos encontrar en laactualidad, especialmente cuando se le compara con otros de la misma familia, como C y C++,o incluso respecto a otros de nacimiento también reciente, como Java. Un nuevo lenguaje de programación no se desarrolla sencillamente porque sí, existiendosiempre razones suficientes que justifiquen la gran inversión que supone un esfuerzo de estetipo. Hasta la llegada de C# no existía un lenguaje de programación verdaderamente orientado aluso y creación de componentes, siendo quizá ésta su aportación más importante. Estaorientación se refleja, por ejemplo, en el uso de atributos declarativos para establecer ciertaspropiedades de los objetos, sin necesidad de escribir código funcional. Cumple con la especificación CLS. El código que crearemos con él será traducido ainstrucciones MSIL para entonces ser traducido, justo antes de su ejecución, a instruccionesnativas que correspondan a la plataforma concreta sobre la cual estemos trabajando. Se presenta como el último invento en materia de lenguajes de programación, y constituyetambién la más reciente y ambiciosa apuesta en este sentido por parte de Microsoft. Quizás, lo primero que habría que aclarar, es que, de todo el .NET Framework, es la únicaparte que puede considerarse terminada, hasta el punto de que el propio Visual Studio .NET hasido construido al 90% en C# y el 10% restante en C++. Por otro lado, el lenguaje merece elcalificativo de estándar, en el sentido de que al igual que algunos otros aspectos del entorno-está siendo sometido a estandarización por parte de ECMA, la misma entidad de normalizaciónque llevó a cabo la estandarización de Javascript.3.1.1. Motivos por los cuales deberíamos optar por C# Este lenguaje irrumpe en el mercado como un lenguaje muy bien diseñado y con muchasvirtudes en una industria plagada de soluciones y herramientas de programación para todos losgustos. los motivos por los cuales deberíamos optar por C# son: • C# es un lenguaje moderno y orientado a objetos, con una sintaxis muy similar a la de C++ y Java. Combina la alta productividad de Visual Basic con el poder y la flexibilidad de C++.
  17. 17. • La misma aplicación que se ejecuta bajo Windows podría funcionar en un dispositivo móvil de tipo PDA. Con C#/ .NET no nos atamos a ninguna plataforma en particular. • Se puede crear una gran variedad de aplicaciones en C#: aplicaciones de consola, aplicaciones para Windows con ventanas y controles, aplicaciones para la Web, etc. • C# gestiona automáticamente la memoria, y de este modo evita los problemas de programación tan típicos en lenguajes como C o C++. • Mediante la plataforma .NET desde la cual se ejecuta es posible interactuar con otros componentes realizados en otros lenguajes .NET de manera muy sencilla. • También es posible interactuar con componentes no gestionados fuera de la plataforma .NET. Por ello, puede ser integrado con facilidad en sistemas ya creados. • Desde C# podremos acceder a una librería de clases muy completa y muy bien diseñada, que nos permitirá disminuir en gran medida los tiempos de desarrollo. Una de las cosas buenas de .NET es que puedes usar hasta más de 40 lenguajes deprogramación diferentes, es la llamada integración de lenguajes. La idea es que a la hora de compilar, primero se traduce ese lenguaje a un lenguajeintermedio común a todos y que ya entiende .NET. Por tanto, vale con que exista uncompilador especial para cada lenguaje para que éste pueda trabajar con el poder de .NET.Microsoft tiene creados compiladores para C++, J# y VB .NET, y obviamente C#, que es ellenguaje con el que se ha creado toda la plataforma .NET. Organizado de este modo, podemos usar clases en C# que hereden de J# y ésta, a su vezde VB .NET. Entonces, si se puede usar cualquier lenguaje... ¿Por qué utilizar C#? Muchas sonlas opiniones que pueden surgir al respecto. Es un lenguaje nuevo y a la vez maduro. Maduro porque, toda la plataforma .NET está hechacon C#. Fue creado por Scott Wiltamuth y Anders Hejlsberg, este último diseñador delTurboPascal y la herramienta RAD de Delphi. C# es más sencillo e intuitivo, más moderno, orientado a objetos (obviamente) y sobretodomuy eficiente. Desde un punto de vista práctico, C# es el lenguaje de .NET con más y mejores ejemplos.Además, "cambiarse" a C# es fácil para todos los programadores de Java y C++, y nodemasiado difícil para los de VB.3.2. Comparación de C# otros lenguajes En este apartado se va a comparar el lenguaje C# con los más importantes que tienen ciertasimilitud con él, entre los que destacamos: Visual Basic, Java y C++.3.2.1. Comparación C# & Visual Basic
  18. 18. Si un programador trabaja en Visual Basic y está evaluando “cambiar” a C#, no se puededudar. Existen muchísimas razones para tomar esta decisión. En primer lugar, uno de losmotivos por los cuales Visual Basic era atractivo era su productividad. Sí, a pesar de algunos de sus inconvenientes para crear aplicaciones sencillas, no existíamejor solución que Visual Basic; ningún otro lenguaje podía competir en velocidad de desarrollocon él. Pues bien, C# le ha quitado la corona; la misma aplicación que se puede realizar enVisual Basic podrá crearla en C# en, al menos, el mismo tiempo, e incluso más rápidamente. Por otro lado, gracias a las nuevas características del lenguaje, el diseño de sus aplicacionespodrá ser más elegante y simple, y de este modo podrá manejar la complejidad de una maneramás natural. En segundo lugar, los programadores Visual Basic nunca fueron vistos como programadoresreales, aunque muchísimos profesionales sufran de esta etiqueta de manera injusta. Por último, el paso de Visual Basic 6.0 a C# hasta podría ser considerado lógico para quiensea un dominador del VB.3.2.2. Comparación C# & C++ Los detractores de C++ lo acusan de ser un lenguaje híbrido, un C con clases, como muchasveces es definido. El problema de esta falta de decisión en cuanto al diseño del lenguaje es quepermite que convivan clases con funciones y variables globales, lo cual podría ser tentador parael programador y podría empobrecer el diseño de una aplicación construida de este modo. Claro que, por otro lado, hay quienes les gusta ver el vaso medio lleno y sostienen que estacaracterística de “hibridez” es positiva, pues deja al programador la posibilidad de tomar lomejor de los dos mundos. C# es, en alguna medida, una evolución de C++, ya que toma prestada su sintaxis y mejoramuchos de sus aspectos, como el hecho de poseer una librería de clases unificada y ser unlenguaje orientado a objetos puro. Esto no quiere decir que lo reemplace en todos sus usos,claro. C++ seguirá teniendo su segmento de utilización en donde es ideal, pero C# invade día trasdía áreas donde antes C++ era único conquistador.3.2.3. Comparación C# & Java Muchos sostienen que C# es una copia de Java. Si tomamos ciertos trozos de código escritosen alguno de estos lenguajes, podría ser imposible determinar si es C# o es Java. Lo cierto es que parte de la filosofía empleada por ambos lenguajes es la misma. Ambos seejecutan sobre una máquina virtual, y esta característica los convierte en lenguajespotencialmente multiplataforma, ambos poseen especificaciones de subconjuntos de recursosde lenguaje para implementaciones en diversos dispositivos (por ejemplo, móviles), y ambostienen una librería de clases con muchas características en común. Sin embargo, C# presenta la
  19. 19. ventaja de integrarse mejor con aplicaciones nativas de la plataforma sobre la cual estemostrabajando. Claro que, si accedemos a recursos nativos, perderá la característica de ser multiplataforma,pero esta característica no siempre es deseada. Es indudable que Java cuenta con mayor madurez, con más programadores, con el respaldode muchas casas de software, entre otras cosas que pueden considerarse ventajosas; pero noes menos cierto que .NET ha sido desarrollado por algunas de las personas que más conocende Java, que cuenta con el respaldo de una inmensa casa de software, y con el apoyo demuchas personas en el mundo, además de tener una gran aceptación comercial.3.3. Características fundamentales del lenguaje C# es un lenguaje moderno y altamente expresivo que se ajusta al paradigma deprogramación orientada a objetos. Su sintaxis es similar a C++ y Java. El lenguaje fuedesarrollado en gran parte por Anders Hejlsberg. En C# no existe el concepto de función global o variable fuera de una clase u objeto. Por subuen apego a la POO, es posible sobrecargar métodos y operadores. Soporta definición deinterfaces. Ninguna clase puede poseer más de un padre (no se permite la herencia múltiple),pero sí puede suscribir un contrato con diversas interfaces. Soporta la definición de estructuras, pero, a diferencia de C++, aquí no son tan parecidas alas clases y poseen ciertas restricciones. Permite además la declaración de propiedades,eventos y atributos (que son construcciones declarativas). Una característica distintiva cada vez más presente en lenguajes modernos es la gestiónautomática de memoria y el uso de referencias en lugar de punteros. Gracias a esta gestión automática de memoria ya no tendremos que preocuparnos por laexistencia de memory leaks (zonas de memoria que permanecen reservadas pero ya no sonutilizadas debido a errores de programación). Una de las características principales de C# es que se trata de un lenguaje que compila (pordefecto) a un formato intermedio, al estilo de Java, que posteriormente, debe de serinterpretado por un entorno de ejecución, una máquina JIT (just-in-time), también al estilo deJava. La gran diferencia respecto a Java es que, ése intérprete será común a todos los lenguajesoportados por el entorno de ejecución y mediante este mecanismo permitirá que loscomponentes realizados en cualquier lenguaje puedan comunicarse entre sí. Se trata pues, de una extensión del concepto inicial que dio origen a Java: en lugar de unúnico lenguaje para muchas plataformas, se pretende un entorno común multiplataforma, quesoporte muchos lenguajes, basándose en que todos ellos compilen a un mismo códigointermedio. Para hacer viable esta idea, se ha optimizado considerablemente la velocidad,respecto a Java y ya se están anunciando los primeros .NET Framework para otras plataformas.
  20. 20. Dispone de todas las características propias de cualquier lenguaje orientado aobjetos: encapsulación, herencia y polimorfismo. • Ofrece un modelo de programación orientada a objetos homogéneo, en el que todo el código se escribe dentro de clases y todos los tipos de datos, incluso los básicos, son clases que heredan de System.Object (por lo que los métodos definidos en ésta son comunes a todos los tipos del lenguaje) • Permite la definición del significado de los operadores básicos del lenguaje (+, -, *, &, ==, etc.) para nuestros propios tipos de datos, lo que facilita enormemente tanto la legibilidad de las aplicaciones como el esfuerzo necesario para escribirlas. • Permite definir estructuras, que son clases un tanto especiales: sus objetos se almacenan en pila, por lo que se trabaja con ellos directamente y no referencias al montículo, lo que permite accederlos más rápido. Sin embargo, esta mayor eficiencia en sus accesos tiene también sus inconvenientes, fundamentalmente que el tiempo necesario para pasarlas como parámetros a métodos es mayor. • Es un lenguaje fuertemente tipado, lo que significa se controla que todas las conversiones entre tipos se realicen de forma compatible, lo que asegura que nunca se acceda fuera del espacio de memoria ocupado por un objeto. Así se evitan frecuentes errores de programación y se consigue que los programas no puedan poner en peligro la integridad de otras aplicaciones. • Incorpora propiedades, que son un mecanismo que permite el acceso controlado a miembros de una clase tal y como si de campos públicos se tratasen. Gracias a ellas se evita la pérdida de legibilidad que en otros lenguajes causa la utilización de métodos Set() y Get() pero se mantienen todas las ventajas de un acceso controlado por estos proporcionada. • Admite unos elementos llamados atributos que no son miembros de las clases sino información sobre éstas que podemos incluir en su declaración. Por ejemplo, indican si un miembro de una clase ha de aparecer en la ventana de propiedades de Visual Studio .NET, cuáles son los valores admitidos para cada miembro en ésta, etc. • Incluye soporte nativo para eventos y delegados. Los delegados son similares a los punteros a funciones de otros lenguajes como C++ aunque más cercanos a la orientación a objetos, y los eventos son mecanismos mediante los cuales los objetos pueden notificar de la ocurrencia de sucesos. Los eventos suelen usarse en combinación con los delegados para el diseño de interfaces gráficas de usuario, con lo que se proporciona al programador un mecanismo cómodo para escribir códigos de respuesta a los diferentes eventos que puedan surgir a lo largo de la ejecución de la aplicación. (pulsación de un botón, modificación de un texto, etc.) • Tiene a su disposición un recolector de basura que libera al programador de la tarea de tener que eliminar las referencias a objetos que dejen de ser útiles, encargándose de ello éste y evitándose así que se agote la memoria porque al programador olvide liberar objetos
  21. 21. inútiles o que se produzcan errores porque el programador libere áreas de memoria ya liberadas y reasignadas.3.4. ¿Por qué C#? La plataforma .NET acepta varios lenguajes. Por ahora, C#, Visual Basic, C++ gestionado,Nemerle, FORTRAN, Java, Python, etc. y con capacidad para aceptar prácticamente cualquierlenguaje. Entonces la pregunta es, ¿porqué se eligió C# en lugar de cualquier otro lenguaje? La razón fundamental es que C# se diseñó para la plataforma .NET y es capaz de utilizartodo su potencial. También es cierto que es un lenguaje "limpio" en el sentido de que al notener que proporcionar compatibilidad hacia atrás se ha tenido más libertad en el diseño y seha puesto especial hincapié en la simplicidad. Por ejemplo, en C# hay un tipo de clase ysiempre se le aplica el recolector de basura mientras que en C++ gestionado hay dos tipos declases, una a la que se aplica el recolector y otra a la que no.4. Tecnología ASP .NET Y AJAX4.1. ASP .NET4.1.1. Introducción La transformación que ha sufrido la Web en los últimos años ha sido espectacular. Alprincipio se usaba principalmente como escaparate publicitario, con información estática, ypodemos observar que hoy día se ha convertido en un medio sobre el que poder realizaroperaciones comerciales, transacciones de datos entre aplicaciones remotas etc. Para hacer esto posible, las tecnologías de desarrollo han tenido que evolucionar y adaptarsea los nuevos requerimientos que exigen este tipo de aplicaciones. Este es el caso de ASP .NET (Martín Sierra, 2007) que a día de hoy desde su aparición en elaño 2001 se ha convertido en una de las tecnologías más potentes y completas para eldesarrollo de aplicaciones en la Web. Hoy en día, resulta bastante común implementar la interfaz de una aplicación utilizandopáginas Web en vez de las ventanas y los controles específicos de un sistema operativoconcreto. En lugar de escribir una aplicación para un sistema operativo concreto, como puedeser Windows, en muchas situaciones es preferible crear aplicaciones Web a las que se accede através de Internet. Se denominan aplicaciones Web a aquellas aplicaciones cuya interfaz se construye a partir depáginas Web. Las páginas Web no son más que ficheros de texto en un formato estándardenominado HTML. Estos ficheros se almacenan en un servidor Web al cual se accedeutilizando el protocolo http. Para utilizar una aplicación Web desde una máquina concreta, basta con tener instalado unnavegador Web en esa máquina, ya sea éste el Internet Explorer de Microsoft, el NetscapeNavigator o cualquier otro navegador. Desde la máquina cliente, donde se ejecuta elnavegador, se accede a través de la red al servidor Web donde está alojada la aplicación y, de
  22. 22. esa forma, se puede utilizar la aplicación sin que el usuario tenga que instalarla previamente ensu máquina.4.1.2. ¿Qué es ASP .NET? Durante muchos años, los desarrolladores han estado utilizando la tecnología ASP paragenerar páginas Web dinámicas. De modo similar a ASP, ASP .NET se ejecuta en el servidorWeb y proporciona una forma de desarrollar sitios Web dinámicos, personalizados y de ricocontenido. ASP .NET es la nueva tecnología propuesta por Microsoft para enfrentar los desafíos deinterconexión entre dispositivos y sitios Web del nuevo milenio. En versiones anteriores deVisual Basic, las opciones brindadas para la programación de estos últimos, no contaba con lasventajas que ofrecían otras herramientas, como visual InterDev. En esta versión, ahora secuenta con un excelente editor de páginas para servidor activo ASP .NET y HTML, el cual vieneincluido por el entorno de desarrollo como diseñador natural. Adicionalmente se han agregadovarias características, a los efectos de que la programación de una aplicación para la Webcuente con todas las funcionalidades del lenguaje, y además se efectúe en forma similar acomo se hacía bajo el modelo Windows. Las técnicas brindadas para dibujar un formulario de Windows no difieren en mucho de lasofrecidas para realizar la misma tarea en una página Web. Ahora se cuenta con un nuevo tipode proyecto llamado aplicación Web ASP .NET, el cual hace uso de formularios Web o WebForms, los cuales cumplen un rol similar al de los formularios estándares en el modeloWindows. Básicamente un formulario Web es exhibido de igual forma que uno Windows, pero, enrealidad, el primero es gestionado internamente como una página de servidor activo y etiquetasHTML. La creación de la interfaz es muy sencilla, ya que basta con crear un nuevo proyecto deeste tipo, y posteriormente arrastrar los controles del cuadro de herramientas, para así crearuna nueva interfaz gráfica para la Web. Es una de las piezas esenciales de Microsoft .NET Framework y proporciona la infraestructurapara aplicaciones .NET Web dinámicas fácilmente desarrolladas. No es sólo el sucesor depáginas Active Server (ASP) de Microsoft, es una plataforma unificada de desarrollo Web queproporciona a los desarrolladores los servicios necesarios para generar aplicaciones Web deempresa. Incluye grandes mejoras con respecto a ASP e incluye muchas características nuevas.4.1.3. Ventajas ASP .NET ASP .NET ofrece varias ventajas importantes entre las que destacamos: • Compatibilidad con herramientas de primer nivel: La edición de los controles de servidor de arrastrar y colocar y la implementación automática son sólo algunas de las características que proporciona esta eficaz herramienta. o El marco de trabajo de ASP .NET se complementa con un diseñador y una caja de herramientas muy
  23. 23. completos en el entorno integrado de programación IDE de Visual Studio. • Mejor rendimiento: ASP .NET es un código de Common Language Runtime compilado que se ejecuta en el servidor. A diferencia de sus predecesores, ASP .NET puede aprovechar las ventajas del enlace anticipado, la optimización nativa y los servicios de caché desde el primer momento. Esto supone un incremento espectacular del rendimiento antes de siquiera escribir una línea de código. • Eficacia y flexibilidad: La eficacia y la flexibilidad de toda esa plataforma se encuentra disponible para los programadores de aplicaciones Web. La biblioteca de clases de .NET Framework, la Mensajería y las soluciones de Acceso a datos se encuentran accesibles desde el Web de manera uniforme. ASP .NET es también independiente del lenguaje, por lo que puede elegir el lenguaje que mejor se adapte a la aplicación o dividir la aplicación en varios lenguajes. • Simplicidad: ASP .NET facilita la realización de tareas comunes, desde el sencillo envío de formularios y la autenticación del cliente hasta la implementación y la configuración de sitios. • Facilidad de uso: ASP .NET emplea un sistema de configuración jerárquico, basado en texto, que simplifica la aplicación de la configuración al entorno de servidor y las aplicaciones Web. Debido a que la información de configuración se almacena como texto sin formato, se puede aplicar la nueva configuración sin la ayuda de herramientas de administración local • Escalabilidad y disponibilidad: ASP .NET se ha diseñado teniendo en cuenta la escalabilidad, con características diseñadas específicamente a medida, con el fin de mejorar el rendimiento en entornos agrupados y de múltiples procesadores. Además, el motor de tiempo de ejecución de ASP .NET controla y administra los procesos de cerca, por lo que si uno no se comporta adecuadamente, se puede crear un proceso nuevo en su lugar, lo que ayuda a mantener la aplicación disponible constantemente para controlar solicitudes. • Posibilidad de personalización y extensibilidad: ASP .NET presenta una arquitectura bien diseñada que permite a los programadores insertar su código en el nivel adecuado. De hecho, es posible extender o reemplazar cualquier subcomponente del motor de tiempo de ejecución de ASP .NET con su propio componente escrito personalizado. • Seguridad: Con la autenticación de Windows integrada y la configuración por aplicación, se puede tener la completa seguridad de que las aplicaciones están a salvo.4.1.4. Funciones más importantes de ASP .NET
  24. 24. En el proyecto se han usado algunas de estas funciones o variables usando el espaciode nombres System.Web para poder disponer de una variedad de clases que daránfuncionalidad a nuestras aplicaciones Web. • HttpResponse: Cuando se necesita mandar información al cliente como cookies, salida HTML y direcciones se utiliza la clase HttpResponse mediante el objetoResponse y el método Write. • HttpRequest: Cuando se solicita información del explorador de una computadora cliente, tal como cookies, valores de las formas o una consulta se utiliza la claseHttpRequest mediante el objeto Request. Cabe mencionar que en ASP .NET muchas de las funciones de solicitud se hacen en forma automática, por esto se puede prescindir de éste para obtener valores, aunque sí se utiliza para algunas otras funciones. • IsClientConnected() As Bolean: Debido a que los procesos se realizan en el servidor, éstos pueden tomar tiempo y es necesario saber si el usuario sigue conectado, la función IsClienteConnected regresa un valor verdadero o falso que indica el resultado, se utiliza en conjunción con el objeto Response. • Objeto.Redirect(“http://ProyectoFinDeCarrara.aspx”): El objeto Response tiene un método llamado Redirect el cual dirige la página actual hacia otra; sin embargo, hay que tomar en cuenta que cuando el navegador de Internet encuentra una página que dirige hacia otra, el servidor envía la orden: “se debe de ir a otra página”, después de esto el explorador toma la dirección destino y va hacia esa página, por lo tanto este método ocasiona una ida y vuelta extra al servidor.Variables del servidor El servidor cuenta con variables especiales que pueden ser consultadas por el usuario, estasvariables pueden regresarnos información como por ejemplo la versión de navegador deInternet del que se está haciendo la petición, la versión del servidor Web, etc. La propiedad ServerVariables se utiliza para esta operación. Por ejemplo, para obtener el navegador utilizado: Request.ServerVariables(“HTTP_USER_AGENT”) Para obtener la versión de servidor Request.ServerVariables(“SERVER_SOFTWARE”) Si queremos saber todas las variables de la propiedad ServerVariables, asignamos a unavariable la siguiente instrucción: Variable=Request.ServerVariables(0)
  25. 25. Variables de aplicación: Cada vez que una página es solicitada se regenera completamente.Es por eso que no guarda valores, y se utilizan las variables de aplicación, en las que no sepermiten almacenar valores que puedan ser compartidos por todos los usuarios que acceden ala aplicación. El objeto application permite que se almacene información dentro de la memoria del servidorWeb, mientras que el servicio de IIS no sea detenido. Variables de sesión: Cuando se necesita guardar información por usuario, entonces seutilizan las variables de sesión. La diferencia de este tipo de variables contra las de aplicación esque las variables de sesión tienen un conjunto de valores por usuario y las de aplicación songlobales, las comparten todos los usuarios que acceden a la aplicación. El valor de estas variables son mantenidas mientras la sesión no termine, ya sea que eltiempo máximo de espera se alcance o el usuario cambie a otra página que no pertenezca a lamisma aplicación. Es importante establecer lo que es una sesión para ASP .NET, cada ventana del navegadorde Internet abierta es interpretada como una sesión. Por ejemplo, si tenemos tres ventanas delnavegador abiertas en la misma computadora, será interpretada por ASP .NET como tressesiones abiertas, sin embargo generalmente existe una sola ventana abierta del navegador deInternet por usuario.Lock y unlock Los miembros Lock y Unlock se utilizan para que no existan problemas de concurrencia, yaque se debe alterar una variable por sesión a la vez.Inicializar con global.asax Es posible inicializar variables de aplicación o de sesión en el archivo global.asax, si senecesita guardar información se utilizan variables de aplicación o de sesión. En ASP .NETexisten varios eventos en la vida de la aplicación, algunos de éstos son: • Eventos de aplicación: Los eventos de aplicación son aquellos que son compartidos por todos los usuarios: • Application_Start: Se ocasiona cuando el primer usuario trata por primera vez de ingresar a la aplicación: • Application_BeginRequest: Cuando un usuario solicita un URL: • Application_EndRequest: Cuando la solicitud ha sido completada: • Application_End: Se activa cuando ya no hay instancias de la clase Global: • Eventos de sesión: Los eventos de sesión son aquellos que son exclusivos a un usuario: • Session_Start: Es activado cuando una nueva sesión se va a generar: • Session_End: Se activa cuando termina una sesión.
  26. 26. 4.1.5. Formularios Web de ASP .NET Son el marco de trabajo de la página de formularios Web de ASP .NET es un modelo deprogramación escalable que puede utilizarse en el servidor para generar páginas webdinámicamente. Concebido como una evolución lógica de ASP, ASP .NET proporciona compatibilidadsintáctica con las páginas existentes, el marco de trabajo de formularios web ASP .NET se hadiseñado específicamente para tratar varias deficiencias clave del modelo anterior. Enparticular, proporciona: • Capacidad para que los programadores puedan estructurar limpiamente la lógica de la página de forma ordenada (no revuelta). • Capacidad para que las herramientas de desarrollo proporcionen un fuerte soporte de diseño. El código ASP existente es opaco para las herramientas. • Capacidad para crear y utilizar controles de la interfaz de usuario reutilizables que puedan encapsular funcionalidades comunes y, así, reducir la cantidad de código que tiene que escribir el programador de una página. Desarrollar aplicaciones web ASP .NET sobre el .NET Framework es similar a desarrollaraplicaciones Windows. El componente fundamental de ASP .NET es el formulario web form. Unformulario web form es la página web que los usuarios visualizan en un navegador. Unaaplicación web ASP .NET consta de uno o más formularios web form. Un web form es unapágina dinámica que puede acceder a recursos del servidor. Por ejemplo, una página web tradicional puede ejecutar scripts en el cliente para realizartareas básicas. En cambio, un formulario web form ASP .NET también puede ejecutar código enel lado servidor para acceder a una base de datos, generar formularios web forms adicionales,o aprovechar la seguridad incorporada en el servidor. Además, como un formulario web form ASP .NET no depende de utilizar scripts en el cliente,no depende del tipo de navegador del cliente o del sistema operativo. Esta independenciapermite desarrollar un único formulario Web Form que puede ser visualizado prácticamente entodos los dispositivos que dispongan de acceso a Internet y de un navegador Web. Debido a que ASP .NET forma parte del .NET Framework, podemos desarrollar aplicacionesweb ASP .NET en cualquier lenguaje basado en .NET. Las páginas de formularios Web de ASP .NET consisten en archivos de texto con unaextensión de nombre de archivo.aspx. Pueden implementarse por todo un árbol de directorioraíz virtual IIS. Cuando un explorador cliente solicita recursos.aspx, el motor en tiempo de ejecución de ASP.NET analiza y compila el archivo de destino en una clase de .NET Framework. Esta clase puedeutilizarse, a continuación, para procesar de forma dinámica las solicitudes entrantes.
  27. 27. 4.1.6. Arquitectura ASP .NET Es una implementación completamente nueva de ASP, escrita de cero en C#. Utilizalenguajes de programación compilados como Visual Basic .NET, C#, incluso COBOL, paraescribir aplicaciones Web. Las aplicaciones son compiladas en el servidor, y las páginas songeneradas en HTML específicamente para el browser que hizo la invocación. Se integra en la autenticación del sistema operativo Windows y permite una configuración anivel de aplicación.Figura 6. Arquitectura ASP .NET Los conceptos centrales de ASP .NET son: Separar presentación de lógica del negocio,Usar servicios provistos por el .NET Framework, El código es compilado la primera vez que seaccede a una página, Administración de estado, Utilización de cualquier lenguaje, Actualizararchivos mientras se está ejecutando la aplicación La ejecución utiliza el soporte del CLR. ElCódigo en Segundo plano se compila al código intermedio de MS (MS-IL). ASP .NET utiliza lasventajas de la plataforma multilenguaje, con la Biblioteca de clases común (BCL) y el sistemade tipos comunes (CTS).4.1.7. Partes de una aplicación Web ASP .NET Las partes de una aplicación Web ASP .NET incluyen: • Formularios web forms o páginas.aspx: Los formularios web forms y las páginas.aspx proporcionan la interfaz de usuario para la aplicación web. • Páginas con código trasero: Las páginas con código trasero están asociadas a los formularios web forms y contienen el código del servidor para el formulario web form. • Archivos de configuración: Los archivos de configuración son archivos XML que definen la configuración predeterminada para la aplicación Web y para el servidor web. Cada aplicación web tiene un archivo de configuración web.config. Además, cada servidor web tiene un archivo machine.config.
  28. 28. • Archivo Global.asax: Los archivos global.asax contienen el código necesario para responder a los eventos a nivel de aplicación provocados por ASP .NET. • Enlaces a servicios web XML: Los enlaces a servicios web XML permiten a la aplicación Web enviar y recibir datos de un servicio web XML. • Conectividad a bases de datos: La conectividad a bases de datos permite a la aplicación Web transferir datos desde y hacia fuentes de base de datos. • Caché: El uso de caché permite a la aplicación web devolver más rápidamente formularios Web forms y datos tras la primera petición.4.1.8. ¿Qué puedo hacer con ASP .NET? ASP .NET es la tecnología que permite hacer formularios web y servicios web en laplataforma NET, incorporado en el Framework. A través de ASP .NET se puede construirsoluciones desde Visual Studio NET, desde el desarrollo de páginas y formularios web hastaservicios web. El formulario Web es una página dinámica que puede acceder a los recursos del servidor o arecursos de otros servidores, por ejemplo, una página ASP .NET puede ejecutar código paraacceder a sql Server y luego armar una respuesta al usuario como código html Una de lasprincipales ventajas de ASP .NET es que como el código se ejecuta del lado del servidor, larespuesta puede adaptarse al explorador de internet del usuario. Los servicios web son componentes que pueden ser accedidos desde la Intranet o desdeInternet, y permiten crear aplicaciones distribuidas, es decir, aplicaciones centralizadas en unobjetivo específico, pero que requieren de servicios externos a la aplicación paracomplementarse. ASP NET es uno de estándares, el desarrollo de soluciones web usado por muchosdesarrolladores en todo el mundo.4.2. Ajax Para la implementación de este proyecto se ha usado esta técnica de desarrollo Web, usandoalgunos de los controles que nos ofrece Ajax control Toolkit.4.2.1. Introducción Ajax En 2005 Microsoft presenta Ajax 1.0 (Asynchronous JavaScript And XML), una técnica dedesarrollo Web para crear aplicaciones interactivas que hacen que la experiencia del usuariocada vez sea mejor. Cabe mencionar que Ajax es una técnica que viene desarrollándose porvarias empresas. Junto a esta tecnología también anunció Ajax control ToolKit una suite devariados controles que implementan toda la funcionalidad de Ajax. Puntualizando diremos que Ajax no es un leguaje de programación, no es un Entorno deDesarrollo, no es una tecnología y no es un script. Ajax es una técnica de programación que
  29. 29. implementa un conjunto de tecnologías que hacen que una página funcione de manerainteractiva, esto es que no veamos el fastidioso parpadeo a la hora de cargar otra página opodamos ver algunos efectos de desplazamiento que antes sólo lograba flash. En realidad Ajax no es una tecnología, sino la unión de varias tecnologías que juntas puedenlograr cosas realmente impresionantes como GoogleMaps, Gmail el outlook web access oalgunas otras aplicaciones muy conocidas: Ajax, en resumen, es el acrónimo para AsynchronousJavaScript + XML y el concepto es: cargar y renderizar una página, luego mantenerse en esapágina mientras scripts y rutinas van al servidor buscando, en background, los datos que sonusados para actualizar la página sólo renderizando la página y mostrando u ocultando porcionesde la misma. Podemos concretar que es una técnica de desarrollo web para crear aplicaciones interactivas.Éstas se ejecutan en el cliente, es decir, en el navegador del usuario, y mantiene comunicaciónasíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre lamisma página sin necesidad de recargarla. Esto significa aumentar la interactividad, velocidad yusabilidad en la misma.4.2.2. Historia de Ajax A pesar de que el término "Ajax" fuese creado en 2005, la historia de las tecnologías quepermiten Ajax se remonta a una década antes con la iniciativa de Microsoft en el desarrollo descripting remoto. Sin embargo, las técnicas para la carga asíncrona de contenidos en unapágina existente sin requerir recarga completa remontan al tiempo del elemento iframe(introducido en Internet Explorer 3 en 1996) y el tipo de elemento layer (introducido enNetscape 4 en 1997, abandonado durante las primeras etapas de desarrollo de Mozilla). Ambos tipos de elemento tenían el atributo src que podía tomar cualquier dirección URLexterna, y cargando una página que contenga javascript que manipule la página paterna,pueden lograrse efectos parecidos al Ajax. Microsofts Remote Scripting (o MSRS, introducido en 1998) resultó un sustituto máselegante para estas técnicas, con envío de datos a través de un applet Java el cual se puedecomunicar con el cliente usando JavaScript. Esta técnica funcionó en ambos navegadores,Internet Explorer versión 4 y Netscape Navigator versión 4. La comunidad de desarrolladores Web, primero colaborando por medio del grupo de noticiasmicrosoft.public.scripting.remote y después usando blogs, desarrollaron una gama de técnicasde scripting remoto para conseguir los mismos resultados en diferentes navegadores. Losprimeros ejemplos incluyen la librería JSRS en el año 2000, la introducción a la técnicaimagen/cookie en el mismo año y la técnica JavaScript bajo demanda (JavaScript on Demand)en 2002. En ese año, se realizó una modificación por parte de la comunidad de usuarios alMicrosofts Remote Scripting para reemplazar el applet Java por XMLHttpRequest.4.2.3. Tecnologías que conforman Ajax Las tecnologías que conforman Ajax son las siguientes:
  30. 30. • XHTML (o HTML) y hojas de estilos en cascada (CSS). Estas dos tecnologías trabajan en la presentación de la página. • Document Object Model (DOM). Nos permite interactuar con la información presentada por medio de un Script. • El objeto XMLHttpRequest para intercambiar datos asincrónicamente con el servidor Web. Esto es mandar información por atrás sin que el usuario se percate de esto. • XML es el formato usado comúnmente para la transferencia de vuelta al servidor, aunque cualquier formato puede funcionar, incluyendo HTML preformateado, texto plano, JSON y hasta EBML.Figura 7. Tecnologías agrupadas bajo el concepto de AJAX Desarrollar aplicaciones Ajax requiere un conocimiento avanzado de todas y cada una de lastecnologías anteriores. En las aplicaciones web tradicionales, las acciones del usuario en la página (pinchar en unbotón, seleccionar un valor de una lista, etc.) desencadenan llamadas al servidor. Una vezprocesada la petición del usuario, el servidor devuelve una nueva página html al navegador delusuario.4.2.4. A favor y en contra de AJAX A continuación vamos a exponer los aspectos más positivos y negativos de usar estatecnología en nuestras aplicaciones, describiendo brevemente cada una de ellas.4.2.4.1. A favor de AJAX • Facilidad de manejo del usuario: El usuario tiene un mayor conocimiento de las aplicaciones de escritorio. Se reduce el tamaño de la información intercambiada • Mayor interactividad: Recuperación asíncrona de datos, reduciendo el tiempo de espera del usuario. Responden más rápidamente a las interacciones del usuario, ya que sólo requiere enviar pequeñas peticiones al servidor, y se devuelven respuestas relativamente cortas ya que no requieren la recarga de toda la página
  31. 31. • Portabilidad entre plataformas: No requieren instalación de plugins, applets de Java, ni ningún otro elemento. Las aplicaciones de Ajax utilizan características bien documentadas y compatibles con la mayoría de los navegadores actuales. Aunque esta situación podría cambiar en el futuro, en este momento, los usos de Ajax son efectivos entre plataformas. Mientras que la plataforma de Ajax está más restringida que la plataforma de Java, las aplicaciones actuales de Ajax llenan con eficacia la parte de los Java applets. • Interactividad: Las aplicaciones Ajax se ejecutan en la máquina cliente, manipulando la página actual dentro de sus navegadores usando métodos de document object model. Puede ser usado para multitud de tareas como actualizar o eliminar registros, expandir formularios Web, devolver peticiones simples de búsqueda, o editar árboles de categorías; todo sin tener la necesidad de tener que recargar toda la página de html cada vez que se realiza un cambio. Generalmente sólo requiere enviar pequeñas peticiones al servidor, y se devuelven respuestas relativamente cortas.4.2.4.2. En contra de AJAX • Críticas de usabilidad: Una de las mayores críticas contra el uso de Ajax en aplicaciones web es que puede fácilmente acabar con el comportamiento normal del botón atrás del navegador. Las diversas expectativas entre volver a una página que se ha modificado dinámicamente y la vuelta a una página estática pueden ser sutiles. Los usuarios normalmente esperan que haciendo click en atrás mientras están en una aplicación Web les llevará a la última página cargada, y en aplicaciones Ajax lo más seguro es que esto no ocurra. Los desarrolladores han implementado varias soluciones a este problema, muchos de los cuales giraron alrededor de crear o usar iframe invisibles para invocar los cambios que hacen que se genere el historial usado por el botón atrás del navegador. Google maps, por ejemplo, realiza búsquedas en un IFrame invisible y luego inserta los resultados en la página web visible. o Un problema relacionado es que las actualizaciones dinámicas hacen difícil al usuario agregar a los marcadores/favoritos un momento particular de la aplicación. Existen soluciones a este problema, muchas de las cuales utilizan el fragmento identificador del URL (la parte de una URL precedida del signo # para no perderla de vista, y permitir a los usuarios volver a ese momento exacto. • Tiempos de respuesta: El intervalo entre la petición del usuario y la respuesta del servidor debe tenerse en cuenta durante el desarrollo de ajax. Sin el feedback claro al usuario, carga de datos rápida, y dirección apropiada del objeto
  32. 32. XMLHttpRequest los usuarios pueden experimentar esperas en la intefaz de la aplicación Web, algo que los usuarios pueden no esperar o comprender. Como soluciones a estas esperas, frecuentemente se recomienda el uso de feedback visual para informar al usuario de la actividad en segundo plano y/o precarga de contenido y datos. • JavaScript: Aunque Ajax no necesita ningún tipo de plug-in para el navegador, requiere que los usuarios tengan el JavaScript activado. Esto se aplica a todos los navegadores que soportan esta tecnología excepto para Microsoft Internet Explorer 6 y anteriores los cuales necesitan también tener el ActiveX activado, ya que el objeto XMLHttpRequest está implementado junto con el ActiveX en este navegador. Internet Explorer 7, por otra parte, va a implementar esta interfaz como un objeto JavaScript nativo y por tanto no se va a necesitar ActiveX para que AJAX pueda funcionar con normalidad. o Como ocurre con las aplicaciones dhtml, las de Ajax deben de ser probadas rigurosamente para adaptarse a los diferentes navegadores y plataformas. Han ido apareciendo numerosas librerías de programación a medida que Ajax ha ido madurando que pueden ayudar en esta tarea. • Nombre: Ha habido varias críticas en torno al término Ajax, reclamando que adaptive path (el consultorio que creó la palabra) u otros defensores lo usan como un vehículo de marketing para técnicas antes usadas. • Usabilidad: Comportamiento del usuario ante la navegación. Puede modificar el comportamiento del botón atrás del navegador, complica la agregación a los bookmark del navegador un estado concreto, etc. • Botón de volver atrás del navegador: Empleo de iframe ocultos para almacenar el historial). Empleo de fragmento identificador del URL (‘#’) y recuperación mediante JavaScript • Problema al agregar marcadores / favoritos: en un momento determinado de la aplicación: Empleo del fragmento identificador del URL (‘#’) y recuperación mediante JavaScript • Problemas al imprimir: páginas renderizadas dinámicamente4.2.5. Usos de Ajax Validación de datos de formularios en tiempo real: Identificadores de usuario, númerode serie, códigos postales u otro código especial que necesite validación en el lado del servidorantes de ser enviado el formulario. • Autocompletado : Direcciones de correo, nombres, ciudades. • Operaciones de detalle: Obtener información más detallada de un producto. • GUI avanzadas: Controles en árbol, menús, barras de progreso.

×