Front-end y biblioteca de interacción con Subversion para GNOME con Tecnologías C# y Mono
Resumen / Abstract
Los sistemas de control de versiones, tal y como los conocemos son una pieza clave en cualquier desarrollo software que se precie. Esta herramienta, es una aplicación crítica para muchos desarrolladores y programadores, los cuales tienen la necesidad de realizar cambios en sus códigos, y tener que deshacer estos mismos cambios al día siguiente. Pero sería erroneo pensar que los sistemas de control de versiones son sólo aplicables al ámbito informático. Cualquier persona que maneje cualquier tipo de información está expuesta al manejo de históricos en la información. Y es aquí donde los sistemas de control de versiones entran en juego. Un sistema de control de versiones no es sólo aquel software que nos permite llevar un historial de cambios en el código que desarrollamos día a día. Estas aplicaciones han conseguido extenderse hacia otro tipo de áreas como por ejemplo la de la enseñanza, donde un profesor puede llevar un control de revisiones del material didáctico de su asignatura; o por poner un caso más práctico; un periódico, donde aquellos escritores y/o periodistas que escriban sus artículos, puedan asociar a ellos cierta metainformación relacionada con los cambios que se han hecho en el artículo, quién realizó esos cambios o en qué fecha se realizaron los mismos si así lo desean.
Como vemos, cualquier lugar en el que se manejen cantidades ingentes de información que cambia a través del tiempo el uso de un sistema de control de versiones puede ser beneficioso. A través de estas potentes herramientas, podemos llevar un control total sobre la información que manejamos a diario. Existen multitud de aplicaciones que implementan un sistema de control de versiones sobre un conjunto de ficheros o un sistema de ficheros dado. Muchas de estas aplicaciones, se basan en licencias de software libre, lo que facilita la instalación de las mismas, en numerosas ocasiones, de forma totalmente gratuita. Dos de las más usadas hoy en día son CVS (siglas de Concurrent Version System) y Subversion, un familiar muy de corta edad cercano a CVS que intenta suplir todas sus deficiencias conservando la facilidad de uso que lo ha caracterizado durante años.
Dado que estas aplicaciones han estado durante años pensados para ser usados por personas relacionadas con el mundo de la Informática, nadie pensó en la usabilidad o en la extensiblidad de estos sistemas a usuarios no informáticos. En los tiempos en los que nos encontramos, en los que el ratón gana sobre el teclado y el escritorio es el paradigma de uso por excelencia del usuario medio, cualquier aplicación destinada al usuario final que se base en el viejo terminal de comandos está condenada al fracaso, apartándola de usuarios potenciales que buscan la usabilidad por encima de la usabilidad.
Con este proyecto, se consiguen dos objetivos: * dotar al sistema de control de versiones Subversion una interfaz gráfica amigable, * y al mismo tiempo facilitar a futuros desarrolladores una biblioteca de acceso a repositorios de información basados en este sistema de control de versiones.
Se ha elegido desarrollar este proyecto bajo el sistema operativo GNU/Linux, eligiendo como lenguaje de programación el novedoso C#, diseñado por Microsoft. Además, gracias a las posiblidades de la plataforma .NET, podemos pensar en un futuro en la fácil portabilidad del código desarrollado a otros sistemas operativos que tenga una versión de esta plataforma de desarrollo, como por ejemplo los sistemas operativos Windows en sus versiones 2000 y posteriores.
Todo el desarrollo de este proyecto se ha realizado con el nuevo paradigma de programación introducido por Microsoft, el framework de desarrollo .NET, y su equivalente open source desarrollado principalmente por la empresa Novell y numerosos voluntarios a lo largo de todo el mundo, el proyecto Mono. Esta nueva tecnología de reciente implantación en este sistema operativo supone un cambio en el modelo de desarrollo que se ha seguido durante muchos años en GNU/Linux, caracterizado por la coexistencia de muchos lenguajes de programación diferentes, y muchas plataformas, en donde parece que ninguna está relacionada con otra. El nuevo marco de desarrollo brinda a este sistema operativo de una oportunidad irrepetible; la de la renovación y la integración de todas estas viejas tecnologías en una sola: Mono.
Descarga
Documento completo (PDF, ~1.7 MB)
Versión online (HTML)
Acerca de
Este proyecto fue leido en Febrero de 2005, bajo la supervisión de Gregorio Robles Martínez, obteniendo la calificación de matrícula de honor.
Fotos