TV Online Gratis + de 1000 canales

jueves, 30 de julio de 2009

Herramienta IDE para desarrollo de Software en entorno WEB

Doglas Antonio Dembogurski Feix

Encarnación - Paraguay 2009

Gurski Es un proyecto Open Source, se pretende
Desarrollar un IDE con entorno totalmente WEB que permita al usuario desarrollar de forma remota sin necesidad de ninguna otra aplicación que no sea web abordando el concepto de Cloud Computing o computacion en las nubes.

Logo





Nuevas opciones

Autocompletar






Panel de Templates


Extractor de funciones por cada archivo


Bajar proyecto completo compreso en tar.gz


Agregado soporte para skins dhx_black (Default) y dhx_blue




2do video




¿Pero qué es Cloud Computing?

Este video explica bastant bien el concepto de Cloud Computing y por que hacia alli nos dirigimos.



Objetivos Específicos:

1. Proveer una interfaz en donde los usuarios puedan darse de alta en el servidor y crear proyectos
2. Proveer al IDE de un panel de control o de configuración donde el usuario pueda configurar el comportamiento del entorno apariencia etc.
3. Desarrollar un reconocedor de sintaxis para los lenguajes de programación mas utilizados para desarrollo de sistemas con orientación Web.
4. Agregar panel de árbol de proyectos donde se pueda seleccionar con cual proyecto se trabajará y con que archivos de ese proyecto.
5. Agregar opciones de ayuda al desarrollar, esta ayuda interactuara con el servidor mientras se desarrolla.
6. Cuando se guarda un archivo debe dar una opción de marcar versión y una pequeña descripción de que es lo que se modifico guardando una copia de la versión anterior en el servidor la cual el Administrador podrá monitorear en tiempo real los cambios realizados y por que usuario.
7. Desarrollar una interfaz donde se pueda previsualisar el producto final.
8. Agregar una opción para sincronizar el proyecto existente en el servidor de desarrollo con el servidor de producción esto se haría de forma transparente al usuario.


Justificación:

1. No hay necesidad de bajar ningún programa o entorno de desarrollo para programar
2. No hay necesidad de utilizar herramientas extras como clientes ftp para sincronizar con el servidor de producción.
3. No existe en la actualidad Herramienta alguna con estas caracteristicas.
4. Independiente de Plataforma (Mac OSx, Linux, Windows etc.) en la mayoría de los casos cuando se baja un IDE se tiene que bajar para una plataforma u otra si se desea trabajar en mas de una plataforma se debe bajar para ambas.



5. Es necesario cambiar el paradigma de trabajo actual por uno que apunta hacia el futuro, una nueva forma de trabajo basado en Internet y Web 2.0.
6. La implementación de una plataforma de este tipo disminuiría los recursos que se necesita para desarrollar resumiendo los requerimientos en 3. Ordenador, Navegador Web e Internet.
7. El mantenimiento de un sistema consumiría menos tiempo de lo que consume en la actualidad.
8. El control de versiones está integrado a la plataforma por lo que no hay necesidad de instalar herramientas externas como subversion que podrían consumir mas recursos en el servidor y requerir de otros softwares para su funcionamiento.
9. Facilidad para desarrollo en equipo, no hay necesidad de configuración alguna solamente agregar nuevos usuarios por parte del PL al grupo de trabajo.
10. Un Project Leader o Administrador puede controlar muy fácilmente el avance de uno o mas proyectos
11. El desarrollador puede involucrase mas tiempo en un proyecto ya que puede desplazarse de un lado a otro sin necesidad de sincronizar proyectos Oficina à Hogar, Hogar à Laboratorio, Hogar à Oficina.
12. Desarrollo colaborativo, todos los usuarios pueden colaborar con pequeñas porciones de código aún con otros grupos de desarrollo enriqueciendo una base de conocimiento, común a todos.
13. Menos propenso a perdida de datos de que los sistemas convencionales.

Avances


Alcance del Proyecto:

* Diseño de Interfaces para Logín, registro de usuarios, creación de proyectos.
* Diseño de Interfaz para agregar usuarios ya registrados a un grupo de trabajo
* Diseño de la Ventana Principal de IDE, Menús, preferencias etc.
* Creación de modulo para interacción con el servidor Abrir estructura de proyecto, archivos, editar guardar etc.
* Creación de Analizadores de sintaxis, semánticos para los lenguajes html javascript, php, preparar carga para cualquier otro analizador de otro lenguaje.
* Creación de modulo para actualización del Servidor de Producción. Definición de requerimientos en los servidores de producción para que el sistema funcione en caso de que hubiese. Como por ej.: Puerto 5000 Abierto u otros requerimientos.
* Codificación para manejo de versiones, opciones configurables en preferencias, al guardar remplazar existente, comentario y versionado automático etc. Visualizar versión anterior, remplazar actual.
* Preparación para registrar macros, funciones fragmentos de código en una base de conocimiento para agilizar trabajos futuros o compartir macros con otros usuarios.

Limitaciones:

* No contempla diseño de Interfaz para visualización de logs para el Administrador de proyecto (Similar a tail –f archivo.log de SO Linux, MacOSx)
* No contempla desarrollo de tareas programadas para envío de alertas por mail etc. Al Administrador de Proyecto.
* No pretende soportar lenguajes compilados solamente interpretados
* Codificación de paneles para inserción de macros o generadores de código.
* Codificación para ayuda al desarrollar, auto completar, etc.
* No contempla registro de macros o funciones, acceso a las mismas, que el usuario podría guardar en la base de conocimiento para reutilización de funciones u compartir funciones/macros con otros usuarios.

PD: Estas limitaciones son por el tiempo de TFG por ende se pretende seguir con el proyecto hasta perfeccionarlo a lo mas parecido y mejor que los IDEs de escritorio que tenemos hoy dia.
Tambien se pretende rapidamente implementar el soporte a HTML 5 que será muy utilizado por su novedocidad en un futuro proximo.

dembogurski@gmail.com