tecnologias metodologia ejemplo rad

tecnologias - metodologia rad ejemplo



¿Qué herramientas RAD están disponibles? (23)

Todos conocemos el ejercicio: usted tiene un modelo (pequeño), necesita persistir, necesita una IU (web, escritorio, móvil, algunos de los primeros, todos).

Este es un proceso tan repetitivo que no puedo evitar preguntarme por qué todavía estamos atrapados con los POJO, los mapeadores y las IU de codificación de la mano (ya que la mayoría de los "diseñadores" de UI ni siquiera conocen la herencia y necesitas construir cada Aceptar / cancelar el diálogo con más de un campo desde cero). Las herramientas / plataformas de RAD prometen arreglar eso, pero aún no he visto nada real. La idea de este wiki es recopilar todas las herramientas que le permiten desarrollar una idea en pocos minutos y construir desde allí. Cosas simples (como crear una IU simple para tu modelo o guardarla en una base de datos) deberían ser simples. Adjuntar un objeto bastante complejo a un diálogo para editarlo debe tomar una línea de código o menos;)

Así que aquí viene el desafío: qué herramientas de RAD existen, que permiten construir una pequeña aplicación dentro de, digamos, 8 horas. Para darle una idea de lo que debería poder hacer, aquí está la especificación:

  • Tienes nodos de "conocimiento". Cada uno de esos nodos tiene un nombre y una descripción larga adjunta (cadena única y cadena de varias líneas)

  • Cada nodo de conocimiento puede tener cualquier cantidad de nodos de conocimiento como secundarios (1: * relación padre / hijo ordenada). Los nodos secundarios necesitan mantener el orden (es decir, usan una lista, no un conjunto)

  • Cada nodo de conocimiento puede tener cualquier cantidad de etiquetas asociadas (1: * relación desordenada entre diferentes tipos)

  • Dos nodos de conocimiento pueden conectarse con cualquier número de relaciones (relación n: m)

  • Debería ser posible cargar / guardar el modelo desde / como XML y desde / en una base de datos con poco esfuerzo

  • Los usuarios esperan deshacer / rehacer hoy

La interfaz de usuario debería ofrecer las operaciones estándar: Crear, reordenar y eliminar nodos de conocimiento. Reordenar debería usar arrastrar y soltar. Debería permitir agregar / eliminar etiquetas de los nodos de conocimiento. Debería haber una forma simple de conectar dos nodos de conocimiento por una relación (por ejemplo, arrastrando un nodo sobre el otro en un modo especial).

La IU también debería permitir buscar nodos con ciertas etiquetas o relaciones. Para obtener puntos de bonificación, debería ofrecer una forma simple de navegar el gráfico de relaciones.

¿Algo por el desafío? Como de costumbre, OSS preferido.

Antecedentes: estoy desarrollando software por más de 25 años, ahora. Aún así, esta simple aplicación tarda varias semanas o meses en codificar en cualquier idioma que haya encontrado hasta ahora: Groovy , Java , Python , Tcl / Tk , Grails , OpenOffice , MS Access , TreeLine , [TurboGears] [10], [Rasgos de Enthought] [11], .net.

Algunos comentarios sobre los contendientes. Tenga en cuenta que trato de resaltar el punto principal en una sola oración, así que tome la siguiente sección con un grano de sal, ¿de acuerdo?

Groovy Nice language, código compacto. Cerca pero falta en el departamento de UI. Están trabajando en eso, pero simplemente no están allí. Para la persistencia, solo serialización de Java fuera de la caja.

Java Java fue genial cuando salió hace diez años, pero no ha evolucionado tanto. Es un lenguaje envejecido con un vasto conjunto de bibliotecas, pero solo necesitas demasiado código para hacer las cosas y cada línea de código lleva tiempo para escribir.

Python Consiguió casi todo lo que necesita pero, por alguna razón, nunca llegó a ser tan popular como, por ejemplo, Java. Obtuve un agradable conjunto de interfaz de usuario con PyQt4 , un genial OR mapper con SQLAlchemy, pero aún así, no lo vemos pateando el acelerador a toda velocidad y avanzando. Solo con la llegada de las pruebas unitarias, se hizo factible escribir proyectos más grandes. Demasiado bajo nivel para la tarea.

Tcl / Tk Nice widget set pero el lenguaje apesta cuando el tamaño del código crece más allá de cierto punto. Muestra su edad por ahora.

OpenOffice Desde 2.0, OO viene con una base de datos integrada y una herramienta de "acceso similar". Está en su infancia, pero llegarán allí ... con el tiempo. No se pudieron manejar las relaciones padre / hijo porque la interfaz de usuario no permite especificarlas ( ver error ). Reparado en 3.1. Con 3.1, puede crear el modelo, pero la IU aún tomaría mucho tiempo escribiendo.

