web-dev-qa-db-fra.com

Quels sont les outils RAD disponibles?

Nous connaissons tous l'exercice: vous avez un (petit) modèle, vous devez le persister, vous avez besoin d'une interface utilisateur pour lui (web, ordinateur de bureau, mobile, certains des premiers, tous).

C'est un processus tellement répétitif que je ne peux m'empêcher de me demander pourquoi nous sommes toujours coincés avec des POJO, OR mappeurs et coder les interfaces utilisateur de la main (car la plupart des "concepteurs" d'interface utilisateur ne sont même pas connaître l'héritage et vous devez créer chaque boîte de dialogue OK/annuler avec plus d'un champ à partir de zéro). RAD outils/plateformes promettent de résoudre ce problème, mais je n'ai pas Je n'ai encore rien vu de réel. L'idée de ce wiki est de rassembler tous les outils qui vous permettent d'étoffer une idée en quelques minutes et de construire à partir de là. Des choses simples (comme créer une interface utilisateur simple pour votre modèle ou l'enregistrer dans une base de données) doit être simple. Attacher un objet assez complexe à une boîte de dialogue pour le modifier doit prendre une ligne de code ou moins;)

Voici donc le défi: quels sont les outils RAD qui permettent de créer une petite application en 8 heures, par exemple). Pour vous donner une idée de ce qu'elle devrait être en mesure de faire, voici la spécification:

  • Vous avez des nœuds de "connaissances". Chacun de ces nœuds a un nom et une longue description qui lui sont attachés (chaîne à ligne unique et à lignes multiples)

  • Chaque nœud de connaissances peut avoir un nombre quelconque de nœuds de connaissances en tant qu'enfants (1: * relation parent/enfant triée). Les nœuds enfants doivent maintenir l'ordre (c'est-à-dire utiliser une liste, pas un ensemble)

  • Chaque nœud de connaissances peut être associé à un nombre quelconque de balises (1: * relation non ordonnée entre différents types)

  • Deux nœuds de connaissances peuvent être connectés à n'importe quel nombre de relations (relation n: m)

  • Il devrait être possible de charger/enregistrer le modèle depuis/au format XML et depuis/dans une base de données sans effort

  • Les utilisateurs s'attendent à annuler/rétablir aujourd'hui

L'interface utilisateur devrait offrir les opérations standard: créer, réorganiser et supprimer des nœuds de connaissances. La réorganisation doit utiliser drag'n'drop. Il devrait permettre d'ajouter/supprimer des balises des nœuds de connaissances. Il devrait y avoir un moyen simple de connecter deux nœuds de connaissances par une relation (par exemple en faisant glisser un nœud sur l'autre dans un mode spécial).

L'interface utilisateur devrait également permettre de rechercher des nœuds avec certaines balises ou relations. Pour les points bonus, il devrait offrir un moyen simple de naviguer dans le graphique des relations.

Quelque chose à relever? Comme d'habitude, OSS préféré.

Contexte: Je développe des logiciels depuis plus de 25 ans maintenant. Pourtant, cette application simple prend plusieurs semaines sinon des mois pour coder dans n'importe quelle langue que j'ai rencontrée jusqu'à présent: Groovy , Java , Python , Tcl/Tk , Grails , OpenOffice , MS Access , TreeLine , [ TurboGears] [10], [Traits approfondis] [11], .net.

Quelques commentaires sur les candidats. Notez que j'essaie de mettre en évidence le point principal dans une seule phrase, alors prenez la section suivante avec un grain de sel, OK?

Groovy Langage agréable, code compact. Proche mais manquant dans le département UI. Ils y travaillent mais tout simplement pas là. Pour la persistance, seulement Java sérialisation hors de la boîte.

Java Java était génial quand il est sorti il ​​y a dix ans mais il n'a pas beaucoup évolué. C'est un vieillissement avec un vaste ensemble de bibliothèques, mais vous avez juste besoin de trop de code pour faire avancer les choses et chaque ligne de code prend du temps à écrire.

Python J'ai presque tout ce dont il a besoin mais pour une raison quelconque, il n'est jamais devenu aussi courant que, disons, Java. J'ai une belle interface utilisateur définie avec PyQt4 , un mappeur cool OR avec SQLAlchemy mais encore, nous ne le voyons pas donner un coup de pied à l'accélérateur pour à pleine vitesse et à tirer vers l'avant. Ce n'est qu'avec l'avènement des tests unitaires qu'il est devenu possible d'écrire de plus gros projets.

Tcl/Tk Ensemble de widgets sympa mais la langue craint quand la taille du code dépasse un certain point. Montre son âge maintenant.

OpenOffice Depuis 2.0, OO est livré avec une base de données intégrée et un outil "Access-like". Il est dans son mais ils y arriveront ... finalement. Impossible de gérer les relations parents/enfants car l'interface utilisateur ne permet pas de les spécifier ( voir bug ). Corrigé en 3.1. Avec 3.1, vous peut créer le modèle, mais l'interface utilisateur prendrait encore beaucoup de temps à écrire.

MS Access Presque tout ce dont nous aurions besoin, mais les options de l'interface utilisateur sont assez limitées. Frustrant.

TreeLine Pas moyen d'implémenter des relations et trop restreint pour la plupart des autres cas d'utilisation (vous ne pouvez tout simplement pas faire grand chose d'autre avec)

. net Je n'ai aucune expérience avec celui-ci, principalement parce que c'est Windows uniquement. Je pense que celui-ci pourrait être assez proche, mais avouons-le: quel est l'intérêt de bloquer un quart de l'humanité?

42
Aaron Digulla

Delphi RAD Studio et Lazarus IDE pour le langage Pascal/delphi.

20
dmajkic

WAVEMAKER est le meilleur outil de rad jamais construit. Ce que vous avez dit peut être fait en quelques heures.

16
wavemaker_fan

Microsoft Lightswitch . Il est difficile d'imaginer quelque chose de "plus rapide".

7
Marek

Cela dépend de qui est votre marché. Je peux vous dire une chose, votre marché ne sera jamais composé de l'humanité tout entière. Donc, le fait que peut-être 25% des habitants de la planète n'utilisent pas Windows ne devrait pas vraiment vous intéresser.

Ce qui compte pour vous, c'est combien de personnes sur votre marché utilisent n'importe quel OS? Si vous écrivez une application commerciale/financière et que vous ne développez que pour Windows, vous ne supprimez probablement qu'environ 0,05% de votre marché (car à quand remonte la dernière fois que vous avez entendu parler d'un comptable utilisant Mac ou Linux? ).

Cependant, si vous écrivez un programme pour produire de la musique (comme FruityLoops) et que vous écrivez Windows uniquement, vous oubliez probablement plus 50% de votre marché.

7
Wayne Bloss

Visual Studio - De loin le meilleur RAD studio existe. Si vous pensez qu'il n'est pas uniquement utilisé pour les outils de développement de Microsoft, Delphi Prism l'utilise et les outils de gestion SQL pour SQL Server utilisent tous il vous donne une idée de la flexibilité de celui-ci. Il est également gratuit (L'outil RAD IDE - pas l'outil de développement).

3
Robert MacLean

Je suppose que WinDev suit aussi l'idée RAD.

Remarque: Fonctionne uniquement sur Windows, les prix commencent à 990 EUR. Livré avec une large gamme d'outils.

3
dajood

Clarion ( http://softvelocity.com ).

Je pourrais/peux obtenir une démo pour un projet comme celui-ci en quelques heures.

Une lacune de perspective est qu'il crée des exécutables Win32. Bien sûr, cela peut être résolu en créant un système Web avec lui.

Un autre est que Clarion n'est certainement pas open source. Ce qui rebuterait beaucoup de gens.


D'accord. Mon dernier commentaire était il y a environ 2 heures. Donc, à ce moment-là, voici ce que j'ai réussi à faire dans Clarion.

http://125.214.67.190:5824/

Je n'écris pas ça pour me vanter. Je crois sincèrement que Clarion peut faire des choses incroyables en très peu de temps.

Le système "Knowledge" est une démonstration. Vous pouvez uniquement ajouter des balises et des relations aux nœuds parents. Il n'y a pas de recherche de Tag/Relation appropriée (uniquement au singulier). Aucune image ou conception graphique décente ou interface utilisateur.

Mais le cadre, la fondation est là.

3
Stu Andrews

Magic uniPaas : l'ai utilisé lors de mon tout premier travail pour développer des interfaces graphiques. C'est un non-sens RAD Tool, où tout est basé sur une table. Il fournit également un environnement d'exécution. À l'époque, il s'appelait Magic eDeveloper.

3
Gerrie Schenck

Oracle Application Express ( http://htmldb.Oracle.com/pls/otn/f?p=4600:6:171781307324519: : NON :::: )

Utiliser uniquement un navigateur Web et expérience de programmation limitée vous pouvez développer des applications centrées sur les données en quelques minutes. Le développement par navigateur vous permet de développer des applications sur la plupart des ordinateurs en utilisant uniquement un navigateur Web moderne.

Utilisez des assistants simples et une programmation déclarative pour créer de puissantes applications de création de rapports et de saisie de données. Vous pouvez créer des applications à partir de téléchargements de feuille de calcul ou sur des tables et des vues de base de données existantes. Oracle Application Express inclut SQL Workshop pour créer et gérer les objets de base de données qui prennent en charge votre application.

Avec Application Express, le codage est déclaratif. Cela signifie qu'aucun code n'est généré ou compilé. Vous interagissez avec les assistants et les feuilles de propriétés. Étant donné que le langage SQL est utilisé pour définir des rapports et des graphiques, une certaine connaissance de SQL est utile. Si une logique procédurale est nécessaire, vous pouvez écrire des extraits de code à l'aide de PL/SQL. Le code déclaratif génère moins de différences entre les développeurs et cette cohérence rend les applications Application Express faciles à maintenir et à gérer.

2
itobinh

L'éditeur visuel Matisse de Netbeans est idéal pour le développement Swing.

1
Geo

Qt Toolkit, disponible sur: http://qt.nokia.com/products , pour le développement d'interfaces graphiques C++ multiplateforme est également excellent pour la création d'applications de bureau et mobiles.

1
Israel ANY

Grails est un framework pour construire rapidement des applications web. Il est basé sur Groovy . Vous définissez le modèle, exécutez deux commandes à partir de la ligne de commande et vous êtes défini avec une simple interface utilisateur CRUD où vous pouvez modifier votre modèle dans un navigateur Web.

Web uniquement, beaucoup d'idées sympas, mais vous ne pouvez pas avoir de relations parents/enfants à cause de ce bogue qui, espérons-le, sera corrigé dans la version 1.0.5. Pour un développement sérieux, vous aurez besoin de l'un des plugins AJAX/Rich Client parce que Grails n'est pas livré avec des widgets très puissants.

1
Aaron Digulla

Lazarus LCL est un Delphi comme VCL sur les ensembles de widgets existants.

Il peut s'agir de GTK1, GTK2, QT, Win32/64, WinCE et Carbon. Il y en a d'autres (comme un pont COCOA) mais ceux-ci n'en sont pour la plupart qu'à leurs débuts.

1

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

1
Miriam Schroeder

REALbasic est un RAD - son compilateur produit des exécutables natifs. Et c'est également un compilateur croisé, ce qui signifie que vous pouvez construire à partir de n'importe quelle plateforme pour n'importe quelle plateforme.

L'accès complet à la base de données n'est pris en charge que dans l'édition professionnelle (à 400 EUR). La version personnelle coûte 75 EUR et peut se connecter à REALSQLDatabase (qui provient également des gars de RealSoft).

Contrairement à Hibernate ou SQLAlchemy , vous devez écrire la couche DB vous-même.

1
Galwegian

Panther (et c'est sa version OSS POSSL ) semble être un framework pour construire des applications web. Je n'ai pas pu l'installer car il n'est livré qu'avec un script Unix Shell en tant qu'installateur. Quelqu'un d'autre a-t-il fait l'expérience de cela? Veuillez alors modifier cette entrée.

0
Aaron Digulla

Je pense que nbandroid mérite d'être mentionné. C'est un RAD outil pour développer Google Android Logiciel utilisant NetBeans IDE.

0
dajood

TurboGears est un framework pour construire rapidement une application web en utilisant Python. Caractéristiques principales: Vous définissez le modèle, TG crée tout le reste qui peut ensuite s'adapter à vos besoins. Les changements dans le modèle nécessitent un redémarrage du serveur de développement, tout le reste se produit lors du prochain rechargement dans le navigateur Web (TG vous indiquera quand vous devez redémarrer).

Un grand pas en avant, en particulier la version 2.0 (qui devrait sortir "très bientôt, maintenant" - pas d'offense, les gars, je sais que vous travaillez dur dessus pendant plusieurs années ... mais pas de TG 2.0 pour moi pendant plusieurs années , soit :() Web uniquement, cependant. Il nous faudrait donc implémenter tous les drag'n'drop nous-mêmes, trouver un moyen de peindre un graphique navigable.

0
Aaron Digulla

Visual DataFlex est un excellent outil RAD que nous utilisons. Il vise spécifiquement à créer des applications commerciales basées sur des bases de données. Ce n'est malheureusement pas gratuit, mais c'est un environnement/langage formidable et Data Access donne un bon support.

0
Anders Öhrt

Enthought Traits est un excellent framework pour construire une interface utilisateur par défaut à partir d'un modèle. Facile à utiliser, puissant, l'étui par défaut est celui que vous voulez la plupart du temps et il fait ce que vous attendez

Mais il n'y a pas de persistance de base de données. En fait, aucune persistance du tout. Vous devez écrire le code pour enregistrer/charger votre modèle vous-même. Faire cela pour XML est assez simple (il existe une API abstraite qui fonctionne pour n'importe quel objet de votre modèle), il vous suffit donc d'écrire une classe avec, disons, 50 lignes de code, quelle que soit la complexité de votre modèle.

Les contrôles de l'interface utilisateur ne sont pas faciles à étendre, donc si vous avez besoin de quelque chose qui ne vient pas, bonne chance.

Le modèle mentionné ci-dessus peut être implémenté en moins d'une heure, une autre heure pour le lire/écrire depuis/vers XML. La navigation dans le graphique de la relation prendra quelques jours en utilisant le widget de toile de Qt.

0
Aaron Digulla

Cette réponse n'est pas directement liée à votre question, mais est similaire. Pour mes projets, la chose la plus proche que j'ai utilisée est NEsper , qui est un framework de traitement d'événements complexe (CEP) open source. Au cours des deux dernières soirées, j'ai construit un backtester pour un système commercial que je mets en place, et c'est NEsper qui l'a rendu si rapide - j'imagine que je l'ai fait dans votre objectif de 8 heures.

0
endian

DragonRAD vient d'être annoncé pour le développement de l'application Blackberry. En version bêta fermée pour le moment.

0
sp0rus