SlideShare una empresa de Scribd logo
Licenciatura en Documentación

                        Facultad de Informática

                    Curso Académico 2004 / 2005




                      Proyecto Final de Carrera

                   DocuNews: Portal de Noticias




Tutor:      Carlos Miguel T. Calafate

Autores:    Fernando Leandro Baladrón

Departamento: Departamento de Informática de Sistemas y Computadores
1.NIVEL DE OBJETIVOS Y REQUERIMIENTOS                                 3
      1.1.INTRODUCCIÓN                                                3
             1.1.1. QUÉ ES UNA BIBLIOTECA DIGITAL?                    4
             1.1.2. CARACTERÍSTICAS DE TODA BIBLIOTECA DIGITAL        4
             1.1.3. QUÉ ES DOCUNEWS                                   4
             1.1.4. CUAL ES LA FUNCIONALIDAD DE DOCUNEWS              4
             1.1.5. USUARIOS POTENCIALES DE DOCUNEWS                  4
             1.1.6. COMO SE HA DESARROLLADO DOCUNEWS?                 5
             1.1.7. CONCLUSIÓN                                        5
      1.2. ESPECIFICACIÓN DE REQUISITOS DE ACUERDO NORMA IEEE
             1.2.1 INTRODUCCIÓN.                                      7
                     1.2.1.1. PROPÓSITO.                              7
                     1.2.1.2.ÁMBITO.                                  7
                     1.2.1.3. DEFINICIONES, ACRÓNIMOS Y ABREVIATURAS. 7
                     1.2.1.4. REFERENCIAS.                            8
             1.2.2. DESCRIPCIÓN GENERAL.                              8
                     1.2.2.1. PERSPECTIVA DEL PRODUCTO                8
                     1.2.2.2. FUNCIONES DEL PRODUCTO                  8
             1.2.3. REQUISITOS ESPECÍFICOS.                           9
                     1.2.3.1. REQUISITOS FUNCIONALES.                 9
                     1.2.3.2. REQUISITOS DE LA APLICACIÓN.           15
             1.2.4. REQUERIMIENTOS ESPECIFICOS.                      16
                     1.2.4.1. ESTANDARES CUMPLIDOS                   16
                     1.2.4.2. LIMITACIONES HARDWARE.                 16
             1.2.5. ATRIBUTOS.                                       16
                     1.2.5.1. MANTENIMIENTO                          16
                     1.2.5.2. SEGURIDAD                              16

2. EL FORMATO RSS.                                                   17
          2.1. EXPLICACIÓN FORMATO RSS                               17
          2.2. ESPECIFICACIÓN FORMATO RSS.                           20

3. BASE DE DATOS DOCUNEWS                                            24
      3.1.NIVEL DEL DISEÑO DE LA BASE DE DATOS                       24
             3.1.1. ANÁLISIS DE REQUERIMIENTOS                       24
             3.1.2. DISEÑO CONCEPTUAL                                26
             3.1.3. DISEÑO LÓGICO                                    27
             3.1.4. DIAGRAMA UML                                     29
      3.2. PROCEDIMIENTOS ALMACENADOS CON SQL SERVER                 30
             3.2.1. BASE DE DATOS EN DOCUNEWS                        30
             3.2.2. PORQUÉ SQL SERVER?                               30
             3.2.3. CONEXIONES EN SQL SERVER.                        30
             3.2.4. EJEMPLOS PROCEDIMIENTOS IMPLEMENTADOS            31

4. NIVEL DEL DISEÑO DE LA INTERFACE                                  36
      4.1. CLASES                                                    36
      4.2. PROGRAMACIÓN ASP .NET                                     45
             4.2.1. PÁGINA PRINCIPAL (DEFAULT.ASPX)                  46
             4.2.2. CONTROLES DE USUARIO                             47
4.2.3. INSERCIÓN DE NOTICIAS                    48
          4.2.4. SUBIR UNA IMAGEN.                        49
          4.2.5. VISUALIZACIÓN DE LOS DATOS               49
          4.2.6. IDENTIFICACIÓN DE LOS USUARIOS           51
          4.2.7. OBTENER NOTICIAS                         52
          4.2.8. TEMAS ADICIONALES                        53


5. NIVEL DEL DISEÑO WEB                                   56
      5.1. DISEÑO DE NAVEGACIÓN                           56
      5.2. HOJA DE ESTILOS CSS                            70
      5.3. ESTUDIO POSICIONAMIENTO EN GOOGLE              78

6. NIVEL GESTIÓN LOCAL                                    81
      6.1. APLICACIÓN PARA LA GESTIÓN LOCAL DE NOTICIAS   87
      6.2. MODULO DE IMPORTACION                          88

7. REFLEXIONES Y TRABAJO FUTURO                            93
      7.1. REFLEXIONES FINALES                             93
      7.2.TRABAJO FUTURO                                   95

8. BIBLIOGRAFIA                                            98
ANEXOS                                                    101
      I. ESTIMACIÓN DURACIÓN DEL PROYECTO                 101
      II. ESTUDIO NECESIDADES DE LOS USUARIOS             102
      III. ESTUDIO COMPETENCIA Y FUENTES RELACIONADAS.    111
      IV. TESAURO EUROVOC.                                122
Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)
Resumen


Se pretende desarrollar un sistema para el almacenamiento y consulta de
información de noticias.

Se empezará haciendo un análisis exhaustivo de los requerimientos que deben
satisfacer este tipo de sistemas, para pasar luego al diseño conceptual usando
el modelo entidad relación.

Nuestro objetivo final es la creación de un Portal que realice las funciones
básicas solicitadas en los requerimientos, donde el usuario podrá consultar en
todo momento la Base de datos de noticias del Portal, recuperando la
información de forma exhaustiva y eficiente.

El papel actual de los documentalistas en las organizaciones va encaminado a
la organización de contenidos en la web de las empresas en las que trabajan,
así como la organización de la información necesaria para las mismas. Uno de
los trabajos más interesantes actualmente para este tipo de profesionales es la
organización y creación de contenidos en Portales de Internet y en empresas.
En este caso, hemos decidido enfocarlo hacía las noticias porque
consideramos que se hace necesaria la creación de un portal que gestione
toda esta información de forma eficiente.

El resultado será una web dinámica donde el usuario podrá obtener lo que
realmente quiere, de forma fácil y totalmente parametrizable.
Fernando Leandro Baladrón                                       Proyecto fin de carrera
Requerimientos y objetivos                                                    20/05/05

1. REQUERIMIENTOS Y OBJETIVOS

Este primer punto estaría formado por una primera parte correspondiente a la
introducción, donde detallamos qué nos ha movido ha realizar este proyecto, y
una segunda parte relativa a la especificación de requisitos, donde hemos
realizado una estimación de los requerimientos del proyecto.

1.1. INTRODUCCIÓN

1.1.1 QUÉ ES UNA BIBLIOTECA DIGITAL?

       Existen diferentes definiciones para una Biblioteca Digital; en su
concepto más simple, es un espacio en donde la información es almacenada y
procesada en formato digital. Según la definición tomada por la Digital
Libraries Federation:

       "Las Bibliotecas Digitales son organizaciones que proveen los recursos,
incluyendo personal especializado, para seleccionar, estructurar, distribuir,
controlar el acceso, conservar la integridad y asegurar la persistencia a través
del tiempo de colecciones de trabajos digitales que estén fácil y
económicamente disponibles para usarse por una comunidad definida o para
un conjunto de comunidades."

       Un servicio completo de biblioteca digital debe estar acompañado de los
servicios esenciales de las bibliotecas tradicionales, además de explotar las
ventajas de almacenamiento, búsqueda y comunicación digital.

       El objetivo principal de una biblioteca digital es facilitar a los usuarios la
recuperación e intercambio de información, a través del acceso universal a la
información, sin limitantes de tiempo ni espacio.


1.1.2 CARACTERÍSTICAS DE TODA BIBLIOTECA DIGITAL

Una biblioteca digital debe contener seis características principales como son:
1) Colección de objetos de datos - Una biblioteca aloja una colección de
objetos de datos que pueden ser: libros, documentos etc. Estos objetos pueden
ser accesibles utilizando una red para acceder a ellos.
2) Colección de estructuras de metadatos - Una biblioteca contiene una
colección de estructuras de metadatos, como son catálogos, guías,
diccionarios, etc.
3) Colección de servicios - Una biblioteca proporciona un conjunto de servicios,
como diversos métodos de acceso para distintos usuarios. Se podrá acceder
como usuario registrado en el caso de estar dado de alta en la biblioteca, o por
el contrario como no registrado, el cual sólo tendrá acceso a la información que
se crea conveniente por parte de los mismos usuarios de la aplicación.
4) Dominio especializado - Una biblioteca tiene un dominio especializado y su
colección tiene un objetivo. Por ejemplo: arte, ciencia o literatura. Además,
normalmente se crea para servir a una comunidad de usuarios.




                                                                                     3
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Requerimientos y objetivos                                                   20/05/05

5) Control de calidad - Una biblioteca utiliza el control de calidad en el sentido
de que todo su material se verifica. El material se filtra antes de incluirlo en la
biblioteca.
6) Preservación - El objetivo de la preservación es asegurar la protección de la
información de valor permanente de manera que pueda ser accesible para las
generaciones presentes y futuras. La preservación incluye la distribución de los
recursos para su permanencia, medidas preventivas para detener el deterioro
de los materiales y medidas restauradoras que permitan la utilización de los
materiales seleccionados.

1.1.3 ¿QUÉ ES DocuNews?


        DocuNews es una aplicación la cual debe gestionar una biblioteca digital
dedicada a las noticias. En dicha aplicación se tratan todo tipo de noticias
clasificadas por categorías y se almacenan en una base de datos para su
posterior tratado o visualización. Otra característica de DocuNews es que debe
de dar una funcionalidad de una página web, es decir, cualquier usuario puede
acceder a visualizar los datos que existen, o en caso de pertenecer al grupo del
administradores, poder modificarlos desde dicha página web.

Dentro de este apartado surge la necesidad de analizar como está la situación
actual, para esto recomendamos consultar el ANEXO III del estudio de
competencia en el que hemos desarrollado un extenso listado de los diferentes
portales relacionados con el mundo de las noticias y con la sindicación de
contenidos RSS, evaluando la situación actual y que tendríamos que hacer
para diferenciarnos.


1.1.4 ¿CUÁL ES LA FUNCIONALIDAD DE DocuNews?

 La funcionalidad de la aplicación DocuNews viene determinada en función al
usuario que desee acceder a la página web. Para dicha aplicación existen dos
tipos de usuarios finales: el primero de ellos será un miembro perteneciente al
grupo de Administradores, que tras validarse a través de un login y un
password podrá acceder a todas las funciones especiales que ofrece la
aplicación (dar de alta, modificar o eliminar Noticias). El segundo tipo de
usuario es el usuario anónimo, que podrá acceder a las noticias ofrecidas en el
Portal.

1.1.5 USUARIOS POTENCIALES DE DocuNews

Debida a la gran abundancia de información disponible al usuario de redes, una
de las necesidades que surgen es la de proveer al usuario de medios para
manejar de manera más efectiva el gran volumen, dinamismo y complejidad de
la información. Generalmente el usuario se ve enfrentado con la necesidad de
navegar entre el gran volumen de datos para buscar y localizar la información
que necesita y que le es de importancia. Esto representa frecuentemente una
desorientación del usuario entre los diferentes caminos que pueden seguir en
un sistema de tantos medios de búsqueda.


                                                                                    4
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Requerimientos y objetivos                                                  20/05/05


Este tipo de aplicaciones serán como buscadores temáticos, los cuales sólo
contendrán información referente al tema de la biblioteca.

De esta forma, cualquier usuario interesado en realizar una búsqueda del tema
que desee, sólo tendrá que acceder a alguna de estas bibliotecas, y visualizar
los datos que hay en ella.

Existen bibliotecas en las cuales los usuarios deben registrarse para poder
acceder a ella, aportando información, así como introduciendo datos para
mantener y enriquecer dicha biblioteca.

Destacar que finalmente, tal y como se muestra en el ANEXO II nuestros
usuarios potenciales serán los jóvenes, en dicho anexo se puede observar que
se ha tomado la decisión de recurrir a encuestas para evaluar aspectos tan
determinantes como los gustos de los jóvenes valencianos, a que dedican el
tiempo libre o cuales son sus mayores motivaciones, de todo esto se han
realizado una serie de conclusiones que serán clave a la hora de darle finalidad
a nuestro portal. Nuestro portal aunque suene ambicioso tiene que dar
respuesta a las carencias y necesidades que hemos encontrado a la luz de
nuestras encuestas.

1.1.6 ¿Cómo se ha desarrollado DocuNews?

DocuNews ha sido desarrollada mediante la tecnología ASP.NET, mediante
Visual Studio .NET y con el lenguaje de programación ASP .NET Como se ha
mencionado anteriormente, la aplicación está soportada por una base de datos
que almacena toda la información de las noticias del Portal. Dicha base de
datos está desarrollada mediante SQL Server.

Otros detalles de la aplicación se encuentran más detallados en la
Especificación de requisitos realizada de acuerdo a la norma IEEE std. 830 –
1998 (Ver apartado 1.2 del trabajo).

1.1.7 CONCLUSIÓN

Internet y el Web han crecido continuamente en los últimos años produciendo
un aumento excesivo de la información. Los motores de búsqueda nos
proporcionan una gran cantidad de información que no deseamos, y en
definitiva, una búsqueda de un dato en concreto nos cuesta mucho más tiempo
del que desearíamos.

La solución radica en las bibliotecas digitales, en las cuales se tratan sólo unos
temas en concreto, y por tanto la información “no deseable” es mucho menor
que en cualquier buscador.

Muchos consideran la Web como la biblioteca virtual internacional definitiva.




                                                                                   5
Fernando Leandro Baladrón                     Proyecto fin de carrera
Especificación de requisitos                                20/05/05




                        Especificación
                                de
Requisitos siguiendo la normativa
                        IEEE std 830 –1998:




IEEE Guide to Software Requirements
Specifications. IEEE Standards Board.




                                                                   6
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Especificación de requisitos                                                20/05/05

    1.2 Especificación de requisitos de acuerdo a la norma IEEE

    El objetivo de este punto es dejar claro desde el principio los requerimientos
    y funcionalidades que va ha tener la aplicación. En este punto nos hemos
    dedicado a detectar todos aquellos requisitos que va ha necesitar nuestra
    aplicación.

    1.2.1 Introducción

       1.2.1.1 Propósito

        La aplicación consiste en la construcción de una biblioteca digital,
    mediante una base de datos. Debe de dar la funcionalidad de una página
    web de Noticias. Dicha base de datos permitirá introducir la información
    relativa a las categorías y noticias, así como administradores, Palabras
    clave, imágenes.

        Los administradores de la aplicación serán los encargados de gestionar
    las tareas de mantenimiento y actualización de los datos de toda la
    información disponible, así como también los miembros autorizados.

       1.1.2.2 Ámbito

       Nuestra aplicación recibe el nombre de “DocuNews”.

        Desempeñará el papel de gestionar y ordenar los datos introducidos por
    los Administradores para poder después mostrarlo a cualquier visitante.

        La aplicación dará la posibilidad de dar de alta a nuevos
    administradores, y estos podrán introducir nuevas noticias, modificarlas e
    incluso borrarlas.


        1.1.2.3 Definiciones, acrónimos y abreviaturas

  - ADMINISTRADORES: Los encargados fundamentalemente de introducir la
  noticias, modificarlas, borrarlas, crear las categorías, dar de alta a nuevos
  administradores.

  - VISITANTE: Persona que visita la web de forma anónima.

  - HITOS: Objetivo parcial que se alcanza una vez concluida una serie de
  tareas.

  - USUARIO: Persona que accede a la aplicación con derechos de
  modificación y visualización de los datos.

    *Acrónimos:

    - URL: Uniform Resource Locator.


                                                                                   7
Fernando Leandro Baladrón                                        Proyecto fin de carrera
Especificación de requisitos                                                   20/05/05

    - ASP: (Active server pages), Páginas de servidor activo.
    - IEEE: (Institute of Electrical & Electronics Engineers).




  1.2.1.4 Referencias

    -IEEE std 830 –1998 IEEE Guide to Software Requirements Specifications.
     IEEE Standards Board.
    -Guía del IEEE para la especificación de requerimientos software.


1.2.2. DESCRIPCIÓN GENERAL
       1.2.2.1 Perspectiva del producto:

       La aplicación DocuNews es una aplicación totalmente independiente
destinada a ejecutarse sobre cualquier PC que soporte un sistema operativo
Windows.

       1.2.2.2 Funciones de producto:

       a) Funciones especificas de los miembros:

        a1) Funciones de gestión de información:

                  Añadir / Eliminar / Modificar Categorías.
                  Añadir / Eliminar/ Modificar Noticias.
                  Añadir / Eliminar/ Modificar Listado de Palabras Clave.


       a2) Funciones de comprobación:

                  Verificar login y password.

        a3) Funciones personales de un Administrador:

                  Cambio de password.
                  Dar de alta a un nuevo Administrador.
                  Modificar perfil propio.


       b) Funciones de cualquier usuario:

        b1) Funciones de búsqueda:
                Consultar Categorías
                Consultar Palabras clave
                Consultar Noticias sobre palabras clave.
                Consultar Noticias sobre títulos.


                                                                                      8
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Especificación de requisitos                                                 20/05/05

                   Consultar Noticias sobre fecha de publicación.

                   Consultar Noticias sobre Valor de impacto.
                   Consultar Noticias sobre autores.
                   Consultar Noticias con el campo imagen activo.

        b2) Otras funciones:

          Importación Automática de noticias formato RSS 2.0.


        ● Imagen Resumen:



        2.3 Características del usuario:

                Los usuarios que podrán utilizar el producto pueden ser:

               -    Cualquier persona que tenga acceso a Internet y tenga
                    curiosidad por conocer las noticias de actualidad.
               -    Un miembro perteneciente al grupo de administradores no
                    necesita ninguna formación especifica.

       2.4 Restricciones generales:

             La aplicación se realizará bajo el entorno ASP.NET con lo cual
       vamos a utilizar el entorno Windows, luego no podemos hacer uso de
       ninguna aplicación que no trabaje bajo dicho entorno. Además, solo
       puede estar alojada en un servidor Windows.

       2.5 Supuestos y dependencias:

              Para utilizarlo necesitamos un servidor que procese nuestras
        páginas ASP, para ello existe el Internet Information Server bajo
        Windows NT o 2000.




1.2.3. REQUISITOS ESPECIFICOS.

           1.2.3.1 Requisitos funcionales:


                   1.2.3.1.1 Añadir Categoría (Categoria):

               -Introducción: Los administradores podrán dar de alta una
       nueva categoría.


                                                                                    9
Fernando Leandro Baladrón                                       Proyecto fin de carrera
Especificación de requisitos                                                  20/05/05

                 -Entrada: el titulo del Canal/Categoria (title), el link de la
       dirección URL de la pagina web que genera el Canal/Categoria (link), la
       descripción del Canal/Categoria (description), el idioma de la fuente de
       información (language), el aviso legal del Canal/Categoria (copyright), el
       correo electronico del editor del Canal/Categoria (managingEditor), el
       correo electrónico del webmaster del Canal/Categoria para resolver
       problemas técnicos (webMaster), la fecha de publicación del
       Canal/Categoria (pubDate), la última fecha de actualización del
       Canal/Categoria (lastBuildDate), el nombre del programa que genera el
       archivo RSS (generador), la dirección url donde se encuentra la fuente
       información del Canal/Categoria (docs), avisos de cuando se actualiza el
       Canal/Categoria (cloud), el tiempo de vida del Canal/Categoria
       expresado en minutos, el PICS rating del Canal/Categoria, la etiqueta de
       la caja de texto del Canal/Categoria (textinput) , las horas en las que no
       está disponible el Canal/Categoria (skipHours), Fechas en las que no
       está disponible el Canal/Categoria (skipDays).
                -Proceso: almacenar toda la información de la nueva categoría e
       introducirla en la base de datos de la aplicación.
                 -Salida: Base de datos actualizada.

                   1.2.3.1.2 Eliminar Categoría (Categoria):

                 -Introducción: El Administrador puede dar de baja un
       Canal/Categoria existente.
                 -Entrada: El título de la categoría que se quiere dar de baja.
                 -Proceso: sólo se podrá borrar si no existen noticias
       relacionadas con el Canal/ Categoría.
                 -Salida: En caso de que no existan noticias relacionadas con el
       Canal/Categoría la salida será la base de datos actualizada, en caso
       contrario se le avisará al administrador de que la operación no se ha
       podido realizar por existir noticias con la categoría que se desea borrar.

                   1.2.3.1.3 Modificar Categoria (Categoria):

              -Introducción: modificar una categoría actualizando cualquier
       campo de datos de dicho categoría.
              -Entrada: Nombre de la categoría que se desea modificar.
              -Proceso: El Administrador una vez identificado como tal, puede
       modificar esa categoría en la base de datos.
              -Salida: La base de datos actualizada.

                   1.2.3.1.4 Añadir Noticia (Noticia):

                  -Introducción: Los Administradores pueden insertar una Noticia
       en la Base de datos.
                  -Entrada: Título de la noticia (title), el Canal/Categoría a la que
       queremos que pertenezca (category), el link a la noticia en concreto
       (link), la descripción de la noticia (description), el autor de la noticia
       (author), dirección url donde se encuentran los comentarios acerca de la
       noticia (comments), descripción del objeto de audio o video incluido en la


                                                                                   10
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Especificación de requisitos                                               20/05/05

       noticia (enclosure), la fecha de publicación de la noticia (pubDate), el
       nombre del canal RSS donde procede la noticia (source). El factor de
       impacto que consideramos que ha tenido la noticia (impacto), podremos
       además asociar una imagen a la noticia. También se podrá concretar
       una serie de palabras clave asociadas a la noticia. En caso de que no
       exista previamente el canal/categoría al que se desea asociar la noticia,
       deberemos crear anteriormente el canal/categoría.
                 -Proceso: Reestructurar la información para insertarla de forma
       eficiente a la base de datos.
                 -Salida: La base de datos actualizada.

                   1.2.3.1.5 Eliminar Noticia (Noticia):

                -Introducción: Los Administradores pueden eliminar noticias.
                -Entrada: El título de la Noticia que se desea eliminar.
                -Proceso: Comprobar que existe y borrar ese registro de la
       base de datos.
                -Salida: La base de datos actualizada.


                   1.2.3.1.6 Modificar Noticia (Noticia):

                -Introducción: Los Administradores pueden modificar los datos
       de una noticia.
                -Entrada: El título de la noticia que quieres modificar.
                -Proceso: Comprobar que existe y modificar ese registro de la
       base de datos.
                -Salida: La base de datos actualizada.


                   1.2.3.1.7 Añadir Palabras clave (Palabra_Clave):

               -Introducción: Los administradores podrán añadir palabras clave
       normalizadas.
               -Entrada: Palabra clave correctamente normalizada basándose en
       Tesauros.
               -Proceso: El Administrador tiene que estar previamente
       identificado, en el proceso de dar de alta una Palabra Clave, se
       comprobará que la palabra no existía en la base de datos.
               -Salida: Base de datos actualizada.


                    1.2.3.1.8 Eliminar Palabras clave (Palabra_Clave):

                -Introducción: Los Administradores pueden dar de baja Palabra
       Clave.
             -Entrada: Nombre de la palabra clave.
             -Proceso: El Administrador una vez identificado, podrá dar de baja
       cualquier palabra clave, si la palabra clave que se desea borrar esta



                                                                                11
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Especificación de requisitos                                              20/05/05

       siendo utilizada por una noticia automáticamente se borrara en cascada
       también de dichas noticias.
             -Salida: Base de datos actualizada.



               1.2.3.1.9 Modificación Palabras clave (Palabra_Clave):

             -Introducción: Los Administradores pueden modificar cualquier
       Palabra Clave.
             -Entrada: Nombre de la palabra clave que se desea modificar.
             -Proceso: El Administrador una vez identificado, podrá modificar
       cualquier palabra clave, actualizándose en cascada en todas las noticias
       que usen esa palabra clave.
             -Salida: La base de datos actualizada.


               1.2.3.1.10 Cambio de password:

             -Introducción: Un Administrador puede modificar su propio
       password.
             -Entrada: Login y password antiguo y dos veces su password
       nuevo.
             -Proceso: Comprobar que se ha introducido un password correcto,
       y que se escribe dos veces el mismo nuevo password.
             -Salida: Base de datos actualizada.

               1.2.3.1.11 Asignar Administradores:

             -Introducción: Un Administrador podrá dar de alta a un nuevo
       Administrador.
             -Entrada: Nombre del Administrador, Apellidos, login, password,
       imagen, perfil.
             -Proceso: A partir del nombre del Administrador, se genera un
       nuevo registro en la base de datos.
             -Salida: Base de datos actualizada.

               1.2.3.1.12 Consulta Perfil Propio:

              -Introducción: una vez identificado podremos modificar los
       diferentes campos de nuestro perfil
              -Entrada: Nombre del Administrador, Apellidos, login, password,
       imagen, perfil.
              -Proceso: El Administrador una vez identificado, podrá modificar
       cualquier campo de su propio perfil.
              -Salida: Base de datos actualizada.

               1.2.3.1.13 Consultar Categorías:




                                                                               12
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Especificación de requisitos                                                20/05/05

              -Introducción: Listado de Categorías /Canales dados de alta en el
       sistema.
              -Entrada: nombre de la Categoría/Canal y opciones elegidas.
              -Proceso: Con el nombre de la Categoría/Canal y opciones
       elegidas realizar la búsqueda de los diversos registros de la base de
       datos.
              -Salida: La página html con el resultado de la búsqueda realizada.

               1.2.3.1.14 Consultar Palabras clave:

             -Introducción: Listado de palabras Clave dadas de alta en el
       sistema.
             -Entrada: nombre de la palabra Clave, o caracteres iniciales de la
       palabra clave.
             -Proceso: Con la palabras clave o caracteres iniciales, realizar la
       búsqueda de los diversos registros de la base de datos.
             -Salida: La página html con el resultado de la búsqueda realizada.


               1.2.3.1.15 Consulta Noticias sobre Categoría:

             -Introducción: Busca una noticia a partir de un Canal/ Categoría.
             -Entrada: El nombre del Canal/Categoría y opciones de búsqueda.
             -Proceso: Con el nombre del Canal/Categoría y opciones de
       búsqueda elegidas realizar la búsqueda de los diversos registros de la
       base de datos.
             -Salida: La página html con el resultado de la búsqueda realizada.

               1.2.3.1.16 Consultar Noticias sobre título:

              -Introducción: A partir de un titulo de Noticia buscar todas la
       noticias con ese titulo.
              -Entrada: Titulo de la noticia (o parte del titulo de la noticia) y
       opciones de búsqueda.
              -Proceso: Con en el nombre del título y opciones elegidas realizar
       la búsqueda de los diversos registros de la base de datos.
              -Salida: La pagina html con el resultado de la búsqueda realizada.


               1.2.3.1.17 Consultar Noticias sobre fecha de publicación.

              -Introducción: A partir de una fecha de publicación, o intervalo de
       fechas de publicación, buscar las noticias publicadas en esa fecha.
              -Entrada: fecha de publicación, (o intervalos de fechas) y opciones
       de búsqueda.
              -Proceso: Con la fecha de publicación y opciones elegidas realizar
       la búsqueda de los diversos registros de la base de datos. Para el caso
       en el que tengamos un intervalo de fechas comprobaremos que el
       intervalo es valido, la fecha de inicio debe ser menor que la fecha de fin.



                                                                                 13
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Especificación de requisitos                                                20/05/05

             -Salida: La pagina html con el resultado de la búsqueda realizada,
       ordenando los registros por fecha de publicación.

               1.2.3.1.18 Consultar Noticias sobre autores:

              -Introducción: A partir de un autor, obtener todas las noticias de
       ese autor.
              -Entrada: Autor y opciones de búsqueda.
              -Proceso: Con el nombre del autor y opciones elegidas realizar la
       búsqueda de los diversos registros de la base de datos.
              -Salida: La pagina HTML con el resultado de la búsqueda
       realizada

               1.2.3.1.19 Consultar Noticias con Imagen:

              -Introducción: búsqueda de noticias con el campo imagen activo,
       es decir, queremos obtener aquellas noticias que tengan imagen.
              -Entrada: campo imagen activo y opciones de búsqueda.
              -Proceso: Buscaremos aquellos registros que no tengan a nulo el
       campo imagen, además de las opciones elegidas para la búsqueda de
       los diversos registros de la base de datos.
              -Salida: La pagina html con las noticias con Imagen.

               1.2.3.1.20 Consultar Noticias sobre valor de impacto:

             -Introducción: A partir de un valor de impacto, buscar las noticias
       con igual valor de impacto, menores que ese valor de impacto o mayores
       que ese valor de impacto.
             -Entrada: Valor de impacto del 1 al 10.
             -Proceso: Con el valor de impacto y opciones elegidas realizar la
       búsqueda de los diversos registros de la base de datos.
             -Salida: La pagina html ordenadas por valor de impacto.

               1.2.3.1.21 Consultar Noticias sobre Palabras clave:

             -Introducción: A partir de unas palabras claves, buscar las noticias
       con esas palabras clave.
             -Entrada: Palabras clave y opciones de búsqueda.
             -Proceso: Con las palabras clave y opciones elegidas realizar la
       búsqueda de los diversos registros de la base de datos.
             -Salida: La página html con el resultado de la búsqueda realizada.




                                                                                 14
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Especificación de requisitos                                               20/05/05

1.2.3.2 Requisitos de la aplicación

        1.2.3.2.1 Interfaces de usuario

              La aplicación se visualizará con cualquier navegador, como puede
       ser Internet Explorer, Netscape, Opera, Mozilla Firefox etc.

              Se accederá a una pagina inicial desde la cual se podrá elegir
       vínculos al resto de posibilidades de la mencionada pagina (DocuNews).

              Todo visitante anónimo tendrá acceso a todo el contenido de la
       aplicación pero sin la posibilidad de realizar ningún cambio. Podrá
       realizar consultas sobre la Base de datos, cuyo resultado de las
       búsquedas será mostrado en el navegador.

              Se presentarán distintos formularios con la información pertinente
       en cada uno de ellos, donde el usuario podrá seleccionar las opciones
       deseadas y, en caso de ser un usuario con acceso registrado, se le
       permitirá la introducción y modificación de todos los datos que considere
       oportunos, en cualquier sección de la Web que desee excepto en las
       páginas personales del resto de los usuarios registrados.

              Como miembro del grupo de Administradores se tendrá acceso a
       dar de alta a otro Administrador, a modificar sus datos personales.

               1.2.3.2.2 Requisitos Hardware

              No se necesitara un Hardware específicamente potente, bastará
       con un equipo Hardware normal. Los requisitos serán los mismos que
       los de SQL Server y Internet Information Server (IIS).

               1.2.3.2.3 Requisitos Software

              El producto que estamos describiendo esta desarrollado bajo el
       sistema operativo Windows por el hecho de utilizar la tecnología de
       microsoft ASP.NET.
               Del lado del cliente no será necesario trabajar bajo un entorno
       Windows, ya que lo que se genera son paginas HTML y se pueden
       visualizar con cualquier navegador independientemente del sistema
       operativo utilizado.

               1.2.3.2.4 Interfaces de comunicación

               Tener conexión a Internet gracias a un módem (acceso remoto) o
       tarjeta de red.

               1.2.3.3 Requisitos de eficiencia

             Esta aplicación esta pensada para que se pueda visualizar bajo
       cualquier navegador.


                                                                                15
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Especificación de requisitos                                                20/05/05

               El prototipo de DocuNews se alojará en un servidor Windows.

1.2.4. Requerimientos específicos

        1.2.4.1 Estándares cumplidos

             El lenguaje utilizado para la anotación, definiciones y acrónimos
       es el castellano, aunque para algunos campos de la base de datos
       hemos utilizado el inglés.

       1.2.4.2 Limitaciones Hardware

               El PC que vaya a visualizar la aplicación debe disponer de una
       tarjeta de red o un módem para conectarse a Internet, ya sea bien a
       través de una LAN o de una conexión directa a Internet.

              La capacidad del servidor estará en función de la carga de
       transacciones a que estará sometido. Los PC´s para la visualización
       deberán disponer como mínimo de la capacidad de almacenamiento
       requerida por el navegador.


1.2.5. Atributos

        1.2.5.1 Mantenimiento

              El mantenimiento de la aplicación será sencillo, así como su
       instalación, administración y reparación. Además irá acompañada de los
       manuales correspondientes que clarifiquen los pasos a seguir por el
       usuario.

             En cuanto al idioma y formato de los datos, preferentemente se
       hará en español, aunque quizás en un futuro se realice en otros idiomas.

              En un futuro se estudia el que se pueda importar
       automáticamente las noticias de diversos portales tales como Google,
       yahoo, etc.. Por tanto, por esta circunstancia, adaptaremos nuestro
       portal al formato RSS.


       1.2.5.2 Seguridad

             Los Administradores y usuarios tendrán un login y password para
       acceder a posibles modificaciones de la aplicación. De esta forma,
       cualquier persona no identificada, sólo podrá consultar las noticias.

              Al tratarse de una aplicación a la cual se accede a través de
       Internet, hay que tener un control estricto de las claves de los usuarios y
       de sus permisos para que ningún usuario malicioso pueda modificar o
       dañar la base de datos de la aplicación o la aplicación en sí.


                                                                                 16
Fernando Leandro Baladrón                                         Proyecto fin de carrera
El formato RSS                                                                  20/05/05


2. El formato RSS

2.1 Explicación formato RSS.

El formato RSS ha tenido una gran importancia en nuestro portal web, el
diseño de la base de datos se ha centrado fundamentalmente en este formato,
y gracias a ello hemos conseguido desarrollar la importación automática de las
noticias.

Esta tecnología se basa en XML y en el uso de las metaetiquetas. Este formato
no se basa en la forma sino que está enfocado en el contenido. W3C ha
establecido una norma para que así todos los interesados en esta tecnología
puedan hacer un uso correcto y formalizado de dicho formato.



Explicación Formato RSS:

RSS son las siglas de RDF Site Summary, un sistema mediante el cual los sitios web
pueden publicar su contenido fuera del navegador web. Resulta de gran utilidad, por
ejemplo, para mantener a los usuarios al día sobre las últimas actualizaciones de la
página: novedades, titulares de última hora, etc.

El formato RSS, se ha convertido en los últimos tiempos en un estándar para la
trasmisión de noticias, sobre todo las provenientes de los weblogs. Al creador de la
especificación RSS 2.0 se le antojó cambiarle el significado a las siglas, y para él
significan Really Simple Syndication, Sindicación Realmente Simple.

Se trata de un formato basado en XML que incluye información siguiendo unas
determinadas especificaciones. De esta manera, cualquier programa que las siga es
capaz de mostrar dicha información. Te puedes 'sindicar' a un determinado 'feed'
(fichero RSS) y ser avisado en todo momento de las noticias que contenga.

Por ejemplo, para el caso de DocuNews se ha construido un fichero XML que se
actualiza al momento de ser solicitado, y que incluye las 12 noticias más importantes
de cada momento. De esta manera, podrás tener en cada instante (y sin tener que
estar accediendo a sus sitios web) las noticias más destacadas tomadas de decenas
de medios de comunicación.

Los editores de un sitio deciden qué van a difundir a través de RSS, ya sea: los
encabezados más recientes (What’s New?) de un blog, de un periódico en línea, de
una revista o de las noticias de un portal; las 10 aplicaciones más descargadas o el
menú de un sitio. Los sitios web que alberguen esta información no tendrán que
modificar nunca alguna línea del contenido importado, ya que a medida que se
actualice el RSS feed del sitio fuente, los destinos se actualizarán automáticamente.

Una ventaja para aquel al que le interesa atraer a más visitantes es que, si sus sitios
web incluyen en sus contenidos RSS feeds, entonces el número de visitas al sitio web
original aumenta, debido a que los encabezados se difunden por diversas fuentes
(sitios). Este hecho también contribuye a que los motores de búsqueda tengan más
referencias hacia nuestro sitio, porque indexan los encabezados que aparecen en las
páginas que importan los RSS feeds.


                                                                                     17
Fernando Leandro Baladrón                                          Proyecto fin de carrera
El formato RSS                                                                   20/05/05

Comúnmente, los cibernautas dejan en las bitácoras de los servidores web muchos
registros de accesos a páginas que no consultan, ya que los contenidos de esas
páginas no es lo que están buscando, así se mantienen en búsquedas infructuosas
hasta que llegan a la información que necesitan. RSS es una forma de desviar ese
tráfico de búsquedas infructuosas hacia los sitios que importan los RSS feed, en el
momento que los cibernautas encuentran los encabezados que les interesan, acceden
al sitio original a través de la link del encabezado y sólo a la información que les
interesa.

Así por un lado, tenemos mayor número de accesos y por otro, accesos de mayor
calidad, directamente a las notas, artículos o información que les interesa a los
navegantes.

“To syndicate” traducido literalmente significa sindicar, entrar a formar parte de un
sindicato. Pero en inglés tiene otra acepción: algo así como "publicar artículos
simultáneamente en diferentes medios a través de un sindicato al que se pertenece".

EJEMPLO RSS 2.0:
En el siguiente ejemplo, se ilustra un documento con el formato RSS 2.0

     <?xml version="1.0" ?>
     - <!-- generator="b2evolution/0.9.0.10" -->
     - <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"
          xmlns:admin="http://webns.net/mvcb/"
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns:content="http://purl.org/rss/1.0/modules/content/">
       - <channel>
         - <item>
              <title>Curso: Creación y Desarrollo de Bibliotecas
                   Digitales</title>

                <link>http://blogs.orbis.org.mx/blogs/calmecac.php?title
                =curso_creacion_y_desarrollo_de_bibliotec&more=1&c=1
                &tb=1&pb=1</link>
             <pubDate>Thu, 24 Feb 2005 10:52:40 +0000</pubDate>
             <category domain="main">Tecnologías Aplicadas a la
                Educación</category>
             <guid
                isPermaLink="false">45@http://blogs.orbis.org.mx/blogs</
                guid>

                 <description>http://www.filos.unam.mx/dec/Semestre200
                 5/c_bibliotecasdigitales.htm Este un curso organizado por
                 la Facultad de Fislosofía y Letras de la UNAM. Objetivo
                 general. Proporcionar los elementos teóricos y aplicación
                 necesarios para la creación, desarrollo y organización de
                 diversas categorías de bibliotecas digitales, actividades
                 fundamentales universitarias: docencia, investigación y
                 difusión de la cultura.</description>
            - <content:encoded>
                    - <![CDATA[
                    <p><a
                    href="http://www.filos.unam.mx/dec/Semestre2005/c_b
                    ibliotecasdigitales.htm">http://www.filos.unam.mx/d
                    ec/Semestre2005/c_bibliotecasdigitales.htm</a></p> <p>Este un curso
                    </p>]]>
              </content:encoded>
              <comments>http://blogs.orbis.org.mx/blogs/calmecac.php
                 </comments>
           </item>
     </channel>
     </rss>


                                                                                      18
Fernando Leandro Baladrón                                  Proyecto fin de carrera
El formato RSS                                                           20/05/05


Ejemplo de lo que podría ser un formulario de entrada de datos para el formato

RSS 0.91




Se puede observar la gran cantidad de campos de los que dispone este
formato.




                                                                              19
Fernando Leandro Baladrón                                         Proyecto fin de carrera
Especificación RSS 2.0                                                          20/05/05

2.2 Especificación formato RSS 2.0:
En ente apartado se comenta en detalle cuales son los campos utilizados por
este formato, además de detallar un ejemplo para ilustrar la sencillez de este
formato.

● RSS 2.0

Publicada en Octubre del 2002 por Dave Winner. Esta especificación es
compatible con RSS 0.91 y RSS 0.92 . Por tanto, un fichero RSS 0.91 es
también un fichero RSS 2.0 válido.

-Resumen de los elementos que forman parte de un fichero RSS 2.0

● Elementos requeridos del channel

<title> -- Título del canal.
<link> -- Dirección URL a la página web que genera el canal de información.
<description> -- Breve descripción del canal.

● Elementos opcionales del channel

  <language> -- Idioma de la fuente de información.
  <copyright> -- Aviso legal del canal.
  <managingEditor> -- Correo electrónico del editor del canal.
  <webMaster> -- Correo electrónico del webmaster del canal, para resolver
problemas técnicos.
  <pubDate> -- Fecha de publicación del canal. Ejemplo: cada 24 horas.
  <lastBuildDate> -- Última fecha de actualización del canal.
  <category> -- Cateogoría a la que pertenece el canal. Ejemplo: finanzas.
  <generator> -- Nombre del programa que genera los archivos rss.
  <docs> -- Dirección url donde se encuentra la fuente de información del canal.
  <cloud> -- Permite recibir avisos cuando se actualiza el canal.
  <ttl> -- Tiempo de vida del canal expresado en minutos.
  <image> -- Url donde se encuentra la imagen del canal.
  <rating> -- PICS rating del canal.
  <textinput> -- Etiqueta de la caja de texto del canal.
  <skipHours> -- Horas en que no está disponible el canal.
  <skipDays> -- Fechas en que no está disponible el canal.

● Elementos requeridos del item

<title> -- Título del item.
<link> -- Link al item.
<description> -- Breve descripción del item.


● Elementos opcionales del item

 <author> -- Correo electrónico de la persona que ha escrito la notícia.
 <category> -- Categoría a la que pertenece la notícia.
 <comments> -- Dirección URL donde se encuentran los comentarios acerca de la


                                                                                     20
Fernando Leandro Baladrón                                           Proyecto fin de carrera
Especificación RSS 2.0                                                            20/05/05

notícia.
  <enclosure> -- Describe el objeto de audio, video... que está incluido con la notícia.
  <guid> -- Número que identifica a la notícia.
  <pubDate> -- Fecha de publicación de la notícia.
  <source> -- Nombre del canal RSS donde procede la notícia.


-Modificaciones respecto a las versiones anteriores

Se permiten crear tantos elementos como sean necesarios, siempre y cuando
se hayan definido correctamente.

El elemento <category> pasa a ser opcional.

● Nuevos elementos

<category> -- Es un nuevo sub-elemento opcional del <channel>.

<comments> -- Es un nuevo sub-elemento opcional del <item>. Es la dirección
web (URL) donde se encuentran los comentarios acerca del item.
<comments>http://www.uatsap.com/comentarios>

<generator> -- Es un nuevo sub-elemento opcional del <channel>. Programa
que ha generado el archivo RSS.

<author> -- Es un nuevo sub-elemento opcional del <item>. Especifica la
dirección de correo del autor del item. Para los periódicos o revistas que se
sindican via RSS, el autor es la persona que ha escrito el artículo.
<author> uatsap@uatsap.com (uatsap.com)</author>

<ttl> -- Es un nuevo sub-elemento opcional del <channel>. Define el tiempo de
vida del canal. Se expresa en minutos e indica cuánto tiempo el canal puede
guardarse en la caché antes de ser refrescado.
<ttl> 60 </ttl>

<pubdate> -- Es un nuevo sub-elemento opcional del <item>. Es una fecha que
indica cuándo el item fue publicado. Si la fecha es futura, los agregadores de
noticias pueden decidir no mostrarla hasta llegar a la fecha de publicación.

<guid> -- Es un nuevo sub-elemento opcional del <item>. Es un identificador
del número de item (similar al concepto de ID). Si está presente, un agregador
puede utilizarlo para decidir si el item es nuevo o no.
<guid> http://www.uatsap.com/rss10001 </guid>
Existe el atributo permalink, opcional y con valor por defecto a True, que si está
activado el agregador de notícias asume que el fichero puede ser abierto por
un navegador.
<guid isPermaLink="true"> http://www.uatsap.com/rss10001.php </guid>




                                                                                       21
Fernando Leandro Baladrón                                Proyecto fin de carrera
Especificación RSS 2.0                                                 20/05/05




● EJEMPLO RSS 2.0:
Mostramos un ejemplo simplificado de un fichero RSS 2.0 que consta de un
canal y dos elementos item:

 <rss version="2.0">
 <channel>
 <title>Uats'ap. Noticias RSS.</title>
 <link>http://www.uatsap.com</link>
 <description> XML (Extensible Markup Language) es el formato universal
 para datos en la web. XML permite fácilmente a los desarrolladores
 describir y proporcionar contenido, datos estructurados para cualquier
 aplicación de una forma estándard, XML no sustituye a HTML; es un
 formato que lo complementa. </description>
 <cloud domain="datos.uatsap.com" port="80" path="/RPC2"
 registerProcedure="datos.rssNotificar" protocol="xml-rpc"/>
 <docs>http://www.uatsap.com/docs</docs>
 <generator>uatsap 1.0</generator>
 <ttl>60</ttl>

 <item>
 <title> RSS Ficheros </title>
 <link> http://www.uatsap.com </link>
 <description> Obtén respuesta a tus preguntas acerca de los ficheros
 RSS</description>
 <source url="http://www.uatsap.com/music/uatsap.mp3" length="19917410"
 type="audio/mpeg" />
 <pubDate>Mon, 29 Sep 2003 06:57:42 GMT</pubDate>
 </item>

 <item>
 <title> ¿Cómo sindicar noticias RSS? </title>
 <link> http://www.uatsap.com </link>
 <description> Manual para utilizar RSS y sindicar noticias en tu web
 </description>
 <source url="http://www.uatsap.com/music/radio.mp3" length="34518490"
 type="audio/mpeg" />
 <pubDate>Mon, 29 Sep 2003 06:58: GMT</pubDate>
 </item>

 </channel>
 </rss>




                                                                            22
Fernando Leandro Baladrón                                  Proyecto fin de carrera
Especificación RSS 2.0                                                   20/05/05




● Fuentes consultadas:

-Pagina en Español con mucha información sobre RSS. [en línea].
 Encontraremos la especificación de los formatos muy detallada.
<http://www.uatsap.com/ > [fecha consulta 03 de marzo de 2005]

-RSS 2.0 Specification. RSS at Harvard Law. Autor Dave Winer. [en línea].
<http://blogs.law.harvard.edu/tech/rss> [fecha consulta 03 de marzo de 2005]




                                                                               23
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Diseño Base de Datos                                                       6/04/05

3. Base de datos en DocuNews
Las ventajas de tener una base de datos son muchas. Para empezar
necesitamos de un recipiente donde poder almacenar nuestras noticias. Si
almacenamos la información correctamente luego conseguiremos interpretarla
y recuperarla de forma eficiente.

En esta Base de datos almacenaremos todas las noticias. La primera ventaja
es que cualquiera desde Internet, podrá consultar las noticias que solicite.

 Otra de las ventajas es que al disponer de una base de datos podremos
realizar consultas delimitando por los diferentes campos que tiene una noticia.

Podremos, además, hacer un control de la redundancia de los datos, evitando
tener noticias duplicadas.

A continuación, se pasa a detallar el diseño de la base de datos DocuNews.
Una vez visto el diseño, veremos los procedimientos almacenados que tratan
esos datos, implementados sobre SQL Server.


3.1. Diseño de la base de datos
El apartado anterior y este van estrechamente ligados puesto que nos vamos a
basar en el Formato de Sindicación de Contenidos (RSS) a la hora de diseñar
la base de datos.

Partes en la que hemos dividido este apartado:

       3.1.1) Análisis de Requerimientos.
       3.1.2) Diseño Conceptual.
       3.1.3) Diseño Lógico.
       3.1.4) Diagrama UML.



3.1.1) Análisis Requerimientos:

Queremos diseñar una Base de datos para un Portal de Noticias.

        Por un lado queremos almacenar las diferentes categorías (Canales) de
Noticias que vamos ha tener, de cada una de estas Categorías (Canales)
queremos almacenar los campos el titulo del Canal/Categoria (title), el link de
la dirección URL de la pagina web que genera el Canal/Categoria (link), la
descripción del Canal/Categoria (description), el idioma de la fuente de
información (language), el aviso legal del Canal/Categoria (copyright), el
correo electronico del editor del Canal/Categoria (managingEditor), el correo
electrónico del webmaster del Canal/Categoria para resolver problemas
técnicos (webMaster), la fecha de publicación del Canal/Categoria (pubDate),
la última fecha de actualización del Canal/Categoria (lastBuildDate), el nombre


                                                                               24
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Diseño Base de Datos                                                        6/04/05

del programa que genera el archivo RSS, la dirección url donde se encuentra
la fuente información del Canal/Categoria (docs), avisos de cuando se
actualiza el Canal/Categoria (cloud), el tiempo de vida del Canal/Categoria
expresado en minutos, el PICS rating del Canal/Categoría (rating), la etiqueta
de la caja de texto del Canal/Categoria (textinput) , las horas en las que no
está disponible el Canal/Categoria (skipHours), Fechas en las que no está
disponible el Canal/Categoria (skipDays) y un codigo identificador (ID)


Además tendremos de cada Categoría(Canal) sus noticias, de dichas noticias
queremos saber su Título (title), el Canal/Categoría a la que queremos que
pertenezca (category), el link a la noticia en concreto (link), la descripción de
la noticia (description), el autor de la noticia (author), dirección url donde se
encuentran los comentarios acerca de la noticia (comments), descripción del
objeto de audio, video incluido en la noticia (enclosure), la fecha de
publicación de la noticia (pubDate), el nombre del canal RSS donde procede la
noticia (source). El factor de impacto que consideramos que ha tenido la
noticia (impacto) que será un valor del 1 al 10. Podremos además asociar una
imagen a la noticia. También se podrá concretar una serie de palabras clave
asociadas a la noticia. En caso de que no exista previamente el canal/categoría
al que se desea asociar la noticia, deberemos crear anteriormente el
canal/categoría. Para cada noticia tendremos un código identificador (ID).
Inicialmente, tendremos creadas 7 categorías: Noticias Destacadas, España,
Economía, Ciencia/Tecnología, Deportes, Espectáculos.


Cada Noticia pertenecerá a un Canal/Categoría
Y un Canal/Categoría puede tener muchas noticias.

Una palabra clave puede estar en muchas Noticias y una Noticia puede tener
varias palabras clave que la definan. Queremos tener almacenado las palabras
clave que tienen relación entre ellas. De esta forma, podemos saber todas las
Noticias relacionadas con un mismo tema, porque contendrán las mismas
palabras clave.

Además tenemos que tener en cuenta que una palabra clave puede estar a su
vez relacionada con otras palabras clave.

Cada noticia puede tener asociada una imagen, y esa imagen esta asociada a
una noticia.

De las imágenes queremos saber la descripción de la imagen, el nombre, la
dirección donde esta almacenada la imagen y la imagen en si.

También tendremos los Administradores/usuarios del sistema, donde
guardaremos el nombre y los apellidos, el perfil, su login, password y la
dirección de la fotografía del usuario.




                                                                                25
Fernando Leandro Baladrón                                  Proyecto fin de carrera
Diseño Base de Datos                                                      6/04/05

Cada usuario podrá generar muchas noticias y cada noticia pertenecerá a un
solo usuario, las noticias sólo podrán ser modificadas por su autor , o por el
súper-usuario (Administrador general).

Queremos guardar la Versión del sistema, donde guardaremos el código de la
versión, y las mejoras conseguidas en esa nueva versión, y la fecha de
creación de la versión.

Tendremos además una tabla menú donde almacenaremos las diferentes
secciones que queremos tener en nuestra pagina web con la imagen que
queramos asociar a cada una de las opciones.

Otra Tabla del sistema será la tabla Búsqueda donde almacenaremos todas las
búsquedas que hagan nuestros usuarios, de esta forma podremos más
adelante estudiar cuales son las palabras más buscadas y detectar cuales no
devuelven ningún resultado, etc.., en esta tabla queremos almacenar el valor
de la búsqueda y la Fecha de la búsqueda.


3.1.2) Diseño Conceptual utilizando el modelo Entidad-Relación:




                                                                              26
Fernando Leandro Baladrón                            Proyecto fin de carrera
Diseño Base de Datos                                                6/04/05




3.1.3) Diseño Logico:

Categoria (CAT_ID: INTEGER(4), CAT_title: VARCHAR(25), CAT_link:
NUMBER(4), CAT_description: VARCHAR(25), CAT_language: CHAR(10),
CAT_copyright: VARCHAR(25), CAT_managingeditor: VARCHAR(50),
CAT_webmaster: VARCHAR(25), CAT_pubdate: DATETIME,
CAT_lastbuilddate: DATETIME, CAT_generator: VARCHAR(25), CAT_docs..)
CP: {CAT_ID}
VNN:{CAT_title, CAT_description, CAT_pubdate}

Noticia (NOT_guid: INTEGER(4), NOT_title: VARCHAR(250), NOT_link:
varchar(250), NOT_descripcion: VARCHAR(250), NOT_comments:
VARCHAR(100), NOT_pubdate: DATETIME, NOT_source: VARCHAR(50),
NOT_impacto: INTEGER, NOT_CAT_ID: INTEGER(4), USU_ID:INTEGER(4))
CP:{NOT_GUID}
C.Aj: {NOT_CAT_ID }→Categoria
C.Aj: {USU_ID }→Usuario
VNN: {NOT_title, NOT_description,NOT_CAT_ID,NOT_pubdate}

Palabra_Clave (PAL_ID: INTEGER(4), PAL_Nombre: VARCHAR(50))
CP:{PAL_ID}
VNN:{PAL_Nombre}


Not_REL_Pal (REL_ID: INTEGER(4), PAL_ID: INTEGER(4), Not_guid:
INTEGER(4)}
CP: {REL_ID)
Uni: {PAL_ID,NOT_GUID}
C.Aj: {PAL_ID }→Palabras_Clave
       { Not_guid }→Noticia


Imagen (IMA_ID: INTEGER(4), IMA_descripcion: VARCHAR(100),
IMA_Nombre:VARCHAR(25), IMA_url: VARCHAR(100), IMA_NOT_ID:
INTEGER(4), IMA_Imagen: Binary)
CP:{IMA_ID}
C.Aj: {IMA_NOT_ID }→Noticia
VNN:{url, IMA_NOT_ID, IMA_Imagen}



Pal_REL_Pal ( PAL_ID1: INTEGER(4), PAL_ID2: INTEGER(4)}
CP: {PAL_ID1, PAL_ID2 )
C.Aj: {PAL_ID1}→Palabras_Clave
      {PAL_ID2}→Palabras_Clave


                                                                        27
Fernando Leandro Baladrón                             Proyecto fin de carrera
Diseño Base de Datos                                                 6/04/05




Usuario (USU_ID: INTEGER(4), USU_nombre: CHAR(50), USU_apellidos:
VARCHAR(50), USU_perfil: VARCHAR(15), USU_login: VARCHAR(10),
USU_Password: VARCHAR(8), USU_imagen: VARCHAR(50)
CP: {USU_ID)
VNN:{USU_Nombre, USU_login, USU_password}

Version ( Version: INTEGER(4), DescripcionMejora: VARCHAR(100), Fecha:
DATETIME)
CP: {Version}
VNN:{DescripcionMejora, Fecha}

Menu (MEN_ID: INTEGER(4), MEN_nombre: CHAR(25), MEN_img:
VARCHAR(50))
CP: {MEN_ID)
VNN:{MEN_Nombre}

Busqueda ( BUS_ID: INTEGER(4), BUS_Valor: VARCHAR(25), BUS_Fecha:
DATETIME)
CP: {BUS_ID}
VNN:{BUS_Valor, BUS_Fecha}



Implementando esto en un SGBD como puede ser SQL Server:




                                                                         28
Fernando Leandro Baladrón                                 Proyecto fin de carrera
Diseño Base de Datos                                                     6/04/05

2.4) Diagrama UML

Para realizar el diagrama UML hemos utilizado la herramienta Microsoft Visio,
la cual nos ha permitido dibujar de acuerdo al estandar UML.




                                                                             24
Fernando Leandro Baladrón                                  Proyecto fin de carrera
Procedimientos Almacenados                                               20/05/05

3.2. PROCEDIMIENTOS ALMACENADOS EN SQL SERVER.

3.2.1 BASE DE DATOS EN DOCUNEWS.

       Como hemos comentado anteriormente, la Base de Datos es una parte
fundamental en el desarrollo de nuestra aplicación. DOCUNEWS se trata de
una Biblioteca de Noticias, y como tal debe almacenar gran cantidad de
noticias y datos que sean de necesidad para el usuario. Pues bien, esa gran
cantidad de datos que nuestra aplicación debe tratar están guardados, o mejor
dicho, son tratados en una Base de Datos.


3.2.2 ¿PORQUÉ SQL Server?


   Como ya introdujimos, nuestra Base de Datos está implementada con SQL
Server, producto de Microsoft Corporation.

   El motivo de haber elegido este tipo de base de datos y no otro fue
simplemente por cuestión de comodidad y de probar una herramienta nueva.
Además del prestigio que aporta esta herramienta, el elegir SQL Server fue
además por la facilidad que aportaba el Visual Studio .NET.

   Visual Studio .NET ofrece unas facilidades para trabajar con SQL que
permiten realizar todo tipo de trabajos con mucha facilidad, ya que dispone de
asistentes para crear todo tipo de consultas. Además, permite introducir
lenguajes SQL en el mismo código vb .Net.

   Además de las facilidades que aporta el trabajar con SQL Server el Visual
Studio, también hay que hablar de la facilidad a la hora de implementar la
propia base de datos. SQL Server permite crear toda la estructura de la Base
de Datos de forma cómoda y sencilla, con una interfaz amigable y fácil de
entender. Para ver como está construida la Base de Datos, consultar el punto
de diseño de la base de datos.

   Lógicamente, con el SQL Server no es todo tan sencillo. Para poder trabajar
con esta herramienta es también necesario conocer las propias características
que posee, como se accede a las tablas, como dejarlas en estado seguro, etc.
Para ello se dispone de las Conexiones.


3.2.3 CONEXIONES EN SQL Server.

   Para crear conexiones para acceder a los datos es necesario utilizar las
clases SqlConnection para conectarse y desconectarse de una base de datos.

   Para crear una conexión a una base de datos es necesaria la introducción
de una serie de parámetros como mostramos en el siguiente ejemplo:




                                                                              30
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Procedimientos Almacenados                                                  20/05/05

       Sqlconnection.connectionstring = “user id =idusuario; pwd=pwdusuario;
       initial catalog=bdname; Data Source = localhost; Connect TimeOut = 30”;

      Explicaremos brevemente cuales son los parámetros que componen la
conexión a una base de datos:

   -   SqlConnection.ConnectionString es una clase ya creada. Es necesaria
       siempre que queramos crear una nueva conexión con una base de
       datos.
   -   User id: este parámetro indica el nombre de usuario. Es posible crear un
       usuario nuevo o utilizar el que nos ofrece por defecto “User ID”.
   -   Pwd: Representa la contraseña del usuario. También se puede omitir
       este parámetro no introduciendo nada.
   -   Initial catalog: Este parámetro describe la instancia de base de datos a la
       que hay que conectarse.


        Una vez la conexión a la base de datos ya está establecida debemos
abrirla o cerrarla cuando queramos trabajar con ella o hayamos terminado. Esto
es una ventaja ya que permite trabajar con los datos teniendo la conexión
cerrada y abrirla para hacer la modificación en la base de datos. Los comandos
para abrir y cerrar la conexión son:

                 -   Sqlconnection.open para abrir la conexión.
                 -   Sqlconnection.close para cerrar la conexión.

Es conveniente tener en cuenta estos dos comandos, ya que, abrir y cerrar la
conexión inadecuadamente puede dejar la base de datos en estado inseguro.


3.2.4 Ejemplos procedimientos implementados.

Los procedimientos almacenados son un conjunto precompilado de
instrucciones Transact-SQL almacenadas bajo un solo nombre y procesadas
como una unidad. Los procedimientos almacenados pueden recibir parámetros
en base a los cuales realizar distintas acciones.

La utilización de procedimientos almacenados en nuestras aplicaciones aporta
multitud de ventajas, entre las que podemos destacar las siguientes:

Rendimiento
Los procedimientos almacenados son analizados y optimizados en el momento
de su creación, a diferencia de las instrucciones Transact-SQL, que deben ser
analizadas, compiladas y optimizadas cada vez que son enviadas por el cliente.
Además, el motor de SQL Server es capaz de reutilizar el plan de ejecución del
procedimiento almacenado que se encuentra en la memoria (caché de
procedimientos) después de haberse ejecutado una primera vez.




                                                                                 31
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Procedimientos Almacenados                                                20/05/05

Reducción del tráfico de red
Una sentencia formada por decenas, cientos o incluso miles de líneas de
código Transact-SQL puede escribirse como un procedimiento almacenado en
el servidor y ejecutarse simplemente mediante el nombre de dicho
procedimiento, en lugar de enviar todas las líneas de código por la red desde el
cliente hasta el servidor (ésta reducción del tráfico de red será especialmente
significativa en redes no muy veloces, como por ejemplo, algunas redes WAN).

Seguridad
Los procedimientos almacenados facilitan algunas tareas de administración de
seguridad y asignación de permisos. Por ejemplo, se puede conceder permiso
a un usuario para ejecutar un determinado procedimiento almacenado, aunque
el usuario no disponga de los permisos necesarios sobre los objetos afectados
por las acciones individuales de dicho procedimiento.

Encapsulación
Los procedimientos almacenados encapsulan gran parte de la lógica de los
datos a las aplicaciones que los utilizan. Por ejemplo, una aplicación puede
llamar al procedimiento almacenado CategoriaBorrar sin conocer cómo
funciona internamente éste proceso (transacciones e instrucciones Transact-
SQL utilizadas, tablas afectadas, etc.)

Programación modular
Los procedimientos almacenados se crean una sóla vez, se almacenan en la
base de datos y se ejecutan desde las aplicaciones cliente tantas veces como
sea necesario. Además, en caso de detectarse un error en un procedimiento
almacenado, éste podrá ser reparado por el administrador de la base de datos
desde el servidor sin afectar -y probablemente, volver a compilar- a las
aplicaciones cliente

A continuación, mostramos los procedimientos almacenados con los que
hemos trabajado, los hemos clasificado según la clase con la que van ha
trabajar.

Busqueda
     BusquedaInsertar
     BusquedaObtener

Categoria
     CategoriaBuscar
     CategoriaCargar
     CategoriaBorrar
     CategoriaInsertar
     CategoriaModificar
     CategoriaObtener
     CategoriaObtenerIndice
     CategoriaObtenerTitle
     CategoriaXML




                                                                               32
Fernando Leandro Baladrón                                  Proyecto fin de carrera
Procedimientos Almacenados                                               20/05/05

Imagen
     ImagenBorrar
     ImagenBorrarTodas
     ImagenInsertar
     ImagenModificar
     ImagenObtener

Noticia
      NoticiaDeCategoria
      NoticiaInsertar
      NoticiaModificar
      NoticiaObtener
      NoticiaObtenerUlt
      NoticiaRSS

Palabras Clave
      PClaveBorrar
      PClaveInsertar
      PClaveModificar

Palabras Clave Relacionadas
      PClaveRELborrar
      PClaveRELinsertar
      PClaveRELNoticiaborrar
      PClaveRELObtener1
      PClaveRELObtenerT

Usuario
      UsuarioBorrar
      UsuarioInsertar
      UsuarioLogin
      UsuarioModificar
      UsuarioObtener
      UsuarioObtenerLogin

A continuación, vamos a mostrar un ejemplo de cada uno de los tipos posibles,
un ejemplo de borrado, de inserción, modificado y de consulta.

-Ejemplo de borrado : borra una categoria en concreto
CREATE PROCEDURE CategoriaBorrar
(
@ID int
)
AS
DELETE
FROM Categoria
WHERE CAT_ID=@ID
GO




                                                                              33
Fernando Leandro Baladrón                     Proyecto fin de carrera
Procedimientos Almacenados                                  20/05/05


-Ejemplo de inserción: Insertar una Noticia
CREATE PROCEDURE NoticiaInsertar
(
@guid int OUTPUT,
@title nvarchar(250),
@link nvarchar(250),
@description nvarchar(500),
@comments nvarchar(50),
@pubDate datetime,
@source nvarchar(50),
@IMPACTO int,
@CAT_ID int,
@USU_ID int
)
 AS
Insert INTO Noticia
(
NOT_title,
NOT_link,
NOT_description,
NOT_comments,
NOT_pubDate,
NOT_source,
NOT_IMPACTO,
NOT_CAT_ID,
USU_ID
)
values
(
@title,
@link,
@description,
@comments,
@pubDate,
@source,
@IMPACTO,
@CAT_ID,
@USU_ID
)
select @guid=@@identity
GO




                                                                 34
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Procedimientos Almacenados                                                20/05/05


-Ejemplo de modificado: Modificar los datos del usuario
CREATE PROCEDURE UsuarioModificar
(
@ID int OUTPUT,
@Nombre nvarchar(50),
@Apellidos nvarchar(50),
@Perfil nvarchar(15),
@Login nvarchar(10),
@Password nvarchar(8),
@Imagen image
)
AS
UPDATE Usuario
SET
USU_Nombre=@Nombre,
USU_apellidos=@Apellidos,
USU_perfil=@Perfil,
USU_Login=@Login,
USU_Password=@Password,
USU_Imagen=@Imagen
WHERE USU_ID=@ID
GO


-Ejemplo de consulta: Obtiene las palabras Clave de una noticia en concreto.
CREATE PROCEDURE PClaveRELobtenerT
(
@NoticiaID int
)

AS

select NX.NOT_guid, NX.Pal_id, PX.PAL_nombre
from Not_REL_Pal NX, Palabra_Clave PX
where NX .NOT_guid=@NoticiaID
and PX.PAL_ID=NX.Pal_id
GO




                                                                               35
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Diseño interface                                                           20/05/05

4. DISEÑO INTERFACE

Dentro de este apartado, vamos ha tener en cuenta dos aspectos: por un lado
con que clases hemos trabajado en Visual Studio y después pasaremos ha
comentar el código implementado en ASP .NET subrayando los detalles de la
programación desarrollada y explicando cuestiones tales como qué son los
controles de usuario.

4.1. Clases

Visual Basic .NET ofrece herencia, interfaces y sobrecarga, que lo convierten
en un eficaz lenguaje de programación orientado a objetos.

Visual Basic .NET admite el concepto de herencia y le permite definir clases
que sirven de base para las clases derivadas. Las clases derivadas heredan, y
pueden extender, las propiedades y los métodos de la clase base. También
pueden reemplazar métodos heredados con nuevas implementaciones. De
forma predeterminada, todas las clases creadas con Visual Basic .NET son
heredables. Puesto que los formularios que diseña son realmente clases,
puede utilizar la herencia para definir nuevos formularios basados en
formularios existentes.

Un objeto es una combinación de código y datos que puede tratarse como una
unidad. Un objeto puede ser una porción de una aplicación, como un control o
un formulario. Una aplicación entera también puede ser un objeto.

Los objetos permiten declarar variables y procedimientos una vez y utilizarlos
siempre que sean necesarios. Por ejemplo, si desea agregar un corrector
ortográfico a una aplicación, puede definir todas las variables y funciones
auxiliares para proporcionar a la aplicación funcionalidad de corrección
ortográfica. No obstante, si crea el corrector ortográfico como una clase, puede
volver a utilizarlo en otras aplicaciones mediante la inclusión de una referencia
en el ensamblado compilado. Aún mejor, tal vez pueda ahorrarse trabajo
mediante el uso de una clase de corrector ortográfico que otra persona ya ha
desarrollado.

Cada objeto de Visual Basic .NET se define mediante una clase. Las clases
describen los campos, propiedades, métodos y eventos de un objeto. Los
objetos son instancias de clases.

Nosotros particularmente, hemos trabajado con 6 clases:
1) CLSbusqueda : Clase creada para trabajar con las búsquedas.
2) CLScategoria: Clase creada para trabajar con las categorías.
3) CLSImagen: Clase creada para trabajar con las imágenes.
4) CLSNoticia: Clase creada para trabajar con las noticias.
5) CLSPalabra: Clase creada para trabajar con las palabras Clave.
6) CLSUsuario: Clase creada para trabajar con los usuarios.




                                                                                36
Fernando Leandro Baladrón                                Proyecto fin de carrera
Diseño interface                                                       20/05/05




Comentar como se muestra en la imagen que son los objetos los que acceden
a los Datos, todo el código de acceso a la Base de datos se encuentra en el
objeto.




En todos los constructores de las clases se crea la conexión a la Base de
datos:

    Public Sub New()
        miconn = New SqlClient.SqlConnection
        'creo los parametros de la conexion
        Try
            miconn.ConnectionString = "Data Source=.;" & _
            "Initial Catalog=DocuNews;" & _
            "Integrated Security=true"

        Catch ex As Exception
            RaiseEvent errorSQL(ex, "utilidad ADO conectar")
        End Try
    End Sub

1) Clase Búsqueda: En esta clase se controlan las búsquedas que realizan los
usuarios para de esta forma almacenarlas en la base de datos.

En todas las clases siempre se hace lo mismo: primero declaramos las campos
que va ha tener, y después los métodos.

    Private   _ID As   Integer
    Private   _Valor   As String 'busqueda que ha hecho el usuario
    Private   _Fecha   As Date 'fecha actual
    Private   _IP As   string 'dirección IP del ordenador


    Public Property Valor() As String
        Get
            Return _Valor
        End Get

         Set(ByVal Value As String)



                                                                            37
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Diseño interface                                                           20/05/05

            _Valor = Value
        End Set
    End Property


Esto sería un ejemplo de una de las funciones que tiene implementada la clase
búsqueda, esta función llama al procedimiento almacenado “BusquedaInsertar”
de la base de datos donde le pasa como entrada el valor de la búsqueda, la
fecha actual y la IP del que está realizando la búsqueda. Es importante resaltar
que es la clase la que llama al procedimiento almacenado para la inserción.
Public Function insertarBusqueda(ByVal BUS_ID As Integer, ByVal BUS_Valor As
String, ByVal BUS_Fecha As Date, ByVal BUS_Valor As String)
         Try
             Dim cmdOrden As New SqlCommand
            cmdOrden.CommandType = CommandType.StoredProcedure
           'Nombre del procedimiento almacenado de la Base de Datos
            cmdOrden.CommandText = "BusquedaInsertar"
            cmdOrden.Connection = miconn

            Dim   p As New SqlParameter("@Id", SqlDbType.Int, 4)
            Dim   p1 As New SqlParameter("@Valor", SqlDbType.NVarChar, 25)
            Dim   p2 As New SqlParameter("@Fecha", SqlDbType.DateTime)
            Dim   p3 As New SqlParameter("@IP", SqlDbType.NVarChar, 25)

            'BUS_ID
            If BUS_ID <> Nothing Then
                p.Value = BUS_ID
            Else
                p.Value = System.DBNull.Value
            End If

            'BUS_valor
            If BUS_Valor <> Nothing Then
                p1.Value = BUS_Valor
            Else
                p1.Value = System.DBNull.Value
            End If

            'BUS_Fecha
            If IsDate(BUS_Fecha) Then
                p2.Value = BUS_Fecha
            Else
                p2.Value = System.DBNull.Value
            End If

            'BUS_IP
            If IsDate(BUS_IP) Then
                p2.Value = BUS_IP
            Else
                p2.Value = System.DBNull.Value
            End If

            cmdOrden.Parameters.Add(p)
            cmdOrden.Parameters.Add(p1)
            cmdOrden.Parameters.Add(p2)
            cmdOrden.Parameters.Add(p3)

           'si esta ya abierta la conexión no es necesario volverla abrir
            If miconn.State <> 1 Then
                miconn.Open()
            End If
            midatar = cmdOrden.ExecuteReader()

        Catch ex As Exception



                                                                                38
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Diseño interface                                                          20/05/05

        Finally
            midatar.Close()
        End Try
    End Function

2) Clase Categoria:
En esta clase controlo las categorías.
Por un lado declaro los campos con su tipo:

    Private   _ID As Integer
    Private   _title As String
    Private   _link As String
    Private   _description As String
    Private   _language As String
    Private   _copyright As String
    Private   _managingeditor As String
    Private   _webmaster As String
    Private   _pubdate As Date
    Private   _lastbuilddate As String
    Private   _generator As String
    Private   _docs As String
    Private   _cloud As String
    Private   _ttl As Integer
    Private   _image As String
    Private   _rating As String
    Private   _textinput As String
    Private   _skipHours As String
    Private   _skipDays As String

Y por el otro las funciones:
obtenerCategoria, eliminarCategoria, insertarCategoria y modificarCategoria.




                                                                               39
Fernando Leandro Baladrón                               Proyecto fin de carrera
Diseño interface                                                      20/05/05




Como ejemplo vamos a mostrar obtenerCategoria y borrarCategoria.

Public Function obtenerCategoria(ByVal Id As Integer) As Boolean
        Try
            'Ejecuta el procedimiento almacenado CategoriaObtener

              Dim cmdOrden As New SqlCommand
              cmdOrden.CommandType = CommandType.StoredProcedure
              cmdOrden.CommandText = "CategoriaObtener"
              cmdOrden.Connection = miconn

              Dim p As New SqlParameter("@Id", SqlDbType.Int, 4)
              p.Value = Id

              cmdOrden.Parameters.Add(p)

     'si esta ya abierta la conexión no es necesario volverla abrir
            If miconn.State <> 1 Then
                miconn.Open()
            End If

              midatar = cmdOrden.ExecuteReader()


            While midatar.Read()
                _title = midatar(1)
                _link = midatar(2)
                _description = midatar(3)
                _language = midatar(4)
                _copyright = midatar(5)
                _managingeditor = midatar(6)
                _webmaster = midatar(7)
                _pubdate = midatar(8)
                _lastbuilddate = midatar(9)
                _generator = midatar(10)
                _docs = midatar(11)
                _cloud = midatar(12)
                _ttl = midatar(13)
                _image = midatar(14)
                _rating = midatar(15)
                _textinput = midatar(16)
                _skipHours = midatar(17)
                _skipDays = midatar(18)
            End While
            Return True
        Catch ex As Exception
            Return False
        Finally
            midatar.Close()
        End Try
    End Function




                                                                           40
Fernando Leandro Baladrón                                Proyecto fin de carrera
Diseño interface                                                       20/05/05




Ver como en realidad esta función lo único que hace es llamar a un
procedimiento que esta en la Base de Datos que se llama “CategoriaBorrar”
pasandole el identificador de la categoria que se desea borrar.

    Public Function borrarCategoria(ByVal Id As Integer) As Boolean
        Try
            'Ejecuta el procedimiento almacenado CategoriaBorrar
            Dim s As String
            Dim cmdOrden As New SqlCommand
            cmdOrden.CommandType = CommandType.StoredProcedure
            cmdOrden.CommandText = "CategoriaBorrar"
            cmdOrden.Connection = miconn

              Dim p As New SqlParameter("@Id", Id)

              cmdOrden.Parameters.Add(p)

            'miconn.Open()
            midatar = cmdOrden.ExecuteReader()
            Return True
        Catch ex As Exception
            Return False
        Finally
            midatar.Close()
        End Try
    End Function



3) Clase imagen: Prácticamente ya hemos comentado todos los conceptos
importantes en las dos clases anteriores.



Por un lado los campos:

    Private   _ID As Integer
    Private   _description As String
    Private   _nombre As String
    Private   _url As String
    Private   _IMA_NOT_GUID As Integer
    Private   _imagen As Byte()

Y luego los métodos:

-obtenerImagen , borrarImagen, insertarImagen, modificarImagen.


Como ya hemos puesto un ejemplo de obtener, de borrar y de insertar vamos
ha poner un último ejemplo con modificar, de todas formas es muy parecida a
la de insertar.



                                                                            41
Fernando Leandro Baladrón                            Proyecto fin de carrera
Diseño interface                                                   20/05/05




    Public Function modificarImagen(ByVal IMA_ID As Integer, ByVal
IMA_descripcion As String, ByVal IMA_Nombre As String, ByVal IMA_url
As String, ByVal IMA_NOT_GUID As Integer, ByVal IMA_imagen() As Byte)

Try

Dim cmdOrden As New SqlCommand
cmdOrden.CommandType = CommandType.StoredProcedure
cmdOrden.CommandText = "ImagenModificar"
cmdOrden.Connection = miconn

Dim p As New SqlParameter("@Id", SqlDbType.Int, 4)
Dim p1 As New SqlParameter("@Descripcion", SqlDbType.NVarChar, 255)
Dim p2 As New SqlParameter("@Nombre", SqlDbType.NVarChar, 25)
Dim p3 As New SqlParameter("@Url", SqlDbType.NVarChar, 100)
Dim p4 As New SqlParameter("@NoticiaID", SqlDbType.Int, 4)
'Ojo importante no especificarle el numero de bits a la imagen
Dim p5 As New SqlParameter("@Imagen", SqlDbType.Image)

              'IMA_id
              If IMA_ID <> Nothing Then
                  p.Value = IMA_ID
              Else
                  p.Value = System.DBNull.Value
              End If

              'IMA_descripcion
              If IMA_descripcion <> Nothing Then
                  p1.Value = IMA_descripcion
              Else
                  p1.Value = System.DBNull.Value
              End If

              'IMA_nombre
              If IMA_Nombre <> Nothing Then
                  p2.Value = IMA_Nombre
              Else
                  p2.Value = System.DBNull.Value
              End If

              'IMA_url
              If IMA_url <> Nothing Then
                  p3.Value = IMA_url
              Else
                  p3.Value = System.DBNull.Value
              End If

              'IMA_NOT_GUID
              If IMA_NOT_GUID <> Nothing Then
                  p4.Value = IMA_NOT_GUID
              Else
                  p4.Value = System.DBNull.Value
              End If

              'IMA_Imagen
              If Not (IMA_imagen Is Nothing) Then



                                                                        42
Fernando Leandro Baladrón                               Proyecto fin de carrera
Diseño interface                                                      20/05/05

                  p5.Value = IMA_imagen
              Else
                  p5.Value = System.DBNull.Value
              End If

              cmdOrden.Parameters.Add(p)
              cmdOrden.Parameters.Add(p1)
              cmdOrden.Parameters.Add(p2)
              cmdOrden.Parameters.Add(p3)
              cmdOrden.Parameters.Add(p4)
              cmdOrden.Parameters.Add(p5)

              midatar = cmdOrden.ExecuteReader()


        Catch ex As Exception
        Finally
            midatar.Close()
        End Try
    End Function




4) Clase Noticia: esta clase se encarga de trabajar con las noticias,
tendremos declarados todos los campos que tiene una noticia y además los
métodos, tales como insertarNoticia, borrarNoticia, modificarNoticia,
ObtenerNoticia

    Private   _guid As Integer
    Private   _title As String
    Private   _link As String
    Private   _description As String
    Private   _comments As String
    Private   _pubdate As Date
    Private   _source As String
    Private   _impacto As Integer
    Private   _CAT_ID As Integer
    Private   _USU_ID As Integer




A continuación, mostramos la funcion ObtenerNoticiasRel lo que hace es que
para una noticia en concreto con una palabras clave asignadas me obtiene
aquellas noticias que tienen alguna de esas palabras clave.

Además es interesante como ejemplo, ya que esta vez no llamamos a un
procedimiento almacenado, sino que ejecutamos directamente sobre la base
de datos una consulta SQL.

Public Function obtenerNoticiaREL(ByVal Id As Integer) As DataSet
        Try
            Dim miadapter As New SqlDataAdapter
            dstUtilidad = New DataSet
            Dim SQL As String
            Dim SQL2 As String

'si esta ya abierta la conexión no es necesario volverla abrir


                                                                           43
Fernando Leandro Baladrón                                  Proyecto fin de carrera
Diseño interface                                                         20/05/05

              If miconn.State <> 1 Then
                  miconn.Open()
              End If

'Palabras clave relacionadas con la noticia
            SQL = "select NX.NOT_guid, NX.Pal_id, PX.PAL_nombre " & _
            "from Not_REL_Pal NX, Palabra_Clave PX " & _
            "where NX.NOT_guid='" & Id & "' " & _
            "and PX.PAL_ID=NX.Pal_id"


'Listado de noticias relacionadas con las Palabras clave de la noticia
            SQL2 = "select NX.NOT_guid, NX.NOT_title,NX.NOT_Link, " &
_
            "NX.NOT_Description, NX.NOT_Comments,NX.NOT_PubDate, " & _
            "NX.NOT_source, NX.NOT_IMPACTO " & _
            "from Noticia NX, NOT_REL_PAL PX " & _
            "where(NX.NOT_guid = PX.NOT_guid)" & _
            "and NX.NOT_guid <>'" & Id & "' " & _
            "and PX.PAL_ID IN (select PY.Pal_id " & _
                          "from Noticia NY, Not_REL_Pal PY " & _
                          "where NY.NOT_guid='" & Id & "' " & _
                          "and NY.NOT_guid=PY.NOT_guid)"

              'PRIMER SELECT rellenamos el dataset “NoticiasREL”
              Dim miorden As New SqlCommand(SQL, miconn)
              miadapter.SelectCommand = miorden
              miadapter.Fill(dstUtilidad, "NoticiaREL")

              'SEGUNDO SELECT rellenamos el dataset “NoticiasRELNoticia”
              Dim miorden2 As New SqlCommand(SQL2, miconn)
              miadapter.SelectCommand = miorden2
              miadapter.Fill(dstUtilidad, "NoticiaRELNoticia")

              obtenerNoticiaREL = dstUtilidad

        Catch ex As Exception
            RaiseEvent errorSQL(ex, "sorry")
        End Try
    End Function




Las dos clases que quedan por explicar nos las vamos a desarrollar puesto que
el código es equivalente a lo mostrado anteriormente.

5) La clase palabras clave: en esta clase tenemos todo lo relacionado a las
palabras clave. Insertar/borrar/eliminar palabras clave. Además del metodo que
se encarga de asociar/quitar una palabra clave a una noticia.

6) La clase usuario: en este caso es la que se encargará de gestionar los
usuarios, esta clase tendrá definidos los métodos: borrarUsuario,
modificarUsuario, insertarUsuario y obtenerUsuario.




                                                                              44
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Programación ASP .NET                                                      20/05/05



4.2. PROGRAMACIÓN ASP .NET
A continuación presentaremos algunos fragmentos de código interesantes,
usados en nuestra aplicación.

Lo primero que consideramos interesante es mostrar los ficheros con los que
hemos trabajado:




                            Fig.1.Listado de ficheros


Por un lado las Clases, por otro lado los controles de usuario y finalmente el
formulario principal default.aspx que es el que gestiona lo que se debe cargar
en cada momento.




                                                                                45
Fernando Leandro Baladrón                                              Proyecto fin de carrera
Programación ASP .NET                                                                20/05/05




Para la implementación del portal web DOCUNEWS hemos utilizado la
herramienta Microsoft Visual Studio, en concreto, el lenguaje de programación
VB .NET.



4.2.1 PÁGINA PRINCIPAL (default.aspx).




                     Fig.2 Estructura de la pagina principal (default.aspx)

La página principal esta compuesta de 5 partes, parte superior, parte central
izquierda, parte central derecha, centro y parte inferior.

En la parte superior, tenemos 3 controles, uno para el logo y la fuente de
autoría de la página. Otro para el login y un último control para el menú
horizontal de las categorías.

En la parte central izquierda tenemos otros 3 controles, uno para el menú
vertical de las categorías, otro para la búsqueda y un último control para el
calendario.

En el centro, según nos interese, cargaremos un control u otro. Estos
controles, a diferencia que los anteriores, los cargaremos por código.

Para la parte central derecha la forma de trabajar es la misma que para el
centro: cargaremos un control u otro dependiendo de nuestros intereses.

Lo siguiente que vamos a comentar son los controles de usuario.




                                                                                          46
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Programación ASP .NET                                                     20/05/05

4.2.2 CONTROLES DE USUARIO
Los controles de usuario ofrecen una forma sencilla de dividir y reutilizar
funciones de interfaz de usuario comunes entre las aplicaciones Web
ASP.NET.

Gracias a los controles de usuario nos podemos crear fácilmente nuestros
propios controles personalizados y reutilizables.

Los que hemos utilizado han sido:

-CtrBuscar.ascx
-CtrCalendar.ascx
-CtrListarNoticias.ascx
-CtrMenu.ascx
-CtrNoticiaCategorias.ascx
-CtrNoticiaAsociarP.ascx
-CtrNoticiaInsertar.ascx
-CtrNoticiaModificar.ascx
-CtrNoticiaObtner.ascx
-CtrPie.ascx
-CtrRightNotRel.ascx
-CtrRigthPane.ascx
-CtrTitulo.ascx

Hay dos formas de cargar un control, la primera sería indicándoselo en el
código html de la siguiente forma:

Al principio de la página ponemos el siguiente código:
<%@Register TagPrefix="Control" TagName="Menu" Src="CtrMenu.ascx"%>
<%@Register TagPrefix="Control" TagName="Buscar"
Src="CtrBuscar.ascx"%>
<%@Register TagPrefix="Control" TagName="Calendar"
Src="CtrCalendar.ascx"%>

y luego desde una celda lo cargamos:

<td id="LeftPane3" vAlign="top" align="left" width="20%" runat="server">
<CONTROL:CALENDAR id="Calendar1" runat="server"></CONTROL:CALENDAR>
</td>


Otra de las formas de cargar un control es como, ya he comentado
anteriormente, mediante código:

If IsNumeric(Request.Params("OP")) Then

Select Case Request.Params("OP")
                Case 1
                'abrimos el formulario de insercción de Noticias

CenterPane.Controls.Add(Page.LoadControl("CtrNoticiaInsertar.ascx"))


                                                                               47
Fernando Leandro Baladrón                                            Proyecto fin de carrera
Programación ASP .NET                                                              20/05/05

                   Case 2
                   'abrimos el formulario de modificiación de noticias

CenterPane.Controls.Add(Page.LoadControl("CtrNoticiaModificar.ascx"))
                Case 3
               'abrimos el formulario de Asociación de PClave

CenterPane.Controls.Add(Page.LoadControl("CtrNoticiaAsociarP.ascx"))
                End Select



En el ejemplo se carga en el centro un control u otro dependiendo del valor de
la variable “OP”.

4.2.3. INSERCIÓN DE LAS NOTICIAS
Empezaremos introduciendo el código implementado para la introducción de
nuevos grupos en nuestra base de datos. Utilizaremos este ejemplo para
mostrar como hemos ido guardando los diferentes datos en nuestra base de
datos mediante parámetros.

                             FormNoticiaInsertar.ascx




              Fig.3 Diseño del formulario de inserción de Noticias

Hemos trabajado con RequiredFieldValidator para validar los diferentes
campos.




                                                                                        48
Fernando Leandro Baladrón                                          Proyecto fin de carrera
Programación ASP .NET                                                            20/05/05




4.2.4. SUBIR UNA IMAGEN
Seguidamente pasaremos a mostrar el código usado para la “subida” de una
foto de un miembro a nuestra Web.

Try
If Not IsNothing(fileImagen.PostedFile) And
Len(fileImagen.PostedFile.FileName & "") > 0 Then

'Obtenemos el nombre del fichero. Necesitamos imports system.IO
Dim nombreFichero As String = Path.GetFileName(fileImagen.PostedFile.FileName)
'ruta del servidor
Dim rutaServer As String = "C:InetpubwwwrootPortalDocuNewsimages"
          'sube el fichero
fileImagen.PostedFile.SaveAs(rutaServer & nombreFichero)

MiImagen.insertarImagen(0, "Imagen guardada desde la web", nombreFichero,
"C:InetpubwwwrootPortalDocuNewsimages", IDNoticia, Nothing)

lblMensaje.Text = "Fichero subido correctamente"
 End If



4.2.5. VISUALIZACIÓN DE LOS DATOS.
Pasamos ahora a mostrar el código referente a la visualización de los datos
guardados en la base de datos.

El código para listar las noticias lo hemos realizado con un objeto del tipo asp
repeater:

<asp:repeater id="Repeater1" runat="server">
      <ItemTemplate>
            <tr>
                  <td class="NoticiaDetalleTexto">
                        <img src=".imagesicon.bmp">
                        <%# container.dataitem("NOT_Title")%>
                        <%# container.dataitem("NOT_PubDate")%>
                  </td>
            </tr>
            <tr>
                  <td class="NoticiaDetalleResumen">
                              <%#container.dataitem("NOT_Description")%>
                      </td>
             </tr>
       </ItemTemplate>

Además de esto en el código le indicamos el origen de los datos:

Repeater1.DataSource = DSNoticia.Tables("Noticia")

En este caso le estamos asociando el dataset DsNoticias y dentro de ese
dataset la tabla Noticia.




                                                                                      49
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Programación ASP .NET                                                       20/05/05




Otro ejemplo de este mismo estilo sería el utilizado para mostrar las noticias
más destacadas:

DSNoticia = MiNoticia.leeDataSet("select top 5 * from noticia where
NOT_impacto='10' order by NOT_pubDate DESC")

Repeater1.DataSource = DSNoticia.Tables("Noticia")
Repeater1.DataBind()

Aquí además estamos utilizando el método leedataset implementado en la
clase Noticia que nos permite rellenar un Dataset a partir de una consulta SQL.

Y un último ejemplo en este apartado sería el de los menús, que en este caso
lo estamos haciendo con un datalist. Aquí se muestra todas las categorías de
forma horizontal y cada vez que pinchas en una de ellas le pasa en la url el
identificador de la categoria:

<asp:datalist id="MyList" runat="server" EnableViewState="False"
width="80%" cellpadding="3" RepeatDirection="Horizontal"
HorizontalAlign="Right">

<SelectedItemTemplate>
<a href='<%# "Default.aspx?IdCategoria=" &
DataBinder.Eval(Container.DataItem, "CAT_ID") %>'
class="Menu2Seleccionado">
<%# DataBinder.Eval(Container.DataItem, "CAT_Title") %>
</a></asp:HyperLink>
</SelectedItemTemplate>

<ItemTemplate>
<asp:HyperLink id=Hyperlink3 cssclass="Menu2SinSeleccionar"
runat="server" Text='<%# DataBinder.Eval(Container.DataItem,
"CAT_Title") %>' NavigateUrl='<%# "Default.aspx?IdCategoria=" &
DataBinder.Eval(Container.DataItem, "CAT_ID") %>'>
</asp:HyperLink>
</ItemTemplate>

</asp:datalist>

Además de esto hay que indicar en el código, el origen de los datos, que en
este caso, se contempla al recurrir al dataset DSCategoria:

MyList.DataSource = DSCategoria
MyList.DataBind()




                                                                                 50
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Programación ASP .NET                                                      20/05/05


4.2.6. IDENTIFICACIÓN DE LOS USUARIOS
Pasamos seguidamente a comentar el código realizado para identificar los
usuarios en nuestra aplicación, dando así acceso a los usuarios registrados.

Este es el código que se ejecutará al pulsar el botón Entrar, comprobando la
identidad de los usuarios.


PagLogin.ascx
Session("OUsuario") = New ClsUsuario
If
CType(Session("OUsuario"),ClsUsuario).CalcularLogin(txtUsuario.Text,
txtPassword.Text) = True Then

'Usuario correcto
FormsAuthentication.RedirectFromLoginPage(txtUsuario.Text,
chkPersistentes.Checked)

Else
'Usuario no correcto o fallo de identificación
FormsAuthentication.SignOut()
 Session("oUsuario") = Nothing
 Response.Redirect("default.aspx", True)
 End If

Las variables de tipo session las utilizaremos cuando queramos trabajar con
variables sin el problema de tener que compartirlas al estilo:
shared i as integer

Las variables de tipo session no tienen tipo de datos asociado, en lo que sí
luego queremos asignarle un tipo haremos: Ctype(session("i"), Tipo).

En el código anterior, estamos trabajando con la variable oUsuario de tipo
Session. La variables session pueden ser de tipo objeto. A esta variable la
convertimos a la clase Usuario con CType, y una vez convertida llamamos al
método de la clase usuario CalcularLogin.

-Otra de las cosas que tenemos que tener en cuenta para la autenticación de
los usuarios es poner en web.config el siguiente código:

Al estar este código en web.config, se ejecutará para todos los formularios.

<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="Default.aspx" protection="All"
timeout="60" />
</authentication>

<authorization>
    <deny users="?" />
</authorization>

Gracias a esto, en el formulario principal se me activará el formulario de Login.
Hay que importar en el formulario el namespace: Imports System.web.security.


                                                                                51
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Programación ASP .NET                                                        20/05/05




4.2.7. OBTENER NOTICIAS
Para explicar esta parte vamos ha poner como ejemplo el código del formulario
CtrNoticiaObtener.ascx

Le hemos pasado a través de la url el identificador de la noticia.

If IsNumeric(Request.Params("NOT_guid")) Then
            IDNoticia = Request.Params("NOT_guid")
Else
'el identificador de la noticia no es numerico
 Response.Redirect("Default.aspx")
End If

If Not Page.IsPostBack And IDNoticia > 0 Then
            If CargarDatos() = True Then
            lblRespuesta.text="datos cargados correctamente"
            End If
End If

Si es la primera vez que cargamos la página, el IsPostBack se encarga de
preguntar si es la primera vez que cargo la página, y además comprobamos
que el identificador proporcionado es positivo, una vez realizado esto
llamamos a la función CargarDatos.

Private Function CargarDatos() As Boolean
'nos creamos el comando para ejecutar el procedimiento sobre la base
de datos, le tenemos que pasar el nombre del procedimiento almacenado,
y la conexión que va a utilizar:
        Try
            If MiNoticia.obtenerNoticia(IDNoticia) = True Then
                'codigo CORRECTO, hay resultado
                lblDescripcion.Text = MiNoticia.Description
                lblFecha.Text = MiNoticia.Pubdate
                lblPubDate.Text = MiNoticia.Pubdate
                lblTitulo.Text = MiNoticia.Title
                lblComments.Text = MiNoticia.Comments
                lblSource.Text = MiNoticia.Source
                lblImpacto.Text = MiNoticia.Impacto
                lblLink.Text = MiNoticia.Link

                   LnkPage.HRef = MiNoticia.Link

                   CargarImagen(IDNoticia)

                  lblAutor.Text = ObtenerAutor(MiNoticia.USU_ID)
                  'en caso de que todo haya ido bien, devolvemos true
                  Return True
              Else
                  'codigo incorrecto
                  Return False
              End If




                                                                                  52
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Programación ASP .NET                                                      20/05/05




4.2.8. TEMAS ADICIONALES
-La captura de errores la hacemos con este tipo de estructura de código:
      Try
      ...........CÓDIGO..........

       Catch ex As Exception
           MsgBox(ex.Message)
       End Try



-El diseño del Calendario, viene especificado en el siguiente código:
<asp:calendar id="Cal" runat="server" CssClass="CalendarText"
FirstDayOfWeek="Monday" ForeColor="#C0C0FF"
DayNameFormat="FirstTwoLetters" BorderColor="White" Font-Names="Arial"
Font-Size="XX-Small" BorderStyle="Solid" ShowNextPrevMonth="False"
ShowTitle="False" BorderWidth="5px">

<todaydaystyle Font-Bold="True" ForeColor="White"
BackColor="#990000"></todaydaystyle>

<daystyle BorderWidth="2px" ForeColor="#666666" BorderStyle="Solid"
BorderColor="White" BackColor="#EAEAEA"></daystyle>

<dayheaderstyle ForeColor="#649CBA"></dayheaderstyle>

<selecteddaystyle Font-Bold="True" ForeColor="#333333"
BackColor="#FAAD50"></selecteddaystyle>

<weekenddaystyle ForeColor="White"
BackColor="#BBBBBB"></weekenddaystyle>
<othermonthdaystyle ForeColor="#666666"
BackColor="White"></othermonthdaystyle>

</asp:calendar>

-En web.config, podemos indicarle la cadena de conexión:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- application specific settings -->
<appSettings>
<add key="ConnectionString" value="workstation id=FERNANDO;packet
size=4096;integrated security=true; initial catalog=DocuNews" />
</appSettings>

Las ventajas que se obtienen con trabajar de esta forma, es que el
mantenimiento de la aplicación se hace mucho más sencillo, puesto que con
modificar los parámetros de la conexión en web.config se cambian en toda la
aplicación.


                                                                                53
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Programación ASP .NET                                                      20/05/05




-Cuando el usuario pulsa sobre el botón para eliminar una noticia, se ha puesto
una ventana con un mensaje de confirmación.

Gracias al siguiente código Java conseguimos que antes de realizar la
operación nos pregunte que deseamos hacer:

Button2.Attributes.Add("onClick", "javascript:return confirm('¿esta seguro de
borrar este rol?');")

-Para guardar la ip del que hace la consulta:
request.UserHostAddress.ToString
De esta forma almacenamos todas las consultas que hacen nuestros usuarios
con su IP.

-Por otro lado, es interesante comentar que hemos trabajado con el servicio
que proporciona Microsoft Search (Index Server), gracias a esto obtenemos
toda la potencia para realizar una búsqueda lingüística de caracteres de datos
sobre una misma tabla. Una búsqueda lingüística opera en palabras y frases, lo
que permite buscar palabras o frases similares, distintas formas de una palabra
o palabras que se encuentran una cerca de la otra.

Para poder realizar consultas complejas, lo primero que tenemos que hacer es
habilitar la base de datos.
sp_fulltext_database 'enable'

Para activar una tabla:
sp_fulltext_table 'noticia', 'activate'

Para saber que efectivamente se ha actualizado para poder realizar sobre ella
consultas de texto. Ejecutaremos la siguiente consulta:

SELECT DATABASEPROPERTY('DocuNews','IsFullTextEnabled')

Una vez realizados los pasos anteriores, ya podremos realizar consultas sobre
el texto, un ejemplo de consulta con el operador CONTAINS podría ser:

DSNoticia = MiNoticia.leeDataSet("select * from Noticia WHERE
CONTAINS( NOT_Title, '" & Request.Params("Title").ToString & "')")

Este operador utiliza una notación funcional en la que el primer parámetro es el
nombre de la columna que esta buscando y el segundo parámetro es una
condición de búsqueda de texto. De esta forma conseguiremos obtener
resultados más eficientes que con el operador LIKE.




                                                                                54
Fernando Leandro Baladrón                                 Proyecto fin de carrera
Programación ASP .NET                                                   20/05/05

Una de las desventajas de los catálogos es que tendremos que actualizarlos
periódicamente, para asegurarnos que los resultados de las búsquedas son
correctos.


- La generación de nuestras propias noticias RSS, la hacemos a través del
dataset. En el dataset dstUtilidad tenemos almacenadas las 12 noticias más
recientes y más destacadas.

Los dataset tienen un método que les permite leer el esquema xsd.
En este esquema le definimos el esqueleto de nuestro fichero xml.

dstUtilidad.ReadXmlSchema("noticias.xsd")

Nos hemos creado el siguiente fichero xsd, donde hemos definido el siguiente
esquema:




Los elementos los definimos con la sintaxis:

xs:element name=”nombredelelemento” type=”xs:string” minOccurs=”0”


El siguiente paso es generar el fichero xml. Esto lo hacemos a través del
método WriteXml del dataset. Este método es el que se encarga de generar el
fichero noticias.xml con las noticias en formato RSS.
dstUtilidad.WriteXml("noticias.xml")




                                                                             55
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Diseño web                                                                20/05/05

5. Diseño web

En este apartado nos vamos a centrar en tres aspectos. Un primer aspecto el
diseño de navegación, en este apartado nos centraremos en explicar como
queremos que esté organizada la página. Un segundo apartado, lo
dedicaremos a resaltar la gran importancia de las hojas de estilo, y
detallaremos la hoja de estilos que hemos desarrollado. Y un tercer punto y no
menos importante dedicado al posicionamiento en Google.

5.1 Diseño de Navegación:

En este apartado nos vamos a centrar en el esqueleto de la página web.

A la hora de decidir como vamos ha organizar la información debemos tener
bien acotado a que usuarios va ha ir dirigida nuestra aplicación. Para esto
recomendamos consultar el ANEXO II en el que explicamos que nuestra portal
web va ha ir destinado específicamente a los jóvenes.

Comenzamos definiendo como se va ha encontrar organizada la información:

-El logo en la parte superior izquierda (ya que esta estudiado que lo primero
que vemos siempre es lo que esta en la parte superior izquierda).

Según estudios realizados, cuando un usuario entra en la web sigue el
siguiente trazado con la vista:




              Fuente consultada: eyetrack 2004 [10-04-05]




                                                                               56
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Diseño web                                                                20/05/05

-Despues tendremos la fecha actual, algo muy importante dentro del mundo de
las noticias, ya que hay que dar una sensación de actualidad y de constante
cambio.

-Debajo de la fecha nos encontramos con las diferentes categorías/canales
esta opción la tendremos tanto verticalmente como horizontalmente.

-En el centro tendremos el listado de las sucesivas noticias, ordenados por
fecha y por impacto, dentro de cada noticia podre pinchar para ampliar la
información.

-En la parte de la izquierda, debajo del menú, también tendremos una
búsqueda sencilla, para que el usuario pueda buscar directamente por titulo,
así como un enlace para realizar una búsqueda avanzada, donde se podrá
buscar una noticia por la mayoría de los campos posible.

-ya para finalizar la parte de la izquierda, nos encontramos con un calendario
donde, a modo de hemeroteca, el usuario podrá ir visitando las noticias de los
diferentes días seleccionados.

-En vez situados en la derecha dispondremos de una parte para identificarse
como usuario. Esta parte desaparecerá una vez se haya identificado el usuario
como tal.

-Además tendremos otro listado, pero en tamaño más reducido, con las noticias
de mayor impacto donde se mostraran 5 de las noticias de mayor impacto y
más recientes.

-Por último, comentar la importancia del pie de página, el cual da sensación de
termino, consiguiendo además, encuadrar la información en el centro.

-Hemos procurado que siempre este visible en la parte superior central, la
fuente de autoría, intentando conseguir que al usuario no se le olvide donde se
encuentra.




                                                                               57
Fernando Leandro Baladrón                                             Proyecto fin de carrera
Diseño web                                                                          20/05/05




En esta imagen, se muestra todo lo comentado anteriormente.




           Fig.1.Diseño de la organización de la página principal (Default.aspx)




                                                                                         58
Fernando Leandro Baladrón                                             Proyecto fin de carrera
Diseño web                                                                          20/05/05




-Otra de las páginas fundamentales en nuestro portal web será la que
obtendremos una vez hayamos pinchado en una noticia en concreto y
queramos mostrar toda la información en detalle.

-El esqueleto es similar, lo que cambia es que ahora en el centro lo que
tendremos será la información de esa noticia, incluida la foto asociada a la
noticia.

-En la parte de la derecha, tendremos un listado de las noticias que tienen
alguna de las palabras claves de la noticia del centro.




         Fig.2.Diseño de la organización de la página con una noticia en concreto.




                                                                                         59
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Diseño web                                                                 20/05/05




Los menús de categorías son totalmente parametrizables. Podremos
modificarlos en función del cliente final.

En nuestro caso hemos supuesto que va destinado a un centro universitario
(VER ANEXO II), las categorías que nos han solicitado inicialmente son:

-Actualidad: En esta categoría estará todo lo que pasa en el mundo. Uno de los
objetivos fundamentales del portal es que los jóvenes no sean ajenos a la
sociedad.

-Deportes: El deporte realza nuestros valores como seres humanos.
Informaremos sobre el deporte en general, así conseguiremos motivar a hacer
deporte.

-Documentación: puesto que el portal estará ubicado en un centro de
documentación. En esta categoría mostraremos todas las noticias relacionadas
con las bibliotecas, con la organización de la información, buscadores...

-Formación: Los centros universitarios se dedican a la formación de sus
usuarios, por esto hemos considerado interesante recopilar todo lo relacionado
con la formación en general.

-Iglesia: por ser una universidad con trasfondo cristiano.

-Informática: Las nuevas tecnologías están en alza, y se considera que es
importante que los jóvenes estén informados con todo lo que les puede
repercutir en su futuro como profesionales.

-Ocio / Espectáculos: No solo es estudiar, los jóvenes disponen de su tiempo
libre y que hagan un buen uso de él será nuestro objetivo.

-Valencia: Por pertenecer a Valencia, se piensa que muchos de los usuarios
estarán interesados en la información que atañe a su ciudad.

Para abastecer las siguientes categorías hemos usado el modulo de
importación. (para obtener más información consultar el apartado 6.2 del
trabajo).

Estas categorías podrán variar en función de los test de usabilidad y la
demanda de los usuarios.




                                                                                60
Fernando Leandro Baladrón                                             Proyecto fin de carrera
Diseño web                                                                          20/05/05




Por último, me gustaría comentar que por regla general la realización de un
portal web es un proceso complejo en el que hay tener en cuenta las siguientes
partes:

- Programación y tecnologías.
- Arquitectura de la Información.
- Diseño de interacción,Usabilidad
- Accesibilidad y Diseño Información .
- Diseño Gráfico.




               Fig 3. Esquema de las etapas de la realización de un portal.
                              Autor: Francisco Tosete Herranz.



En la figura 3, se puede ver un gráfico en forma de rueda de las diferentes
disciplinas implicadas en el diseño de sitios web.

En esta sección, nos hemos centrado en el diseño de información.




                                                                                         61
Fernando Leandro Baladrón                                            Proyecto fin de carrera
Diseño web                                                                         20/05/05


La estructura que nos quedaría después de lo comentado anteriormente, sería
como se muestra en la imagen de abajo:




                            Fig.4. Zonas para la página principal.


Con lo que quedaría el siguiente resultado:




                             Fig.5. Página principal resultante.




                                                                                        62
Fernando Leandro Baladrón                                            Proyecto fin de carrera
Diseño web                                                                         20/05/05




Para el segundo esquema de página que hemos comentado anteriormente,
obtenemos el siguiente resultado:




                 Fig.6.Zonas para la página con una noticia en concreto.

Con lo que quedaría el siguiente resultado:




                       Fig.7. Página con una noticia en concreto.




                                                                                        63
Fernando Leandro Baladrón                                              Proyecto fin de carrera
Diseño web                                                                           20/05/05




Una vez, nos hemos validado cambiaría la parte inferior, apareciéndonos una
serie de nuevos iconos:

       -Eliminar Noticia.
       -Modificar Noticia.
       -Asociar Palabras Clave.

Formulario después de que nos hemos identificado como usuarios, y además
hemos seleccionado una noticia:




                     Fig.8.Opciones para los usuarios identificados.



Como se muestra en la imagen la noticia tiene asociada la palabra clave
“Literatura”, a la derecha aparecen las noticias que tienen asociada esa palabra
clave.




                                                                                          64
Fernando Leandro Baladrón                                               Proyecto fin de carrera
Diseño web                                                                            20/05/05




Este sería el formulario de modificación de la noticia:




       Fig.9.Formulario para la modificación de los campos de la noticia.

En la fig.9 se muestran todos los campos posibles que tiene una noticia. Los
campos que tienen (*) significa que son obligatorios. El id de la noticia no se
podrá modificar. En el campo description podremos ponerle etiquetas html que
luego interpretará el navegador.

El sistema detecta el usuario activo y lo compara con el autor de la noticia, se
podría hacer que solo pueda modificar la noticia el autor de la noticia, nosotros
en un principio hemos sido más permisivos y dejamos que la modifique
cualquier persona aunque no sea el autor de la noticia.




                                                                                           65
Fernando Leandro Baladrón                                            Proyecto fin de carrera
Diseño web                                                                         20/05/05




En este formulario se puede ver otro de los aspectos a los que hemos dado
mucha importancia, como es el de la asociación de las palabras clave. El
usuario podrá seleccionar las palabras clave que quiera asociar a una noticia.
El listado de palabras clave lo hemos extraído del tesauro EUROVOC
(consultar ANEXO IV).




                 Fig.10.Formulario para la asociación de palabras clave.

En la fig.10 se muestra el formulario para la asociación de las palabras clave.
En este caso en concreto, el usuario ha asociado a la noticia las palabras
clave: Iglesia y Gobierno.

La fig.11 corresponde al formulario para la búsqueda avanzada. Los campos
por los que puedo buscar son: el titulo, la descripción, el origen, los
comentarios, la fecha, la categoria y el valor de impacto.




              Fig.11.Formulario para la búsqueda avanzada.




                                                                                        66
Fernando Leandro Baladrón                                              Proyecto fin de carrera
Diseño web                                                                           20/05/05

El resultado para la búsqueda anterior se muestra en la siguiente imagen:




              Fig.12.Resultados para la búsqueda avanzada.



Estos formularios han sido probados tanto en Mozilla, como en Internet
Explorer. Comprobando su funcionamiento correcto en ambos navegadores.
En la figura 13, se ha capturado una pantalla desde el navegador Mozilla.

En esta pantalla se muestra además como el usuario ya se ha identificado,
desapareciendo el cuadro para identificarse como usuario, en su lugar
aparecen dos nuevos iconos, uno para insertar una nueva noticia y otro para
cerrar la sesión. Una vez identificado el usuario, debajo del logo aparecerá un
mensaje de bienvenida.




                     Fig.13.Portal visto desde el navegador Mozilla.




                                                                                          67
Fernando Leandro Baladrón                                  Proyecto fin de carrera
Diseño web                                                               20/05/05

Dentro de los elementos del diseño destacar el tema de los iconos, acordes al
diseño de la totalidad de la página web:

    Añadir una nueva noticia.

      Noticias relacionadas con la del centro

       Borrar la noticia.

       Ir al link de la noticia.

      Indicador y separador entre noticia y noticia
.
       Ver detalles de la noticia

       Noticias destacadas

       Cerrar sesión del usuario.

       Fotografía de la noticia no disponible.

       Enviar un email al administrador del portal.

       Actualizar la noticia.

       Canal RSS disponible con las noticias del portal.

       Para relacionar las palabras clave a una noticia.

       Búsqueda avanzada.




                                                                              68
Fernando Leandro Baladrón                                          Proyecto fin de carrera
Diseño web                                                                       20/05/05

Por otro lado, también es interesante comentar como la fuente de autoría, la
cual hemos procurado que esté siempre visible.

La hemos realizado dividiéndola en cuatro imágenes que formaran parte de
una tabla dividida en cuatro columnas, una de las columnas (concretamente la
tercera) tendrá como fondo (background) una de las imágenes que tiene 1px de
anchura. El detalle más importante es que le hemos especificado que de
anchura tiene 100%, así conseguimos que se autoajuste a las necesidades de
la pantalla. Consultar imagen siguiente.




                 Fig.14.Diseño de la fuente de autoría con Dreamweaver.




-Por último comentar el pie de la página, el cual nos permitirá encuadrar la
información en el centro.

Destacar que tenemos el icono de RSS, si pinchamos sobre dicho icono
obtendremos una página con la información de las 12 últimas noticias en
formato RSS, esa será la dirección de nuestro canal RSS en la que la gente
podrá importarse nuestras noticias.




                            Fig.15.Pie del Portal DocuNews




                                                                                      69
Fernando Leandro Baladrón                                  Proyecto fin de carrera
Hoja de estilos -CSS                                                     20/05/05



4.2. Hoja de estilos CSS
Las hojas de estilo en cascada (CSS) le permiten a los diseñadores y
desarrolladores web separar la estructura de la presentación.

Gracias a la hojas de estilo conseguimos la uniformidad del aspecto y el
funcionamiento de todo un sitio.

Al separar la estructura (o contenido) de la presentación se aumenta la
uniformidad del diseño web. Con CSS, la presentación se define con un
lenguaje CSS orientado a la disposición, que se puede aplicar a un conjunto de
documentos HTML, lo que permite hacer un cambio completo de la
presentación en todos los documentos a la vez.

Un desafío común al cual se enfrentan los desarrolladores web al asumir la
administración de sitios existentes es el código escrito por otros
desarrolladores. En muchos casos, se enfrentan a código HTML de mala
calidad que puede además depender de características que no han sido
documentadas o hacks y prácticas de codificación específicas.

Además, la falta de documentación con frecuencia puede ser un problema.
Gracias a que las especificaciones, tales como CSS, están bien documentadas,
una persona que hereda un código que cumple con las normas puede
comenzar a trabajar de inmediato, y no tendrá que familiarizarse con las
prácticas de codificación del desarrollador anterior. Esto además reduce
considerablemente la dependencia en un solo proveedor.

Si diseñamos ajustándonos a un estándar podemos estar seguros de que los
navegadores que han sido diseñados para ajustarse a dicho estándar
representarán nuestros contenidos tal y como los habíamos imaginado.

Gracias a su uso conseguiremos alcanzar una representación única y universal
en todos los navegadores y dispositivos que respeten el estándar propuesto en
que nos hayamos basado.

El problema de usabilidad que supone construir sitios accesibles por personas
con minusvalía. Una de las consecuencias del uso de la filosofía CSS es que,
debido a la separación de los contenidos y del diseño se minimiza el contenido
redundante entre páginas.

Cuando diseñamos respetando los estándares provocamos que los
analizadores de los motores de búsqueda clasifiquen mejor nuestros
contenidos.

Una de las causas de ello es el empleo de los elementos semánticos a los que
nos obligan dichas normas, los cuales sirven para dotar de importancia a
determinadas partes de nuestros contenidos.




                                                                              70
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Hoja de estilos -CSS                                                        20/05/05

Igualmente la separación entre contenidos y diseño posibilita que en la lectura
de cada una de nuestras páginas dichos analizadores encuentren un ratio
mayor de contenidos útiles que de código destinado a la representación de los
mismos.

Para cargar el CSS, en la página principal, hemos puesto lo siguiente:

<HEAD>
<link href="DocuNews.css" rel="stylesheet" type="text/css">


A continuación, mostramos el código de la hoja de estilos que estamos
utilizando:

* ================================
    CSS STYLES FOR DocuNews
    v1.0, 20/05/2005
   ================================
*/

/**************************************************************/
 /*LISTADO DERECHA NOTICIAS ..............................*/


 /* Estilo Lista derecha Noticias Titulo */
 .ListaDerechaTituloNoticia
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:    normal;
    color: #666644;
   }

 /* Estilo Noticias Resumen */
.ListaDerechaResumenNoticia    {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:normal;
    color:#333333;
    text-align:justify;

}
 /* Estilo Noticias Resumen */
A.ListaDerechaLink,A.ListaDerechaLink:Link
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 9px;
    font-weight:normal;
    color:#DC0303;
}

A.ListaDerechaLink:Visited
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 9px;
    font-weight:normal;
    color:#8c0202;
}



                                                                                 71
Fernando Leandro Baladrón                            Proyecto fin de carrera
Hoja de estilos -CSS                                               20/05/05



.ListaDerechaLinkTodasNoticias {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:bold;
    color:black;
}
/*FIN LISTA derecha NOTICIAS....................................*/
/**************************************************************/



/* Estilo Noticias detalles***************************************/

 .NoticiaDetalleTitulo
{
    font-family: Verdana, Helvetica, sans-serif;
    /*Estaba a 18*/
    font-size: 16px;
    font-weight: bold;
    color: white;
    background-color:#8c0202;
    text-align:left;
}
 .NoticiaDetalleFecha   {
    font-family: Verdana, Helvetica, sans-serif;
    /*Estaba a 18*/
    font-size: 16px;
    font-weight:bold;
    color:white;
    background-color:#8c0202;
    text-align:center;
}
 /* Estilo Noticias Resumen */
 .NoticiaDetalleResumen   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 12px;
    font-weight:bold;
    color:#666644;
    text-align:justify;
}

.NoticiaDetalleTexto   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 12px;
    font-weight:normal;
    color:#666666;
    text-align:justify;
}

.NoticiaDetalleTextoNegrita   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 12px;
    font-weight:bold;
    color:#444444;
    text-align:justify;
}
.NoticiaDetalleTextoLink    {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;



                                                                        72
Fernando Leandro Baladrón                            Proyecto fin de carrera
Hoja de estilos -CSS                                               20/05/05

    font-weight:normal;
    color:#8c0202;
    text-align:left;
}

.NoticiaDetalleMasLink   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 12px;
    font-weight:bold;
    color:#8c0202;
    text-align:left;
}
.NoticiaDetalleImagen   {
      vertical-align:middle;
}
.NoticiaDetalleTituloLinks   {
    font-family: Verdana, Helvetica, sans-serif;
    /*Estaba a 18*/
    font-size: 16px;
    font-weight:normal;
    color:white;
    background-color:#8c0202;
    text-align:center;
}


/*FIN Noticia Detalles ........................................*/


 /* Estilo Noticias Resumen */
.LoginEtiquetas   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    text-decoration:bold;
    text-align:right;
    }

 /* Estilo Noticias Resumen */
.LoginCajas   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: XX-Small;
    color:Black;
}


/*
Cajas***************************************************************/

.CajaInactiva
{
      font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    color: black;
    text-align:left;
      background-color:#CCCCCC;
}
/*****************************************************************/

/*Barra de
SITUACION**********************************************************/
 .BarraSituacion



                                                                        73
Fernando Leandro Baladrón                            Proyecto fin de carrera
Hoja de estilos -CSS                                               20/05/05

{
      font-family: Verdana, Helvetica, sans-serif;
      font-size: 9px;
      background-color:white;
      color: black;
      text-align:left;
}
 .BarraSituacionSituado
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 9px;
    font-weight:bold;
    background-color:white;
    color: #8C0202;
    text-align:left;
}
/*FIN BARRA SITUACION
******************************************************/


/*Posibilidades Menu´s General**************************************/

    .Menu2Titulo
{
     font-family: Verdana, Helvetica, sans-serif;
     font-size: 14px;
     font-weight:bold;
     background-color:white;
     color: #8c0202;
     text-align:left;
}

 .Menu2TituloSeleccionado
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 14px;
    font-weight:bold;
    background-color:white;
    color:darkred;
    text-align:left;
    text-decoration:underline;
}


A.Menu2SinSeleccionar,A.Menu2SinSeleccionar:link
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:bold;
    background-color:white;
    color: black;
    text-align:left;
    text-decoration:none;
}

A.Menu2SinSeleccionar:hover
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:bold;
    background-color:white;



                                                                        74
Fernando Leandro Baladrón                          Proyecto fin de carrera
Hoja de estilos -CSS                                             20/05/05

    color: black;
    text-align:left;
    text-decoration:underline;
}
.Menu2Icono
{
      vertical-align:middle;
      text-align:center;
}

 .Menu2Seleccionado
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:bold;
    background-color:white;
    color: #8c0202;
    text-align:left;
    text-decoration:none;
}

/*Estilos justos a utilizar para la web*/

 .TituloGEneral
{
    font-family: Verdana, Helvetica, sans-serif;
    /*Antes estaba a 18*/
    font-size: 14px;
    font-weight: bold;
    color: white;
    background-color:#8c0202;
    text-align:left;
}

 .TituloGEneral2
{
    font-family: Verdana, Helvetica, sans-serif;
    /*Antes estaba a 18*/
    font-size: 11px;
    font-weight: bold;
    color: white;
    background-color:#8c0202;
    text-align:left;
}

 /* Subtitulo */
 .SubTitulo
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 14px;
    font-weight:    normal;
    color: #666644;
    /*text-decoration:underline;*/
    /*Solo se subrayan los que son links*/
    text-align:justify;
}

.TituloCategoria
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 12px;



                                                                      75
Fernando Leandro Baladrón                          Proyecto fin de carrera
Hoja de estilos -CSS                                             20/05/05

    font-weight:bold;
    color:#666644;
    text-align:left;
}

.TextoNormal   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 11px;
    font-weight:normal;
    color:#333333;
    text-align:left;
}

.TextoNormalSubrayado   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 11px;
    font-weight:normal;
    text-decoration:underline;
    color:#333333;
    text-align:left;
}

.TextoNormalNegrita   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 11px;
    font-weight:bold;
    color:#333333;
    text-align:left;
}
.TextoNormalCentrado   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 11px;
    font-weight:normal;
    color:#333333;
    text-align:center;
}

.TextoNormalJustificado   {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 11px;
    font-weight:normal;
    color:#333333;
    text-align:justify;
}

.TextoNormalPeque {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:normal;
    color:#333333;
    text-align:left;
}

.TextoNormalFecha {
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:bold;
    color:#8c0202;
    text-align:left;
}




                                                                      76
Fernando Leandro Baladrón                            Proyecto fin de carrera
Hoja de estilos -CSS                                               20/05/05

 .EditarEtiquetas
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 10px;
    font-weight:bold;
    color: black;
    text-align:right;
}

.EditarCajas
{
    font-family: Verdana, Helvetica, sans-serif;
    font-size: 12px;
    color: black;
    text-align:left;
}



/*Utilizado para las etiquetas de error de edición ETIQUETAS DE
ERROR*/
.EtiquetaError
{
      font-family: Verdana, Helvetica, sans-serif;
      color:#e23232;
      font-size:10px;
      text-align:left;
}

/*Tira Lateral ->utilizado para el fondo de las tiras laterales de
algunos documentos*/
.TiraLateral
{
      background-color:#8c0202;
}

.LinkImagen   {
  color:White;
  background-color: white;
  border:0;
}


/*********************************************************************
*********/
/*FIN Estilos justos a utilizar para la web*/
/*********************************************************************
*********/




                                                                        77
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Estudio posicionamiento en Google                                            20/05/05

4.3 Estudio del posicionamiento en Google
En el apartado diseño web, hemos consideramos interesante no obviar las
consecuencias que puede acarrearnos nuestro diseño sobre el posicionamiento
logrado en Google. Uno de los detalles más interesantes es el uso de meta-
etiquetas, a continuación vamos ha explicar como hemos trabajado este tema.

Para estudiar el posicionamiento nos hemos basado en el servicio Ad-word de
Google. Gracias a este servicio Google nos sugiere una serie de palabras
clave en base a las búsquedas que realizan sus usuarios.

Este servicio esta disponible en la dirección web: https://adwords.google.com/


Si buscamos por ejemplo la palabra Noticias, Google nos indica que los
usuarios que han buscado noticias también han buscado una serie de palabras
como son:

 -Ultimas, tercera, actualidad, actuales, cuarta, noticia, efe, recientes, insolitas
imparcial.

Seguidamente muestra consultas frecuentes que contienen el término noticias.
Con la palabra Noticias obtenemos:

-Noticias de, las ultimas noticias, diario de noticias, noticias juridicas, grupos
de noticias, revista noticias, antena 3 noticias, noticias actuales, noticias
deportivas, las noticias.




                                                                                  78
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Estudio posicionamiento en Google                                           20/05/05




Si buscamos por ejemplo la palabra Universidad, Google nos indica que los
usuarios que han buscado Universidad también han buscado una serie de
palabras como son:

-Universidades, salamanca, UNED, facultad, selectividad, UNAM, catolica,
carreras, tecnologico, andes.

Además muestra consultas frecuentes que contienen el término Universidad.

Con la palabra Universidad obtenemos:

-Universidad de, universidad nacional, la universidad, universidad del,
universidad autonoma, universidad nacional de, universidad catolica,
universidad autonoma de, universidad complutense, universidad de chile

El titulo debe describir bien la página donde se encuentra.

Las etiquetas META se sitúan en la cabecera del documento HTML, entre las
etiquetas <HEAD> y </HEAD>

La etiqueta META con la descripción tiene esta sintaxis:

<META name="description" content="descripcion de la página aquí">

La descripción puede ser parecida al titulo, si cabe un poco más descriptiva y
siempre debe ser una frase lógica completamente legible.

La etiqueta META con las palabras clave tiene esta otra forma, muy parecida:

<META name="keywords" content="palabra clave 1,palabra 2,palabra3">

Las frases clave han de estar separadas por comas y no deben repetirse.




                                                                                 79
Fernando Leandro Baladrón                                          Proyecto fin de carrera
Estudio posicionamiento en Google                                                20/05/05

Una obtenidas las frases clave que Google nos ha indicado como más
importantes, vamos a mostrar como nos quedaría el código html de nuestra
página principal con dichas etiquetas.

<HEAD>
<title>DocuNews: Portal de Noticias</title>

<!-- Bienvenido a DocuNews -->
<!-- Portal de Noticias de Actualidad -->
<!-- Proyecto fin de carrera Fernando Leandro -->

<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">

<meta name="description" content="Pagina web de noticas, noticias de
actualidad RSS">

<meta name="keywords" content="noticias de, las ultimas
noticias,informacion,documentacion,noticias,actualidad,proyecto,RSS,
DocuNews">

<META   name="language" content="es">
<META   name="revisit-after" content="1 month">
<META   name="rating" content="General">
<META   name="author" content="Fernando Leandro Baladron">
<META   name="owner" content="Fernando Leandro Baladron">
<META   name="robot" content="index, follow">




                                                                                        80
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Gestión local                                                               20/05/05

5. Gestión local
Este quinto y último nivel está dedicado a la parte referida a la gestión local de
la aplicación, que está dividido en dos secciones. Una primera sección,
dedicada a la aplicación de gestión local de noticias y una segunda sección
para el modulo de importación de noticias.

5.1 Aplicación para la gestión local de noticias
La idea de realizar una aplicación para gestión local de noticias, surge debido a
la necesidad de disponer de una aplicación a nivel local para la gestión total de
los contenido por parte de los administradores. Desde esta aplicación se
podrán realizar funciones que no están contempladas en la interfaz web, tales
como la gestión de categorías y la gestión de usuarios.

No vamos a contar nada a nivel de programación, simplemente nos vamos a
dedicar a mostrar la idea de esta aplicación, la cual nos permitirá gestionar
todos los contenidos de forma local.

Hay que decir que la programación difiere un poco de la especifica para web,
pero las clases utilizadas son exactamente las mismas para ambas
aplicaciones.

A continuación, se muestra la pantalla principal con el menú de inicio, desde
aquí podremos seleccionar las diferentes opciones: gestión de las categorías,
gestión de las noticias, gestión de las palabras clave y gestión de los usuarios.

Comentar que se ha cuidado que todos los formularios tengan la misma
estructura para no marear al usuario, además de utilizar iconos fácilmente
reconocible e intuitivos.




                             Imagen 1.- Menú Principal




                                                                                 81
Fernando Leandro Baladrón                                          Proyecto fin de carrera
Gestión local                                                                    20/05/05




Si entramos dentro de la Gestión de las Categorías/Canales, vemos que
tenemos un formulario desde el cual podemos gestionar todas las categorías
que tenemos actualmente,            el usuario de esta aplicación podrá
modificar/borrar/insertar cualquier categoria que desee. A continuación se
muestra una captura de lo que sería este formulario, donde se nos muestra
todos los campos que tiene una categoria, aquellos que tiene un (*) serán
campos obligatorios.




                  Imagen 2.- Formulario gestión de Categorías/Canales



El siguiente formulario que tendremos disponible será el de la gestión de
Noticias, este es formulario más importante ya que nos permitirá controlar lo
que va ha ser el verdadero núcleo de nuestro portal, que sin duda alguna son
las noticias que mostremos. En este formulario, al igual que el anterior,
podremos modificar/insertar/borrar noticias. Los campos con el símbolo(*) son
campos que consideramos obligatorios. Comentar la gran importancia del
campo impacto donde podremos indicarle a la noticia un numero del 1 a 10 en
función del nivel de impacto que consideremos que tiene la noticia. Además
disponemos de una pestaña para asociarle una imagen a la noticia, en esta
pestaña podremos además describir la imagen (ver imagen 4). También
disponemos de una tercera pestaña en la que indicaremos que palabras clave



                                                                                      82
Fernando Leandro Baladrón                                           Proyecto fin de carrera
Gestión local                                                                     20/05/05

deseamos asociar a esa noticia en concreto (ver imagen 5). Dentro de los
botones del menú inferior destacaríamos el de listado desde el cual se podrán
hacer búsquedas por los diferentes campos de los que dispone la noticia y
guardar los resultados en XML (Ver imagen 6).




                       Imagen 3.- Formulario gestión de Noticias.




                                                                                       83
Fernando Leandro Baladrón                                           Proyecto fin de carrera
Gestión local                                                                     20/05/05




                 Imagen 4.- Formulario gestión de Noticias-Pestaña Imagen.




           Imagen 5.- Formulario gestión de Noticias-Pestaña Palabras Clave.




             Imagen 6.- Formulario Listado de Noticias.




                                                                                       84
Fernando Leandro Baladrón                                            Proyecto fin de carrera
Gestión local                                                                      20/05/05




Dentro del menú principal aparte de la gestión de las categorías y de las
noticias, tenemos la gestión de las palabras clave. En este formulario el usuario
podrá añadir las palabras clave que desee además de asociar a cada palabra
clave los términos relacionados que el le indique (Ver imagen 7 y 8).




                     Imagen 7.- Formulario Gestión Palabras Clave.




              Imagen 8.- Formulario Gestión Palabras Clave-Pestaña Relacionadas.


                                                                                        85
Fernando Leandro Baladrón                                 Proyecto fin de carrera
Gestión local                                                           20/05/05




Por último tendremos, el formulario desde el cual podremos
modificar/insertar/borrar usuarios, a este formulario sólo tendran acceso los
administradores. (Ver imagen 9)




             Imagen 9.- Formulario Gestión Usuario.




                                                                             86
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Modulo de importación                                                       20/05/05

7. Modulo de importación
Hemos implementado un modulo de importación de Noticias de esta forma
obtendremos de forma automática las noticias, evitándose la labor de tener que
introducirlas.

La idea de realizar una aplicación para importación de noticias, surge debido a
que estamos trabajando con un formato standard como es RSS, esto nos
permite compatibilizar totalmente nuestras noticias con las de otras fuentes, ya
que nuestra base de datos está adaptada a dicho soporte. Desde esta
aplicación local podremos decidir que fuentes deseamos importar y cuales no,
tal y como se muestra en la imagen de abajo.

Esta aplicación será utilizada por el administrador del sistema de forma local.

Las fuentes de las que vamos a obtener información serán las siguientes:




A continuación mostramos un extenso listado de las fuentes que tenemos
disponibles en nuestro modulo de importación.

En esta dirección tenemos la dirección de más 250 FEEDs en español:
http://www.syndic8.com/feedlist.php?ShowLanguage=es&ShowStatus=Syndica
ted

Hemos trabajado con una DLL que nos ha permitido extraer toda la información
de los diferentes canales, disponible en el Blog de Jorge Serrano. La librería
Golem.Project.RSS está disponible para Visual .NET
<http://weblogs.golemproject.com/jorge/category/56.aspx>
[fecha consulta 03 de marzo de 2005]




                                                                                  88
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Modulo de importación                                                     20/05/05


Tenemos etiquetados los diferentes canales clasificados en una categoría u
otra, dependiendo del contenido del canal.

Las categorías con las vamos ha trabajar son:

-Actualidad.
-Deportes.
-Documentación.
-Formación.
-Iglesia.
-Informática.
-Ocio / Espectáculos.
-Valencia.

El motivo de seleccionar estas categorías es porque se ha supuesto que el
portal va destinado a un centro universitario (VER ANEXO II).

La clasificación que hemos hecho de los canales por categorías es la siguiente:

1. Los canales que nos proporcionaran información sobre la Actualidad son:
       1.1.CANAL NOTICIAS EN GENERAL
       La dirección es http://www.utleon.edu.mx/backend.php"

       1.2.IPS-NOTICIAS
       La dirección es http://www.ipsnoticias.net/rss/freenews.xml"

       1.3.IPS-NOTICIAS AMBIENTE
       La dirección es http://www.ipsnoticias.net/rss/ambiente.xml"

       1.4.IPS NOTICIAS COMERCIO
       La dirección es http://www.ipsnoticias.net/rss/omcomercio.xml"

       1.5.Periódico La NACION CULTURA
       La dirección es:
       http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_
       id=1"

       1.6.El Pais
       La dirección es "http://www.elpais.es/rss.html"

       1.7.El Mundo
       La dirección es http://abraldes.net/feeds/elmundo.xml"

       1.8.La Vanguardia
       La dirección es http://www.lavanguardia.es/rss/index.rss"

       1.9.El Periódico
       La dirección es http://xml.newsisfree.com/feeds/08/5308.xml"

       1.10.YAHOO ESPAÑA
       La dirección es http://xml.newsisfree.com/feeds/77/6677.xml"

       1.11.YAHOO MUNDO
       La dirección es http://xml.newsisfree.com/feeds/76/6776.xml"




                                                                               89
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Modulo de importación                                                     20/05/05

       1.12.IBERINDEX
       La dirección es http://www.iberindex.com/backend.php"

2. Los canales que nos proporcionaran información sobre los Deportes son:

       2.1.Periódico La NACION DEPORTES
       La dirección es:
       "http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=131"

       2.2.Eurosport
       La dirección es http://xml.newsisfree.com/feeds/10/8510.xml"



3. Los canales que nos proporcionaran información sobre la Documentación:
       3.1.CANAL NOTICIAS DE GOOGLE
       La dirección es http://google.dirson.com/rss.php"


       3.2.CANAL METODOS DE BUSQUEDA
       La dirección es http://www.metodosdebusca.com/index.xml"

       3.3.Noticias de Googlemania
       La dirección es http://www.googlemania.com/rss.php"

       3.4. GOLEM PROJECT Autor de la libreria RSS
       La dirección es "http://weblogs.golemproject.com/jorge/Rss.aspx"



4. Los canales que nos proporcionaran información sobre la Formación son:
       4.1.CANAL CURSOS UNIVERSIA
       La dirección es:
       "http://cursos.universia.net/rss/detailrss.xml?sid=7&LangID=ES"

       4.2.CANAL Universidad JAUME I
       La dirección es http://cent.uji.es/octeto/node/feed"

       4.3.Edured
       La dirección es http://www.edured2000.net/public/backend.xml"



5. Los canales que nos proporcionaran información sobre la Iglesia son:

       5.1.CANAL Noticias IGLESIA
       La dirección es http://noticias.iglesia.net/backend.php"

       5.2.CANAL Libertad digital Portada
       La dirección es http://www.libertaddigital.com/rss/portada.xml"

       5.3.CANAL Libertad Digital Opinion
       La dirección es http://www.libertaddigital.com/rss/opinion.xml"

       5.4.CANAL Libertad digital España
       La dirección es http://www.libertaddigital.com/rss/nacional.xml"

       5.5.CANAL Libertad digital Mundo



                                                                               90
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Modulo de importación                                                     20/05/05

       La dirección es
       http://www.libertaddigital.com/rss/internacional.xml"

       5.6.CANAL Libertad digital Economía
       La dirección es http://www.libertaddigital.com/rss/economia.xml"

       5.7.CANAL Libertad digital Sociedad
       La dirección es http://www.libertaddigital.com/rss/sociedad.xml"



6. Los canales que nos proporcionaran información sobre la Informática,
Nuevas Tecnologías son:
       6.1.CANAL HISPALINUX
       La dirección es http://www.hispalinux.es/node/feed"

       6.2.CANAL PROGRAMACIÓN
       La dirección es http://www.programacion.com/titulares.xml"

       6.3.CANAL Barra Punto Programación
       La dirección es http://backends.barrapunto.com/barrapunto.rss"

       6.4.CIENCIA-Nasa
       La dirección es http://ciencia.nasa.gov/rss.xml"

       6.5.Periódico La NACION TECNOLOGIA
       La dirección es:
       http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=272"

       6.6.LINUX PARA TODOS
       La dirección es:
       ="http://www.linuxparatodos.net/geeklog/backend/backend.rss"

       6.7.Programacion.com
       La dirección es http://www.programacion.com/titulares.xml"

       6.8.Banda Ancha
       La dirección es http://www.bandaancha.st/backend.php"

       6.9.Sondas espaciales
       La dirección es http://www.sondasespaciales.com/backend.php"

       6.10.La Flecha .NET
       La dirección es: http://laflecha.net/laflecha.rss"

7.Los canales que nos proporcionaran información sobre el Ocio/Espectáculo:
       7.1.IPS NOTICIAS ARTE Y CULTURA
       La dirección es http://www.ipsnoticias.net/rss/arteycultura.xml"



8.Los canales que nos proporcionaran información sobre Valencia son:
       8.1.E-Valencia
       La dirección es http://www.e-valencia.org/backend.php"




                                                                               91
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Modulo de importación                                                        20/05/05

Esta información podrá variar en función de los test de usabilidad. El objetivo
es que sirva de muestra de lo que se puede llegar a conseguir. Los canales
para la importación de noticias irán incrementando a medida que vayamos
trabajando con la aplicación.

La programación ha resultado sencilla. Lo primero que se hace es crearse el
objeto de tipo GolemProject.RSS
MiRSS = New GolemProject.Rss.GetRss

Una vez creado, evaluamos si la casilla checkbox de cada uno de los canales
está habilitada, esto significará que queremos importarnos las noticias de ese
canal.

Con la siguiente instrucción le especificaremos la dirección url del canal.
MiRSS.Path = direccion

Para acceder a los diferentes campos de la noticia del canal, lo haremos con la
siguiente instrucción:
i=0
While MiRSS.Read
           title = MiRSS.RSSItem.ItemElement(i).strTitulo
           description = MiRSS.RSSItem.ItemElement(i).strDescripcion
           link = MiRSS.RSSItem.ItemElement(i).strEnlace
           pubDate = MiRSS.RSSItem.ItemElement(i).strDate
           ....
           i+=1
wend

Para insertar las diferentes noticias en las base de datos trabajamos con el
evento insertarNoticia de la clase Noticia que tiene el formato que mostramos a
continuación:

'INSERTAMOS LA NOTICIA
miNoticia.insertarNoticia(0, title, link, description, _
Comentario, Now(), "Importación automática con DocuNews", Impacto,
Category, Author)




                                                                                  92
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Reflexiones y trabajo futuro                                               20/05/05

6. REFLEXIONES Y TRABAJO FUTURO

6.1 REFLEXIONES

En este penúltimo punto, se quiere realizar una vista de pájaro de lo que ha
sido la consecución de la memoria del proyecto, la cual se ha dividido en cinco
niveles en forma piramidal.

Un primer nivel que hemos llamado objetivos y requerimientos, en el que
hemos comenzando con una introducción en la que se comenta el interés de
dicha aplicación, a que usuarios va dirigida, y con que lenguajes va ha ser
implementada.

Seguidamente se ha pasado a la especificación de requisitos, basándonos para
ello en la normativa IEEE std. 830 –1998, en este apartado hemos concretado
todos los puntos de acuerdo a la norma. Después nos hemos centrado en el
extendido y novedoso formato RSS, aquí nos encontramos con una breve
explicación junto con la especificación de este formato concretando los campos
de los que está formado. La utilización de este formato ha repercutido
directamente sobre el diseño de la base de datos.

Un segundo nivel dedicado al diseño de la base de datos. Aquí hemos
abarcado el análisis de los requerimientos, después nos hemos centrado en el
diseño conceptual, el diseño lógico y finalmente presentamos el diagrama UML.
Dentro de este mismo nivel se encuentran los procedimientos implementados
en el sistema de gestión de bases de datos (SGBD) que ha sido, en nuestro
caso, SQL SERVER 2000 SP4.

Un tercer nivel dedicado al diseño de la interface, puesto que Visual Studio .Net
soporta la metodología orientada objetos hemos aprovechado la potencia de
dicha tecnología trabajando con clases, detalladas en este punto, dentro de
este bloque entraría la programación desarrollada en ASP.NET para darle
funcionalidad a la página web.

Después del diseño de la interface aparecería el cuarto nivel dedicado al
diseño del web. En este nivel comenzaría uno de los grandes bloques del
trabajo como documentalistas, el correspondiente al diseño web. Comenzamos
este punto resaltando la importancia del diseño de la página web detallando
que estructura vamos ha llevar a cabo y como tiene que estar organizada la
información, seguido de este apartado pasamos a comentar la hoja de estilos
utilizada, decisiva en el aspecto final de la página. Nuestro último apartado,
dentro del diseño web, hemos considerado que debe ser el posicionamiento en
Google, ya que creemos que es una consecuencia directa de los dos apartados
anteriores, en esta sección nos centramos, en otras cosas, en el uso de las
metaetiquetas.

En el quinto último nivel nos hemos dedicado ha comentar el desarrollo de una
aplicación para gestión local de noticias, gracias a esta el administrador podrá
realizar funciones no contempladas por la aplicación web.



                                                                                93
Fernando Leandro Baladrón                                 Proyecto fin de carrera
Reflexiones y trabajo futuro                                            20/05/05

Una de las mayores ventajas de trabajar con el formato RSS es que nos ha
facilitado sobremanera la importación de otros bloques de noticias, de esta
forma gozamos de una aplicación local que abastece nuestra base de datos de
forma automática de noticias totalmente compatibles con nuestro soporte.

No se concibe un proyecto como tal sin una adecuada selección de la
bibliografía consultada, ya sea en formato papel o electrónico.

Dentro de los anexos, todos ellos importantes, tenemos un primer documento
donde hacemos una estimación aproximada de la duración del proyecto, esta
estimación se hizo nada más comenzar el proyecto, la que nos ha ayudado a
una correcta consecución de las etapas.

El siguiente anexo es un estudio de las necesidades de los clientes, aquí se
detalla a quién va dirigido nuestro portal y que necesidades se han detectado
que tienen.

Un tercer anexo, también determinante en nuestro portal, es un estudio de la
competencia y de las fuentes relacionadas con la sindicación de contenidos.
Se ha hecho un breve recorrido por todos los portales web vinculados con el
mundo de las noticias y el formato RSS.

Y ya para terminar un último anexo dedicado al tesauro Eurovoc. Hemos
decidido hacer una mención especial a este Tesauro puesto que pensamos
que es una herramienta indispensable en todo centro de documentación que se
precie.

Un resumen de lo que hemos ido explicando vendría reflejado en el siguiente
gráfico:




La principal sensación obtenida tras la realización de este proyecto es la
satisfacción de haber creado una aplicación capaz de albergar noticias en la
Web utilizando una de las herramientas más utilizadas hoy en día como es el


                                                                             94
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Reflexiones y trabajo futuro                                                20/05/05

ASP.NET. Hay que resaltar el uso de tecnología cada vez más extendidas
como es el RSS y la importancia que está empezando a tener en el mundo de
los portales web y por consiguiente su estrecha relación con la documentación.

Uno de los logros obtenidos en este proyecto que hay que resaltar es el de la
interfaz gráfica, sencilla para el usuario común, ya que se basa en un sistema
típico web, que al ser muy intuitivo, cada usuario sabe controlar.

El tiempo estimado para la realización de este proyecto ha sido de 400 horas,
repartidas (aproximadamente) de la siguiente forma:

El 30% del total de las horas de trabajo ha sido invertido en el análisis y
aprendizaje del uso de ASP.NET. Este aprendizaje a sido constante y
continuado a lo largo de la implementación de la aplicación.

Trabajo relacionado con la captura de requisitos de la aplicación, generación de
la Base de Datos y diseño de la aplicación un 20% del tiempo total.

Implementación de la interfaz gráfica de usuario, un 10% del tiempo total.

Generación de la documentación un 10% del tiempo total, siendo generada de
forma continuada a lo largo de la implementación de la aplicación.

Codificación y funcionalidad de la aplicación un 30% del tiempo total.


6.2 TRABAJO FUTURO

        Se ha puesto gran empeño en el diseño del portal, no obstante lo
primero que se ha planteado mejorar son los aspectos de visualización. El
objetivo fundamental es que se asemeje lo más posible al “Periódico de toda la
vida”. Se estudiará la posibilidad de contratar a un diseñador para conseguir
hacer el portal los más agradable visualmente que sea posible. (por ejemplo.
incluirle animaciones en FLASH, al estilo del portal marumushi.com [consultar
ANEXO III]).

       Otro objetivo del trabajo futuro podría ser realizar la visualización de la
aplicación en diversos idiomas y dar la posibilidad al usuario de escoger el
idioma en que desea que se le presente la aplicación.

       Otras de las mejoras que consideramos que serían interesante en un
futuro sería la de la implementación de una base de datos que albergase un
TESAURO. De esta forma, no nos limitaríamos solo al uso de las palabras
clave, sino que también podríamos tener representadas relaciones de
equivalencia, relaciones asociativas y relaciones jerárquicas. En dicha base de
datos deberíamos reflejar la estructura propia de un tesauro. Con esto
obtendríamos una gran potencia a la hora de asignar descriptores a las noticias
y como consecuencia una eficiente recuperación de las noticias.




                                                                                 95
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Reflexiones y trabajo futuro                                                20/05/05

       Otro de los trabajos que está pendiente, es el paso de tests de usuarios.
Pasaremos una serie de test de usabilidad para asegurarnos que los usuarios
entienden nuestro portal y no realizan esfuerzos adicionales para comprender
el contenido de la página.

       Procuraremos asegurar que el portal está sobre todo enfocado al
usuario. Se pasarán encuestas a los usuarios preguntándoles que dudas han
tenido, que les ha gustado y que no. De esta forma, conseguiremos analizar el
comportamiento de los usuarios y definir con exactitud las necesidades reales
de los visitantes de la página.

       Uno de los principales inconvenientes que hemos detectado es el
problema del software de pago, primero problemas para conseguir el software
para el desarrollo del portal, y siguiente las dificultades para encontrar hosting
gratuitos compatibles con la tecnología de Microsoft.

      Por lo anterior, hemos estudiado realizar una versión homóloga en
Plone, software gratuito, desarrollada sobre una base de datos Zope, es un
CMF (Content Magament Framework), actualmente hay hosting gratuito. (por
ejemplo: Objectis. http://www.objectis.org/about-es/plone. [Fecha consulta 10-
04-05]).

Las ventajas que ofrece Plone son:
-Producción muy rápida
-Acento en los contenidos y no en la tecnología
-Diseño adaptado por el Web
-Gestión de contenido deslocalizado
-Edición de las páginas en tiempo real
-Colaboración fácil
-Enfoque centrado en el usuario


El panel de control que tiene Plone, desde el cual se gestiona las
funcionalidades del portal es:




                                                                                 96
Fernando Leandro Baladrón                                Proyecto fin de carrera
Reflexiones y trabajo futuro                                           20/05/05

Un ejemplo de la estructura básica de la que dispone plone podría ser el que
se muestra a continuación:




                                                                            97
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Bibliografía                                                                 20/05/05

7. BIBLIOGRAFÍA

-García Camarero, Ernesto. La biblioteca digital . Madrid . Arco Libros, 2001.

-Peña, Rosalía. Gestión digital de la información : de bits a bibliotecas digitales
y la web . Madrid . Ra-ma, 2002.

-Méndez Rodríguez, Eva Mª. Metadatos y recuperación de información :
estándares, problemas y aplicabilidad en bibliotecas digitales. Gijón. Trea,
2002.

-Lloret Romero, Nuria. Bases para el desarrollo de un proyecto de biblioteca
digital como herramienta de apoyo a la formación a distancia vía internet / Nuria
Lloret Romero. Editorial UPV, 2004.

-Delaney, Kalen. A fondo Microsoft SQL Server 2000. Madrid. McGraw-
Hill/Interamericana de España, 2001.

-Griffin, John. Creación de sitios Web con XML y SQL Server 2000 / John
Griffin. – Madrid. Prentice-Hall, 2002.

-Serranos Cobos, Jorge. Google, dsi y la sindicación de contenidos mediante
rdf/rss. El Profesional de la Información, February 01, 2004, vol. 13, no. 1, pp.
67-70(4)

-Hammersley, B. Content Syndication with RSS. UK. O'Reilly, 2003.

-Mridula, Parihar. La biblia de ASP .NET Anaya. ISBN 8441513856

-Charte Ojeda, Francisco. Serrano Pérez, Jorge. Anaya Programación con
Visual Studio .Net. ISBN 8441513767




                                                                                  98
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Bibliografía                                                               20/05/05



Recursos electrónicos
-The Code Project. http://www.codeproject.com . [Fecha consulta: 10-04-05]

-Programación.com <http://www.programacion.com>[Fecha consulta: 10-04-05]

-ASP Facil. <http://www.aspfacil.com> [Fecha consulta: 10-04-05]

-Keene System, Inc. http://www.sql-server-vb-asp.net. [Fecha consulta: 10-04-
05]

-Tesauro EUROVOC. <http://europa.eu.int/celex/eurovoc/>        [Fecha consulta:
10-04-05]

-Tutoriales de Microsoft .NET.
<http://es.gotdotnet.com/quickstart/aspplus/doc/webdatabinding.aspx >
[Fecha consulta: 10-04-05]

-Miliuco .NET <http://www.miliuco.net/indexpnetasp.htm> [Fecha consulta: 10-
04-05]

-El Guille .NET <http://www.elguille.info/NET/default.aspx> [Fecha consulta: 10-
04-05]

-BRiNDYS Software . Valencia. winRSS : Lector de fuentes de noticias
sindicadas Atom, RSS, RDF, XML y otros formatos.
<http://www.brindys.com/winrss/casmenu.html> [fecha consulta 03 de marzo de
2005]

 -Discapnet : Portal de los discapacitados. [en línea]
<http://www.discapnet.es/Discapnet/Castellano/Actualidad/rss.htm> [fecha
consulta 03 de marzo de 2005]

-Cervantes González, Germán I. “RSS, ahora la información que te interesa te
encuentra a ti”. [en línea].
<http://www.enterate.unam.mx/Articulos/2005/febrero/rss.htm>
<http://helios.orbis.org.mx/RSS.htm> [fecha consulta 03 de marzo de 2005]

- Palazón Candel, Pedro . “Qué es RSS y para que sirve”.[en línea]. Gen7es:
Asociación DHTML en Catellano.
<http://www.gen7es.net/documentos/rssintro.php>
[fecha consulta 03 de marzo de 2005]

-Mendes, Eva .”Traducción del documento de la W3C que define RDF”. [en
línea]. Fundación SIDAR.
<http://www.sidar.org/recur/desdi/traduc/es/rdf/rdfesp.htm>
[fecha consulta 03 de marzo de 2005]

- Artículos sobre RSS. The webmaster´s reference library. [en línea]


                                                                                99
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Bibliografía                                                                20/05/05

<http://www.webreference.com/authoring/languages/xml/rss/>
[fecha consulta 03 de marzo de 2005]

-Blog de Tecnologías Educativas que maneja RSS feeds y Atom. [en línea].
<http://blogs.orbis.org.mx/blogs/ >[fecha consulta 03 de marzo de 2005]

-RSS 2.0 Specification. RSS at Harvard Law. Autor Dave Winer. [en línea].
<http://blogs.law.harvard.edu/tech/rss> [fecha consulta 03 de marzo de 2005]

-Buscador de fuentes RSS . Estudio del uso del formato RSS en Syndic8.
Syndic8. [en línea]. <http://www.syndic8.com/stats.php?Section=rss> [fecha
consulta 03 de marzo de 2005]

-Pagina en Español con mucha información sobre RSS. [en línea].
 Encontraremos la especificación de los formatos muy detallada.
<http://www.uatsap.com/ > [fecha consulta 03 de marzo de 2005]

-Flash-db.com. Código de Ejemplo en Flash de un lector de RSS hecho por
Jorge Solis. <http://www.flash-db.com/rss/>
[fecha consulta 03 de marzo de 2005]

-EYETRACK 2003.<http://www.poynterextra.org/eyetrack2004/main.htm>
[fecha consulta 03 de marzo de 2005]

-Blog de Jorge Serrano. Código disponible en Visual .NET para trabajar con
RSS. <http://weblogs.golemproject.com/jorge/category/56.aspx>
[fecha consulta 03 de marzo de 2005]

-Gómez Vázquez, Miguel. Servicio de documentación y archivo de un
periódico: El mundo.
<http://www.ucm.es/info/multidoc/multidoc/revista/cuad6-7/gomez.htm>
[fecha consulta 03 de marzo de 2005]

-Del Valle Gastaminza, Felix. Análisis y tratamiento documental en medios de
comunicación impresos en la era digital, Julio 2002.
http://www.ucm.es/info/multidoc/multidoc/cursos/verano/material/FELIX%20DE
L%20VALLE/fvalleEV4.htm [fecha consulta 03 de marzo de 2005]

-Álvarez, Raúl. “El País, un modelo en gestión documental”.
http://www.microsoft.com/spain/enterprise/perspectivas/numero_14/media.mspx
[fecha consulta 03 de marzo de 2005]




                                                                                100
Fernando Leandro Baladrón                                   Proyecto fin de carrera
ANEXO I-Estimación duración proyecto                                      20/05/05

ANEXO I- Estimación duración del proyecto:
Este apartado ha sido un pilar fundamental para la correcta consecución de los
objetivos. Desde un principio nos hemos ceñido rigurosamente a los hitos
establecidos, esto nos ha facilitado un desarrollo continuado del proyecto y nos
ha evitado atracones de última hora.

Como se muestra en nuestra planificación, empezamos haciendo un estudio de
la competencia para evaluar la situación del mercado en el que nos queríamos
introducir (consultar ANEXO III).

Destacar que hemos tenido una parte dedicada a la pruebas indispensable en
proyectos de este tipo, para conseguir asegurar un correcto funcionamiento por
parte de la aplicación.




Destacar que después de cada parte importante, hemos tenido una reunión con
el tutor del proyecto, condición sinequanon no hubiera sido posible llegar al
resultado en esta memoria reflejado.



                                                                              101
Fernando Leandro Baladrón                                    Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                    20/05/05

ANEXO II - Estudio necesidades de los usuarios
Hemos considerado interesante añadir este estudio referido a las necesidades
de nuestros usuarios, que no por estar en el anexo es menos importante, nos
hemos esforzado en detectar que carencias y que necesidades tienen nuestros
futuros usuarios, además de decidir especializarnos en un perfil concreto de
usuario, tal y como concretaremos más adelante. Por todo ello adelantamos
que se ha decidido dirigirse a los jóvenes en general, por consiguiente en el
siguiente estudio podremos ir viendo que conclusiones hemos obtenido, que
hemos detectado para diferenciarnos de la competencia y como lograr una
mayor satisfacción por parte de nuestros usuarios.

A continuación, vamos a evaluar el perfil de nuestro lector y las características
de un periódico on-line:

1.- El lector tenderá a ser más especializado. Tal vez el periódico encuentre su
círculo de lectores no en el mismo lugar físico, sino que se encontrarán
distribuidos a lo largo y ancho del planeta. Serán comunidades virtuales,
personas que comparten intereses especializados que están localizados en
cualquier lugar del planeta.

2.- Buscará sólo las noticias que le interesen. El usuario tendrá la oportunidad
de elegir entre una amplia oferta aquella información que le afecte según sus
condiciones y aspiraciones personales.

3.- Extracción cultural. El receptor del periódico en línea es un usuario con
conocimientos de multimedia. Para utilizar Internet, para activar una imagen,
para escuchar un audio, deberá saber un poco de informática.

4.- El gusto por descubrir cosas. El lector de este medio no será pasivo, sino
que buscará las páginas que más le atraigan a sus inquietudes de información
y entretenimiento. El periódico on line tendrá que satisfacer esta demanda de
innovación.

5.- Pertenece a la Generación de la Red. El público más joven es el que tiene
un mayor consumo de Internet. “Tal vez, señalan los estudios sobre prácticas y
hábitos comunicativos, estemos ante generaciones menos lectoras o
refractarias a la solución monomediática de lo impreso y más abiertas a
códigos visuales, al diseño, la interactividad, los efectos tecnológicos, etc

Una oportunidad para nuestra versión sería que Internet es un medio
verdaderamente interactivo, más que cualquier otro medio, Internet permite a
los usuarios interactuar directamente con el periódico y, de este modo,
establecer relaciones futuras. Además de ofrecer una posibilidad de Audiencia
enorme, ya que Internet es global. Internet es un medio flexible y por lo tanto
fácilmente modificable.




                                                                               102
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                     20/05/05


Una pieza fundamental dentro de cualquier estudio de mercado que se precie
es el realizar un adecuado cuestionario en el que se pueda detectar que están
demandando nuestros usuarios.

Como ya hemos comentado en la introducción, se ha pensado que DocuNews
vaya dirigido a los jóvenes, por ello nuestras encuestas irán dirigidas a los
jóvenes.

Para crear webs efectivas, eficientes y satisfactorias que generen experiencias
exitosas a sus usuarios, es importante el punto de vista del usuario. Se trata de
crear una web enfocada en el usuario y no sólo en los objetivos de la empresa.

Cuestionario que se ha pasado a los jóvenes.

Como todos sabemos, la población joven representa el futuro de la sociedad,
por lo que uno de los principales objetivos a la hora de plantear esta consulta
ha sido conocer la visión que de Valencia tienen los jóvenes y sus inquietudes
relacionadas con aspectos de interés para la Estrategia Territorial de Valencia.

La consulta ha permitido analizar aspectos relacionados con la percepción de
la realidad Valencia: demografía, vivienda, medioambiente, infraestructuras,
sistema productivo, educación, sanidad, servicios sociales, patrimonio natural y
cultural, equipamientos del hogar, ocio y tiempo libre.

Para la realización de la consulta se ha elaborado un cuestionario-guión,
simplificando al máximo los conceptos y concretándolos en actuaciones
fácilmente comprensibles para el público objetivo, así como se han insertado
cuestiones específicas para completar las orientaciones para el Modelo que se
incluyen en los informes temáticos y algunas preguntas de menor relevancia
para encauzar los temas de interés.

Metodología
Esta consulta ha contado con la participación de 626 jóvenes de 16 a 35 años,
que han respondido al cuestionario diseñado al efecto. El tamaño de la muestra
ha permitido obtener resultados con un nivel de confianza del 95% para el
conjunto de Valencia




                                                                                103
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                      20/05/05




A título estadístico, aunque no han sido factores de distribución muestral, se
han recabado datos relativos al sexo de las personas entrevistadas, el estado
civil, la situación profesional, la ocupación, el nivel de estudios finalizados, los
niveles de ingresos particulares o familiares, así como el tamaño de la localidad
de residencia o el ámbito que la persona entrevistada considera más cercano
para sus relaciones personales, de trabajo y ocio.




El diseño de la muestra ha pretendido recopilar información sobre las diferentes
realidades socioculturales de Valencia. A pesar de estas diferencias, se
constatan     situaciones   similares   entre     los   jóvenes     Valencianos
independientemente de su hábitat de residencia o edad:

El elevado porcentaje de personas entrevistadas solteras (supera el 75% de las
personas entrevistadas a pesar de que más del 50% de las mismas superan
los 25 años de edad) y el arraigo de las personas jóvenes a su hábitat de
residencia y trabajo, así como la escasa predisposición a la movilidad territorial,
aún dentro de la propia Comunidad Foral. Tres de cada cuatro personas
entrevistadas manifiestan que en el futuro les gustaría que fuese su entorno
habitual o más cercano su centro de residencia, trabajo u ocio.


                                                                                 104
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                      20/05/05


Con respecto a su ocupación y formación los jóvenes entrevistados tienen las
siguientes características:




Como se observa, más del 70% de los jóvenes entrevistados poseen un nivel
de formación medio-alto, lo que permite considerar sus opiniones como “de
calidad”.

A continuación se detallan los resultados más relevantes extraídos del proceso
de consulta.

En opinión de los jóvenes entrevistados, la Comunidad de Valencia es una
región competitiva y atractiva. Las puntuaciones obtenidas son altas. En una
valoración de 1 a 10, el 74,5% de los jóvenes otorga una puntuación a Valencia
de 7, 8, 9 ó 10 y sólo un 25,0% puntúa a Valencia de 1 a 6. La puntuación
media es de un 7,29, siendo el 7 la valoración más repetida.

Asimismo, el balance que los jóvenes Valencianos hacen de su propia vida es
muy positivo. El 97,4% se sienten satisfechos con su vida. Por orden de
relevancia, los aspectos de la vida a los que los jóvenes otorgan una mayor
importancia son la familia, los amigos y conocidos, el trabajo y el tiempo libre y
de ocio.




                                                                                 105
Fernando Leandro Baladrón                                      Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                      20/05/05




El servicio con menor uso y desconocimiento en Valencia es el aéreo, ya que la
tercera parte de las personas entrevistadas no exponen su valoración sobre la
calidad del mismo. Únicamente un 20% lo considera bueno, mientras que una
de cada cuatro personas encuestadas consideran que es regular.

En lo que respecta al grado de implantación de diferentes infraestructuras, las
mejor valoradas en cuanto a grado de implantación son los servicios de
telefonía fija, la red de distribución de aguas y la red de suministro eléctrico.

Con una valoración inferior a las anteriores, aunque con unos buenos índices,
se indican los servicios de telefonía móvil, los servicios telemáticos (Internet),
servicios por cable, la red de distribución de gas, las instalaciones deportivas y
de recreo, así como el aprovechamiento de energías renovables. Los aspectos
peor valorados son la gestión de residuos sólidos urbanos y la gestión de
residuos sólidos industriales.

Además de conocer las valoraciones de los jóvenes en cuanto a aspectos,
también se ha deseado identificar qué actividades realizan habitualmente, es
decir, cómo organizan su tiempo libre.

La juventud Valenciana parece no ser proclive a la realización de determinadas
actividades culturales como asistir al teatro, a conferencias, a museos; debido a
la falta de organización de actividades por parte de las instituciones
encargadas, falta de interés en los jóvenes, falta de información,...

Asimismo, los jóvenes no colaboran apenas con organizaciones de cualquier
tipo; no hay por tanto implicación por parte de los jóvenes, aunque, como ya se
ha visto anteriormente, la valoración que han realizado de dichas
organizaciones es positiva.




                                                                                 106
Fernando Leandro Baladrón                                     Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                     20/05/05

Existen una serie de actividades que los jóvenes realizan con cierta frecuencia,
bien por intereses propios, porque tienen recursos y facilidades para llevarlas a
cabo,. actividades tales como ir al cine, a conciertos musicales, al monte...




En opinión de los jóvenes los tres problemas más importantes que tendrá que
resolver la Comunidad Valenciana en el futuro serán el paro, la inmigración y la
droga.




                                                                                107
Fernando Leandro Baladrón                                   Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                   20/05/05




La tolerancia, la libertad y la educación son los principales valores que los
jóvenes consideran que deberían desarrollarse más en Valencia en un futuro.




Asimismo, a más de 72% de los jóvenes les gustaría poder disfrutar de una
mayor oferta de ocio y trabajo a través de las nuevas tecnologías de la
información y la comunicación.




                                                                              108
Fernando Leandro Baladrón                                               Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                               20/05/05


A la hora de evaluar nuestra página web tenemos que tener en cuenta que:

                 Razones por las que los jóvenes se conectan a Internet
                                                                    Principal
                                                                    Razón
                 Enviar/recibir e-mail                      83%       44%
                 Buscar/obtener información                 68%       19%
                 Jugar online                               51%       10%
                 Utilizar el Chat                           40%       10%
                 Descargar música/videos                    38%        6%
                 Enviar tarjetas electrónicas de felicitación 31%      0%
                 Comprar                                    26%        2%
                 Leer noticias/deportes/otros               23%        4%
                 Otros                                      19%        5%
                 Fuente: PricewaterhouseCoopers




Presentación de resultados
Desde nuestro periódico se luchará contra la “indiferencia religiosa".Se
fundamentará la fe de los jóvenes a partir de la experiencia personal (trabajo,
amigos, afectividad, ambientes) y desde todos los ámbitos de formación
(familia, escuela y parroquia), para favorecer el sentido crítico ante sí mismo y
ante el propio ambiente y la sociedad a fin de que sepan dar razón de su fe.
Necesitan apoyarse en la Iglesia.

Los jóvenes se buscan y no se encuentran. Los jóvenes no se encuentran
formados.

Perfil

-Trabajan
-Cansados física y mentalmente
-Capacidad de atención muy limitada
-Ocupados
-Fragmentados - viven sus vidas compartimentadas
-Educados en un sistema carente de valores
-Influenciados por los medios de comunicación
-Viven situaciones familiares disfuncionales
-A su aire (ambos padres trabajan, mucho tiempo solos)
-Tienen menos modelos y peores
-Más homogéneos a nivel mundial que nunca antes (cultura joven global)
-Sexualmente activos
-La población juvenil declina como porcentaje de la población total
-Ausencia de autoridad -la mayoría de ellos no creen en verdades absolutas


                                                                                          109
Fernando Leandro Baladrón                                  Proyecto fin de carrera
Anexo II - Estudio Necesidades Usuarios                                  20/05/05

-Consumistas
-Centrados en ellos mismos
-Ecologistas

Actitudes

-Enfadados por la manera en que son tratados
-Temerosos
-Se sienten impotentes y sin esperanza
-Despegados (desde el punto de vista emocional)
-Inseguros
-Actitud más activista -dispuestos a tomar iniciativas
-Confundidos acerca de futuro
*70% de los jóvenes consideran que el mundo está fuera de control
*90% son optimistas en cuanto al futuro
-No confían
-Escépticos y frustrados

Necesidades

-Buscan la independencia, pero ya que son inseguros y dependientes transigen
-Desesperado por aquello que funciona
-Listos para el cambio -abiertos al evangelio
-Todavía buscan seguridad y sentido como siempre
-Necesidad de intimidad
-Listos para ser desafiados
-Listos para hacer algo, dispuestos a involucrarse en causas, en marcar una
diferencia
-Listos para dirigir
-Necesitan dirección, abiertos a ser guiados vocacionalmente
-Debido a los medios de comunicación necesitan un acercamiento global


Conclusión general

-Buscan una salida, una manera de hacer frente.
-Son conscientes, sofisticados, informados
-Precisan más desarrollo de liderazgo por parte de la Iglesia
-Los jóvenes están todavía buscando alguien que sea sus padres
-La cultural juvenil es multidimensional y cambiando rápidamente
-Quieren ser amados, desarrollar relaciones significativas
-Las relaciones serán la clave para un ministerio exitoso
-Listos para la acción, para ser desafiados e involucrarse




                                                                             110
Fernando Leandro Baladrón                                           Proyecto fin de carrera
ANEXO III- Estudio Competencia                                                    20/05/05

ANEXO III
Estudio de la competencia y Fuentes Relacionadas con el tema

Reflejar como esta el panorama actual es una de los motivos principales de
este estudio, además de conseguir detectar las carencias y fortalezas de
nuestra competencia. Esto condicionará nuestras posibilidades de éxito.

1. Sindicacion.net. Canales RSS feed en Español . [Fecha consulta 3 de marzo de 2005]

http://www.euroresidentes.com/Diversion/Internet/rss_canales.htm




2. Noticias.info. Agencia internacional de noticias. . [Fecha consulta 3 de marzo de
2005]
<http://www.noticias.info/contenidos_info/portada.shtm>

Las categorías que han utilizado han sido:
        -General
        -General sin deportes.
        -Sociedad
        -Tecnología
        -Economía
        -Deportes
        -Futbol
        -Salud
        -Política
        -Cultura
        y ONG´s




                                                                                        111
Fernando Leandro Baladrón                                 Proyecto fin de carrera
ANEXO III- Estudio Competencia                                          20/05/05




3. Marumushi. Presentación de las noticias de google en formato de
importancia.
Realizado en Flash.

Te permite filtrar:
      -Por Países.
      -Por días y horas (00:00-6:00-12:00-18:00)
      -Por categorías:
                      -world
               -nation
                      -business
               -technology
               -sports
               -entertainment
                      -health


<www.marumushi.com> [Fecha consulta 3 de marzo de 2005]




                                                                            112
Fernando Leandro Baladrón                                  Proyecto fin de carrera
ANEXO III- Estudio Competencia                                           20/05/05




4. Discapnet : Portal de los discapacitados. [Fecha consulta 3 de marzo de
2005]

El Portal Discapnet publica los titulares de algunas de sus secciones en
formato RSS 2.0, actualizados en el mismo momento en que se genera la
noticia. Actualmente, Discapnet ofrece RSS para las noticias de las secciones
de Línea Social y de Actualidad, a través de los siguientes ficheros:
        -Noticias de Línea Social
        -Noticias de Actualidad
http://www.discapnet.es/Discapnet/Castellano/Actualidad/Hemeroteca/2005/def
ault.htm




                                                                             113
Fernando Leandro Baladrón                                   Proyecto fin de carrera
ANEXO III- Estudio Competencia                                            20/05/05


5. Calmecac. Blog de Tecnologías Educativas que maneja RSS feeds y Atom.
http://blogs.orbis.org.mx/blogs/
Muy interesante ver que tenemos un calendario que nos permite visitar las
noticias del día.
Ordenadas por Categoría y Fecha.




6. Metodos de busca. Hemeroteca digital del documentalista Valenciano
Ricardo Fornás, dedicada a los buscadores. Noticias almacenadas en RSS
0.91
www.metodosdebusca.com
Información clasificada por meses y días. Todas las noticias pertenecen a la
misma categoría.




                                                                              114
Fernando Leandro Baladrón                                   Proyecto fin de carrera
ANEXO III- Estudio Competencia                                            20/05/05




7. Justin Pfister . Pagina que te genera un fichero en formato RSS 2.0, de la
respuesta generada por Google en su buscador de noticias hecha en PHP.
http://www.justinpfister.com/gnewsfeed.php




9-conversor de noticias de google en RDF
<http://atalaya.blogalia.com/historias/13989>
http://geneura.ugr.es/~jmerelo/atalaya/news-google-es-
rss.cgi?palabras+de+búsqueda




                                                                              115
Fernando Leandro Baladrón                                  Proyecto fin de carrera
ANEXO III- Estudio Competencia                                           20/05/05

10. RSS Channel Presentation and Searching . Directorio de canales RSS en
Inglés.
http://rssxpress.ukoln.ac.uk/lite/include/
Tools availables:
-RSS-xpress Lite - include RSS channels on your website with a simple piece of
JavaScript
-RSS-xpress Search - search the RSS channels registered with RSSxpress and
include the results on your site




11.- Syndic8. Buscador de fuentes RSS .
Aquí podemos encontrar:348 Fuentes españolas.
http://www.syndic8.com/feedlist.php?ShowLanguage=es&ShowStatus=Syndica
ted




                                                                             116
Fernando Leandro Baladrón                                 Proyecto fin de carrera
ANEXO III- Estudio Competencia                                          20/05/05




12. Flash News Feeds. Portal en Flash que nos muestra las noticias según el
servidor de noticias RSS feed que elijamos.
www.philterdesign.com/dev/flashFeeds/




                                                                            117
Fernando Leandro Baladrón                                 Proyecto fin de carrera
ANEXO III- Estudio Competencia                                          20/05/05

13.- NewsMonkey. Portal en Flash de Noticias que nos muestra las noticias
según el servidor de noticias RSS feed que elijamos.
http://www.nuwance.com/newsmonkey/




14.-Google. Portal de noticias de Google.




                                                                            118
Fernando Leandro Baladrón                                  Proyecto fin de carrera
ANEXO III- Estudio Competencia                                           20/05/05


Las categorías que utilizan son:
      -Noticias destacadas.
      -España
      -Economía
      -Ciencia/tecnología
      -Deportes
      -Espectáculos
      -Salud

Nos permite ver de cuanto tiempo es la noticia.
Los artículos relacionados con la noticia.
En el apartado “Es noticia” se pueden ver las materias que considera que son
Noticia.

15.- uatsap.com. Portal de noticias RSS en Español.
<http://www.uatsap.com/> [fecha consulta 03 de marzo de 2005]




Las categorías que utilizan son:
             -Top 10
             -Ciencia y Tecnología
             -Ciencias Sociales
             -Deportes y ocio
             -Internet y ordenadores
             -Lo nuevo
             -Medios de comunicación
             -Política y gobiernos
             -Economía y negocios
      -Salud

                                                                             119
Fernando Leandro Baladrón                                Proyecto fin de carrera
ANEXO III- Estudio Competencia                                         20/05/05

       -Educación y formación
       -Sociedad
       -Espectáculos y diversión
             -Zonas geográficas.


16.- Yahoo noticias : España
<http://es.news.yahoo.com/> [fecha consulta 03 de marzo de 2005]
Ver que las noticias las han clasificado en:
        -Actualidad
        -España
        -Local
        -Mundo
        -Economía
        -Cultura
        -Sociedad
        -Corazón
        -Insólitas
        -Tecnología
        -Salud
        -Deportes
        -Finanzas
        -El tiempo
y temas de actualidad
el menú es horizontal y vertical




                                                                           120
Fernando Leandro Baladrón                                  Proyecto fin de carrera
ANEXO III- Estudio Competencia                                           20/05/05

17. El sindicon. El equivalente español a syndic8. Contiene 901 páginas
sindicadas.

<http://www.sindicon.com/>




18. 0´Really network. Merkat: an open wire service.
< http://www.oreillynet.com/meerkat/index.php?&p=19>

Te permite filtrar por todos los campos.




                                                                             121
Fernando Leandro Baladrón                                    Proyecto fin de carrera
ANEXO IV - Tesauro                                                         20/05/05

ANEXO IV.
TESAURO EUROVOC
Como documentalistas hemos detectado la necesidad de tener bien definidos
nuestros descriptores, la forma de indicar nuestras noticias sin duda repercutirá
en la recuperación efectiva de estas, para conseguir nuestro objetivo hemos
acudido a la utilización de una indispensable herramienta como es el tesauro.

A. Qué es un tesauro?

Tipo de lenguaje documental que se integra con términos analizados y
normalizados que guardan entre sí relaciones semánticas y funcionales. El
tesauro se organiza bajo fuerte control terminológico, con objeto de
proporcionar un instrumento idóneo para el almacenamiento y la recuperación
de la información en áreas especializadas.

Según Van Slype, es una lista estructurada de conceptos, destinados a
representar de manera unívoca el contenido de los documentos y de las
consultas dentro de un sistema documental determinado, ayuda al usuario en
la indización y en la correcta recuperación de la información consultada.

Luego , por lo comentado anteriormente, y como documentalistas, A la hora de
definir las palabras clave nos vamos a basar en el tesauro Eurovoc.




Disponible en esta dirección:
EUROVOC. <http://europa.eu.int/celex/eurovoc/> [Fecha consulta: 10-04-05]

Al utilizar un tesauro como guía a la hora de elegir nuestras palabras clave, no
estamos evitando una serie de problemas propios del lenguaje natural como
son:



                                                                               122
Fernando Leandro Baladrón                                       Proyecto fin de carrera
ANEXO IV - Tesauro                                                            20/05/05

-El problema de los SINGULARES Y PLURALES. El primer problema que
plantea el lenguaje natural es el de los singulares y plurales. Existen normas
internacionales (ISO), para el control de estas variantes gramaticales. Además,
su normalización es importante dado que el significado de muchos términos
varía según su forma (Obligación/Obligaciones).

-El problema del MASCULINO Y FEMENINO. Tanto el lenguaje natural como la
mayoría de los lenguajes documentales mantienen el masculino genérico.La
economía del lenguaje, esgrimida por los detractores de duplicar entradas en
masculino y femenino o buscar formas alternativas, no debe entrar en
contradicción con la realidad.


-Otro de los problemas del lenguaje natural es el de las FALSAS
COMBINACIONES. La falta de especificidad lleva a dificultades en la
recuperación de la información, creando falsas combinaciones en la búsqueda
y con resultados insatisfactorios. Un ejemplo práctico y vivido es la
imposibilidad de recuperar información sobre Mujeres empresarias, ya que los
vocabularios incluso específicos y disciplinares, suelen recoger este concepto
con los términos mujeres y empresa; lo que obviamente producirá ruido, uno de
los enemigos de la recuperación en bases de datos. Algo similar sucede ante la
búsqueda de escritoras del S. XIX. Si el lenguaje de indización ha introducido
escritores o mujeres y literatura, obtendremos igualmente aquellos trabajos
sobre la imagen de la mujer en la literatura del XIX. También la búsqueda por
palabras del título "Filosofía y Historia", llevaría a recuperar tanto trabajos sobre
Historia de la Filosofía como sobre Filosofía de la Historia.

-Y por último comentar el problema de las SINONIMIAS. La utilización de
sinónimos, que aporta valor y riqueza desde el punto de vista literario, es un
gran problema en la recuperación de la información en las bases de datos
bibliográficas. No olvidemos, como vimos anteriormente, que el principio "ideal"
de los lenguajes documentales es que cada forma tenga un significado y cada
significado vaya asociado a una única forma. La auténtica sinonimia existe
cuando un mismo término puede aplicarse a varios conceptos en el mismo
contexto, ya que aunque son difíciles de encontrar las sinonimias perfectas, la
mayoría de sinónimos y cuasi-sinónimos se ven influidos por el entorno
contextual y disciplinar.

Dentro de los tesauros consultados, este es el más genérico y el que más se
acopla a nuestras necesidades. Las categorías en las que esta organizado son:


04 VIDA POLITÍCA
08 RELACIONES INTERNACIONALES
10 COMUNIDADES EUROPEAS
12 DERECHO
16 VIDA ECONÓMICA
20 INTERCAMBIOS ECONÓMICOS Y COMERCIALES
24 ASUNTOS FINANCIEROS
28 ASUNTOS SOCIALES


                                                                                  123
Fernando Leandro Baladrón                                    Proyecto fin de carrera
ANEXO IV - Tesauro                                                         20/05/05

32 EDUCACIÓN Y COMUNICACIÓN
36 CIENCIA
40 EMPRESA Y COMPETENCIA
44 TRABAJO Y EMPLEO
48 TRANSPORTES
52 MEDIO AMBIENTE
56 AGRICULTURA, SILVICULTURA Y PESCA
60 SECTOR AGROALIMENTARIO
64 PRODUCCIÓN, TECNOLOGÍA E INVESTIGACIÓN
66 ENERGÍA
68 INDUSTRIA
72 GEOGRAFÍA
76 ORGANIZACIONES INTERNACIONALES

Esto nos da una idea de las áreas que abarca este Tesauro.

Sería importante no descartar en un futuro la implementación de un tesauro
similar a Eurovoc, pero a medida. Una cuestión técnica que queremos destacar
es que no necesariamente tendrá que ir en la misma base de datos donde
tenemos albergadas las noticias sino que podrá ir en otra base de datos, en
esta base de datos tendremos toda la información de nuestro microtesauro
donde deberá quedar reflejado nuestro vocabulario particular.




                                                                               124

Más contenido relacionado

PDF
Administracion de Redes - ITSON
PDF
Propuesta de RCM Equipo Ferroviario
PPT
Las Causas De La Primera Guerra Mundial
PDF
Sellantes restauradora
PDF
Plantilla pla marqueting digital
PDF
Facebook
PPT
Relaciones entre padres e hijos v2
Administracion de Redes - ITSON
Propuesta de RCM Equipo Ferroviario
Las Causas De La Primera Guerra Mundial
Sellantes restauradora
Plantilla pla marqueting digital
Facebook
Relaciones entre padres e hijos v2

Destacado (20)

PPTX
Slideshare
PDF
Los comienzos de la labor del opus dei con universitarias la residencia zurba...
PPTX
Derechos humanos
PDF
Kam. 28 agost setembre 1998
PPS
2012 cursoinfectologia 3
PDF
Norma alcantarillado 1975
DOC
guia 4to
PPTX
Ppt Cap 8
ODP
Informe praes sandra latorre
PPT
Talleres navideños 2010-2011
PPT
Presentaciondenegocios
KEY
Social Net
PDF
Nociones gestion-talento-humano
PPTX
Es JesúS Suficiente
PPT
Web 2.0
XLS
Estilos De Aprendizaje de Zea
PPT
Tema Iii Odo 061 Uce Enero Abril 2010
PPTX
Curso de inv de mercados
PPT
C:\trabajo de choriso mixto
PPTX
Dia De Muertos
Slideshare
Los comienzos de la labor del opus dei con universitarias la residencia zurba...
Derechos humanos
Kam. 28 agost setembre 1998
2012 cursoinfectologia 3
Norma alcantarillado 1975
guia 4to
Ppt Cap 8
Informe praes sandra latorre
Talleres navideños 2010-2011
Presentaciondenegocios
Social Net
Nociones gestion-talento-humano
Es JesúS Suficiente
Web 2.0
Estilos De Aprendizaje de Zea
Tema Iii Odo 061 Uce Enero Abril 2010
Curso de inv de mercados
C:\trabajo de choriso mixto
Dia De Muertos
Publicidad

Similar a Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005) (20)

PDF
Proyecto Final de Carrera. Ing.Informática. HELP-DESK
PDF
PFC Antonio Bernal Baena
PDF
Modelado de Documentos y Sistemas de Información con XML
PDF
LI Desarrollo de aplicaciones distribuidas
PDF
Base de datos: sistemas_clienteservidor
PDF
BASE DE DATOS: sistemas_clienteservidor
PDF
Silabo basedatosii 1
DOCX
Dominios producto final
PDF
Proyecto web
PDF
Tesis 8659
DOCX
Syllabus sistemas distribuidos 2012
DOC
Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...
PDF
Proyecto de base de datos 2012
PPT
Unidad 1 Panorama general de las aplicaciones distribuidas
PDF
Desarrollo aplicaciones
PPTX
Presentacion Final
PPT
Examen Profesional 1
PPTX
Diapositivas biblioteca pc
PDF
Sistema para el control de ventas e inventarios
Proyecto Final de Carrera. Ing.Informática. HELP-DESK
PFC Antonio Bernal Baena
Modelado de Documentos y Sistemas de Información con XML
LI Desarrollo de aplicaciones distribuidas
Base de datos: sistemas_clienteservidor
BASE DE DATOS: sistemas_clienteservidor
Silabo basedatosii 1
Dominios producto final
Proyecto web
Tesis 8659
Syllabus sistemas distribuidos 2012
Automatización de servicios en un restaurant-bar por medio de aplicaciones pa...
Proyecto de base de datos 2012
Unidad 1 Panorama general de las aplicaciones distribuidas
Desarrollo aplicaciones
Presentacion Final
Examen Profesional 1
Diapositivas biblioteca pc
Sistema para el control de ventas e inventarios
Publicidad

Más de Fernando Leandro (20)

PDF
Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...
PPTX
Creación de formularios con Microsoft Forms
PPTX
¿Cómo puedo gestionar Microsoft BOOKINGS para reservar tutorías, citas?
PPTX
Webinar Seminarios en TEAMS
PPTX
Reuniones video llamadas en TEAMS
PPTX
LIVE EVENTS en Microsoft
PDF
Uso de Microsoft List para organizar tu información
PPTX
Uso de Sharepoint para crear tu propias paginas web de comunicación interna
PDF
Fernando leandro-Microsoft Educator Community- Learning Paths
PPSX
Proyecto de innovación docente, TuBeBOVIS-Los Vlogers de Veterinaria.
PPTX
10 ideas about me - Jornadas Documentación 2018
DOC
International STAFF Week - Hiroshima University 2018
PPTX
Short brief Conclussions about my International STAFF Week Hiroshima University
PPT
Presentación Adolescentes y Redes Sociales: hackeando el sistema.
PDF
International Staff Week 2017 at Sheffield Hallam University
PDF
Descargar plantilla para realizar un plan de social media
PPTX
Experiencia en las International STAFF week Erasmus+
PDF
Extracto Libro: La Fuerza de la Publicidad -Marçal Molinè
PPT
Herramienta Linkedin: Taller Formación uso y consejos manejo Marca Personal
PPT
Manejo y trucos de un Community Manager. Mi día a día como Social Media en la...
Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...
Creación de formularios con Microsoft Forms
¿Cómo puedo gestionar Microsoft BOOKINGS para reservar tutorías, citas?
Webinar Seminarios en TEAMS
Reuniones video llamadas en TEAMS
LIVE EVENTS en Microsoft
Uso de Microsoft List para organizar tu información
Uso de Sharepoint para crear tu propias paginas web de comunicación interna
Fernando leandro-Microsoft Educator Community- Learning Paths
Proyecto de innovación docente, TuBeBOVIS-Los Vlogers de Veterinaria.
10 ideas about me - Jornadas Documentación 2018
International STAFF Week - Hiroshima University 2018
Short brief Conclussions about my International STAFF Week Hiroshima University
Presentación Adolescentes y Redes Sociales: hackeando el sistema.
International Staff Week 2017 at Sheffield Hallam University
Descargar plantilla para realizar un plan de social media
Experiencia en las International STAFF week Erasmus+
Extracto Libro: La Fuerza de la Publicidad -Marçal Molinè
Herramienta Linkedin: Taller Formación uso y consejos manejo Marca Personal
Manejo y trucos de un Community Manager. Mi día a día como Social Media en la...

Último (20)

PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
informe tipos de Informatica perfiles profesionales _pdf
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PDF
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
Introducción a la historia de la filosofía
PDF
TOMO II - LITERATURA.pd plusenmas ultras
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
DOCX
PLANES DE área ciencias naturales y aplicadas
PDF
Atencion prenatal. Ginecologia y obsetricia
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PDF
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
informe tipos de Informatica perfiles profesionales _pdf
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
Programa_Sintetico_Fase_4.docx 3° Y 4°..
Esc. Sab. Lección 7. El pan y el agua de vida.pdf
Escuelas Desarmando una mirada subjetiva a la educación
Introducción a la historia de la filosofía
TOMO II - LITERATURA.pd plusenmas ultras
Ernst Cassirer - Antropologia Filosofica.pdf
PLANES DE área ciencias naturales y aplicadas
Atencion prenatal. Ginecologia y obsetricia
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
Aumente su Autoestima - Lair Ribeiro Ccesa007.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf

Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

  • 1. Licenciatura en Documentación Facultad de Informática Curso Académico 2004 / 2005 Proyecto Final de Carrera DocuNews: Portal de Noticias Tutor: Carlos Miguel T. Calafate Autores: Fernando Leandro Baladrón Departamento: Departamento de Informática de Sistemas y Computadores
  • 2. 1.NIVEL DE OBJETIVOS Y REQUERIMIENTOS 3 1.1.INTRODUCCIÓN 3 1.1.1. QUÉ ES UNA BIBLIOTECA DIGITAL? 4 1.1.2. CARACTERÍSTICAS DE TODA BIBLIOTECA DIGITAL 4 1.1.3. QUÉ ES DOCUNEWS 4 1.1.4. CUAL ES LA FUNCIONALIDAD DE DOCUNEWS 4 1.1.5. USUARIOS POTENCIALES DE DOCUNEWS 4 1.1.6. COMO SE HA DESARROLLADO DOCUNEWS? 5 1.1.7. CONCLUSIÓN 5 1.2. ESPECIFICACIÓN DE REQUISITOS DE ACUERDO NORMA IEEE 1.2.1 INTRODUCCIÓN. 7 1.2.1.1. PROPÓSITO. 7 1.2.1.2.ÁMBITO. 7 1.2.1.3. DEFINICIONES, ACRÓNIMOS Y ABREVIATURAS. 7 1.2.1.4. REFERENCIAS. 8 1.2.2. DESCRIPCIÓN GENERAL. 8 1.2.2.1. PERSPECTIVA DEL PRODUCTO 8 1.2.2.2. FUNCIONES DEL PRODUCTO 8 1.2.3. REQUISITOS ESPECÍFICOS. 9 1.2.3.1. REQUISITOS FUNCIONALES. 9 1.2.3.2. REQUISITOS DE LA APLICACIÓN. 15 1.2.4. REQUERIMIENTOS ESPECIFICOS. 16 1.2.4.1. ESTANDARES CUMPLIDOS 16 1.2.4.2. LIMITACIONES HARDWARE. 16 1.2.5. ATRIBUTOS. 16 1.2.5.1. MANTENIMIENTO 16 1.2.5.2. SEGURIDAD 16 2. EL FORMATO RSS. 17 2.1. EXPLICACIÓN FORMATO RSS 17 2.2. ESPECIFICACIÓN FORMATO RSS. 20 3. BASE DE DATOS DOCUNEWS 24 3.1.NIVEL DEL DISEÑO DE LA BASE DE DATOS 24 3.1.1. ANÁLISIS DE REQUERIMIENTOS 24 3.1.2. DISEÑO CONCEPTUAL 26 3.1.3. DISEÑO LÓGICO 27 3.1.4. DIAGRAMA UML 29 3.2. PROCEDIMIENTOS ALMACENADOS CON SQL SERVER 30 3.2.1. BASE DE DATOS EN DOCUNEWS 30 3.2.2. PORQUÉ SQL SERVER? 30 3.2.3. CONEXIONES EN SQL SERVER. 30 3.2.4. EJEMPLOS PROCEDIMIENTOS IMPLEMENTADOS 31 4. NIVEL DEL DISEÑO DE LA INTERFACE 36 4.1. CLASES 36 4.2. PROGRAMACIÓN ASP .NET 45 4.2.1. PÁGINA PRINCIPAL (DEFAULT.ASPX) 46 4.2.2. CONTROLES DE USUARIO 47
  • 3. 4.2.3. INSERCIÓN DE NOTICIAS 48 4.2.4. SUBIR UNA IMAGEN. 49 4.2.5. VISUALIZACIÓN DE LOS DATOS 49 4.2.6. IDENTIFICACIÓN DE LOS USUARIOS 51 4.2.7. OBTENER NOTICIAS 52 4.2.8. TEMAS ADICIONALES 53 5. NIVEL DEL DISEÑO WEB 56 5.1. DISEÑO DE NAVEGACIÓN 56 5.2. HOJA DE ESTILOS CSS 70 5.3. ESTUDIO POSICIONAMIENTO EN GOOGLE 78 6. NIVEL GESTIÓN LOCAL 81 6.1. APLICACIÓN PARA LA GESTIÓN LOCAL DE NOTICIAS 87 6.2. MODULO DE IMPORTACION 88 7. REFLEXIONES Y TRABAJO FUTURO 93 7.1. REFLEXIONES FINALES 93 7.2.TRABAJO FUTURO 95 8. BIBLIOGRAFIA 98 ANEXOS 101 I. ESTIMACIÓN DURACIÓN DEL PROYECTO 101 II. ESTUDIO NECESIDADES DE LOS USUARIOS 102 III. ESTUDIO COMPETENCIA Y FUENTES RELACIONADAS. 111 IV. TESAURO EUROVOC. 122
  • 5. Resumen Se pretende desarrollar un sistema para el almacenamiento y consulta de información de noticias. Se empezará haciendo un análisis exhaustivo de los requerimientos que deben satisfacer este tipo de sistemas, para pasar luego al diseño conceptual usando el modelo entidad relación. Nuestro objetivo final es la creación de un Portal que realice las funciones básicas solicitadas en los requerimientos, donde el usuario podrá consultar en todo momento la Base de datos de noticias del Portal, recuperando la información de forma exhaustiva y eficiente. El papel actual de los documentalistas en las organizaciones va encaminado a la organización de contenidos en la web de las empresas en las que trabajan, así como la organización de la información necesaria para las mismas. Uno de los trabajos más interesantes actualmente para este tipo de profesionales es la organización y creación de contenidos en Portales de Internet y en empresas. En este caso, hemos decidido enfocarlo hacía las noticias porque consideramos que se hace necesaria la creación de un portal que gestione toda esta información de forma eficiente. El resultado será una web dinámica donde el usuario podrá obtener lo que realmente quiere, de forma fácil y totalmente parametrizable.
  • 6. Fernando Leandro Baladrón Proyecto fin de carrera Requerimientos y objetivos 20/05/05 1. REQUERIMIENTOS Y OBJETIVOS Este primer punto estaría formado por una primera parte correspondiente a la introducción, donde detallamos qué nos ha movido ha realizar este proyecto, y una segunda parte relativa a la especificación de requisitos, donde hemos realizado una estimación de los requerimientos del proyecto. 1.1. INTRODUCCIÓN 1.1.1 QUÉ ES UNA BIBLIOTECA DIGITAL? Existen diferentes definiciones para una Biblioteca Digital; en su concepto más simple, es un espacio en donde la información es almacenada y procesada en formato digital. Según la definición tomada por la Digital Libraries Federation: "Las Bibliotecas Digitales son organizaciones que proveen los recursos, incluyendo personal especializado, para seleccionar, estructurar, distribuir, controlar el acceso, conservar la integridad y asegurar la persistencia a través del tiempo de colecciones de trabajos digitales que estén fácil y económicamente disponibles para usarse por una comunidad definida o para un conjunto de comunidades." Un servicio completo de biblioteca digital debe estar acompañado de los servicios esenciales de las bibliotecas tradicionales, además de explotar las ventajas de almacenamiento, búsqueda y comunicación digital. El objetivo principal de una biblioteca digital es facilitar a los usuarios la recuperación e intercambio de información, a través del acceso universal a la información, sin limitantes de tiempo ni espacio. 1.1.2 CARACTERÍSTICAS DE TODA BIBLIOTECA DIGITAL Una biblioteca digital debe contener seis características principales como son: 1) Colección de objetos de datos - Una biblioteca aloja una colección de objetos de datos que pueden ser: libros, documentos etc. Estos objetos pueden ser accesibles utilizando una red para acceder a ellos. 2) Colección de estructuras de metadatos - Una biblioteca contiene una colección de estructuras de metadatos, como son catálogos, guías, diccionarios, etc. 3) Colección de servicios - Una biblioteca proporciona un conjunto de servicios, como diversos métodos de acceso para distintos usuarios. Se podrá acceder como usuario registrado en el caso de estar dado de alta en la biblioteca, o por el contrario como no registrado, el cual sólo tendrá acceso a la información que se crea conveniente por parte de los mismos usuarios de la aplicación. 4) Dominio especializado - Una biblioteca tiene un dominio especializado y su colección tiene un objetivo. Por ejemplo: arte, ciencia o literatura. Además, normalmente se crea para servir a una comunidad de usuarios. 3
  • 7. Fernando Leandro Baladrón Proyecto fin de carrera Requerimientos y objetivos 20/05/05 5) Control de calidad - Una biblioteca utiliza el control de calidad en el sentido de que todo su material se verifica. El material se filtra antes de incluirlo en la biblioteca. 6) Preservación - El objetivo de la preservación es asegurar la protección de la información de valor permanente de manera que pueda ser accesible para las generaciones presentes y futuras. La preservación incluye la distribución de los recursos para su permanencia, medidas preventivas para detener el deterioro de los materiales y medidas restauradoras que permitan la utilización de los materiales seleccionados. 1.1.3 ¿QUÉ ES DocuNews? DocuNews es una aplicación la cual debe gestionar una biblioteca digital dedicada a las noticias. En dicha aplicación se tratan todo tipo de noticias clasificadas por categorías y se almacenan en una base de datos para su posterior tratado o visualización. Otra característica de DocuNews es que debe de dar una funcionalidad de una página web, es decir, cualquier usuario puede acceder a visualizar los datos que existen, o en caso de pertenecer al grupo del administradores, poder modificarlos desde dicha página web. Dentro de este apartado surge la necesidad de analizar como está la situación actual, para esto recomendamos consultar el ANEXO III del estudio de competencia en el que hemos desarrollado un extenso listado de los diferentes portales relacionados con el mundo de las noticias y con la sindicación de contenidos RSS, evaluando la situación actual y que tendríamos que hacer para diferenciarnos. 1.1.4 ¿CUÁL ES LA FUNCIONALIDAD DE DocuNews? La funcionalidad de la aplicación DocuNews viene determinada en función al usuario que desee acceder a la página web. Para dicha aplicación existen dos tipos de usuarios finales: el primero de ellos será un miembro perteneciente al grupo de Administradores, que tras validarse a través de un login y un password podrá acceder a todas las funciones especiales que ofrece la aplicación (dar de alta, modificar o eliminar Noticias). El segundo tipo de usuario es el usuario anónimo, que podrá acceder a las noticias ofrecidas en el Portal. 1.1.5 USUARIOS POTENCIALES DE DocuNews Debida a la gran abundancia de información disponible al usuario de redes, una de las necesidades que surgen es la de proveer al usuario de medios para manejar de manera más efectiva el gran volumen, dinamismo y complejidad de la información. Generalmente el usuario se ve enfrentado con la necesidad de navegar entre el gran volumen de datos para buscar y localizar la información que necesita y que le es de importancia. Esto representa frecuentemente una desorientación del usuario entre los diferentes caminos que pueden seguir en un sistema de tantos medios de búsqueda. 4
  • 8. Fernando Leandro Baladrón Proyecto fin de carrera Requerimientos y objetivos 20/05/05 Este tipo de aplicaciones serán como buscadores temáticos, los cuales sólo contendrán información referente al tema de la biblioteca. De esta forma, cualquier usuario interesado en realizar una búsqueda del tema que desee, sólo tendrá que acceder a alguna de estas bibliotecas, y visualizar los datos que hay en ella. Existen bibliotecas en las cuales los usuarios deben registrarse para poder acceder a ella, aportando información, así como introduciendo datos para mantener y enriquecer dicha biblioteca. Destacar que finalmente, tal y como se muestra en el ANEXO II nuestros usuarios potenciales serán los jóvenes, en dicho anexo se puede observar que se ha tomado la decisión de recurrir a encuestas para evaluar aspectos tan determinantes como los gustos de los jóvenes valencianos, a que dedican el tiempo libre o cuales son sus mayores motivaciones, de todo esto se han realizado una serie de conclusiones que serán clave a la hora de darle finalidad a nuestro portal. Nuestro portal aunque suene ambicioso tiene que dar respuesta a las carencias y necesidades que hemos encontrado a la luz de nuestras encuestas. 1.1.6 ¿Cómo se ha desarrollado DocuNews? DocuNews ha sido desarrollada mediante la tecnología ASP.NET, mediante Visual Studio .NET y con el lenguaje de programación ASP .NET Como se ha mencionado anteriormente, la aplicación está soportada por una base de datos que almacena toda la información de las noticias del Portal. Dicha base de datos está desarrollada mediante SQL Server. Otros detalles de la aplicación se encuentran más detallados en la Especificación de requisitos realizada de acuerdo a la norma IEEE std. 830 – 1998 (Ver apartado 1.2 del trabajo). 1.1.7 CONCLUSIÓN Internet y el Web han crecido continuamente en los últimos años produciendo un aumento excesivo de la información. Los motores de búsqueda nos proporcionan una gran cantidad de información que no deseamos, y en definitiva, una búsqueda de un dato en concreto nos cuesta mucho más tiempo del que desearíamos. La solución radica en las bibliotecas digitales, en las cuales se tratan sólo unos temas en concreto, y por tanto la información “no deseable” es mucho menor que en cualquier buscador. Muchos consideran la Web como la biblioteca virtual internacional definitiva. 5
  • 9. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 Especificación de Requisitos siguiendo la normativa IEEE std 830 –1998: IEEE Guide to Software Requirements Specifications. IEEE Standards Board. 6
  • 10. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 1.2 Especificación de requisitos de acuerdo a la norma IEEE El objetivo de este punto es dejar claro desde el principio los requerimientos y funcionalidades que va ha tener la aplicación. En este punto nos hemos dedicado a detectar todos aquellos requisitos que va ha necesitar nuestra aplicación. 1.2.1 Introducción 1.2.1.1 Propósito La aplicación consiste en la construcción de una biblioteca digital, mediante una base de datos. Debe de dar la funcionalidad de una página web de Noticias. Dicha base de datos permitirá introducir la información relativa a las categorías y noticias, así como administradores, Palabras clave, imágenes. Los administradores de la aplicación serán los encargados de gestionar las tareas de mantenimiento y actualización de los datos de toda la información disponible, así como también los miembros autorizados. 1.1.2.2 Ámbito Nuestra aplicación recibe el nombre de “DocuNews”. Desempeñará el papel de gestionar y ordenar los datos introducidos por los Administradores para poder después mostrarlo a cualquier visitante. La aplicación dará la posibilidad de dar de alta a nuevos administradores, y estos podrán introducir nuevas noticias, modificarlas e incluso borrarlas. 1.1.2.3 Definiciones, acrónimos y abreviaturas - ADMINISTRADORES: Los encargados fundamentalemente de introducir la noticias, modificarlas, borrarlas, crear las categorías, dar de alta a nuevos administradores. - VISITANTE: Persona que visita la web de forma anónima. - HITOS: Objetivo parcial que se alcanza una vez concluida una serie de tareas. - USUARIO: Persona que accede a la aplicación con derechos de modificación y visualización de los datos. *Acrónimos: - URL: Uniform Resource Locator. 7
  • 11. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 - ASP: (Active server pages), Páginas de servidor activo. - IEEE: (Institute of Electrical & Electronics Engineers). 1.2.1.4 Referencias -IEEE std 830 –1998 IEEE Guide to Software Requirements Specifications. IEEE Standards Board. -Guía del IEEE para la especificación de requerimientos software. 1.2.2. DESCRIPCIÓN GENERAL 1.2.2.1 Perspectiva del producto: La aplicación DocuNews es una aplicación totalmente independiente destinada a ejecutarse sobre cualquier PC que soporte un sistema operativo Windows. 1.2.2.2 Funciones de producto: a) Funciones especificas de los miembros: a1) Funciones de gestión de información: Añadir / Eliminar / Modificar Categorías. Añadir / Eliminar/ Modificar Noticias. Añadir / Eliminar/ Modificar Listado de Palabras Clave. a2) Funciones de comprobación: Verificar login y password. a3) Funciones personales de un Administrador: Cambio de password. Dar de alta a un nuevo Administrador. Modificar perfil propio. b) Funciones de cualquier usuario: b1) Funciones de búsqueda: Consultar Categorías Consultar Palabras clave Consultar Noticias sobre palabras clave. Consultar Noticias sobre títulos. 8
  • 12. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 Consultar Noticias sobre fecha de publicación. Consultar Noticias sobre Valor de impacto. Consultar Noticias sobre autores. Consultar Noticias con el campo imagen activo. b2) Otras funciones: Importación Automática de noticias formato RSS 2.0. ● Imagen Resumen: 2.3 Características del usuario: Los usuarios que podrán utilizar el producto pueden ser: - Cualquier persona que tenga acceso a Internet y tenga curiosidad por conocer las noticias de actualidad. - Un miembro perteneciente al grupo de administradores no necesita ninguna formación especifica. 2.4 Restricciones generales: La aplicación se realizará bajo el entorno ASP.NET con lo cual vamos a utilizar el entorno Windows, luego no podemos hacer uso de ninguna aplicación que no trabaje bajo dicho entorno. Además, solo puede estar alojada en un servidor Windows. 2.5 Supuestos y dependencias: Para utilizarlo necesitamos un servidor que procese nuestras páginas ASP, para ello existe el Internet Information Server bajo Windows NT o 2000. 1.2.3. REQUISITOS ESPECIFICOS. 1.2.3.1 Requisitos funcionales: 1.2.3.1.1 Añadir Categoría (Categoria): -Introducción: Los administradores podrán dar de alta una nueva categoría. 9
  • 13. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 -Entrada: el titulo del Canal/Categoria (title), el link de la dirección URL de la pagina web que genera el Canal/Categoria (link), la descripción del Canal/Categoria (description), el idioma de la fuente de información (language), el aviso legal del Canal/Categoria (copyright), el correo electronico del editor del Canal/Categoria (managingEditor), el correo electrónico del webmaster del Canal/Categoria para resolver problemas técnicos (webMaster), la fecha de publicación del Canal/Categoria (pubDate), la última fecha de actualización del Canal/Categoria (lastBuildDate), el nombre del programa que genera el archivo RSS (generador), la dirección url donde se encuentra la fuente información del Canal/Categoria (docs), avisos de cuando se actualiza el Canal/Categoria (cloud), el tiempo de vida del Canal/Categoria expresado en minutos, el PICS rating del Canal/Categoria, la etiqueta de la caja de texto del Canal/Categoria (textinput) , las horas en las que no está disponible el Canal/Categoria (skipHours), Fechas en las que no está disponible el Canal/Categoria (skipDays). -Proceso: almacenar toda la información de la nueva categoría e introducirla en la base de datos de la aplicación. -Salida: Base de datos actualizada. 1.2.3.1.2 Eliminar Categoría (Categoria): -Introducción: El Administrador puede dar de baja un Canal/Categoria existente. -Entrada: El título de la categoría que se quiere dar de baja. -Proceso: sólo se podrá borrar si no existen noticias relacionadas con el Canal/ Categoría. -Salida: En caso de que no existan noticias relacionadas con el Canal/Categoría la salida será la base de datos actualizada, en caso contrario se le avisará al administrador de que la operación no se ha podido realizar por existir noticias con la categoría que se desea borrar. 1.2.3.1.3 Modificar Categoria (Categoria): -Introducción: modificar una categoría actualizando cualquier campo de datos de dicho categoría. -Entrada: Nombre de la categoría que se desea modificar. -Proceso: El Administrador una vez identificado como tal, puede modificar esa categoría en la base de datos. -Salida: La base de datos actualizada. 1.2.3.1.4 Añadir Noticia (Noticia): -Introducción: Los Administradores pueden insertar una Noticia en la Base de datos. -Entrada: Título de la noticia (title), el Canal/Categoría a la que queremos que pertenezca (category), el link a la noticia en concreto (link), la descripción de la noticia (description), el autor de la noticia (author), dirección url donde se encuentran los comentarios acerca de la noticia (comments), descripción del objeto de audio o video incluido en la 10
  • 14. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 noticia (enclosure), la fecha de publicación de la noticia (pubDate), el nombre del canal RSS donde procede la noticia (source). El factor de impacto que consideramos que ha tenido la noticia (impacto), podremos además asociar una imagen a la noticia. También se podrá concretar una serie de palabras clave asociadas a la noticia. En caso de que no exista previamente el canal/categoría al que se desea asociar la noticia, deberemos crear anteriormente el canal/categoría. -Proceso: Reestructurar la información para insertarla de forma eficiente a la base de datos. -Salida: La base de datos actualizada. 1.2.3.1.5 Eliminar Noticia (Noticia): -Introducción: Los Administradores pueden eliminar noticias. -Entrada: El título de la Noticia que se desea eliminar. -Proceso: Comprobar que existe y borrar ese registro de la base de datos. -Salida: La base de datos actualizada. 1.2.3.1.6 Modificar Noticia (Noticia): -Introducción: Los Administradores pueden modificar los datos de una noticia. -Entrada: El título de la noticia que quieres modificar. -Proceso: Comprobar que existe y modificar ese registro de la base de datos. -Salida: La base de datos actualizada. 1.2.3.1.7 Añadir Palabras clave (Palabra_Clave): -Introducción: Los administradores podrán añadir palabras clave normalizadas. -Entrada: Palabra clave correctamente normalizada basándose en Tesauros. -Proceso: El Administrador tiene que estar previamente identificado, en el proceso de dar de alta una Palabra Clave, se comprobará que la palabra no existía en la base de datos. -Salida: Base de datos actualizada. 1.2.3.1.8 Eliminar Palabras clave (Palabra_Clave): -Introducción: Los Administradores pueden dar de baja Palabra Clave. -Entrada: Nombre de la palabra clave. -Proceso: El Administrador una vez identificado, podrá dar de baja cualquier palabra clave, si la palabra clave que se desea borrar esta 11
  • 15. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 siendo utilizada por una noticia automáticamente se borrara en cascada también de dichas noticias. -Salida: Base de datos actualizada. 1.2.3.1.9 Modificación Palabras clave (Palabra_Clave): -Introducción: Los Administradores pueden modificar cualquier Palabra Clave. -Entrada: Nombre de la palabra clave que se desea modificar. -Proceso: El Administrador una vez identificado, podrá modificar cualquier palabra clave, actualizándose en cascada en todas las noticias que usen esa palabra clave. -Salida: La base de datos actualizada. 1.2.3.1.10 Cambio de password: -Introducción: Un Administrador puede modificar su propio password. -Entrada: Login y password antiguo y dos veces su password nuevo. -Proceso: Comprobar que se ha introducido un password correcto, y que se escribe dos veces el mismo nuevo password. -Salida: Base de datos actualizada. 1.2.3.1.11 Asignar Administradores: -Introducción: Un Administrador podrá dar de alta a un nuevo Administrador. -Entrada: Nombre del Administrador, Apellidos, login, password, imagen, perfil. -Proceso: A partir del nombre del Administrador, se genera un nuevo registro en la base de datos. -Salida: Base de datos actualizada. 1.2.3.1.12 Consulta Perfil Propio: -Introducción: una vez identificado podremos modificar los diferentes campos de nuestro perfil -Entrada: Nombre del Administrador, Apellidos, login, password, imagen, perfil. -Proceso: El Administrador una vez identificado, podrá modificar cualquier campo de su propio perfil. -Salida: Base de datos actualizada. 1.2.3.1.13 Consultar Categorías: 12
  • 16. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 -Introducción: Listado de Categorías /Canales dados de alta en el sistema. -Entrada: nombre de la Categoría/Canal y opciones elegidas. -Proceso: Con el nombre de la Categoría/Canal y opciones elegidas realizar la búsqueda de los diversos registros de la base de datos. -Salida: La página html con el resultado de la búsqueda realizada. 1.2.3.1.14 Consultar Palabras clave: -Introducción: Listado de palabras Clave dadas de alta en el sistema. -Entrada: nombre de la palabra Clave, o caracteres iniciales de la palabra clave. -Proceso: Con la palabras clave o caracteres iniciales, realizar la búsqueda de los diversos registros de la base de datos. -Salida: La página html con el resultado de la búsqueda realizada. 1.2.3.1.15 Consulta Noticias sobre Categoría: -Introducción: Busca una noticia a partir de un Canal/ Categoría. -Entrada: El nombre del Canal/Categoría y opciones de búsqueda. -Proceso: Con el nombre del Canal/Categoría y opciones de búsqueda elegidas realizar la búsqueda de los diversos registros de la base de datos. -Salida: La página html con el resultado de la búsqueda realizada. 1.2.3.1.16 Consultar Noticias sobre título: -Introducción: A partir de un titulo de Noticia buscar todas la noticias con ese titulo. -Entrada: Titulo de la noticia (o parte del titulo de la noticia) y opciones de búsqueda. -Proceso: Con en el nombre del título y opciones elegidas realizar la búsqueda de los diversos registros de la base de datos. -Salida: La pagina html con el resultado de la búsqueda realizada. 1.2.3.1.17 Consultar Noticias sobre fecha de publicación. -Introducción: A partir de una fecha de publicación, o intervalo de fechas de publicación, buscar las noticias publicadas en esa fecha. -Entrada: fecha de publicación, (o intervalos de fechas) y opciones de búsqueda. -Proceso: Con la fecha de publicación y opciones elegidas realizar la búsqueda de los diversos registros de la base de datos. Para el caso en el que tengamos un intervalo de fechas comprobaremos que el intervalo es valido, la fecha de inicio debe ser menor que la fecha de fin. 13
  • 17. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 -Salida: La pagina html con el resultado de la búsqueda realizada, ordenando los registros por fecha de publicación. 1.2.3.1.18 Consultar Noticias sobre autores: -Introducción: A partir de un autor, obtener todas las noticias de ese autor. -Entrada: Autor y opciones de búsqueda. -Proceso: Con el nombre del autor y opciones elegidas realizar la búsqueda de los diversos registros de la base de datos. -Salida: La pagina HTML con el resultado de la búsqueda realizada 1.2.3.1.19 Consultar Noticias con Imagen: -Introducción: búsqueda de noticias con el campo imagen activo, es decir, queremos obtener aquellas noticias que tengan imagen. -Entrada: campo imagen activo y opciones de búsqueda. -Proceso: Buscaremos aquellos registros que no tengan a nulo el campo imagen, además de las opciones elegidas para la búsqueda de los diversos registros de la base de datos. -Salida: La pagina html con las noticias con Imagen. 1.2.3.1.20 Consultar Noticias sobre valor de impacto: -Introducción: A partir de un valor de impacto, buscar las noticias con igual valor de impacto, menores que ese valor de impacto o mayores que ese valor de impacto. -Entrada: Valor de impacto del 1 al 10. -Proceso: Con el valor de impacto y opciones elegidas realizar la búsqueda de los diversos registros de la base de datos. -Salida: La pagina html ordenadas por valor de impacto. 1.2.3.1.21 Consultar Noticias sobre Palabras clave: -Introducción: A partir de unas palabras claves, buscar las noticias con esas palabras clave. -Entrada: Palabras clave y opciones de búsqueda. -Proceso: Con las palabras clave y opciones elegidas realizar la búsqueda de los diversos registros de la base de datos. -Salida: La página html con el resultado de la búsqueda realizada. 14
  • 18. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 1.2.3.2 Requisitos de la aplicación 1.2.3.2.1 Interfaces de usuario La aplicación se visualizará con cualquier navegador, como puede ser Internet Explorer, Netscape, Opera, Mozilla Firefox etc. Se accederá a una pagina inicial desde la cual se podrá elegir vínculos al resto de posibilidades de la mencionada pagina (DocuNews). Todo visitante anónimo tendrá acceso a todo el contenido de la aplicación pero sin la posibilidad de realizar ningún cambio. Podrá realizar consultas sobre la Base de datos, cuyo resultado de las búsquedas será mostrado en el navegador. Se presentarán distintos formularios con la información pertinente en cada uno de ellos, donde el usuario podrá seleccionar las opciones deseadas y, en caso de ser un usuario con acceso registrado, se le permitirá la introducción y modificación de todos los datos que considere oportunos, en cualquier sección de la Web que desee excepto en las páginas personales del resto de los usuarios registrados. Como miembro del grupo de Administradores se tendrá acceso a dar de alta a otro Administrador, a modificar sus datos personales. 1.2.3.2.2 Requisitos Hardware No se necesitara un Hardware específicamente potente, bastará con un equipo Hardware normal. Los requisitos serán los mismos que los de SQL Server y Internet Information Server (IIS). 1.2.3.2.3 Requisitos Software El producto que estamos describiendo esta desarrollado bajo el sistema operativo Windows por el hecho de utilizar la tecnología de microsoft ASP.NET. Del lado del cliente no será necesario trabajar bajo un entorno Windows, ya que lo que se genera son paginas HTML y se pueden visualizar con cualquier navegador independientemente del sistema operativo utilizado. 1.2.3.2.4 Interfaces de comunicación Tener conexión a Internet gracias a un módem (acceso remoto) o tarjeta de red. 1.2.3.3 Requisitos de eficiencia Esta aplicación esta pensada para que se pueda visualizar bajo cualquier navegador. 15
  • 19. Fernando Leandro Baladrón Proyecto fin de carrera Especificación de requisitos 20/05/05 El prototipo de DocuNews se alojará en un servidor Windows. 1.2.4. Requerimientos específicos 1.2.4.1 Estándares cumplidos El lenguaje utilizado para la anotación, definiciones y acrónimos es el castellano, aunque para algunos campos de la base de datos hemos utilizado el inglés. 1.2.4.2 Limitaciones Hardware El PC que vaya a visualizar la aplicación debe disponer de una tarjeta de red o un módem para conectarse a Internet, ya sea bien a través de una LAN o de una conexión directa a Internet. La capacidad del servidor estará en función de la carga de transacciones a que estará sometido. Los PC´s para la visualización deberán disponer como mínimo de la capacidad de almacenamiento requerida por el navegador. 1.2.5. Atributos 1.2.5.1 Mantenimiento El mantenimiento de la aplicación será sencillo, así como su instalación, administración y reparación. Además irá acompañada de los manuales correspondientes que clarifiquen los pasos a seguir por el usuario. En cuanto al idioma y formato de los datos, preferentemente se hará en español, aunque quizás en un futuro se realice en otros idiomas. En un futuro se estudia el que se pueda importar automáticamente las noticias de diversos portales tales como Google, yahoo, etc.. Por tanto, por esta circunstancia, adaptaremos nuestro portal al formato RSS. 1.2.5.2 Seguridad Los Administradores y usuarios tendrán un login y password para acceder a posibles modificaciones de la aplicación. De esta forma, cualquier persona no identificada, sólo podrá consultar las noticias. Al tratarse de una aplicación a la cual se accede a través de Internet, hay que tener un control estricto de las claves de los usuarios y de sus permisos para que ningún usuario malicioso pueda modificar o dañar la base de datos de la aplicación o la aplicación en sí. 16
  • 20. Fernando Leandro Baladrón Proyecto fin de carrera El formato RSS 20/05/05 2. El formato RSS 2.1 Explicación formato RSS. El formato RSS ha tenido una gran importancia en nuestro portal web, el diseño de la base de datos se ha centrado fundamentalmente en este formato, y gracias a ello hemos conseguido desarrollar la importación automática de las noticias. Esta tecnología se basa en XML y en el uso de las metaetiquetas. Este formato no se basa en la forma sino que está enfocado en el contenido. W3C ha establecido una norma para que así todos los interesados en esta tecnología puedan hacer un uso correcto y formalizado de dicho formato. Explicación Formato RSS: RSS son las siglas de RDF Site Summary, un sistema mediante el cual los sitios web pueden publicar su contenido fuera del navegador web. Resulta de gran utilidad, por ejemplo, para mantener a los usuarios al día sobre las últimas actualizaciones de la página: novedades, titulares de última hora, etc. El formato RSS, se ha convertido en los últimos tiempos en un estándar para la trasmisión de noticias, sobre todo las provenientes de los weblogs. Al creador de la especificación RSS 2.0 se le antojó cambiarle el significado a las siglas, y para él significan Really Simple Syndication, Sindicación Realmente Simple. Se trata de un formato basado en XML que incluye información siguiendo unas determinadas especificaciones. De esta manera, cualquier programa que las siga es capaz de mostrar dicha información. Te puedes 'sindicar' a un determinado 'feed' (fichero RSS) y ser avisado en todo momento de las noticias que contenga. Por ejemplo, para el caso de DocuNews se ha construido un fichero XML que se actualiza al momento de ser solicitado, y que incluye las 12 noticias más importantes de cada momento. De esta manera, podrás tener en cada instante (y sin tener que estar accediendo a sus sitios web) las noticias más destacadas tomadas de decenas de medios de comunicación. Los editores de un sitio deciden qué van a difundir a través de RSS, ya sea: los encabezados más recientes (What’s New?) de un blog, de un periódico en línea, de una revista o de las noticias de un portal; las 10 aplicaciones más descargadas o el menú de un sitio. Los sitios web que alberguen esta información no tendrán que modificar nunca alguna línea del contenido importado, ya que a medida que se actualice el RSS feed del sitio fuente, los destinos se actualizarán automáticamente. Una ventaja para aquel al que le interesa atraer a más visitantes es que, si sus sitios web incluyen en sus contenidos RSS feeds, entonces el número de visitas al sitio web original aumenta, debido a que los encabezados se difunden por diversas fuentes (sitios). Este hecho también contribuye a que los motores de búsqueda tengan más referencias hacia nuestro sitio, porque indexan los encabezados que aparecen en las páginas que importan los RSS feeds. 17
  • 21. Fernando Leandro Baladrón Proyecto fin de carrera El formato RSS 20/05/05 Comúnmente, los cibernautas dejan en las bitácoras de los servidores web muchos registros de accesos a páginas que no consultan, ya que los contenidos de esas páginas no es lo que están buscando, así se mantienen en búsquedas infructuosas hasta que llegan a la información que necesitan. RSS es una forma de desviar ese tráfico de búsquedas infructuosas hacia los sitios que importan los RSS feed, en el momento que los cibernautas encuentran los encabezados que les interesan, acceden al sitio original a través de la link del encabezado y sólo a la información que les interesa. Así por un lado, tenemos mayor número de accesos y por otro, accesos de mayor calidad, directamente a las notas, artículos o información que les interesa a los navegantes. “To syndicate” traducido literalmente significa sindicar, entrar a formar parte de un sindicato. Pero en inglés tiene otra acepción: algo así como "publicar artículos simultáneamente en diferentes medios a través de un sindicato al que se pertenece". EJEMPLO RSS 2.0: En el siguiente ejemplo, se ilustra un documento con el formato RSS 2.0 <?xml version="1.0" ?> - <!-- generator="b2evolution/0.9.0.10" --> - <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/"> - <channel> - <item> <title>Curso: Creación y Desarrollo de Bibliotecas Digitales</title> <link>http://blogs.orbis.org.mx/blogs/calmecac.php?title =curso_creacion_y_desarrollo_de_bibliotec&more=1&c=1 &tb=1&pb=1</link> <pubDate>Thu, 24 Feb 2005 10:52:40 +0000</pubDate> <category domain="main">Tecnologías Aplicadas a la Educación</category> <guid isPermaLink="false">45@http://blogs.orbis.org.mx/blogs</ guid> <description>http://www.filos.unam.mx/dec/Semestre200 5/c_bibliotecasdigitales.htm Este un curso organizado por la Facultad de Fislosofía y Letras de la UNAM. Objetivo general. Proporcionar los elementos teóricos y aplicación necesarios para la creación, desarrollo y organización de diversas categorías de bibliotecas digitales, actividades fundamentales universitarias: docencia, investigación y difusión de la cultura.</description> - <content:encoded> - <![CDATA[ <p><a href="http://www.filos.unam.mx/dec/Semestre2005/c_b ibliotecasdigitales.htm">http://www.filos.unam.mx/d ec/Semestre2005/c_bibliotecasdigitales.htm</a></p> <p>Este un curso </p>]]> </content:encoded> <comments>http://blogs.orbis.org.mx/blogs/calmecac.php </comments> </item> </channel> </rss> 18
  • 22. Fernando Leandro Baladrón Proyecto fin de carrera El formato RSS 20/05/05 Ejemplo de lo que podría ser un formulario de entrada de datos para el formato RSS 0.91 Se puede observar la gran cantidad de campos de los que dispone este formato. 19
  • 23. Fernando Leandro Baladrón Proyecto fin de carrera Especificación RSS 2.0 20/05/05 2.2 Especificación formato RSS 2.0: En ente apartado se comenta en detalle cuales son los campos utilizados por este formato, además de detallar un ejemplo para ilustrar la sencillez de este formato. ● RSS 2.0 Publicada en Octubre del 2002 por Dave Winner. Esta especificación es compatible con RSS 0.91 y RSS 0.92 . Por tanto, un fichero RSS 0.91 es también un fichero RSS 2.0 válido. -Resumen de los elementos que forman parte de un fichero RSS 2.0 ● Elementos requeridos del channel <title> -- Título del canal. <link> -- Dirección URL a la página web que genera el canal de información. <description> -- Breve descripción del canal. ● Elementos opcionales del channel <language> -- Idioma de la fuente de información. <copyright> -- Aviso legal del canal. <managingEditor> -- Correo electrónico del editor del canal. <webMaster> -- Correo electrónico del webmaster del canal, para resolver problemas técnicos. <pubDate> -- Fecha de publicación del canal. Ejemplo: cada 24 horas. <lastBuildDate> -- Última fecha de actualización del canal. <category> -- Cateogoría a la que pertenece el canal. Ejemplo: finanzas. <generator> -- Nombre del programa que genera los archivos rss. <docs> -- Dirección url donde se encuentra la fuente de información del canal. <cloud> -- Permite recibir avisos cuando se actualiza el canal. <ttl> -- Tiempo de vida del canal expresado en minutos. <image> -- Url donde se encuentra la imagen del canal. <rating> -- PICS rating del canal. <textinput> -- Etiqueta de la caja de texto del canal. <skipHours> -- Horas en que no está disponible el canal. <skipDays> -- Fechas en que no está disponible el canal. ● Elementos requeridos del item <title> -- Título del item. <link> -- Link al item. <description> -- Breve descripción del item. ● Elementos opcionales del item <author> -- Correo electrónico de la persona que ha escrito la notícia. <category> -- Categoría a la que pertenece la notícia. <comments> -- Dirección URL donde se encuentran los comentarios acerca de la 20
  • 24. Fernando Leandro Baladrón Proyecto fin de carrera Especificación RSS 2.0 20/05/05 notícia. <enclosure> -- Describe el objeto de audio, video... que está incluido con la notícia. <guid> -- Número que identifica a la notícia. <pubDate> -- Fecha de publicación de la notícia. <source> -- Nombre del canal RSS donde procede la notícia. -Modificaciones respecto a las versiones anteriores Se permiten crear tantos elementos como sean necesarios, siempre y cuando se hayan definido correctamente. El elemento <category> pasa a ser opcional. ● Nuevos elementos <category> -- Es un nuevo sub-elemento opcional del <channel>. <comments> -- Es un nuevo sub-elemento opcional del <item>. Es la dirección web (URL) donde se encuentran los comentarios acerca del item. <comments>http://www.uatsap.com/comentarios> <generator> -- Es un nuevo sub-elemento opcional del <channel>. Programa que ha generado el archivo RSS. <author> -- Es un nuevo sub-elemento opcional del <item>. Especifica la dirección de correo del autor del item. Para los periódicos o revistas que se sindican via RSS, el autor es la persona que ha escrito el artículo. <author> uatsap@uatsap.com (uatsap.com)</author> <ttl> -- Es un nuevo sub-elemento opcional del <channel>. Define el tiempo de vida del canal. Se expresa en minutos e indica cuánto tiempo el canal puede guardarse en la caché antes de ser refrescado. <ttl> 60 </ttl> <pubdate> -- Es un nuevo sub-elemento opcional del <item>. Es una fecha que indica cuándo el item fue publicado. Si la fecha es futura, los agregadores de noticias pueden decidir no mostrarla hasta llegar a la fecha de publicación. <guid> -- Es un nuevo sub-elemento opcional del <item>. Es un identificador del número de item (similar al concepto de ID). Si está presente, un agregador puede utilizarlo para decidir si el item es nuevo o no. <guid> http://www.uatsap.com/rss10001 </guid> Existe el atributo permalink, opcional y con valor por defecto a True, que si está activado el agregador de notícias asume que el fichero puede ser abierto por un navegador. <guid isPermaLink="true"> http://www.uatsap.com/rss10001.php </guid> 21
  • 25. Fernando Leandro Baladrón Proyecto fin de carrera Especificación RSS 2.0 20/05/05 ● EJEMPLO RSS 2.0: Mostramos un ejemplo simplificado de un fichero RSS 2.0 que consta de un canal y dos elementos item: <rss version="2.0"> <channel> <title>Uats'ap. Noticias RSS.</title> <link>http://www.uatsap.com</link> <description> XML (Extensible Markup Language) es el formato universal para datos en la web. XML permite fácilmente a los desarrolladores describir y proporcionar contenido, datos estructurados para cualquier aplicación de una forma estándard, XML no sustituye a HTML; es un formato que lo complementa. </description> <cloud domain="datos.uatsap.com" port="80" path="/RPC2" registerProcedure="datos.rssNotificar" protocol="xml-rpc"/> <docs>http://www.uatsap.com/docs</docs> <generator>uatsap 1.0</generator> <ttl>60</ttl> <item> <title> RSS Ficheros </title> <link> http://www.uatsap.com </link> <description> Obtén respuesta a tus preguntas acerca de los ficheros RSS</description> <source url="http://www.uatsap.com/music/uatsap.mp3" length="19917410" type="audio/mpeg" /> <pubDate>Mon, 29 Sep 2003 06:57:42 GMT</pubDate> </item> <item> <title> ¿Cómo sindicar noticias RSS? </title> <link> http://www.uatsap.com </link> <description> Manual para utilizar RSS y sindicar noticias en tu web </description> <source url="http://www.uatsap.com/music/radio.mp3" length="34518490" type="audio/mpeg" /> <pubDate>Mon, 29 Sep 2003 06:58: GMT</pubDate> </item> </channel> </rss> 22
  • 26. Fernando Leandro Baladrón Proyecto fin de carrera Especificación RSS 2.0 20/05/05 ● Fuentes consultadas: -Pagina en Español con mucha información sobre RSS. [en línea]. Encontraremos la especificación de los formatos muy detallada. <http://www.uatsap.com/ > [fecha consulta 03 de marzo de 2005] -RSS 2.0 Specification. RSS at Harvard Law. Autor Dave Winer. [en línea]. <http://blogs.law.harvard.edu/tech/rss> [fecha consulta 03 de marzo de 2005] 23
  • 27. Fernando Leandro Baladrón Proyecto fin de carrera Diseño Base de Datos 6/04/05 3. Base de datos en DocuNews Las ventajas de tener una base de datos son muchas. Para empezar necesitamos de un recipiente donde poder almacenar nuestras noticias. Si almacenamos la información correctamente luego conseguiremos interpretarla y recuperarla de forma eficiente. En esta Base de datos almacenaremos todas las noticias. La primera ventaja es que cualquiera desde Internet, podrá consultar las noticias que solicite. Otra de las ventajas es que al disponer de una base de datos podremos realizar consultas delimitando por los diferentes campos que tiene una noticia. Podremos, además, hacer un control de la redundancia de los datos, evitando tener noticias duplicadas. A continuación, se pasa a detallar el diseño de la base de datos DocuNews. Una vez visto el diseño, veremos los procedimientos almacenados que tratan esos datos, implementados sobre SQL Server. 3.1. Diseño de la base de datos El apartado anterior y este van estrechamente ligados puesto que nos vamos a basar en el Formato de Sindicación de Contenidos (RSS) a la hora de diseñar la base de datos. Partes en la que hemos dividido este apartado: 3.1.1) Análisis de Requerimientos. 3.1.2) Diseño Conceptual. 3.1.3) Diseño Lógico. 3.1.4) Diagrama UML. 3.1.1) Análisis Requerimientos: Queremos diseñar una Base de datos para un Portal de Noticias. Por un lado queremos almacenar las diferentes categorías (Canales) de Noticias que vamos ha tener, de cada una de estas Categorías (Canales) queremos almacenar los campos el titulo del Canal/Categoria (title), el link de la dirección URL de la pagina web que genera el Canal/Categoria (link), la descripción del Canal/Categoria (description), el idioma de la fuente de información (language), el aviso legal del Canal/Categoria (copyright), el correo electronico del editor del Canal/Categoria (managingEditor), el correo electrónico del webmaster del Canal/Categoria para resolver problemas técnicos (webMaster), la fecha de publicación del Canal/Categoria (pubDate), la última fecha de actualización del Canal/Categoria (lastBuildDate), el nombre 24
  • 28. Fernando Leandro Baladrón Proyecto fin de carrera Diseño Base de Datos 6/04/05 del programa que genera el archivo RSS, la dirección url donde se encuentra la fuente información del Canal/Categoria (docs), avisos de cuando se actualiza el Canal/Categoria (cloud), el tiempo de vida del Canal/Categoria expresado en minutos, el PICS rating del Canal/Categoría (rating), la etiqueta de la caja de texto del Canal/Categoria (textinput) , las horas en las que no está disponible el Canal/Categoria (skipHours), Fechas en las que no está disponible el Canal/Categoria (skipDays) y un codigo identificador (ID) Además tendremos de cada Categoría(Canal) sus noticias, de dichas noticias queremos saber su Título (title), el Canal/Categoría a la que queremos que pertenezca (category), el link a la noticia en concreto (link), la descripción de la noticia (description), el autor de la noticia (author), dirección url donde se encuentran los comentarios acerca de la noticia (comments), descripción del objeto de audio, video incluido en la noticia (enclosure), la fecha de publicación de la noticia (pubDate), el nombre del canal RSS donde procede la noticia (source). El factor de impacto que consideramos que ha tenido la noticia (impacto) que será un valor del 1 al 10. Podremos además asociar una imagen a la noticia. También se podrá concretar una serie de palabras clave asociadas a la noticia. En caso de que no exista previamente el canal/categoría al que se desea asociar la noticia, deberemos crear anteriormente el canal/categoría. Para cada noticia tendremos un código identificador (ID). Inicialmente, tendremos creadas 7 categorías: Noticias Destacadas, España, Economía, Ciencia/Tecnología, Deportes, Espectáculos. Cada Noticia pertenecerá a un Canal/Categoría Y un Canal/Categoría puede tener muchas noticias. Una palabra clave puede estar en muchas Noticias y una Noticia puede tener varias palabras clave que la definan. Queremos tener almacenado las palabras clave que tienen relación entre ellas. De esta forma, podemos saber todas las Noticias relacionadas con un mismo tema, porque contendrán las mismas palabras clave. Además tenemos que tener en cuenta que una palabra clave puede estar a su vez relacionada con otras palabras clave. Cada noticia puede tener asociada una imagen, y esa imagen esta asociada a una noticia. De las imágenes queremos saber la descripción de la imagen, el nombre, la dirección donde esta almacenada la imagen y la imagen en si. También tendremos los Administradores/usuarios del sistema, donde guardaremos el nombre y los apellidos, el perfil, su login, password y la dirección de la fotografía del usuario. 25
  • 29. Fernando Leandro Baladrón Proyecto fin de carrera Diseño Base de Datos 6/04/05 Cada usuario podrá generar muchas noticias y cada noticia pertenecerá a un solo usuario, las noticias sólo podrán ser modificadas por su autor , o por el súper-usuario (Administrador general). Queremos guardar la Versión del sistema, donde guardaremos el código de la versión, y las mejoras conseguidas en esa nueva versión, y la fecha de creación de la versión. Tendremos además una tabla menú donde almacenaremos las diferentes secciones que queremos tener en nuestra pagina web con la imagen que queramos asociar a cada una de las opciones. Otra Tabla del sistema será la tabla Búsqueda donde almacenaremos todas las búsquedas que hagan nuestros usuarios, de esta forma podremos más adelante estudiar cuales son las palabras más buscadas y detectar cuales no devuelven ningún resultado, etc.., en esta tabla queremos almacenar el valor de la búsqueda y la Fecha de la búsqueda. 3.1.2) Diseño Conceptual utilizando el modelo Entidad-Relación: 26
  • 30. Fernando Leandro Baladrón Proyecto fin de carrera Diseño Base de Datos 6/04/05 3.1.3) Diseño Logico: Categoria (CAT_ID: INTEGER(4), CAT_title: VARCHAR(25), CAT_link: NUMBER(4), CAT_description: VARCHAR(25), CAT_language: CHAR(10), CAT_copyright: VARCHAR(25), CAT_managingeditor: VARCHAR(50), CAT_webmaster: VARCHAR(25), CAT_pubdate: DATETIME, CAT_lastbuilddate: DATETIME, CAT_generator: VARCHAR(25), CAT_docs..) CP: {CAT_ID} VNN:{CAT_title, CAT_description, CAT_pubdate} Noticia (NOT_guid: INTEGER(4), NOT_title: VARCHAR(250), NOT_link: varchar(250), NOT_descripcion: VARCHAR(250), NOT_comments: VARCHAR(100), NOT_pubdate: DATETIME, NOT_source: VARCHAR(50), NOT_impacto: INTEGER, NOT_CAT_ID: INTEGER(4), USU_ID:INTEGER(4)) CP:{NOT_GUID} C.Aj: {NOT_CAT_ID }→Categoria C.Aj: {USU_ID }→Usuario VNN: {NOT_title, NOT_description,NOT_CAT_ID,NOT_pubdate} Palabra_Clave (PAL_ID: INTEGER(4), PAL_Nombre: VARCHAR(50)) CP:{PAL_ID} VNN:{PAL_Nombre} Not_REL_Pal (REL_ID: INTEGER(4), PAL_ID: INTEGER(4), Not_guid: INTEGER(4)} CP: {REL_ID) Uni: {PAL_ID,NOT_GUID} C.Aj: {PAL_ID }→Palabras_Clave { Not_guid }→Noticia Imagen (IMA_ID: INTEGER(4), IMA_descripcion: VARCHAR(100), IMA_Nombre:VARCHAR(25), IMA_url: VARCHAR(100), IMA_NOT_ID: INTEGER(4), IMA_Imagen: Binary) CP:{IMA_ID} C.Aj: {IMA_NOT_ID }→Noticia VNN:{url, IMA_NOT_ID, IMA_Imagen} Pal_REL_Pal ( PAL_ID1: INTEGER(4), PAL_ID2: INTEGER(4)} CP: {PAL_ID1, PAL_ID2 ) C.Aj: {PAL_ID1}→Palabras_Clave {PAL_ID2}→Palabras_Clave 27
  • 31. Fernando Leandro Baladrón Proyecto fin de carrera Diseño Base de Datos 6/04/05 Usuario (USU_ID: INTEGER(4), USU_nombre: CHAR(50), USU_apellidos: VARCHAR(50), USU_perfil: VARCHAR(15), USU_login: VARCHAR(10), USU_Password: VARCHAR(8), USU_imagen: VARCHAR(50) CP: {USU_ID) VNN:{USU_Nombre, USU_login, USU_password} Version ( Version: INTEGER(4), DescripcionMejora: VARCHAR(100), Fecha: DATETIME) CP: {Version} VNN:{DescripcionMejora, Fecha} Menu (MEN_ID: INTEGER(4), MEN_nombre: CHAR(25), MEN_img: VARCHAR(50)) CP: {MEN_ID) VNN:{MEN_Nombre} Busqueda ( BUS_ID: INTEGER(4), BUS_Valor: VARCHAR(25), BUS_Fecha: DATETIME) CP: {BUS_ID} VNN:{BUS_Valor, BUS_Fecha} Implementando esto en un SGBD como puede ser SQL Server: 28
  • 32. Fernando Leandro Baladrón Proyecto fin de carrera Diseño Base de Datos 6/04/05 2.4) Diagrama UML Para realizar el diagrama UML hemos utilizado la herramienta Microsoft Visio, la cual nos ha permitido dibujar de acuerdo al estandar UML. 24
  • 33. Fernando Leandro Baladrón Proyecto fin de carrera Procedimientos Almacenados 20/05/05 3.2. PROCEDIMIENTOS ALMACENADOS EN SQL SERVER. 3.2.1 BASE DE DATOS EN DOCUNEWS. Como hemos comentado anteriormente, la Base de Datos es una parte fundamental en el desarrollo de nuestra aplicación. DOCUNEWS se trata de una Biblioteca de Noticias, y como tal debe almacenar gran cantidad de noticias y datos que sean de necesidad para el usuario. Pues bien, esa gran cantidad de datos que nuestra aplicación debe tratar están guardados, o mejor dicho, son tratados en una Base de Datos. 3.2.2 ¿PORQUÉ SQL Server? Como ya introdujimos, nuestra Base de Datos está implementada con SQL Server, producto de Microsoft Corporation. El motivo de haber elegido este tipo de base de datos y no otro fue simplemente por cuestión de comodidad y de probar una herramienta nueva. Además del prestigio que aporta esta herramienta, el elegir SQL Server fue además por la facilidad que aportaba el Visual Studio .NET. Visual Studio .NET ofrece unas facilidades para trabajar con SQL que permiten realizar todo tipo de trabajos con mucha facilidad, ya que dispone de asistentes para crear todo tipo de consultas. Además, permite introducir lenguajes SQL en el mismo código vb .Net. Además de las facilidades que aporta el trabajar con SQL Server el Visual Studio, también hay que hablar de la facilidad a la hora de implementar la propia base de datos. SQL Server permite crear toda la estructura de la Base de Datos de forma cómoda y sencilla, con una interfaz amigable y fácil de entender. Para ver como está construida la Base de Datos, consultar el punto de diseño de la base de datos. Lógicamente, con el SQL Server no es todo tan sencillo. Para poder trabajar con esta herramienta es también necesario conocer las propias características que posee, como se accede a las tablas, como dejarlas en estado seguro, etc. Para ello se dispone de las Conexiones. 3.2.3 CONEXIONES EN SQL Server. Para crear conexiones para acceder a los datos es necesario utilizar las clases SqlConnection para conectarse y desconectarse de una base de datos. Para crear una conexión a una base de datos es necesaria la introducción de una serie de parámetros como mostramos en el siguiente ejemplo: 30
  • 34. Fernando Leandro Baladrón Proyecto fin de carrera Procedimientos Almacenados 20/05/05 Sqlconnection.connectionstring = “user id =idusuario; pwd=pwdusuario; initial catalog=bdname; Data Source = localhost; Connect TimeOut = 30”; Explicaremos brevemente cuales son los parámetros que componen la conexión a una base de datos: - SqlConnection.ConnectionString es una clase ya creada. Es necesaria siempre que queramos crear una nueva conexión con una base de datos. - User id: este parámetro indica el nombre de usuario. Es posible crear un usuario nuevo o utilizar el que nos ofrece por defecto “User ID”. - Pwd: Representa la contraseña del usuario. También se puede omitir este parámetro no introduciendo nada. - Initial catalog: Este parámetro describe la instancia de base de datos a la que hay que conectarse. Una vez la conexión a la base de datos ya está establecida debemos abrirla o cerrarla cuando queramos trabajar con ella o hayamos terminado. Esto es una ventaja ya que permite trabajar con los datos teniendo la conexión cerrada y abrirla para hacer la modificación en la base de datos. Los comandos para abrir y cerrar la conexión son: - Sqlconnection.open para abrir la conexión. - Sqlconnection.close para cerrar la conexión. Es conveniente tener en cuenta estos dos comandos, ya que, abrir y cerrar la conexión inadecuadamente puede dejar la base de datos en estado inseguro. 3.2.4 Ejemplos procedimientos implementados. Los procedimientos almacenados son un conjunto precompilado de instrucciones Transact-SQL almacenadas bajo un solo nombre y procesadas como una unidad. Los procedimientos almacenados pueden recibir parámetros en base a los cuales realizar distintas acciones. La utilización de procedimientos almacenados en nuestras aplicaciones aporta multitud de ventajas, entre las que podemos destacar las siguientes: Rendimiento Los procedimientos almacenados son analizados y optimizados en el momento de su creación, a diferencia de las instrucciones Transact-SQL, que deben ser analizadas, compiladas y optimizadas cada vez que son enviadas por el cliente. Además, el motor de SQL Server es capaz de reutilizar el plan de ejecución del procedimiento almacenado que se encuentra en la memoria (caché de procedimientos) después de haberse ejecutado una primera vez. 31
  • 35. Fernando Leandro Baladrón Proyecto fin de carrera Procedimientos Almacenados 20/05/05 Reducción del tráfico de red Una sentencia formada por decenas, cientos o incluso miles de líneas de código Transact-SQL puede escribirse como un procedimiento almacenado en el servidor y ejecutarse simplemente mediante el nombre de dicho procedimiento, en lugar de enviar todas las líneas de código por la red desde el cliente hasta el servidor (ésta reducción del tráfico de red será especialmente significativa en redes no muy veloces, como por ejemplo, algunas redes WAN). Seguridad Los procedimientos almacenados facilitan algunas tareas de administración de seguridad y asignación de permisos. Por ejemplo, se puede conceder permiso a un usuario para ejecutar un determinado procedimiento almacenado, aunque el usuario no disponga de los permisos necesarios sobre los objetos afectados por las acciones individuales de dicho procedimiento. Encapsulación Los procedimientos almacenados encapsulan gran parte de la lógica de los datos a las aplicaciones que los utilizan. Por ejemplo, una aplicación puede llamar al procedimiento almacenado CategoriaBorrar sin conocer cómo funciona internamente éste proceso (transacciones e instrucciones Transact- SQL utilizadas, tablas afectadas, etc.) Programación modular Los procedimientos almacenados se crean una sóla vez, se almacenan en la base de datos y se ejecutan desde las aplicaciones cliente tantas veces como sea necesario. Además, en caso de detectarse un error en un procedimiento almacenado, éste podrá ser reparado por el administrador de la base de datos desde el servidor sin afectar -y probablemente, volver a compilar- a las aplicaciones cliente A continuación, mostramos los procedimientos almacenados con los que hemos trabajado, los hemos clasificado según la clase con la que van ha trabajar. Busqueda BusquedaInsertar BusquedaObtener Categoria CategoriaBuscar CategoriaCargar CategoriaBorrar CategoriaInsertar CategoriaModificar CategoriaObtener CategoriaObtenerIndice CategoriaObtenerTitle CategoriaXML 32
  • 36. Fernando Leandro Baladrón Proyecto fin de carrera Procedimientos Almacenados 20/05/05 Imagen ImagenBorrar ImagenBorrarTodas ImagenInsertar ImagenModificar ImagenObtener Noticia NoticiaDeCategoria NoticiaInsertar NoticiaModificar NoticiaObtener NoticiaObtenerUlt NoticiaRSS Palabras Clave PClaveBorrar PClaveInsertar PClaveModificar Palabras Clave Relacionadas PClaveRELborrar PClaveRELinsertar PClaveRELNoticiaborrar PClaveRELObtener1 PClaveRELObtenerT Usuario UsuarioBorrar UsuarioInsertar UsuarioLogin UsuarioModificar UsuarioObtener UsuarioObtenerLogin A continuación, vamos a mostrar un ejemplo de cada uno de los tipos posibles, un ejemplo de borrado, de inserción, modificado y de consulta. -Ejemplo de borrado : borra una categoria en concreto CREATE PROCEDURE CategoriaBorrar ( @ID int ) AS DELETE FROM Categoria WHERE CAT_ID=@ID GO 33
  • 37. Fernando Leandro Baladrón Proyecto fin de carrera Procedimientos Almacenados 20/05/05 -Ejemplo de inserción: Insertar una Noticia CREATE PROCEDURE NoticiaInsertar ( @guid int OUTPUT, @title nvarchar(250), @link nvarchar(250), @description nvarchar(500), @comments nvarchar(50), @pubDate datetime, @source nvarchar(50), @IMPACTO int, @CAT_ID int, @USU_ID int ) AS Insert INTO Noticia ( NOT_title, NOT_link, NOT_description, NOT_comments, NOT_pubDate, NOT_source, NOT_IMPACTO, NOT_CAT_ID, USU_ID ) values ( @title, @link, @description, @comments, @pubDate, @source, @IMPACTO, @CAT_ID, @USU_ID ) select @guid=@@identity GO 34
  • 38. Fernando Leandro Baladrón Proyecto fin de carrera Procedimientos Almacenados 20/05/05 -Ejemplo de modificado: Modificar los datos del usuario CREATE PROCEDURE UsuarioModificar ( @ID int OUTPUT, @Nombre nvarchar(50), @Apellidos nvarchar(50), @Perfil nvarchar(15), @Login nvarchar(10), @Password nvarchar(8), @Imagen image ) AS UPDATE Usuario SET USU_Nombre=@Nombre, USU_apellidos=@Apellidos, USU_perfil=@Perfil, USU_Login=@Login, USU_Password=@Password, USU_Imagen=@Imagen WHERE USU_ID=@ID GO -Ejemplo de consulta: Obtiene las palabras Clave de una noticia en concreto. CREATE PROCEDURE PClaveRELobtenerT ( @NoticiaID int ) AS select NX.NOT_guid, NX.Pal_id, PX.PAL_nombre from Not_REL_Pal NX, Palabra_Clave PX where NX .NOT_guid=@NoticiaID and PX.PAL_ID=NX.Pal_id GO 35
  • 39. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 4. DISEÑO INTERFACE Dentro de este apartado, vamos ha tener en cuenta dos aspectos: por un lado con que clases hemos trabajado en Visual Studio y después pasaremos ha comentar el código implementado en ASP .NET subrayando los detalles de la programación desarrollada y explicando cuestiones tales como qué son los controles de usuario. 4.1. Clases Visual Basic .NET ofrece herencia, interfaces y sobrecarga, que lo convierten en un eficaz lenguaje de programación orientado a objetos. Visual Basic .NET admite el concepto de herencia y le permite definir clases que sirven de base para las clases derivadas. Las clases derivadas heredan, y pueden extender, las propiedades y los métodos de la clase base. También pueden reemplazar métodos heredados con nuevas implementaciones. De forma predeterminada, todas las clases creadas con Visual Basic .NET son heredables. Puesto que los formularios que diseña son realmente clases, puede utilizar la herencia para definir nuevos formularios basados en formularios existentes. Un objeto es una combinación de código y datos que puede tratarse como una unidad. Un objeto puede ser una porción de una aplicación, como un control o un formulario. Una aplicación entera también puede ser un objeto. Los objetos permiten declarar variables y procedimientos una vez y utilizarlos siempre que sean necesarios. Por ejemplo, si desea agregar un corrector ortográfico a una aplicación, puede definir todas las variables y funciones auxiliares para proporcionar a la aplicación funcionalidad de corrección ortográfica. No obstante, si crea el corrector ortográfico como una clase, puede volver a utilizarlo en otras aplicaciones mediante la inclusión de una referencia en el ensamblado compilado. Aún mejor, tal vez pueda ahorrarse trabajo mediante el uso de una clase de corrector ortográfico que otra persona ya ha desarrollado. Cada objeto de Visual Basic .NET se define mediante una clase. Las clases describen los campos, propiedades, métodos y eventos de un objeto. Los objetos son instancias de clases. Nosotros particularmente, hemos trabajado con 6 clases: 1) CLSbusqueda : Clase creada para trabajar con las búsquedas. 2) CLScategoria: Clase creada para trabajar con las categorías. 3) CLSImagen: Clase creada para trabajar con las imágenes. 4) CLSNoticia: Clase creada para trabajar con las noticias. 5) CLSPalabra: Clase creada para trabajar con las palabras Clave. 6) CLSUsuario: Clase creada para trabajar con los usuarios. 36
  • 40. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 Comentar como se muestra en la imagen que son los objetos los que acceden a los Datos, todo el código de acceso a la Base de datos se encuentra en el objeto. En todos los constructores de las clases se crea la conexión a la Base de datos: Public Sub New() miconn = New SqlClient.SqlConnection 'creo los parametros de la conexion Try miconn.ConnectionString = "Data Source=.;" & _ "Initial Catalog=DocuNews;" & _ "Integrated Security=true" Catch ex As Exception RaiseEvent errorSQL(ex, "utilidad ADO conectar") End Try End Sub 1) Clase Búsqueda: En esta clase se controlan las búsquedas que realizan los usuarios para de esta forma almacenarlas en la base de datos. En todas las clases siempre se hace lo mismo: primero declaramos las campos que va ha tener, y después los métodos. Private _ID As Integer Private _Valor As String 'busqueda que ha hecho el usuario Private _Fecha As Date 'fecha actual Private _IP As string 'dirección IP del ordenador Public Property Valor() As String Get Return _Valor End Get Set(ByVal Value As String) 37
  • 41. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 _Valor = Value End Set End Property Esto sería un ejemplo de una de las funciones que tiene implementada la clase búsqueda, esta función llama al procedimiento almacenado “BusquedaInsertar” de la base de datos donde le pasa como entrada el valor de la búsqueda, la fecha actual y la IP del que está realizando la búsqueda. Es importante resaltar que es la clase la que llama al procedimiento almacenado para la inserción. Public Function insertarBusqueda(ByVal BUS_ID As Integer, ByVal BUS_Valor As String, ByVal BUS_Fecha As Date, ByVal BUS_Valor As String) Try Dim cmdOrden As New SqlCommand cmdOrden.CommandType = CommandType.StoredProcedure 'Nombre del procedimiento almacenado de la Base de Datos cmdOrden.CommandText = "BusquedaInsertar" cmdOrden.Connection = miconn Dim p As New SqlParameter("@Id", SqlDbType.Int, 4) Dim p1 As New SqlParameter("@Valor", SqlDbType.NVarChar, 25) Dim p2 As New SqlParameter("@Fecha", SqlDbType.DateTime) Dim p3 As New SqlParameter("@IP", SqlDbType.NVarChar, 25) 'BUS_ID If BUS_ID <> Nothing Then p.Value = BUS_ID Else p.Value = System.DBNull.Value End If 'BUS_valor If BUS_Valor <> Nothing Then p1.Value = BUS_Valor Else p1.Value = System.DBNull.Value End If 'BUS_Fecha If IsDate(BUS_Fecha) Then p2.Value = BUS_Fecha Else p2.Value = System.DBNull.Value End If 'BUS_IP If IsDate(BUS_IP) Then p2.Value = BUS_IP Else p2.Value = System.DBNull.Value End If cmdOrden.Parameters.Add(p) cmdOrden.Parameters.Add(p1) cmdOrden.Parameters.Add(p2) cmdOrden.Parameters.Add(p3) 'si esta ya abierta la conexión no es necesario volverla abrir If miconn.State <> 1 Then miconn.Open() End If midatar = cmdOrden.ExecuteReader() Catch ex As Exception 38
  • 42. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 Finally midatar.Close() End Try End Function 2) Clase Categoria: En esta clase controlo las categorías. Por un lado declaro los campos con su tipo: Private _ID As Integer Private _title As String Private _link As String Private _description As String Private _language As String Private _copyright As String Private _managingeditor As String Private _webmaster As String Private _pubdate As Date Private _lastbuilddate As String Private _generator As String Private _docs As String Private _cloud As String Private _ttl As Integer Private _image As String Private _rating As String Private _textinput As String Private _skipHours As String Private _skipDays As String Y por el otro las funciones: obtenerCategoria, eliminarCategoria, insertarCategoria y modificarCategoria. 39
  • 43. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 Como ejemplo vamos a mostrar obtenerCategoria y borrarCategoria. Public Function obtenerCategoria(ByVal Id As Integer) As Boolean Try 'Ejecuta el procedimiento almacenado CategoriaObtener Dim cmdOrden As New SqlCommand cmdOrden.CommandType = CommandType.StoredProcedure cmdOrden.CommandText = "CategoriaObtener" cmdOrden.Connection = miconn Dim p As New SqlParameter("@Id", SqlDbType.Int, 4) p.Value = Id cmdOrden.Parameters.Add(p) 'si esta ya abierta la conexión no es necesario volverla abrir If miconn.State <> 1 Then miconn.Open() End If midatar = cmdOrden.ExecuteReader() While midatar.Read() _title = midatar(1) _link = midatar(2) _description = midatar(3) _language = midatar(4) _copyright = midatar(5) _managingeditor = midatar(6) _webmaster = midatar(7) _pubdate = midatar(8) _lastbuilddate = midatar(9) _generator = midatar(10) _docs = midatar(11) _cloud = midatar(12) _ttl = midatar(13) _image = midatar(14) _rating = midatar(15) _textinput = midatar(16) _skipHours = midatar(17) _skipDays = midatar(18) End While Return True Catch ex As Exception Return False Finally midatar.Close() End Try End Function 40
  • 44. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 Ver como en realidad esta función lo único que hace es llamar a un procedimiento que esta en la Base de Datos que se llama “CategoriaBorrar” pasandole el identificador de la categoria que se desea borrar. Public Function borrarCategoria(ByVal Id As Integer) As Boolean Try 'Ejecuta el procedimiento almacenado CategoriaBorrar Dim s As String Dim cmdOrden As New SqlCommand cmdOrden.CommandType = CommandType.StoredProcedure cmdOrden.CommandText = "CategoriaBorrar" cmdOrden.Connection = miconn Dim p As New SqlParameter("@Id", Id) cmdOrden.Parameters.Add(p) 'miconn.Open() midatar = cmdOrden.ExecuteReader() Return True Catch ex As Exception Return False Finally midatar.Close() End Try End Function 3) Clase imagen: Prácticamente ya hemos comentado todos los conceptos importantes en las dos clases anteriores. Por un lado los campos: Private _ID As Integer Private _description As String Private _nombre As String Private _url As String Private _IMA_NOT_GUID As Integer Private _imagen As Byte() Y luego los métodos: -obtenerImagen , borrarImagen, insertarImagen, modificarImagen. Como ya hemos puesto un ejemplo de obtener, de borrar y de insertar vamos ha poner un último ejemplo con modificar, de todas formas es muy parecida a la de insertar. 41
  • 45. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 Public Function modificarImagen(ByVal IMA_ID As Integer, ByVal IMA_descripcion As String, ByVal IMA_Nombre As String, ByVal IMA_url As String, ByVal IMA_NOT_GUID As Integer, ByVal IMA_imagen() As Byte) Try Dim cmdOrden As New SqlCommand cmdOrden.CommandType = CommandType.StoredProcedure cmdOrden.CommandText = "ImagenModificar" cmdOrden.Connection = miconn Dim p As New SqlParameter("@Id", SqlDbType.Int, 4) Dim p1 As New SqlParameter("@Descripcion", SqlDbType.NVarChar, 255) Dim p2 As New SqlParameter("@Nombre", SqlDbType.NVarChar, 25) Dim p3 As New SqlParameter("@Url", SqlDbType.NVarChar, 100) Dim p4 As New SqlParameter("@NoticiaID", SqlDbType.Int, 4) 'Ojo importante no especificarle el numero de bits a la imagen Dim p5 As New SqlParameter("@Imagen", SqlDbType.Image) 'IMA_id If IMA_ID <> Nothing Then p.Value = IMA_ID Else p.Value = System.DBNull.Value End If 'IMA_descripcion If IMA_descripcion <> Nothing Then p1.Value = IMA_descripcion Else p1.Value = System.DBNull.Value End If 'IMA_nombre If IMA_Nombre <> Nothing Then p2.Value = IMA_Nombre Else p2.Value = System.DBNull.Value End If 'IMA_url If IMA_url <> Nothing Then p3.Value = IMA_url Else p3.Value = System.DBNull.Value End If 'IMA_NOT_GUID If IMA_NOT_GUID <> Nothing Then p4.Value = IMA_NOT_GUID Else p4.Value = System.DBNull.Value End If 'IMA_Imagen If Not (IMA_imagen Is Nothing) Then 42
  • 46. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 p5.Value = IMA_imagen Else p5.Value = System.DBNull.Value End If cmdOrden.Parameters.Add(p) cmdOrden.Parameters.Add(p1) cmdOrden.Parameters.Add(p2) cmdOrden.Parameters.Add(p3) cmdOrden.Parameters.Add(p4) cmdOrden.Parameters.Add(p5) midatar = cmdOrden.ExecuteReader() Catch ex As Exception Finally midatar.Close() End Try End Function 4) Clase Noticia: esta clase se encarga de trabajar con las noticias, tendremos declarados todos los campos que tiene una noticia y además los métodos, tales como insertarNoticia, borrarNoticia, modificarNoticia, ObtenerNoticia Private _guid As Integer Private _title As String Private _link As String Private _description As String Private _comments As String Private _pubdate As Date Private _source As String Private _impacto As Integer Private _CAT_ID As Integer Private _USU_ID As Integer A continuación, mostramos la funcion ObtenerNoticiasRel lo que hace es que para una noticia en concreto con una palabras clave asignadas me obtiene aquellas noticias que tienen alguna de esas palabras clave. Además es interesante como ejemplo, ya que esta vez no llamamos a un procedimiento almacenado, sino que ejecutamos directamente sobre la base de datos una consulta SQL. Public Function obtenerNoticiaREL(ByVal Id As Integer) As DataSet Try Dim miadapter As New SqlDataAdapter dstUtilidad = New DataSet Dim SQL As String Dim SQL2 As String 'si esta ya abierta la conexión no es necesario volverla abrir 43
  • 47. Fernando Leandro Baladrón Proyecto fin de carrera Diseño interface 20/05/05 If miconn.State <> 1 Then miconn.Open() End If 'Palabras clave relacionadas con la noticia SQL = "select NX.NOT_guid, NX.Pal_id, PX.PAL_nombre " & _ "from Not_REL_Pal NX, Palabra_Clave PX " & _ "where NX.NOT_guid='" & Id & "' " & _ "and PX.PAL_ID=NX.Pal_id" 'Listado de noticias relacionadas con las Palabras clave de la noticia SQL2 = "select NX.NOT_guid, NX.NOT_title,NX.NOT_Link, " & _ "NX.NOT_Description, NX.NOT_Comments,NX.NOT_PubDate, " & _ "NX.NOT_source, NX.NOT_IMPACTO " & _ "from Noticia NX, NOT_REL_PAL PX " & _ "where(NX.NOT_guid = PX.NOT_guid)" & _ "and NX.NOT_guid <>'" & Id & "' " & _ "and PX.PAL_ID IN (select PY.Pal_id " & _ "from Noticia NY, Not_REL_Pal PY " & _ "where NY.NOT_guid='" & Id & "' " & _ "and NY.NOT_guid=PY.NOT_guid)" 'PRIMER SELECT rellenamos el dataset “NoticiasREL” Dim miorden As New SqlCommand(SQL, miconn) miadapter.SelectCommand = miorden miadapter.Fill(dstUtilidad, "NoticiaREL") 'SEGUNDO SELECT rellenamos el dataset “NoticiasRELNoticia” Dim miorden2 As New SqlCommand(SQL2, miconn) miadapter.SelectCommand = miorden2 miadapter.Fill(dstUtilidad, "NoticiaRELNoticia") obtenerNoticiaREL = dstUtilidad Catch ex As Exception RaiseEvent errorSQL(ex, "sorry") End Try End Function Las dos clases que quedan por explicar nos las vamos a desarrollar puesto que el código es equivalente a lo mostrado anteriormente. 5) La clase palabras clave: en esta clase tenemos todo lo relacionado a las palabras clave. Insertar/borrar/eliminar palabras clave. Además del metodo que se encarga de asociar/quitar una palabra clave a una noticia. 6) La clase usuario: en este caso es la que se encargará de gestionar los usuarios, esta clase tendrá definidos los métodos: borrarUsuario, modificarUsuario, insertarUsuario y obtenerUsuario. 44
  • 48. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 4.2. PROGRAMACIÓN ASP .NET A continuación presentaremos algunos fragmentos de código interesantes, usados en nuestra aplicación. Lo primero que consideramos interesante es mostrar los ficheros con los que hemos trabajado: Fig.1.Listado de ficheros Por un lado las Clases, por otro lado los controles de usuario y finalmente el formulario principal default.aspx que es el que gestiona lo que se debe cargar en cada momento. 45
  • 49. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 Para la implementación del portal web DOCUNEWS hemos utilizado la herramienta Microsoft Visual Studio, en concreto, el lenguaje de programación VB .NET. 4.2.1 PÁGINA PRINCIPAL (default.aspx). Fig.2 Estructura de la pagina principal (default.aspx) La página principal esta compuesta de 5 partes, parte superior, parte central izquierda, parte central derecha, centro y parte inferior. En la parte superior, tenemos 3 controles, uno para el logo y la fuente de autoría de la página. Otro para el login y un último control para el menú horizontal de las categorías. En la parte central izquierda tenemos otros 3 controles, uno para el menú vertical de las categorías, otro para la búsqueda y un último control para el calendario. En el centro, según nos interese, cargaremos un control u otro. Estos controles, a diferencia que los anteriores, los cargaremos por código. Para la parte central derecha la forma de trabajar es la misma que para el centro: cargaremos un control u otro dependiendo de nuestros intereses. Lo siguiente que vamos a comentar son los controles de usuario. 46
  • 50. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 4.2.2 CONTROLES DE USUARIO Los controles de usuario ofrecen una forma sencilla de dividir y reutilizar funciones de interfaz de usuario comunes entre las aplicaciones Web ASP.NET. Gracias a los controles de usuario nos podemos crear fácilmente nuestros propios controles personalizados y reutilizables. Los que hemos utilizado han sido: -CtrBuscar.ascx -CtrCalendar.ascx -CtrListarNoticias.ascx -CtrMenu.ascx -CtrNoticiaCategorias.ascx -CtrNoticiaAsociarP.ascx -CtrNoticiaInsertar.ascx -CtrNoticiaModificar.ascx -CtrNoticiaObtner.ascx -CtrPie.ascx -CtrRightNotRel.ascx -CtrRigthPane.ascx -CtrTitulo.ascx Hay dos formas de cargar un control, la primera sería indicándoselo en el código html de la siguiente forma: Al principio de la página ponemos el siguiente código: <%@Register TagPrefix="Control" TagName="Menu" Src="CtrMenu.ascx"%> <%@Register TagPrefix="Control" TagName="Buscar" Src="CtrBuscar.ascx"%> <%@Register TagPrefix="Control" TagName="Calendar" Src="CtrCalendar.ascx"%> y luego desde una celda lo cargamos: <td id="LeftPane3" vAlign="top" align="left" width="20%" runat="server"> <CONTROL:CALENDAR id="Calendar1" runat="server"></CONTROL:CALENDAR> </td> Otra de las formas de cargar un control es como, ya he comentado anteriormente, mediante código: If IsNumeric(Request.Params("OP")) Then Select Case Request.Params("OP") Case 1 'abrimos el formulario de insercción de Noticias CenterPane.Controls.Add(Page.LoadControl("CtrNoticiaInsertar.ascx")) 47
  • 51. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 Case 2 'abrimos el formulario de modificiación de noticias CenterPane.Controls.Add(Page.LoadControl("CtrNoticiaModificar.ascx")) Case 3 'abrimos el formulario de Asociación de PClave CenterPane.Controls.Add(Page.LoadControl("CtrNoticiaAsociarP.ascx")) End Select En el ejemplo se carga en el centro un control u otro dependiendo del valor de la variable “OP”. 4.2.3. INSERCIÓN DE LAS NOTICIAS Empezaremos introduciendo el código implementado para la introducción de nuevos grupos en nuestra base de datos. Utilizaremos este ejemplo para mostrar como hemos ido guardando los diferentes datos en nuestra base de datos mediante parámetros. FormNoticiaInsertar.ascx Fig.3 Diseño del formulario de inserción de Noticias Hemos trabajado con RequiredFieldValidator para validar los diferentes campos. 48
  • 52. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 4.2.4. SUBIR UNA IMAGEN Seguidamente pasaremos a mostrar el código usado para la “subida” de una foto de un miembro a nuestra Web. Try If Not IsNothing(fileImagen.PostedFile) And Len(fileImagen.PostedFile.FileName & "") > 0 Then 'Obtenemos el nombre del fichero. Necesitamos imports system.IO Dim nombreFichero As String = Path.GetFileName(fileImagen.PostedFile.FileName) 'ruta del servidor Dim rutaServer As String = "C:InetpubwwwrootPortalDocuNewsimages" 'sube el fichero fileImagen.PostedFile.SaveAs(rutaServer & nombreFichero) MiImagen.insertarImagen(0, "Imagen guardada desde la web", nombreFichero, "C:InetpubwwwrootPortalDocuNewsimages", IDNoticia, Nothing) lblMensaje.Text = "Fichero subido correctamente" End If 4.2.5. VISUALIZACIÓN DE LOS DATOS. Pasamos ahora a mostrar el código referente a la visualización de los datos guardados en la base de datos. El código para listar las noticias lo hemos realizado con un objeto del tipo asp repeater: <asp:repeater id="Repeater1" runat="server"> <ItemTemplate> <tr> <td class="NoticiaDetalleTexto"> <img src=".imagesicon.bmp"> <%# container.dataitem("NOT_Title")%> <%# container.dataitem("NOT_PubDate")%> </td> </tr> <tr> <td class="NoticiaDetalleResumen"> <%#container.dataitem("NOT_Description")%> </td> </tr> </ItemTemplate> Además de esto en el código le indicamos el origen de los datos: Repeater1.DataSource = DSNoticia.Tables("Noticia") En este caso le estamos asociando el dataset DsNoticias y dentro de ese dataset la tabla Noticia. 49
  • 53. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 Otro ejemplo de este mismo estilo sería el utilizado para mostrar las noticias más destacadas: DSNoticia = MiNoticia.leeDataSet("select top 5 * from noticia where NOT_impacto='10' order by NOT_pubDate DESC") Repeater1.DataSource = DSNoticia.Tables("Noticia") Repeater1.DataBind() Aquí además estamos utilizando el método leedataset implementado en la clase Noticia que nos permite rellenar un Dataset a partir de una consulta SQL. Y un último ejemplo en este apartado sería el de los menús, que en este caso lo estamos haciendo con un datalist. Aquí se muestra todas las categorías de forma horizontal y cada vez que pinchas en una de ellas le pasa en la url el identificador de la categoria: <asp:datalist id="MyList" runat="server" EnableViewState="False" width="80%" cellpadding="3" RepeatDirection="Horizontal" HorizontalAlign="Right"> <SelectedItemTemplate> <a href='<%# "Default.aspx?IdCategoria=" & DataBinder.Eval(Container.DataItem, "CAT_ID") %>' class="Menu2Seleccionado"> <%# DataBinder.Eval(Container.DataItem, "CAT_Title") %> </a></asp:HyperLink> </SelectedItemTemplate> <ItemTemplate> <asp:HyperLink id=Hyperlink3 cssclass="Menu2SinSeleccionar" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "CAT_Title") %>' NavigateUrl='<%# "Default.aspx?IdCategoria=" & DataBinder.Eval(Container.DataItem, "CAT_ID") %>'> </asp:HyperLink> </ItemTemplate> </asp:datalist> Además de esto hay que indicar en el código, el origen de los datos, que en este caso, se contempla al recurrir al dataset DSCategoria: MyList.DataSource = DSCategoria MyList.DataBind() 50
  • 54. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 4.2.6. IDENTIFICACIÓN DE LOS USUARIOS Pasamos seguidamente a comentar el código realizado para identificar los usuarios en nuestra aplicación, dando así acceso a los usuarios registrados. Este es el código que se ejecutará al pulsar el botón Entrar, comprobando la identidad de los usuarios. PagLogin.ascx Session("OUsuario") = New ClsUsuario If CType(Session("OUsuario"),ClsUsuario).CalcularLogin(txtUsuario.Text, txtPassword.Text) = True Then 'Usuario correcto FormsAuthentication.RedirectFromLoginPage(txtUsuario.Text, chkPersistentes.Checked) Else 'Usuario no correcto o fallo de identificación FormsAuthentication.SignOut() Session("oUsuario") = Nothing Response.Redirect("default.aspx", True) End If Las variables de tipo session las utilizaremos cuando queramos trabajar con variables sin el problema de tener que compartirlas al estilo: shared i as integer Las variables de tipo session no tienen tipo de datos asociado, en lo que sí luego queremos asignarle un tipo haremos: Ctype(session("i"), Tipo). En el código anterior, estamos trabajando con la variable oUsuario de tipo Session. La variables session pueden ser de tipo objeto. A esta variable la convertimos a la clase Usuario con CType, y una vez convertida llamamos al método de la clase usuario CalcularLogin. -Otra de las cosas que tenemos que tener en cuenta para la autenticación de los usuarios es poner en web.config el siguiente código: Al estar este código en web.config, se ejecutará para todos los formularios. <authentication mode="Forms"> <forms name=".ASPXAUTH" loginUrl="Default.aspx" protection="All" timeout="60" /> </authentication> <authorization> <deny users="?" /> </authorization> Gracias a esto, en el formulario principal se me activará el formulario de Login. Hay que importar en el formulario el namespace: Imports System.web.security. 51
  • 55. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 4.2.7. OBTENER NOTICIAS Para explicar esta parte vamos ha poner como ejemplo el código del formulario CtrNoticiaObtener.ascx Le hemos pasado a través de la url el identificador de la noticia. If IsNumeric(Request.Params("NOT_guid")) Then IDNoticia = Request.Params("NOT_guid") Else 'el identificador de la noticia no es numerico Response.Redirect("Default.aspx") End If If Not Page.IsPostBack And IDNoticia > 0 Then If CargarDatos() = True Then lblRespuesta.text="datos cargados correctamente" End If End If Si es la primera vez que cargamos la página, el IsPostBack se encarga de preguntar si es la primera vez que cargo la página, y además comprobamos que el identificador proporcionado es positivo, una vez realizado esto llamamos a la función CargarDatos. Private Function CargarDatos() As Boolean 'nos creamos el comando para ejecutar el procedimiento sobre la base de datos, le tenemos que pasar el nombre del procedimiento almacenado, y la conexión que va a utilizar: Try If MiNoticia.obtenerNoticia(IDNoticia) = True Then 'codigo CORRECTO, hay resultado lblDescripcion.Text = MiNoticia.Description lblFecha.Text = MiNoticia.Pubdate lblPubDate.Text = MiNoticia.Pubdate lblTitulo.Text = MiNoticia.Title lblComments.Text = MiNoticia.Comments lblSource.Text = MiNoticia.Source lblImpacto.Text = MiNoticia.Impacto lblLink.Text = MiNoticia.Link LnkPage.HRef = MiNoticia.Link CargarImagen(IDNoticia) lblAutor.Text = ObtenerAutor(MiNoticia.USU_ID) 'en caso de que todo haya ido bien, devolvemos true Return True Else 'codigo incorrecto Return False End If 52
  • 56. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 4.2.8. TEMAS ADICIONALES -La captura de errores la hacemos con este tipo de estructura de código: Try ...........CÓDIGO.......... Catch ex As Exception MsgBox(ex.Message) End Try -El diseño del Calendario, viene especificado en el siguiente código: <asp:calendar id="Cal" runat="server" CssClass="CalendarText" FirstDayOfWeek="Monday" ForeColor="#C0C0FF" DayNameFormat="FirstTwoLetters" BorderColor="White" Font-Names="Arial" Font-Size="XX-Small" BorderStyle="Solid" ShowNextPrevMonth="False" ShowTitle="False" BorderWidth="5px"> <todaydaystyle Font-Bold="True" ForeColor="White" BackColor="#990000"></todaydaystyle> <daystyle BorderWidth="2px" ForeColor="#666666" BorderStyle="Solid" BorderColor="White" BackColor="#EAEAEA"></daystyle> <dayheaderstyle ForeColor="#649CBA"></dayheaderstyle> <selecteddaystyle Font-Bold="True" ForeColor="#333333" BackColor="#FAAD50"></selecteddaystyle> <weekenddaystyle ForeColor="White" BackColor="#BBBBBB"></weekenddaystyle> <othermonthdaystyle ForeColor="#666666" BackColor="White"></othermonthdaystyle> </asp:calendar> -En web.config, podemos indicarle la cadena de conexión: <?xml version="1.0" encoding="utf-8" ?> <configuration> <!-- application specific settings --> <appSettings> <add key="ConnectionString" value="workstation id=FERNANDO;packet size=4096;integrated security=true; initial catalog=DocuNews" /> </appSettings> Las ventajas que se obtienen con trabajar de esta forma, es que el mantenimiento de la aplicación se hace mucho más sencillo, puesto que con modificar los parámetros de la conexión en web.config se cambian en toda la aplicación. 53
  • 57. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 -Cuando el usuario pulsa sobre el botón para eliminar una noticia, se ha puesto una ventana con un mensaje de confirmación. Gracias al siguiente código Java conseguimos que antes de realizar la operación nos pregunte que deseamos hacer: Button2.Attributes.Add("onClick", "javascript:return confirm('¿esta seguro de borrar este rol?');") -Para guardar la ip del que hace la consulta: request.UserHostAddress.ToString De esta forma almacenamos todas las consultas que hacen nuestros usuarios con su IP. -Por otro lado, es interesante comentar que hemos trabajado con el servicio que proporciona Microsoft Search (Index Server), gracias a esto obtenemos toda la potencia para realizar una búsqueda lingüística de caracteres de datos sobre una misma tabla. Una búsqueda lingüística opera en palabras y frases, lo que permite buscar palabras o frases similares, distintas formas de una palabra o palabras que se encuentran una cerca de la otra. Para poder realizar consultas complejas, lo primero que tenemos que hacer es habilitar la base de datos. sp_fulltext_database 'enable' Para activar una tabla: sp_fulltext_table 'noticia', 'activate' Para saber que efectivamente se ha actualizado para poder realizar sobre ella consultas de texto. Ejecutaremos la siguiente consulta: SELECT DATABASEPROPERTY('DocuNews','IsFullTextEnabled') Una vez realizados los pasos anteriores, ya podremos realizar consultas sobre el texto, un ejemplo de consulta con el operador CONTAINS podría ser: DSNoticia = MiNoticia.leeDataSet("select * from Noticia WHERE CONTAINS( NOT_Title, '" & Request.Params("Title").ToString & "')") Este operador utiliza una notación funcional en la que el primer parámetro es el nombre de la columna que esta buscando y el segundo parámetro es una condición de búsqueda de texto. De esta forma conseguiremos obtener resultados más eficientes que con el operador LIKE. 54
  • 58. Fernando Leandro Baladrón Proyecto fin de carrera Programación ASP .NET 20/05/05 Una de las desventajas de los catálogos es que tendremos que actualizarlos periódicamente, para asegurarnos que los resultados de las búsquedas son correctos. - La generación de nuestras propias noticias RSS, la hacemos a través del dataset. En el dataset dstUtilidad tenemos almacenadas las 12 noticias más recientes y más destacadas. Los dataset tienen un método que les permite leer el esquema xsd. En este esquema le definimos el esqueleto de nuestro fichero xml. dstUtilidad.ReadXmlSchema("noticias.xsd") Nos hemos creado el siguiente fichero xsd, donde hemos definido el siguiente esquema: Los elementos los definimos con la sintaxis: xs:element name=”nombredelelemento” type=”xs:string” minOccurs=”0” El siguiente paso es generar el fichero xml. Esto lo hacemos a través del método WriteXml del dataset. Este método es el que se encarga de generar el fichero noticias.xml con las noticias en formato RSS. dstUtilidad.WriteXml("noticias.xml") 55
  • 59. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 5. Diseño web En este apartado nos vamos a centrar en tres aspectos. Un primer aspecto el diseño de navegación, en este apartado nos centraremos en explicar como queremos que esté organizada la página. Un segundo apartado, lo dedicaremos a resaltar la gran importancia de las hojas de estilo, y detallaremos la hoja de estilos que hemos desarrollado. Y un tercer punto y no menos importante dedicado al posicionamiento en Google. 5.1 Diseño de Navegación: En este apartado nos vamos a centrar en el esqueleto de la página web. A la hora de decidir como vamos ha organizar la información debemos tener bien acotado a que usuarios va ha ir dirigida nuestra aplicación. Para esto recomendamos consultar el ANEXO II en el que explicamos que nuestra portal web va ha ir destinado específicamente a los jóvenes. Comenzamos definiendo como se va ha encontrar organizada la información: -El logo en la parte superior izquierda (ya que esta estudiado que lo primero que vemos siempre es lo que esta en la parte superior izquierda). Según estudios realizados, cuando un usuario entra en la web sigue el siguiente trazado con la vista: Fuente consultada: eyetrack 2004 [10-04-05] 56
  • 60. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 -Despues tendremos la fecha actual, algo muy importante dentro del mundo de las noticias, ya que hay que dar una sensación de actualidad y de constante cambio. -Debajo de la fecha nos encontramos con las diferentes categorías/canales esta opción la tendremos tanto verticalmente como horizontalmente. -En el centro tendremos el listado de las sucesivas noticias, ordenados por fecha y por impacto, dentro de cada noticia podre pinchar para ampliar la información. -En la parte de la izquierda, debajo del menú, también tendremos una búsqueda sencilla, para que el usuario pueda buscar directamente por titulo, así como un enlace para realizar una búsqueda avanzada, donde se podrá buscar una noticia por la mayoría de los campos posible. -ya para finalizar la parte de la izquierda, nos encontramos con un calendario donde, a modo de hemeroteca, el usuario podrá ir visitando las noticias de los diferentes días seleccionados. -En vez situados en la derecha dispondremos de una parte para identificarse como usuario. Esta parte desaparecerá una vez se haya identificado el usuario como tal. -Además tendremos otro listado, pero en tamaño más reducido, con las noticias de mayor impacto donde se mostraran 5 de las noticias de mayor impacto y más recientes. -Por último, comentar la importancia del pie de página, el cual da sensación de termino, consiguiendo además, encuadrar la información en el centro. -Hemos procurado que siempre este visible en la parte superior central, la fuente de autoría, intentando conseguir que al usuario no se le olvide donde se encuentra. 57
  • 61. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 En esta imagen, se muestra todo lo comentado anteriormente. Fig.1.Diseño de la organización de la página principal (Default.aspx) 58
  • 62. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 -Otra de las páginas fundamentales en nuestro portal web será la que obtendremos una vez hayamos pinchado en una noticia en concreto y queramos mostrar toda la información en detalle. -El esqueleto es similar, lo que cambia es que ahora en el centro lo que tendremos será la información de esa noticia, incluida la foto asociada a la noticia. -En la parte de la derecha, tendremos un listado de las noticias que tienen alguna de las palabras claves de la noticia del centro. Fig.2.Diseño de la organización de la página con una noticia en concreto. 59
  • 63. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 Los menús de categorías son totalmente parametrizables. Podremos modificarlos en función del cliente final. En nuestro caso hemos supuesto que va destinado a un centro universitario (VER ANEXO II), las categorías que nos han solicitado inicialmente son: -Actualidad: En esta categoría estará todo lo que pasa en el mundo. Uno de los objetivos fundamentales del portal es que los jóvenes no sean ajenos a la sociedad. -Deportes: El deporte realza nuestros valores como seres humanos. Informaremos sobre el deporte en general, así conseguiremos motivar a hacer deporte. -Documentación: puesto que el portal estará ubicado en un centro de documentación. En esta categoría mostraremos todas las noticias relacionadas con las bibliotecas, con la organización de la información, buscadores... -Formación: Los centros universitarios se dedican a la formación de sus usuarios, por esto hemos considerado interesante recopilar todo lo relacionado con la formación en general. -Iglesia: por ser una universidad con trasfondo cristiano. -Informática: Las nuevas tecnologías están en alza, y se considera que es importante que los jóvenes estén informados con todo lo que les puede repercutir en su futuro como profesionales. -Ocio / Espectáculos: No solo es estudiar, los jóvenes disponen de su tiempo libre y que hagan un buen uso de él será nuestro objetivo. -Valencia: Por pertenecer a Valencia, se piensa que muchos de los usuarios estarán interesados en la información que atañe a su ciudad. Para abastecer las siguientes categorías hemos usado el modulo de importación. (para obtener más información consultar el apartado 6.2 del trabajo). Estas categorías podrán variar en función de los test de usabilidad y la demanda de los usuarios. 60
  • 64. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 Por último, me gustaría comentar que por regla general la realización de un portal web es un proceso complejo en el que hay tener en cuenta las siguientes partes: - Programación y tecnologías. - Arquitectura de la Información. - Diseño de interacción,Usabilidad - Accesibilidad y Diseño Información . - Diseño Gráfico. Fig 3. Esquema de las etapas de la realización de un portal. Autor: Francisco Tosete Herranz. En la figura 3, se puede ver un gráfico en forma de rueda de las diferentes disciplinas implicadas en el diseño de sitios web. En esta sección, nos hemos centrado en el diseño de información. 61
  • 65. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 La estructura que nos quedaría después de lo comentado anteriormente, sería como se muestra en la imagen de abajo: Fig.4. Zonas para la página principal. Con lo que quedaría el siguiente resultado: Fig.5. Página principal resultante. 62
  • 66. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 Para el segundo esquema de página que hemos comentado anteriormente, obtenemos el siguiente resultado: Fig.6.Zonas para la página con una noticia en concreto. Con lo que quedaría el siguiente resultado: Fig.7. Página con una noticia en concreto. 63
  • 67. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 Una vez, nos hemos validado cambiaría la parte inferior, apareciéndonos una serie de nuevos iconos: -Eliminar Noticia. -Modificar Noticia. -Asociar Palabras Clave. Formulario después de que nos hemos identificado como usuarios, y además hemos seleccionado una noticia: Fig.8.Opciones para los usuarios identificados. Como se muestra en la imagen la noticia tiene asociada la palabra clave “Literatura”, a la derecha aparecen las noticias que tienen asociada esa palabra clave. 64
  • 68. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 Este sería el formulario de modificación de la noticia: Fig.9.Formulario para la modificación de los campos de la noticia. En la fig.9 se muestran todos los campos posibles que tiene una noticia. Los campos que tienen (*) significa que son obligatorios. El id de la noticia no se podrá modificar. En el campo description podremos ponerle etiquetas html que luego interpretará el navegador. El sistema detecta el usuario activo y lo compara con el autor de la noticia, se podría hacer que solo pueda modificar la noticia el autor de la noticia, nosotros en un principio hemos sido más permisivos y dejamos que la modifique cualquier persona aunque no sea el autor de la noticia. 65
  • 69. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 En este formulario se puede ver otro de los aspectos a los que hemos dado mucha importancia, como es el de la asociación de las palabras clave. El usuario podrá seleccionar las palabras clave que quiera asociar a una noticia. El listado de palabras clave lo hemos extraído del tesauro EUROVOC (consultar ANEXO IV). Fig.10.Formulario para la asociación de palabras clave. En la fig.10 se muestra el formulario para la asociación de las palabras clave. En este caso en concreto, el usuario ha asociado a la noticia las palabras clave: Iglesia y Gobierno. La fig.11 corresponde al formulario para la búsqueda avanzada. Los campos por los que puedo buscar son: el titulo, la descripción, el origen, los comentarios, la fecha, la categoria y el valor de impacto. Fig.11.Formulario para la búsqueda avanzada. 66
  • 70. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 El resultado para la búsqueda anterior se muestra en la siguiente imagen: Fig.12.Resultados para la búsqueda avanzada. Estos formularios han sido probados tanto en Mozilla, como en Internet Explorer. Comprobando su funcionamiento correcto en ambos navegadores. En la figura 13, se ha capturado una pantalla desde el navegador Mozilla. En esta pantalla se muestra además como el usuario ya se ha identificado, desapareciendo el cuadro para identificarse como usuario, en su lugar aparecen dos nuevos iconos, uno para insertar una nueva noticia y otro para cerrar la sesión. Una vez identificado el usuario, debajo del logo aparecerá un mensaje de bienvenida. Fig.13.Portal visto desde el navegador Mozilla. 67
  • 71. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 Dentro de los elementos del diseño destacar el tema de los iconos, acordes al diseño de la totalidad de la página web: Añadir una nueva noticia. Noticias relacionadas con la del centro Borrar la noticia. Ir al link de la noticia. Indicador y separador entre noticia y noticia . Ver detalles de la noticia Noticias destacadas Cerrar sesión del usuario. Fotografía de la noticia no disponible. Enviar un email al administrador del portal. Actualizar la noticia. Canal RSS disponible con las noticias del portal. Para relacionar las palabras clave a una noticia. Búsqueda avanzada. 68
  • 72. Fernando Leandro Baladrón Proyecto fin de carrera Diseño web 20/05/05 Por otro lado, también es interesante comentar como la fuente de autoría, la cual hemos procurado que esté siempre visible. La hemos realizado dividiéndola en cuatro imágenes que formaran parte de una tabla dividida en cuatro columnas, una de las columnas (concretamente la tercera) tendrá como fondo (background) una de las imágenes que tiene 1px de anchura. El detalle más importante es que le hemos especificado que de anchura tiene 100%, así conseguimos que se autoajuste a las necesidades de la pantalla. Consultar imagen siguiente. Fig.14.Diseño de la fuente de autoría con Dreamweaver. -Por último comentar el pie de la página, el cual nos permitirá encuadrar la información en el centro. Destacar que tenemos el icono de RSS, si pinchamos sobre dicho icono obtendremos una página con la información de las 12 últimas noticias en formato RSS, esa será la dirección de nuestro canal RSS en la que la gente podrá importarse nuestras noticias. Fig.15.Pie del Portal DocuNews 69
  • 73. Fernando Leandro Baladrón Proyecto fin de carrera Hoja de estilos -CSS 20/05/05 4.2. Hoja de estilos CSS Las hojas de estilo en cascada (CSS) le permiten a los diseñadores y desarrolladores web separar la estructura de la presentación. Gracias a la hojas de estilo conseguimos la uniformidad del aspecto y el funcionamiento de todo un sitio. Al separar la estructura (o contenido) de la presentación se aumenta la uniformidad del diseño web. Con CSS, la presentación se define con un lenguaje CSS orientado a la disposición, que se puede aplicar a un conjunto de documentos HTML, lo que permite hacer un cambio completo de la presentación en todos los documentos a la vez. Un desafío común al cual se enfrentan los desarrolladores web al asumir la administración de sitios existentes es el código escrito por otros desarrolladores. En muchos casos, se enfrentan a código HTML de mala calidad que puede además depender de características que no han sido documentadas o hacks y prácticas de codificación específicas. Además, la falta de documentación con frecuencia puede ser un problema. Gracias a que las especificaciones, tales como CSS, están bien documentadas, una persona que hereda un código que cumple con las normas puede comenzar a trabajar de inmediato, y no tendrá que familiarizarse con las prácticas de codificación del desarrollador anterior. Esto además reduce considerablemente la dependencia en un solo proveedor. Si diseñamos ajustándonos a un estándar podemos estar seguros de que los navegadores que han sido diseñados para ajustarse a dicho estándar representarán nuestros contenidos tal y como los habíamos imaginado. Gracias a su uso conseguiremos alcanzar una representación única y universal en todos los navegadores y dispositivos que respeten el estándar propuesto en que nos hayamos basado. El problema de usabilidad que supone construir sitios accesibles por personas con minusvalía. Una de las consecuencias del uso de la filosofía CSS es que, debido a la separación de los contenidos y del diseño se minimiza el contenido redundante entre páginas. Cuando diseñamos respetando los estándares provocamos que los analizadores de los motores de búsqueda clasifiquen mejor nuestros contenidos. Una de las causas de ello es el empleo de los elementos semánticos a los que nos obligan dichas normas, los cuales sirven para dotar de importancia a determinadas partes de nuestros contenidos. 70
  • 74. Fernando Leandro Baladrón Proyecto fin de carrera Hoja de estilos -CSS 20/05/05 Igualmente la separación entre contenidos y diseño posibilita que en la lectura de cada una de nuestras páginas dichos analizadores encuentren un ratio mayor de contenidos útiles que de código destinado a la representación de los mismos. Para cargar el CSS, en la página principal, hemos puesto lo siguiente: <HEAD> <link href="DocuNews.css" rel="stylesheet" type="text/css"> A continuación, mostramos el código de la hoja de estilos que estamos utilizando: * ================================ CSS STYLES FOR DocuNews v1.0, 20/05/2005 ================================ */ /**************************************************************/ /*LISTADO DERECHA NOTICIAS ..............................*/ /* Estilo Lista derecha Noticias Titulo */ .ListaDerechaTituloNoticia { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight: normal; color: #666644; } /* Estilo Noticias Resumen */ .ListaDerechaResumenNoticia { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight:normal; color:#333333; text-align:justify; } /* Estilo Noticias Resumen */ A.ListaDerechaLink,A.ListaDerechaLink:Link { font-family: Verdana, Helvetica, sans-serif; font-size: 9px; font-weight:normal; color:#DC0303; } A.ListaDerechaLink:Visited { font-family: Verdana, Helvetica, sans-serif; font-size: 9px; font-weight:normal; color:#8c0202; } 71
  • 75. Fernando Leandro Baladrón Proyecto fin de carrera Hoja de estilos -CSS 20/05/05 .ListaDerechaLinkTodasNoticias { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight:bold; color:black; } /*FIN LISTA derecha NOTICIAS....................................*/ /**************************************************************/ /* Estilo Noticias detalles***************************************/ .NoticiaDetalleTitulo { font-family: Verdana, Helvetica, sans-serif; /*Estaba a 18*/ font-size: 16px; font-weight: bold; color: white; background-color:#8c0202; text-align:left; } .NoticiaDetalleFecha { font-family: Verdana, Helvetica, sans-serif; /*Estaba a 18*/ font-size: 16px; font-weight:bold; color:white; background-color:#8c0202; text-align:center; } /* Estilo Noticias Resumen */ .NoticiaDetalleResumen { font-family: Verdana, Helvetica, sans-serif; font-size: 12px; font-weight:bold; color:#666644; text-align:justify; } .NoticiaDetalleTexto { font-family: Verdana, Helvetica, sans-serif; font-size: 12px; font-weight:normal; color:#666666; text-align:justify; } .NoticiaDetalleTextoNegrita { font-family: Verdana, Helvetica, sans-serif; font-size: 12px; font-weight:bold; color:#444444; text-align:justify; } .NoticiaDetalleTextoLink { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; 72
  • 76. Fernando Leandro Baladrón Proyecto fin de carrera Hoja de estilos -CSS 20/05/05 font-weight:normal; color:#8c0202; text-align:left; } .NoticiaDetalleMasLink { font-family: Verdana, Helvetica, sans-serif; font-size: 12px; font-weight:bold; color:#8c0202; text-align:left; } .NoticiaDetalleImagen { vertical-align:middle; } .NoticiaDetalleTituloLinks { font-family: Verdana, Helvetica, sans-serif; /*Estaba a 18*/ font-size: 16px; font-weight:normal; color:white; background-color:#8c0202; text-align:center; } /*FIN Noticia Detalles ........................................*/ /* Estilo Noticias Resumen */ .LoginEtiquetas { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; text-decoration:bold; text-align:right; } /* Estilo Noticias Resumen */ .LoginCajas { font-family: Verdana, Helvetica, sans-serif; font-size: XX-Small; color:Black; } /* Cajas***************************************************************/ .CajaInactiva { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; color: black; text-align:left; background-color:#CCCCCC; } /*****************************************************************/ /*Barra de SITUACION**********************************************************/ .BarraSituacion 73
  • 77. Fernando Leandro Baladrón Proyecto fin de carrera Hoja de estilos -CSS 20/05/05 { font-family: Verdana, Helvetica, sans-serif; font-size: 9px; background-color:white; color: black; text-align:left; } .BarraSituacionSituado { font-family: Verdana, Helvetica, sans-serif; font-size: 9px; font-weight:bold; background-color:white; color: #8C0202; text-align:left; } /*FIN BARRA SITUACION ******************************************************/ /*Posibilidades Menu´s General**************************************/ .Menu2Titulo { font-family: Verdana, Helvetica, sans-serif; font-size: 14px; font-weight:bold; background-color:white; color: #8c0202; text-align:left; } .Menu2TituloSeleccionado { font-family: Verdana, Helvetica, sans-serif; font-size: 14px; font-weight:bold; background-color:white; color:darkred; text-align:left; text-decoration:underline; } A.Menu2SinSeleccionar,A.Menu2SinSeleccionar:link { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight:bold; background-color:white; color: black; text-align:left; text-decoration:none; } A.Menu2SinSeleccionar:hover { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight:bold; background-color:white; 74
  • 78. Fernando Leandro Baladrón Proyecto fin de carrera Hoja de estilos -CSS 20/05/05 color: black; text-align:left; text-decoration:underline; } .Menu2Icono { vertical-align:middle; text-align:center; } .Menu2Seleccionado { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight:bold; background-color:white; color: #8c0202; text-align:left; text-decoration:none; } /*Estilos justos a utilizar para la web*/ .TituloGEneral { font-family: Verdana, Helvetica, sans-serif; /*Antes estaba a 18*/ font-size: 14px; font-weight: bold; color: white; background-color:#8c0202; text-align:left; } .TituloGEneral2 { font-family: Verdana, Helvetica, sans-serif; /*Antes estaba a 18*/ font-size: 11px; font-weight: bold; color: white; background-color:#8c0202; text-align:left; } /* Subtitulo */ .SubTitulo { font-family: Verdana, Helvetica, sans-serif; font-size: 14px; font-weight: normal; color: #666644; /*text-decoration:underline;*/ /*Solo se subrayan los que son links*/ text-align:justify; } .TituloCategoria { font-family: Verdana, Helvetica, sans-serif; font-size: 12px; 75
  • 79. Fernando Leandro Baladrón Proyecto fin de carrera Hoja de estilos -CSS 20/05/05 font-weight:bold; color:#666644; text-align:left; } .TextoNormal { font-family: Verdana, Helvetica, sans-serif; font-size: 11px; font-weight:normal; color:#333333; text-align:left; } .TextoNormalSubrayado { font-family: Verdana, Helvetica, sans-serif; font-size: 11px; font-weight:normal; text-decoration:underline; color:#333333; text-align:left; } .TextoNormalNegrita { font-family: Verdana, Helvetica, sans-serif; font-size: 11px; font-weight:bold; color:#333333; text-align:left; } .TextoNormalCentrado { font-family: Verdana, Helvetica, sans-serif; font-size: 11px; font-weight:normal; color:#333333; text-align:center; } .TextoNormalJustificado { font-family: Verdana, Helvetica, sans-serif; font-size: 11px; font-weight:normal; color:#333333; text-align:justify; } .TextoNormalPeque { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight:normal; color:#333333; text-align:left; } .TextoNormalFecha { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight:bold; color:#8c0202; text-align:left; } 76
  • 80. Fernando Leandro Baladrón Proyecto fin de carrera Hoja de estilos -CSS 20/05/05 .EditarEtiquetas { font-family: Verdana, Helvetica, sans-serif; font-size: 10px; font-weight:bold; color: black; text-align:right; } .EditarCajas { font-family: Verdana, Helvetica, sans-serif; font-size: 12px; color: black; text-align:left; } /*Utilizado para las etiquetas de error de edición ETIQUETAS DE ERROR*/ .EtiquetaError { font-family: Verdana, Helvetica, sans-serif; color:#e23232; font-size:10px; text-align:left; } /*Tira Lateral ->utilizado para el fondo de las tiras laterales de algunos documentos*/ .TiraLateral { background-color:#8c0202; } .LinkImagen { color:White; background-color: white; border:0; } /********************************************************************* *********/ /*FIN Estilos justos a utilizar para la web*/ /********************************************************************* *********/ 77
  • 81. Fernando Leandro Baladrón Proyecto fin de carrera Estudio posicionamiento en Google 20/05/05 4.3 Estudio del posicionamiento en Google En el apartado diseño web, hemos consideramos interesante no obviar las consecuencias que puede acarrearnos nuestro diseño sobre el posicionamiento logrado en Google. Uno de los detalles más interesantes es el uso de meta- etiquetas, a continuación vamos ha explicar como hemos trabajado este tema. Para estudiar el posicionamiento nos hemos basado en el servicio Ad-word de Google. Gracias a este servicio Google nos sugiere una serie de palabras clave en base a las búsquedas que realizan sus usuarios. Este servicio esta disponible en la dirección web: https://adwords.google.com/ Si buscamos por ejemplo la palabra Noticias, Google nos indica que los usuarios que han buscado noticias también han buscado una serie de palabras como son: -Ultimas, tercera, actualidad, actuales, cuarta, noticia, efe, recientes, insolitas imparcial. Seguidamente muestra consultas frecuentes que contienen el término noticias. Con la palabra Noticias obtenemos: -Noticias de, las ultimas noticias, diario de noticias, noticias juridicas, grupos de noticias, revista noticias, antena 3 noticias, noticias actuales, noticias deportivas, las noticias. 78
  • 82. Fernando Leandro Baladrón Proyecto fin de carrera Estudio posicionamiento en Google 20/05/05 Si buscamos por ejemplo la palabra Universidad, Google nos indica que los usuarios que han buscado Universidad también han buscado una serie de palabras como son: -Universidades, salamanca, UNED, facultad, selectividad, UNAM, catolica, carreras, tecnologico, andes. Además muestra consultas frecuentes que contienen el término Universidad. Con la palabra Universidad obtenemos: -Universidad de, universidad nacional, la universidad, universidad del, universidad autonoma, universidad nacional de, universidad catolica, universidad autonoma de, universidad complutense, universidad de chile El titulo debe describir bien la página donde se encuentra. Las etiquetas META se sitúan en la cabecera del documento HTML, entre las etiquetas <HEAD> y </HEAD> La etiqueta META con la descripción tiene esta sintaxis: <META name="description" content="descripcion de la página aquí"> La descripción puede ser parecida al titulo, si cabe un poco más descriptiva y siempre debe ser una frase lógica completamente legible. La etiqueta META con las palabras clave tiene esta otra forma, muy parecida: <META name="keywords" content="palabra clave 1,palabra 2,palabra3"> Las frases clave han de estar separadas por comas y no deben repetirse. 79
  • 83. Fernando Leandro Baladrón Proyecto fin de carrera Estudio posicionamiento en Google 20/05/05 Una obtenidas las frases clave que Google nos ha indicado como más importantes, vamos a mostrar como nos quedaría el código html de nuestra página principal con dichas etiquetas. <HEAD> <title>DocuNews: Portal de Noticias</title> <!-- Bienvenido a DocuNews --> <!-- Portal de Noticias de Actualidad --> <!-- Proyecto fin de carrera Fernando Leandro --> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> <meta name="description" content="Pagina web de noticas, noticias de actualidad RSS"> <meta name="keywords" content="noticias de, las ultimas noticias,informacion,documentacion,noticias,actualidad,proyecto,RSS, DocuNews"> <META name="language" content="es"> <META name="revisit-after" content="1 month"> <META name="rating" content="General"> <META name="author" content="Fernando Leandro Baladron"> <META name="owner" content="Fernando Leandro Baladron"> <META name="robot" content="index, follow"> 80
  • 84. Fernando Leandro Baladrón Proyecto fin de carrera Gestión local 20/05/05 5. Gestión local Este quinto y último nivel está dedicado a la parte referida a la gestión local de la aplicación, que está dividido en dos secciones. Una primera sección, dedicada a la aplicación de gestión local de noticias y una segunda sección para el modulo de importación de noticias. 5.1 Aplicación para la gestión local de noticias La idea de realizar una aplicación para gestión local de noticias, surge debido a la necesidad de disponer de una aplicación a nivel local para la gestión total de los contenido por parte de los administradores. Desde esta aplicación se podrán realizar funciones que no están contempladas en la interfaz web, tales como la gestión de categorías y la gestión de usuarios. No vamos a contar nada a nivel de programación, simplemente nos vamos a dedicar a mostrar la idea de esta aplicación, la cual nos permitirá gestionar todos los contenidos de forma local. Hay que decir que la programación difiere un poco de la especifica para web, pero las clases utilizadas son exactamente las mismas para ambas aplicaciones. A continuación, se muestra la pantalla principal con el menú de inicio, desde aquí podremos seleccionar las diferentes opciones: gestión de las categorías, gestión de las noticias, gestión de las palabras clave y gestión de los usuarios. Comentar que se ha cuidado que todos los formularios tengan la misma estructura para no marear al usuario, además de utilizar iconos fácilmente reconocible e intuitivos. Imagen 1.- Menú Principal 81
  • 85. Fernando Leandro Baladrón Proyecto fin de carrera Gestión local 20/05/05 Si entramos dentro de la Gestión de las Categorías/Canales, vemos que tenemos un formulario desde el cual podemos gestionar todas las categorías que tenemos actualmente, el usuario de esta aplicación podrá modificar/borrar/insertar cualquier categoria que desee. A continuación se muestra una captura de lo que sería este formulario, donde se nos muestra todos los campos que tiene una categoria, aquellos que tiene un (*) serán campos obligatorios. Imagen 2.- Formulario gestión de Categorías/Canales El siguiente formulario que tendremos disponible será el de la gestión de Noticias, este es formulario más importante ya que nos permitirá controlar lo que va ha ser el verdadero núcleo de nuestro portal, que sin duda alguna son las noticias que mostremos. En este formulario, al igual que el anterior, podremos modificar/insertar/borrar noticias. Los campos con el símbolo(*) son campos que consideramos obligatorios. Comentar la gran importancia del campo impacto donde podremos indicarle a la noticia un numero del 1 a 10 en función del nivel de impacto que consideremos que tiene la noticia. Además disponemos de una pestaña para asociarle una imagen a la noticia, en esta pestaña podremos además describir la imagen (ver imagen 4). También disponemos de una tercera pestaña en la que indicaremos que palabras clave 82
  • 86. Fernando Leandro Baladrón Proyecto fin de carrera Gestión local 20/05/05 deseamos asociar a esa noticia en concreto (ver imagen 5). Dentro de los botones del menú inferior destacaríamos el de listado desde el cual se podrán hacer búsquedas por los diferentes campos de los que dispone la noticia y guardar los resultados en XML (Ver imagen 6). Imagen 3.- Formulario gestión de Noticias. 83
  • 87. Fernando Leandro Baladrón Proyecto fin de carrera Gestión local 20/05/05 Imagen 4.- Formulario gestión de Noticias-Pestaña Imagen. Imagen 5.- Formulario gestión de Noticias-Pestaña Palabras Clave. Imagen 6.- Formulario Listado de Noticias. 84
  • 88. Fernando Leandro Baladrón Proyecto fin de carrera Gestión local 20/05/05 Dentro del menú principal aparte de la gestión de las categorías y de las noticias, tenemos la gestión de las palabras clave. En este formulario el usuario podrá añadir las palabras clave que desee además de asociar a cada palabra clave los términos relacionados que el le indique (Ver imagen 7 y 8). Imagen 7.- Formulario Gestión Palabras Clave. Imagen 8.- Formulario Gestión Palabras Clave-Pestaña Relacionadas. 85
  • 89. Fernando Leandro Baladrón Proyecto fin de carrera Gestión local 20/05/05 Por último tendremos, el formulario desde el cual podremos modificar/insertar/borrar usuarios, a este formulario sólo tendran acceso los administradores. (Ver imagen 9) Imagen 9.- Formulario Gestión Usuario. 86
  • 90. Fernando Leandro Baladrón Proyecto fin de carrera Modulo de importación 20/05/05 7. Modulo de importación Hemos implementado un modulo de importación de Noticias de esta forma obtendremos de forma automática las noticias, evitándose la labor de tener que introducirlas. La idea de realizar una aplicación para importación de noticias, surge debido a que estamos trabajando con un formato standard como es RSS, esto nos permite compatibilizar totalmente nuestras noticias con las de otras fuentes, ya que nuestra base de datos está adaptada a dicho soporte. Desde esta aplicación local podremos decidir que fuentes deseamos importar y cuales no, tal y como se muestra en la imagen de abajo. Esta aplicación será utilizada por el administrador del sistema de forma local. Las fuentes de las que vamos a obtener información serán las siguientes: A continuación mostramos un extenso listado de las fuentes que tenemos disponibles en nuestro modulo de importación. En esta dirección tenemos la dirección de más 250 FEEDs en español: http://www.syndic8.com/feedlist.php?ShowLanguage=es&ShowStatus=Syndica ted Hemos trabajado con una DLL que nos ha permitido extraer toda la información de los diferentes canales, disponible en el Blog de Jorge Serrano. La librería Golem.Project.RSS está disponible para Visual .NET <http://weblogs.golemproject.com/jorge/category/56.aspx> [fecha consulta 03 de marzo de 2005] 88
  • 91. Fernando Leandro Baladrón Proyecto fin de carrera Modulo de importación 20/05/05 Tenemos etiquetados los diferentes canales clasificados en una categoría u otra, dependiendo del contenido del canal. Las categorías con las vamos ha trabajar son: -Actualidad. -Deportes. -Documentación. -Formación. -Iglesia. -Informática. -Ocio / Espectáculos. -Valencia. El motivo de seleccionar estas categorías es porque se ha supuesto que el portal va destinado a un centro universitario (VER ANEXO II). La clasificación que hemos hecho de los canales por categorías es la siguiente: 1. Los canales que nos proporcionaran información sobre la Actualidad son: 1.1.CANAL NOTICIAS EN GENERAL La dirección es http://www.utleon.edu.mx/backend.php" 1.2.IPS-NOTICIAS La dirección es http://www.ipsnoticias.net/rss/freenews.xml" 1.3.IPS-NOTICIAS AMBIENTE La dirección es http://www.ipsnoticias.net/rss/ambiente.xml" 1.4.IPS NOTICIAS COMERCIO La dirección es http://www.ipsnoticias.net/rss/omcomercio.xml" 1.5.Periódico La NACION CULTURA La dirección es: http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_ id=1" 1.6.El Pais La dirección es "http://www.elpais.es/rss.html" 1.7.El Mundo La dirección es http://abraldes.net/feeds/elmundo.xml" 1.8.La Vanguardia La dirección es http://www.lavanguardia.es/rss/index.rss" 1.9.El Periódico La dirección es http://xml.newsisfree.com/feeds/08/5308.xml" 1.10.YAHOO ESPAÑA La dirección es http://xml.newsisfree.com/feeds/77/6677.xml" 1.11.YAHOO MUNDO La dirección es http://xml.newsisfree.com/feeds/76/6776.xml" 89
  • 92. Fernando Leandro Baladrón Proyecto fin de carrera Modulo de importación 20/05/05 1.12.IBERINDEX La dirección es http://www.iberindex.com/backend.php" 2. Los canales que nos proporcionaran información sobre los Deportes son: 2.1.Periódico La NACION DEPORTES La dirección es: "http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=131" 2.2.Eurosport La dirección es http://xml.newsisfree.com/feeds/10/8510.xml" 3. Los canales que nos proporcionaran información sobre la Documentación: 3.1.CANAL NOTICIAS DE GOOGLE La dirección es http://google.dirson.com/rss.php" 3.2.CANAL METODOS DE BUSQUEDA La dirección es http://www.metodosdebusca.com/index.xml" 3.3.Noticias de Googlemania La dirección es http://www.googlemania.com/rss.php" 3.4. GOLEM PROJECT Autor de la libreria RSS La dirección es "http://weblogs.golemproject.com/jorge/Rss.aspx" 4. Los canales que nos proporcionaran información sobre la Formación son: 4.1.CANAL CURSOS UNIVERSIA La dirección es: "http://cursos.universia.net/rss/detailrss.xml?sid=7&LangID=ES" 4.2.CANAL Universidad JAUME I La dirección es http://cent.uji.es/octeto/node/feed" 4.3.Edured La dirección es http://www.edured2000.net/public/backend.xml" 5. Los canales que nos proporcionaran información sobre la Iglesia son: 5.1.CANAL Noticias IGLESIA La dirección es http://noticias.iglesia.net/backend.php" 5.2.CANAL Libertad digital Portada La dirección es http://www.libertaddigital.com/rss/portada.xml" 5.3.CANAL Libertad Digital Opinion La dirección es http://www.libertaddigital.com/rss/opinion.xml" 5.4.CANAL Libertad digital España La dirección es http://www.libertaddigital.com/rss/nacional.xml" 5.5.CANAL Libertad digital Mundo 90
  • 93. Fernando Leandro Baladrón Proyecto fin de carrera Modulo de importación 20/05/05 La dirección es http://www.libertaddigital.com/rss/internacional.xml" 5.6.CANAL Libertad digital Economía La dirección es http://www.libertaddigital.com/rss/economia.xml" 5.7.CANAL Libertad digital Sociedad La dirección es http://www.libertaddigital.com/rss/sociedad.xml" 6. Los canales que nos proporcionaran información sobre la Informática, Nuevas Tecnologías son: 6.1.CANAL HISPALINUX La dirección es http://www.hispalinux.es/node/feed" 6.2.CANAL PROGRAMACIÓN La dirección es http://www.programacion.com/titulares.xml" 6.3.CANAL Barra Punto Programación La dirección es http://backends.barrapunto.com/barrapunto.rss" 6.4.CIENCIA-Nasa La dirección es http://ciencia.nasa.gov/rss.xml" 6.5.Periódico La NACION TECNOLOGIA La dirección es: http://www.lanacion.com.ar/herramientas/rss/index.asp?categoria_id=272" 6.6.LINUX PARA TODOS La dirección es: ="http://www.linuxparatodos.net/geeklog/backend/backend.rss" 6.7.Programacion.com La dirección es http://www.programacion.com/titulares.xml" 6.8.Banda Ancha La dirección es http://www.bandaancha.st/backend.php" 6.9.Sondas espaciales La dirección es http://www.sondasespaciales.com/backend.php" 6.10.La Flecha .NET La dirección es: http://laflecha.net/laflecha.rss" 7.Los canales que nos proporcionaran información sobre el Ocio/Espectáculo: 7.1.IPS NOTICIAS ARTE Y CULTURA La dirección es http://www.ipsnoticias.net/rss/arteycultura.xml" 8.Los canales que nos proporcionaran información sobre Valencia son: 8.1.E-Valencia La dirección es http://www.e-valencia.org/backend.php" 91
  • 94. Fernando Leandro Baladrón Proyecto fin de carrera Modulo de importación 20/05/05 Esta información podrá variar en función de los test de usabilidad. El objetivo es que sirva de muestra de lo que se puede llegar a conseguir. Los canales para la importación de noticias irán incrementando a medida que vayamos trabajando con la aplicación. La programación ha resultado sencilla. Lo primero que se hace es crearse el objeto de tipo GolemProject.RSS MiRSS = New GolemProject.Rss.GetRss Una vez creado, evaluamos si la casilla checkbox de cada uno de los canales está habilitada, esto significará que queremos importarnos las noticias de ese canal. Con la siguiente instrucción le especificaremos la dirección url del canal. MiRSS.Path = direccion Para acceder a los diferentes campos de la noticia del canal, lo haremos con la siguiente instrucción: i=0 While MiRSS.Read title = MiRSS.RSSItem.ItemElement(i).strTitulo description = MiRSS.RSSItem.ItemElement(i).strDescripcion link = MiRSS.RSSItem.ItemElement(i).strEnlace pubDate = MiRSS.RSSItem.ItemElement(i).strDate .... i+=1 wend Para insertar las diferentes noticias en las base de datos trabajamos con el evento insertarNoticia de la clase Noticia que tiene el formato que mostramos a continuación: 'INSERTAMOS LA NOTICIA miNoticia.insertarNoticia(0, title, link, description, _ Comentario, Now(), "Importación automática con DocuNews", Impacto, Category, Author) 92
  • 95. Fernando Leandro Baladrón Proyecto fin de carrera Reflexiones y trabajo futuro 20/05/05 6. REFLEXIONES Y TRABAJO FUTURO 6.1 REFLEXIONES En este penúltimo punto, se quiere realizar una vista de pájaro de lo que ha sido la consecución de la memoria del proyecto, la cual se ha dividido en cinco niveles en forma piramidal. Un primer nivel que hemos llamado objetivos y requerimientos, en el que hemos comenzando con una introducción en la que se comenta el interés de dicha aplicación, a que usuarios va dirigida, y con que lenguajes va ha ser implementada. Seguidamente se ha pasado a la especificación de requisitos, basándonos para ello en la normativa IEEE std. 830 –1998, en este apartado hemos concretado todos los puntos de acuerdo a la norma. Después nos hemos centrado en el extendido y novedoso formato RSS, aquí nos encontramos con una breve explicación junto con la especificación de este formato concretando los campos de los que está formado. La utilización de este formato ha repercutido directamente sobre el diseño de la base de datos. Un segundo nivel dedicado al diseño de la base de datos. Aquí hemos abarcado el análisis de los requerimientos, después nos hemos centrado en el diseño conceptual, el diseño lógico y finalmente presentamos el diagrama UML. Dentro de este mismo nivel se encuentran los procedimientos implementados en el sistema de gestión de bases de datos (SGBD) que ha sido, en nuestro caso, SQL SERVER 2000 SP4. Un tercer nivel dedicado al diseño de la interface, puesto que Visual Studio .Net soporta la metodología orientada objetos hemos aprovechado la potencia de dicha tecnología trabajando con clases, detalladas en este punto, dentro de este bloque entraría la programación desarrollada en ASP.NET para darle funcionalidad a la página web. Después del diseño de la interface aparecería el cuarto nivel dedicado al diseño del web. En este nivel comenzaría uno de los grandes bloques del trabajo como documentalistas, el correspondiente al diseño web. Comenzamos este punto resaltando la importancia del diseño de la página web detallando que estructura vamos ha llevar a cabo y como tiene que estar organizada la información, seguido de este apartado pasamos a comentar la hoja de estilos utilizada, decisiva en el aspecto final de la página. Nuestro último apartado, dentro del diseño web, hemos considerado que debe ser el posicionamiento en Google, ya que creemos que es una consecuencia directa de los dos apartados anteriores, en esta sección nos centramos, en otras cosas, en el uso de las metaetiquetas. En el quinto último nivel nos hemos dedicado ha comentar el desarrollo de una aplicación para gestión local de noticias, gracias a esta el administrador podrá realizar funciones no contempladas por la aplicación web. 93
  • 96. Fernando Leandro Baladrón Proyecto fin de carrera Reflexiones y trabajo futuro 20/05/05 Una de las mayores ventajas de trabajar con el formato RSS es que nos ha facilitado sobremanera la importación de otros bloques de noticias, de esta forma gozamos de una aplicación local que abastece nuestra base de datos de forma automática de noticias totalmente compatibles con nuestro soporte. No se concibe un proyecto como tal sin una adecuada selección de la bibliografía consultada, ya sea en formato papel o electrónico. Dentro de los anexos, todos ellos importantes, tenemos un primer documento donde hacemos una estimación aproximada de la duración del proyecto, esta estimación se hizo nada más comenzar el proyecto, la que nos ha ayudado a una correcta consecución de las etapas. El siguiente anexo es un estudio de las necesidades de los clientes, aquí se detalla a quién va dirigido nuestro portal y que necesidades se han detectado que tienen. Un tercer anexo, también determinante en nuestro portal, es un estudio de la competencia y de las fuentes relacionadas con la sindicación de contenidos. Se ha hecho un breve recorrido por todos los portales web vinculados con el mundo de las noticias y el formato RSS. Y ya para terminar un último anexo dedicado al tesauro Eurovoc. Hemos decidido hacer una mención especial a este Tesauro puesto que pensamos que es una herramienta indispensable en todo centro de documentación que se precie. Un resumen de lo que hemos ido explicando vendría reflejado en el siguiente gráfico: La principal sensación obtenida tras la realización de este proyecto es la satisfacción de haber creado una aplicación capaz de albergar noticias en la Web utilizando una de las herramientas más utilizadas hoy en día como es el 94
  • 97. Fernando Leandro Baladrón Proyecto fin de carrera Reflexiones y trabajo futuro 20/05/05 ASP.NET. Hay que resaltar el uso de tecnología cada vez más extendidas como es el RSS y la importancia que está empezando a tener en el mundo de los portales web y por consiguiente su estrecha relación con la documentación. Uno de los logros obtenidos en este proyecto que hay que resaltar es el de la interfaz gráfica, sencilla para el usuario común, ya que se basa en un sistema típico web, que al ser muy intuitivo, cada usuario sabe controlar. El tiempo estimado para la realización de este proyecto ha sido de 400 horas, repartidas (aproximadamente) de la siguiente forma: El 30% del total de las horas de trabajo ha sido invertido en el análisis y aprendizaje del uso de ASP.NET. Este aprendizaje a sido constante y continuado a lo largo de la implementación de la aplicación. Trabajo relacionado con la captura de requisitos de la aplicación, generación de la Base de Datos y diseño de la aplicación un 20% del tiempo total. Implementación de la interfaz gráfica de usuario, un 10% del tiempo total. Generación de la documentación un 10% del tiempo total, siendo generada de forma continuada a lo largo de la implementación de la aplicación. Codificación y funcionalidad de la aplicación un 30% del tiempo total. 6.2 TRABAJO FUTURO Se ha puesto gran empeño en el diseño del portal, no obstante lo primero que se ha planteado mejorar son los aspectos de visualización. El objetivo fundamental es que se asemeje lo más posible al “Periódico de toda la vida”. Se estudiará la posibilidad de contratar a un diseñador para conseguir hacer el portal los más agradable visualmente que sea posible. (por ejemplo. incluirle animaciones en FLASH, al estilo del portal marumushi.com [consultar ANEXO III]). Otro objetivo del trabajo futuro podría ser realizar la visualización de la aplicación en diversos idiomas y dar la posibilidad al usuario de escoger el idioma en que desea que se le presente la aplicación. Otras de las mejoras que consideramos que serían interesante en un futuro sería la de la implementación de una base de datos que albergase un TESAURO. De esta forma, no nos limitaríamos solo al uso de las palabras clave, sino que también podríamos tener representadas relaciones de equivalencia, relaciones asociativas y relaciones jerárquicas. En dicha base de datos deberíamos reflejar la estructura propia de un tesauro. Con esto obtendríamos una gran potencia a la hora de asignar descriptores a las noticias y como consecuencia una eficiente recuperación de las noticias. 95
  • 98. Fernando Leandro Baladrón Proyecto fin de carrera Reflexiones y trabajo futuro 20/05/05 Otro de los trabajos que está pendiente, es el paso de tests de usuarios. Pasaremos una serie de test de usabilidad para asegurarnos que los usuarios entienden nuestro portal y no realizan esfuerzos adicionales para comprender el contenido de la página. Procuraremos asegurar que el portal está sobre todo enfocado al usuario. Se pasarán encuestas a los usuarios preguntándoles que dudas han tenido, que les ha gustado y que no. De esta forma, conseguiremos analizar el comportamiento de los usuarios y definir con exactitud las necesidades reales de los visitantes de la página. Uno de los principales inconvenientes que hemos detectado es el problema del software de pago, primero problemas para conseguir el software para el desarrollo del portal, y siguiente las dificultades para encontrar hosting gratuitos compatibles con la tecnología de Microsoft. Por lo anterior, hemos estudiado realizar una versión homóloga en Plone, software gratuito, desarrollada sobre una base de datos Zope, es un CMF (Content Magament Framework), actualmente hay hosting gratuito. (por ejemplo: Objectis. http://www.objectis.org/about-es/plone. [Fecha consulta 10- 04-05]). Las ventajas que ofrece Plone son: -Producción muy rápida -Acento en los contenidos y no en la tecnología -Diseño adaptado por el Web -Gestión de contenido deslocalizado -Edición de las páginas en tiempo real -Colaboración fácil -Enfoque centrado en el usuario El panel de control que tiene Plone, desde el cual se gestiona las funcionalidades del portal es: 96
  • 99. Fernando Leandro Baladrón Proyecto fin de carrera Reflexiones y trabajo futuro 20/05/05 Un ejemplo de la estructura básica de la que dispone plone podría ser el que se muestra a continuación: 97
  • 100. Fernando Leandro Baladrón Proyecto fin de carrera Bibliografía 20/05/05 7. BIBLIOGRAFÍA -García Camarero, Ernesto. La biblioteca digital . Madrid . Arco Libros, 2001. -Peña, Rosalía. Gestión digital de la información : de bits a bibliotecas digitales y la web . Madrid . Ra-ma, 2002. -Méndez Rodríguez, Eva Mª. Metadatos y recuperación de información : estándares, problemas y aplicabilidad en bibliotecas digitales. Gijón. Trea, 2002. -Lloret Romero, Nuria. Bases para el desarrollo de un proyecto de biblioteca digital como herramienta de apoyo a la formación a distancia vía internet / Nuria Lloret Romero. Editorial UPV, 2004. -Delaney, Kalen. A fondo Microsoft SQL Server 2000. Madrid. McGraw- Hill/Interamericana de España, 2001. -Griffin, John. Creación de sitios Web con XML y SQL Server 2000 / John Griffin. – Madrid. Prentice-Hall, 2002. -Serranos Cobos, Jorge. Google, dsi y la sindicación de contenidos mediante rdf/rss. El Profesional de la Información, February 01, 2004, vol. 13, no. 1, pp. 67-70(4) -Hammersley, B. Content Syndication with RSS. UK. O'Reilly, 2003. -Mridula, Parihar. La biblia de ASP .NET Anaya. ISBN 8441513856 -Charte Ojeda, Francisco. Serrano Pérez, Jorge. Anaya Programación con Visual Studio .Net. ISBN 8441513767 98
  • 101. Fernando Leandro Baladrón Proyecto fin de carrera Bibliografía 20/05/05 Recursos electrónicos -The Code Project. http://www.codeproject.com . [Fecha consulta: 10-04-05] -Programación.com <http://www.programacion.com>[Fecha consulta: 10-04-05] -ASP Facil. <http://www.aspfacil.com> [Fecha consulta: 10-04-05] -Keene System, Inc. http://www.sql-server-vb-asp.net. [Fecha consulta: 10-04- 05] -Tesauro EUROVOC. <http://europa.eu.int/celex/eurovoc/> [Fecha consulta: 10-04-05] -Tutoriales de Microsoft .NET. <http://es.gotdotnet.com/quickstart/aspplus/doc/webdatabinding.aspx > [Fecha consulta: 10-04-05] -Miliuco .NET <http://www.miliuco.net/indexpnetasp.htm> [Fecha consulta: 10- 04-05] -El Guille .NET <http://www.elguille.info/NET/default.aspx> [Fecha consulta: 10- 04-05] -BRiNDYS Software . Valencia. winRSS : Lector de fuentes de noticias sindicadas Atom, RSS, RDF, XML y otros formatos. <http://www.brindys.com/winrss/casmenu.html> [fecha consulta 03 de marzo de 2005] -Discapnet : Portal de los discapacitados. [en línea] <http://www.discapnet.es/Discapnet/Castellano/Actualidad/rss.htm> [fecha consulta 03 de marzo de 2005] -Cervantes González, Germán I. “RSS, ahora la información que te interesa te encuentra a ti”. [en línea]. <http://www.enterate.unam.mx/Articulos/2005/febrero/rss.htm> <http://helios.orbis.org.mx/RSS.htm> [fecha consulta 03 de marzo de 2005] - Palazón Candel, Pedro . “Qué es RSS y para que sirve”.[en línea]. Gen7es: Asociación DHTML en Catellano. <http://www.gen7es.net/documentos/rssintro.php> [fecha consulta 03 de marzo de 2005] -Mendes, Eva .”Traducción del documento de la W3C que define RDF”. [en línea]. Fundación SIDAR. <http://www.sidar.org/recur/desdi/traduc/es/rdf/rdfesp.htm> [fecha consulta 03 de marzo de 2005] - Artículos sobre RSS. The webmaster´s reference library. [en línea] 99
  • 102. Fernando Leandro Baladrón Proyecto fin de carrera Bibliografía 20/05/05 <http://www.webreference.com/authoring/languages/xml/rss/> [fecha consulta 03 de marzo de 2005] -Blog de Tecnologías Educativas que maneja RSS feeds y Atom. [en línea]. <http://blogs.orbis.org.mx/blogs/ >[fecha consulta 03 de marzo de 2005] -RSS 2.0 Specification. RSS at Harvard Law. Autor Dave Winer. [en línea]. <http://blogs.law.harvard.edu/tech/rss> [fecha consulta 03 de marzo de 2005] -Buscador de fuentes RSS . Estudio del uso del formato RSS en Syndic8. Syndic8. [en línea]. <http://www.syndic8.com/stats.php?Section=rss> [fecha consulta 03 de marzo de 2005] -Pagina en Español con mucha información sobre RSS. [en línea]. Encontraremos la especificación de los formatos muy detallada. <http://www.uatsap.com/ > [fecha consulta 03 de marzo de 2005] -Flash-db.com. Código de Ejemplo en Flash de un lector de RSS hecho por Jorge Solis. <http://www.flash-db.com/rss/> [fecha consulta 03 de marzo de 2005] -EYETRACK 2003.<http://www.poynterextra.org/eyetrack2004/main.htm> [fecha consulta 03 de marzo de 2005] -Blog de Jorge Serrano. Código disponible en Visual .NET para trabajar con RSS. <http://weblogs.golemproject.com/jorge/category/56.aspx> [fecha consulta 03 de marzo de 2005] -Gómez Vázquez, Miguel. Servicio de documentación y archivo de un periódico: El mundo. <http://www.ucm.es/info/multidoc/multidoc/revista/cuad6-7/gomez.htm> [fecha consulta 03 de marzo de 2005] -Del Valle Gastaminza, Felix. Análisis y tratamiento documental en medios de comunicación impresos en la era digital, Julio 2002. http://www.ucm.es/info/multidoc/multidoc/cursos/verano/material/FELIX%20DE L%20VALLE/fvalleEV4.htm [fecha consulta 03 de marzo de 2005] -Álvarez, Raúl. “El País, un modelo en gestión documental”. http://www.microsoft.com/spain/enterprise/perspectivas/numero_14/media.mspx [fecha consulta 03 de marzo de 2005] 100
  • 103. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO I-Estimación duración proyecto 20/05/05 ANEXO I- Estimación duración del proyecto: Este apartado ha sido un pilar fundamental para la correcta consecución de los objetivos. Desde un principio nos hemos ceñido rigurosamente a los hitos establecidos, esto nos ha facilitado un desarrollo continuado del proyecto y nos ha evitado atracones de última hora. Como se muestra en nuestra planificación, empezamos haciendo un estudio de la competencia para evaluar la situación del mercado en el que nos queríamos introducir (consultar ANEXO III). Destacar que hemos tenido una parte dedicada a la pruebas indispensable en proyectos de este tipo, para conseguir asegurar un correcto funcionamiento por parte de la aplicación. Destacar que después de cada parte importante, hemos tenido una reunión con el tutor del proyecto, condición sinequanon no hubiera sido posible llegar al resultado en esta memoria reflejado. 101
  • 104. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 ANEXO II - Estudio necesidades de los usuarios Hemos considerado interesante añadir este estudio referido a las necesidades de nuestros usuarios, que no por estar en el anexo es menos importante, nos hemos esforzado en detectar que carencias y que necesidades tienen nuestros futuros usuarios, además de decidir especializarnos en un perfil concreto de usuario, tal y como concretaremos más adelante. Por todo ello adelantamos que se ha decidido dirigirse a los jóvenes en general, por consiguiente en el siguiente estudio podremos ir viendo que conclusiones hemos obtenido, que hemos detectado para diferenciarnos de la competencia y como lograr una mayor satisfacción por parte de nuestros usuarios. A continuación, vamos a evaluar el perfil de nuestro lector y las características de un periódico on-line: 1.- El lector tenderá a ser más especializado. Tal vez el periódico encuentre su círculo de lectores no en el mismo lugar físico, sino que se encontrarán distribuidos a lo largo y ancho del planeta. Serán comunidades virtuales, personas que comparten intereses especializados que están localizados en cualquier lugar del planeta. 2.- Buscará sólo las noticias que le interesen. El usuario tendrá la oportunidad de elegir entre una amplia oferta aquella información que le afecte según sus condiciones y aspiraciones personales. 3.- Extracción cultural. El receptor del periódico en línea es un usuario con conocimientos de multimedia. Para utilizar Internet, para activar una imagen, para escuchar un audio, deberá saber un poco de informática. 4.- El gusto por descubrir cosas. El lector de este medio no será pasivo, sino que buscará las páginas que más le atraigan a sus inquietudes de información y entretenimiento. El periódico on line tendrá que satisfacer esta demanda de innovación. 5.- Pertenece a la Generación de la Red. El público más joven es el que tiene un mayor consumo de Internet. “Tal vez, señalan los estudios sobre prácticas y hábitos comunicativos, estemos ante generaciones menos lectoras o refractarias a la solución monomediática de lo impreso y más abiertas a códigos visuales, al diseño, la interactividad, los efectos tecnológicos, etc Una oportunidad para nuestra versión sería que Internet es un medio verdaderamente interactivo, más que cualquier otro medio, Internet permite a los usuarios interactuar directamente con el periódico y, de este modo, establecer relaciones futuras. Además de ofrecer una posibilidad de Audiencia enorme, ya que Internet es global. Internet es un medio flexible y por lo tanto fácilmente modificable. 102
  • 105. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 Una pieza fundamental dentro de cualquier estudio de mercado que se precie es el realizar un adecuado cuestionario en el que se pueda detectar que están demandando nuestros usuarios. Como ya hemos comentado en la introducción, se ha pensado que DocuNews vaya dirigido a los jóvenes, por ello nuestras encuestas irán dirigidas a los jóvenes. Para crear webs efectivas, eficientes y satisfactorias que generen experiencias exitosas a sus usuarios, es importante el punto de vista del usuario. Se trata de crear una web enfocada en el usuario y no sólo en los objetivos de la empresa. Cuestionario que se ha pasado a los jóvenes. Como todos sabemos, la población joven representa el futuro de la sociedad, por lo que uno de los principales objetivos a la hora de plantear esta consulta ha sido conocer la visión que de Valencia tienen los jóvenes y sus inquietudes relacionadas con aspectos de interés para la Estrategia Territorial de Valencia. La consulta ha permitido analizar aspectos relacionados con la percepción de la realidad Valencia: demografía, vivienda, medioambiente, infraestructuras, sistema productivo, educación, sanidad, servicios sociales, patrimonio natural y cultural, equipamientos del hogar, ocio y tiempo libre. Para la realización de la consulta se ha elaborado un cuestionario-guión, simplificando al máximo los conceptos y concretándolos en actuaciones fácilmente comprensibles para el público objetivo, así como se han insertado cuestiones específicas para completar las orientaciones para el Modelo que se incluyen en los informes temáticos y algunas preguntas de menor relevancia para encauzar los temas de interés. Metodología Esta consulta ha contado con la participación de 626 jóvenes de 16 a 35 años, que han respondido al cuestionario diseñado al efecto. El tamaño de la muestra ha permitido obtener resultados con un nivel de confianza del 95% para el conjunto de Valencia 103
  • 106. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 A título estadístico, aunque no han sido factores de distribución muestral, se han recabado datos relativos al sexo de las personas entrevistadas, el estado civil, la situación profesional, la ocupación, el nivel de estudios finalizados, los niveles de ingresos particulares o familiares, así como el tamaño de la localidad de residencia o el ámbito que la persona entrevistada considera más cercano para sus relaciones personales, de trabajo y ocio. El diseño de la muestra ha pretendido recopilar información sobre las diferentes realidades socioculturales de Valencia. A pesar de estas diferencias, se constatan situaciones similares entre los jóvenes Valencianos independientemente de su hábitat de residencia o edad: El elevado porcentaje de personas entrevistadas solteras (supera el 75% de las personas entrevistadas a pesar de que más del 50% de las mismas superan los 25 años de edad) y el arraigo de las personas jóvenes a su hábitat de residencia y trabajo, así como la escasa predisposición a la movilidad territorial, aún dentro de la propia Comunidad Foral. Tres de cada cuatro personas entrevistadas manifiestan que en el futuro les gustaría que fuese su entorno habitual o más cercano su centro de residencia, trabajo u ocio. 104
  • 107. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 Con respecto a su ocupación y formación los jóvenes entrevistados tienen las siguientes características: Como se observa, más del 70% de los jóvenes entrevistados poseen un nivel de formación medio-alto, lo que permite considerar sus opiniones como “de calidad”. A continuación se detallan los resultados más relevantes extraídos del proceso de consulta. En opinión de los jóvenes entrevistados, la Comunidad de Valencia es una región competitiva y atractiva. Las puntuaciones obtenidas son altas. En una valoración de 1 a 10, el 74,5% de los jóvenes otorga una puntuación a Valencia de 7, 8, 9 ó 10 y sólo un 25,0% puntúa a Valencia de 1 a 6. La puntuación media es de un 7,29, siendo el 7 la valoración más repetida. Asimismo, el balance que los jóvenes Valencianos hacen de su propia vida es muy positivo. El 97,4% se sienten satisfechos con su vida. Por orden de relevancia, los aspectos de la vida a los que los jóvenes otorgan una mayor importancia son la familia, los amigos y conocidos, el trabajo y el tiempo libre y de ocio. 105
  • 108. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 El servicio con menor uso y desconocimiento en Valencia es el aéreo, ya que la tercera parte de las personas entrevistadas no exponen su valoración sobre la calidad del mismo. Únicamente un 20% lo considera bueno, mientras que una de cada cuatro personas encuestadas consideran que es regular. En lo que respecta al grado de implantación de diferentes infraestructuras, las mejor valoradas en cuanto a grado de implantación son los servicios de telefonía fija, la red de distribución de aguas y la red de suministro eléctrico. Con una valoración inferior a las anteriores, aunque con unos buenos índices, se indican los servicios de telefonía móvil, los servicios telemáticos (Internet), servicios por cable, la red de distribución de gas, las instalaciones deportivas y de recreo, así como el aprovechamiento de energías renovables. Los aspectos peor valorados son la gestión de residuos sólidos urbanos y la gestión de residuos sólidos industriales. Además de conocer las valoraciones de los jóvenes en cuanto a aspectos, también se ha deseado identificar qué actividades realizan habitualmente, es decir, cómo organizan su tiempo libre. La juventud Valenciana parece no ser proclive a la realización de determinadas actividades culturales como asistir al teatro, a conferencias, a museos; debido a la falta de organización de actividades por parte de las instituciones encargadas, falta de interés en los jóvenes, falta de información,... Asimismo, los jóvenes no colaboran apenas con organizaciones de cualquier tipo; no hay por tanto implicación por parte de los jóvenes, aunque, como ya se ha visto anteriormente, la valoración que han realizado de dichas organizaciones es positiva. 106
  • 109. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 Existen una serie de actividades que los jóvenes realizan con cierta frecuencia, bien por intereses propios, porque tienen recursos y facilidades para llevarlas a cabo,. actividades tales como ir al cine, a conciertos musicales, al monte... En opinión de los jóvenes los tres problemas más importantes que tendrá que resolver la Comunidad Valenciana en el futuro serán el paro, la inmigración y la droga. 107
  • 110. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 La tolerancia, la libertad y la educación son los principales valores que los jóvenes consideran que deberían desarrollarse más en Valencia en un futuro. Asimismo, a más de 72% de los jóvenes les gustaría poder disfrutar de una mayor oferta de ocio y trabajo a través de las nuevas tecnologías de la información y la comunicación. 108
  • 111. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 A la hora de evaluar nuestra página web tenemos que tener en cuenta que: Razones por las que los jóvenes se conectan a Internet Principal Razón Enviar/recibir e-mail 83% 44% Buscar/obtener información 68% 19% Jugar online 51% 10% Utilizar el Chat 40% 10% Descargar música/videos 38% 6% Enviar tarjetas electrónicas de felicitación 31% 0% Comprar 26% 2% Leer noticias/deportes/otros 23% 4% Otros 19% 5% Fuente: PricewaterhouseCoopers Presentación de resultados Desde nuestro periódico se luchará contra la “indiferencia religiosa".Se fundamentará la fe de los jóvenes a partir de la experiencia personal (trabajo, amigos, afectividad, ambientes) y desde todos los ámbitos de formación (familia, escuela y parroquia), para favorecer el sentido crítico ante sí mismo y ante el propio ambiente y la sociedad a fin de que sepan dar razón de su fe. Necesitan apoyarse en la Iglesia. Los jóvenes se buscan y no se encuentran. Los jóvenes no se encuentran formados. Perfil -Trabajan -Cansados física y mentalmente -Capacidad de atención muy limitada -Ocupados -Fragmentados - viven sus vidas compartimentadas -Educados en un sistema carente de valores -Influenciados por los medios de comunicación -Viven situaciones familiares disfuncionales -A su aire (ambos padres trabajan, mucho tiempo solos) -Tienen menos modelos y peores -Más homogéneos a nivel mundial que nunca antes (cultura joven global) -Sexualmente activos -La población juvenil declina como porcentaje de la población total -Ausencia de autoridad -la mayoría de ellos no creen en verdades absolutas 109
  • 112. Fernando Leandro Baladrón Proyecto fin de carrera Anexo II - Estudio Necesidades Usuarios 20/05/05 -Consumistas -Centrados en ellos mismos -Ecologistas Actitudes -Enfadados por la manera en que son tratados -Temerosos -Se sienten impotentes y sin esperanza -Despegados (desde el punto de vista emocional) -Inseguros -Actitud más activista -dispuestos a tomar iniciativas -Confundidos acerca de futuro *70% de los jóvenes consideran que el mundo está fuera de control *90% son optimistas en cuanto al futuro -No confían -Escépticos y frustrados Necesidades -Buscan la independencia, pero ya que son inseguros y dependientes transigen -Desesperado por aquello que funciona -Listos para el cambio -abiertos al evangelio -Todavía buscan seguridad y sentido como siempre -Necesidad de intimidad -Listos para ser desafiados -Listos para hacer algo, dispuestos a involucrarse en causas, en marcar una diferencia -Listos para dirigir -Necesitan dirección, abiertos a ser guiados vocacionalmente -Debido a los medios de comunicación necesitan un acercamiento global Conclusión general -Buscan una salida, una manera de hacer frente. -Son conscientes, sofisticados, informados -Precisan más desarrollo de liderazgo por parte de la Iglesia -Los jóvenes están todavía buscando alguien que sea sus padres -La cultural juvenil es multidimensional y cambiando rápidamente -Quieren ser amados, desarrollar relaciones significativas -Las relaciones serán la clave para un ministerio exitoso -Listos para la acción, para ser desafiados e involucrarse 110
  • 113. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 ANEXO III Estudio de la competencia y Fuentes Relacionadas con el tema Reflejar como esta el panorama actual es una de los motivos principales de este estudio, además de conseguir detectar las carencias y fortalezas de nuestra competencia. Esto condicionará nuestras posibilidades de éxito. 1. Sindicacion.net. Canales RSS feed en Español . [Fecha consulta 3 de marzo de 2005] http://www.euroresidentes.com/Diversion/Internet/rss_canales.htm 2. Noticias.info. Agencia internacional de noticias. . [Fecha consulta 3 de marzo de 2005] <http://www.noticias.info/contenidos_info/portada.shtm> Las categorías que han utilizado han sido: -General -General sin deportes. -Sociedad -Tecnología -Economía -Deportes -Futbol -Salud -Política -Cultura y ONG´s 111
  • 114. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 3. Marumushi. Presentación de las noticias de google en formato de importancia. Realizado en Flash. Te permite filtrar: -Por Países. -Por días y horas (00:00-6:00-12:00-18:00) -Por categorías: -world -nation -business -technology -sports -entertainment -health <www.marumushi.com> [Fecha consulta 3 de marzo de 2005] 112
  • 115. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 4. Discapnet : Portal de los discapacitados. [Fecha consulta 3 de marzo de 2005] El Portal Discapnet publica los titulares de algunas de sus secciones en formato RSS 2.0, actualizados en el mismo momento en que se genera la noticia. Actualmente, Discapnet ofrece RSS para las noticias de las secciones de Línea Social y de Actualidad, a través de los siguientes ficheros: -Noticias de Línea Social -Noticias de Actualidad http://www.discapnet.es/Discapnet/Castellano/Actualidad/Hemeroteca/2005/def ault.htm 113
  • 116. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 5. Calmecac. Blog de Tecnologías Educativas que maneja RSS feeds y Atom. http://blogs.orbis.org.mx/blogs/ Muy interesante ver que tenemos un calendario que nos permite visitar las noticias del día. Ordenadas por Categoría y Fecha. 6. Metodos de busca. Hemeroteca digital del documentalista Valenciano Ricardo Fornás, dedicada a los buscadores. Noticias almacenadas en RSS 0.91 www.metodosdebusca.com Información clasificada por meses y días. Todas las noticias pertenecen a la misma categoría. 114
  • 117. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 7. Justin Pfister . Pagina que te genera un fichero en formato RSS 2.0, de la respuesta generada por Google en su buscador de noticias hecha en PHP. http://www.justinpfister.com/gnewsfeed.php 9-conversor de noticias de google en RDF <http://atalaya.blogalia.com/historias/13989> http://geneura.ugr.es/~jmerelo/atalaya/news-google-es- rss.cgi?palabras+de+búsqueda 115
  • 118. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 10. RSS Channel Presentation and Searching . Directorio de canales RSS en Inglés. http://rssxpress.ukoln.ac.uk/lite/include/ Tools availables: -RSS-xpress Lite - include RSS channels on your website with a simple piece of JavaScript -RSS-xpress Search - search the RSS channels registered with RSSxpress and include the results on your site 11.- Syndic8. Buscador de fuentes RSS . Aquí podemos encontrar:348 Fuentes españolas. http://www.syndic8.com/feedlist.php?ShowLanguage=es&ShowStatus=Syndica ted 116
  • 119. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 12. Flash News Feeds. Portal en Flash que nos muestra las noticias según el servidor de noticias RSS feed que elijamos. www.philterdesign.com/dev/flashFeeds/ 117
  • 120. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 13.- NewsMonkey. Portal en Flash de Noticias que nos muestra las noticias según el servidor de noticias RSS feed que elijamos. http://www.nuwance.com/newsmonkey/ 14.-Google. Portal de noticias de Google. 118
  • 121. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 Las categorías que utilizan son: -Noticias destacadas. -España -Economía -Ciencia/tecnología -Deportes -Espectáculos -Salud Nos permite ver de cuanto tiempo es la noticia. Los artículos relacionados con la noticia. En el apartado “Es noticia” se pueden ver las materias que considera que son Noticia. 15.- uatsap.com. Portal de noticias RSS en Español. <http://www.uatsap.com/> [fecha consulta 03 de marzo de 2005] Las categorías que utilizan son: -Top 10 -Ciencia y Tecnología -Ciencias Sociales -Deportes y ocio -Internet y ordenadores -Lo nuevo -Medios de comunicación -Política y gobiernos -Economía y negocios -Salud 119
  • 122. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 -Educación y formación -Sociedad -Espectáculos y diversión -Zonas geográficas. 16.- Yahoo noticias : España <http://es.news.yahoo.com/> [fecha consulta 03 de marzo de 2005] Ver que las noticias las han clasificado en: -Actualidad -España -Local -Mundo -Economía -Cultura -Sociedad -Corazón -Insólitas -Tecnología -Salud -Deportes -Finanzas -El tiempo y temas de actualidad el menú es horizontal y vertical 120
  • 123. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO III- Estudio Competencia 20/05/05 17. El sindicon. El equivalente español a syndic8. Contiene 901 páginas sindicadas. <http://www.sindicon.com/> 18. 0´Really network. Merkat: an open wire service. < http://www.oreillynet.com/meerkat/index.php?&p=19> Te permite filtrar por todos los campos. 121
  • 124. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO IV - Tesauro 20/05/05 ANEXO IV. TESAURO EUROVOC Como documentalistas hemos detectado la necesidad de tener bien definidos nuestros descriptores, la forma de indicar nuestras noticias sin duda repercutirá en la recuperación efectiva de estas, para conseguir nuestro objetivo hemos acudido a la utilización de una indispensable herramienta como es el tesauro. A. Qué es un tesauro? Tipo de lenguaje documental que se integra con términos analizados y normalizados que guardan entre sí relaciones semánticas y funcionales. El tesauro se organiza bajo fuerte control terminológico, con objeto de proporcionar un instrumento idóneo para el almacenamiento y la recuperación de la información en áreas especializadas. Según Van Slype, es una lista estructurada de conceptos, destinados a representar de manera unívoca el contenido de los documentos y de las consultas dentro de un sistema documental determinado, ayuda al usuario en la indización y en la correcta recuperación de la información consultada. Luego , por lo comentado anteriormente, y como documentalistas, A la hora de definir las palabras clave nos vamos a basar en el tesauro Eurovoc. Disponible en esta dirección: EUROVOC. <http://europa.eu.int/celex/eurovoc/> [Fecha consulta: 10-04-05] Al utilizar un tesauro como guía a la hora de elegir nuestras palabras clave, no estamos evitando una serie de problemas propios del lenguaje natural como son: 122
  • 125. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO IV - Tesauro 20/05/05 -El problema de los SINGULARES Y PLURALES. El primer problema que plantea el lenguaje natural es el de los singulares y plurales. Existen normas internacionales (ISO), para el control de estas variantes gramaticales. Además, su normalización es importante dado que el significado de muchos términos varía según su forma (Obligación/Obligaciones). -El problema del MASCULINO Y FEMENINO. Tanto el lenguaje natural como la mayoría de los lenguajes documentales mantienen el masculino genérico.La economía del lenguaje, esgrimida por los detractores de duplicar entradas en masculino y femenino o buscar formas alternativas, no debe entrar en contradicción con la realidad. -Otro de los problemas del lenguaje natural es el de las FALSAS COMBINACIONES. La falta de especificidad lleva a dificultades en la recuperación de la información, creando falsas combinaciones en la búsqueda y con resultados insatisfactorios. Un ejemplo práctico y vivido es la imposibilidad de recuperar información sobre Mujeres empresarias, ya que los vocabularios incluso específicos y disciplinares, suelen recoger este concepto con los términos mujeres y empresa; lo que obviamente producirá ruido, uno de los enemigos de la recuperación en bases de datos. Algo similar sucede ante la búsqueda de escritoras del S. XIX. Si el lenguaje de indización ha introducido escritores o mujeres y literatura, obtendremos igualmente aquellos trabajos sobre la imagen de la mujer en la literatura del XIX. También la búsqueda por palabras del título "Filosofía y Historia", llevaría a recuperar tanto trabajos sobre Historia de la Filosofía como sobre Filosofía de la Historia. -Y por último comentar el problema de las SINONIMIAS. La utilización de sinónimos, que aporta valor y riqueza desde el punto de vista literario, es un gran problema en la recuperación de la información en las bases de datos bibliográficas. No olvidemos, como vimos anteriormente, que el principio "ideal" de los lenguajes documentales es que cada forma tenga un significado y cada significado vaya asociado a una única forma. La auténtica sinonimia existe cuando un mismo término puede aplicarse a varios conceptos en el mismo contexto, ya que aunque son difíciles de encontrar las sinonimias perfectas, la mayoría de sinónimos y cuasi-sinónimos se ven influidos por el entorno contextual y disciplinar. Dentro de los tesauros consultados, este es el más genérico y el que más se acopla a nuestras necesidades. Las categorías en las que esta organizado son: 04 VIDA POLITÍCA 08 RELACIONES INTERNACIONALES 10 COMUNIDADES EUROPEAS 12 DERECHO 16 VIDA ECONÓMICA 20 INTERCAMBIOS ECONÓMICOS Y COMERCIALES 24 ASUNTOS FINANCIEROS 28 ASUNTOS SOCIALES 123
  • 126. Fernando Leandro Baladrón Proyecto fin de carrera ANEXO IV - Tesauro 20/05/05 32 EDUCACIÓN Y COMUNICACIÓN 36 CIENCIA 40 EMPRESA Y COMPETENCIA 44 TRABAJO Y EMPLEO 48 TRANSPORTES 52 MEDIO AMBIENTE 56 AGRICULTURA, SILVICULTURA Y PESCA 60 SECTOR AGROALIMENTARIO 64 PRODUCCIÓN, TECNOLOGÍA E INVESTIGACIÓN 66 ENERGÍA 68 INDUSTRIA 72 GEOGRAFÍA 76 ORGANIZACIONES INTERNACIONALES Esto nos da una idea de las áreas que abarca este Tesauro. Sería importante no descartar en un futuro la implementación de un tesauro similar a Eurovoc, pero a medida. Una cuestión técnica que queremos destacar es que no necesariamente tendrá que ir en la misma base de datos donde tenemos albergadas las noticias sino que podrá ir en otra base de datos, en esta base de datos tendremos toda la información de nuestro microtesauro donde deberá quedar reflejado nuestro vocabulario particular. 124