MS Access Casi todo lo que necesitamos, pero las opciones de UI son bastante limitadas. Frustrante.

TreeLine No hay forma de implementar relaciones y está demasiado restringido para la mayoría de los casos de uso (simplemente no se puede hacer mucho más con él)

.net No tengo experiencia con esto, principalmente porque solo es Windows. Creo que este podría ser bastante cercano, pero seamos sinceros: ¿qué sentido tiene cerrar un cuarto de la humanidad?


Creo que nbandroid vale la pena ser mencionado. Es una herramienta RAD para desarrollar el software Android de Google usando NetBeans IDE.


Depende de quién sea tu mercado. Puedo decirte una cosa, tu mercado nunca consistirá en la humanidad entera. De modo que el hecho de que tal vez el 25% de las personas en el planeta no use Windows realmente no debería importarle.

Lo que es importante para usted es ¿cuántas personas en su mercado usan el sistema operativo? Si está escribiendo una aplicación comercial / financiera y solo se desarrolla para Windows, entonces probablemente solo esté dejando de lado el .05% de su mercado (porque ¿cuándo fue la última vez que oyó hablar de un Contador que usa Macs o Linux? )

Sin embargo, si estás escribiendo un programa para producir música (como FruityLoops) y escribes Windows solo entonces probablemente estarás dejando de lado más del 50% de tu mercado.


El editor visual Matisse de Netbeans es excelente para el desarrollo de Swing.


Esta respuesta no está directamente relacionada con su pregunta, pero es similar. Para mis proyectos, lo más parecido que he usado es NEsper , que es un marco de procesamiento de eventos complejos (CEP) de fuente abierta. Durante las últimas dos noches he construido una prueba para un sistema de trading que estoy armando, y ha sido NEsper lo que lo ha hecho tan rápido, imagino que lo hice dentro de tu objetivo de 8 horas.


Herramienta de herramienta RAD de REALbasic : su compilador produce ejecutables nativos. Y también es un compilador cruzado, lo que significa que puede compilar desde cualquier plataforma para cualquier plataforma.

El acceso completo a la base de datos solo se admite en Professional Edition (en EUR 400). La versión personal viene en EUR 75 y se puede conectar a REALSQLDatabase (que también pertenece a los chicos de RealSoft).

A diferencia de Hibernate o SQLAlchemy , debe escribir la capa de DB usted mismo.


Supongo que WinDev también sigue la idea de RAD.

Nota: solo se ejecuta en Windows, los precios comienzan en EUR 990. Viene con una amplia gama de herramientas.


Visual Studio: sin dudas el mejor estudio de RAD que hay. Si crees que no solo se usa para las herramientas de desarrollo de Microsoft, Delphi Prism lo usa, y todas las herramientas de SQL Management para SQL Server lo usan, tienes una idea de la flexibilidad de la misma. También es gratis (la herramienta RAD / IDE, no la herramienta de desarrollo).


Boa Constructor es un desarrollador multiplataforma de Python IDE y wxPython GUI Builder.

Está catalogado como RAD de plataforma cruzada en Wikipedia, pero creo que es más un IDE (en lugar de algo en lo que puedes construir la aplicación descrita anteriormente en unas pocas horas).


Enthought Traits es un gran marco para construir una UI predeterminada a partir de un modelo. Fácil de usar, potente, el estuche predeterminado es el que desea la mayoría de las veces y hace lo que espera

Pero no hay persistencia en la base de datos. De hecho, no hay persistencia en absoluto. Debe escribir el código para guardar / cargar su modelo usted mismo. Hacer eso para XML es bastante simple (hay una API abstracta que funciona para cualquier objeto en su modelo), por lo que solo necesita escribir una clase con, digamos, 50 líneas de código, sin importar qué tan complejo sea su modelo.

Los controles de la interfaz de usuario no son fáciles de ampliar, por lo que si necesita algo que no viene con él, buena suerte.

El modelo mencionado anteriormente se puede implementar en menos de una hora, otra hora para leerlo / escribirlo desde / a XML. La navegación gráfica para la relación tomará un par de días usando el widget canvas de Qt.


Grails es un marco para crear rápidamente aplicaciones web. Está basado en Groovy . Usted define el modelo, ejecuta dos comandos desde la línea de comando y está configurado con una simple interfaz de usuario CRUD donde puede editar su modelo en un navegador web.

Solo web, muchas ideas agradables, pero no se pueden tener relaciones padre / hijo debido a este error que, con suerte, se solucionará en la versión 1.0.5. Para un desarrollo serio, necesitará uno de los complementos AJAX / Rich Client porque Grails no viene con widgets muy potentes.


