126
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

Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

Embed Size (px)

DESCRIPTION

Proyecto Final de Carrera Licenciatura en Documentación. Facultad de Informática. Portal de Noticias con RSS (Año 2005)

Citation preview

Page 1: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 2: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 3: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 4: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)
Page 5: 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.

Page 6: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 7: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 8: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 9: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 10: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 11: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 12: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 13: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 14: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 15: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 16: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 17: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 18: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 19: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 20: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 21: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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/Semestre2005/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_bibliotecasdigitales.htm">http://www.filos.unam.mx/dec/Semestre2005/c_bibliotecasdigitales.htm</a></p> <p>Este un curso</p>]]>

<comments>http://blogs.orbis.org.mx/blogs/calmecac.php

</comments>

</content:encoded>

</item>

</channel> </rss>

18

Page 22: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 23: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 24: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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> [email protected] (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

Page 25: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 26: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 27: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 28: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 29: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 30: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 31: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 32: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 33: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 34: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 35: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 36: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 37: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 38: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 39: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 40: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 41: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 42: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 43: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 44: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 45: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 46: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 47: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 48: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 49: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 50: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 51: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 52: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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:\Inetpub\wwwroot\PortalDocuNews\images\" 'sube el fichero fileImagen.PostedFile.SaveAs(rutaServer & nombreFichero) MiImagen.insertarImagen(0, "Imagen guardada desde la web", nombreFichero, "C:\Inetpub\wwwroot\PortalDocuNews\images\", 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=".\images\icon.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

Page 53: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 54: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 55: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 56: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 57: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 58: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 59: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 60: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 61: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 62: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 63: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 64: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 65: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 66: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 67: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 68: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 69: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 70: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 71: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 72: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 73: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 74: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 75: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 76: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 77: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 78: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 79: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 80: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 81: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 82: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 83: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 84: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 85: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 86: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 87: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 88: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 89: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 90: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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=Syndicated 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

Page 91: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 92: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 93: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 94: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 95: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 96: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 97: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 98: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 99: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 100: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 101: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 102: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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%20DEL%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

Page 103: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 104: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 105: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 106: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 107: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 108: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 109: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 110: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 111: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 112: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 113: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 114: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 115: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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/default.htm

113

Page 116: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 117: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 118: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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=Syndicated

116

Page 119: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 120: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 121: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 122: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 123: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 124: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 125: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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

Page 126: Proyecto Final de Carrera. Portal de Noticias con RSS (Año 2005)

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