TurboGears es un framework para construir rápidamente una aplicación web usando Python. Características principales: usted define el modelo, TG crea todo lo demás que luego puede ajustarse a sus necesidades. Los cambios en el modelo necesitan un reinicio del servidor de desarrollo, todo lo demás sucede en la próxima recarga en el navegador web (TG le informará cuándo debe reiniciar).

Un gran paso adelante, especialmente el lanzamiento 2.0 (que debería salir "muy pronto, ahora" - sin ofender, muchachos, sé que están trabajando duro en esto durante varios años ... pero no tengo TG 2.0 para mí durante varios años , ya sea :() Sólo web, así que tendríamos que implementar todos los drag''n''drop nosotros mismos, encontrar una manera de pintar un gráfico navegable. Frustrantemente cerca.



Magic uniPaas : lo usé en mi primer trabajo para desarrollar GUI. Es una herramienta RAD sin sentido, donde todo está basado en tablas. También proporciona un entorno de tiempo de ejecución. En aquel entonces se llamaba Magic eDeveloper.


Visual DataFlex es una gran herramienta RAD que utilizamos. Es un objetivo específico para crear aplicaciones comerciales basadas en bases de datos. Desafortunadamente no es gratis, pero es un excelente entorno / idioma y el acceso a datos brinda un buen soporte.


Lazarus LCL es un Delphi como VCL sobre conjuntos de widgets existentes.

Puede ser GTK1, GTK2, QT, Win32 / 64, WinCE y Carbon. Hay otros (como un puente de CACAO) pero en su mayoría solo están en sus etapas iniciales.


Qt Toolkit, que se encuentra en: http://qt.nokia.com/products , para C ++, el desarrollo de GUI multiplataforma también es excelente para la creación de aplicaciones de escritorio y móviles.



DragonRAD se acaba de anunciar para el desarrollo de la aplicación Blackberry. En beta cerrada ahora mismo.


Oracle Application Express ( http: //htmldb.oracle.com/pls/otn/f? P = 4600: 6: 171781307324519 :: NO ::::)

Al usar solo un navegador web y una experiencia de programación limitada , puede desarrollar aplicaciones centradas en datos en minutos. El desarrollo basado en navegador le permite desarrollar aplicaciones en la mayoría de las computadoras usando solo un navegador web moderno.

Use asistentes simples y programación declarativa para crear potentes aplicaciones de informes y entrada de datos. Puede crear aplicaciones a partir de cargas de hoja de cálculo o en tablas y vistas de bases de datos existentes. Oracle Application Express incluye SQL Workshop para crear y administrar los objetos de la base de datos que soportan su aplicación.

Con Application Express, la codificación es declarativa . Eso significa que no se genera ni compila ningún código. Interactúa con asistentes y hojas de propiedades. Como el lenguaje SQL se usa para definir informes y gráficos, algunos conocimientos de SQL son útiles. Si se necesita lógica de procedimiento, puede escribir fragmentos de código usando PL / SQL. El código declarativo produce menos diferencias entre los desarrolladores y esta coherencia hace que las aplicaciones de Application Express sean fáciles de mantener y administrar.


WAVEMAKER es la mejor herramienta de radio jamás construida. Lo que dices puede hacerse en un par de horas.


XPower ++ de ++ Technologies - Cross Platform IDE para Windows, Linux, Mac, Android, iOS, etc.


Panther (y su versión OSS POSSL ) parece ser un marco para construir aplicaciones web. No pude instalarlo, ya que solo viene con un script de shell de Unix como instalador. ¿Alguien más ha experimentado esto? Por favor edite esta entrada entonces.


Clarion ( http://softvelocity.com ).

Podría / puedo obtener una demostración golpeada por un proyecto como este en cuestión de horas.

Una deficiencia de perspectiva es que crea ejecutables de Win32. Por supuesto, esto se puede resolver creando un sistema web con él.

Otra es que Clarion definitivamente no es de código abierto. Lo cual alejaría a mucha gente.

Bueno. Mi último comentario fue hace aproximadamente 2 horas. Entonces, en ese momento, esto es lo que logré hacer en Clarion.

http://125.214.67.190:5824/

No estoy escribiendo esto para alardear. Sinceramente, creo que Clarion puede hacer cosas increíbles en un período de tiempo muy corto.

El sistema de "Conocimiento" es en gran medida una demostración. Solo puede agregar Etiquetas y Relaciones a los Nodos principales. No hay una búsqueda adecuada de etiqueta / relación (solo singular). No hay imágenes o diseño gráfico decente o UI.

Pero el marco, la base está ahí.