Мы все знаем упражнение: у вас есть (маленькая) модель, вам нужно ее сохранить, вам нужен пользовательский интерфейс (веб-сайт, рабочий стол, мобильный, некоторые из первых, все).Какие инструменты RAD есть?
Это такой повторяющийся процесс, что я не могу не задаться вопросом, почему мы все еще зацикливаемся на POJO, OR mappers и кодировании пользовательских интерфейсов (так как большинство дизайнеров UI даже не знают о наследовании, а вы необходимо создать каждый диалог ОК/Отмена с более чем одним полем с нуля). RAD инструменты/платформы обещают исправить это, но я еще ничего не видел. Идея этой вики состоит в том, чтобы собрать все инструменты, которые позволят вам воплотить идею за несколько минут и построить оттуда. Простые вещи (например, создание простого пользовательского интерфейса для вашей модели или сохранение его в базе данных) должны быть простыми. Прикрепление довольно сложного объекта к диалогу для его редактирования должно занимать одну строку кода или меньше;)
Итак, вот вызов: какие инструменты RAD находятся там, которые позволяют построить небольшое приложение внутри, скажем, 8 часов , Чтобы дать вам представление о том, что он должен сделать, вот спецификация:
У вас есть узлы «знания». Каждый такой узел имеет имя и длинное описание, прикрепленное к нему (однострочная и многострочная строка)
Каждый узел знаний может иметь любое количество узлов знаний в виде дочерних элементов (1: *). Дочерние узлы должны поддерживать порядок (то есть использовать список, не набор)
Каждый узел знаний может иметь любое количество тегов, прикрепленных к нему (1: * неупорядоченный соотношение между различными типами)
Любые два узлы знаний могут быть связаны с любым количеством отношений (п: т отношения)
должна быть предусмотрена возможность загрузки/сохранения модели из/в XML и из/в базе данных с минимальными усилиями
Пользователи ожидать отменить/повторить сегодня
Пользовательский интерфейс должен предлагать стандартные операции: создавать, изменять порядок и удалять узлы знаний. Переупорядочение должно использовать drag'n'drop. Он должен позволять добавлять/удалять теги из узлов знаний. Должен быть простой способ соединения двух узлов знаний по отношению (например, перетаскивая один узел на другом в специальном режиме).
Пользовательский интерфейс также должен позволять искать узлы с сертификатами или отношениями. Для бонусных очков он должен предложить простой способ навигации по графику отношений.
Что еще нужно сделать? Как обычно, предпочтение отдавалось OSS.
Фон: Я разрабатываю программное обеспечение уже более 25 лет. Тем не менее, это простое приложение занимает несколько недель, если не месяцев код на любом языке, который я столкнулся до сих пор: Groovy, Java, Python, Tcl/Tk, Grails, OpenOffice, MS Access, TreeLine, [TurboGears] [10], [Enthought Признакам ] [11], .net.
Некоторые отзывы о соперниках. Обратите внимание, что я пытаюсь выделить основной пункт в одном предложении, поэтому возьмите следующий раздел с солью, хорошо?
Groovy Хороший язык, компактный код. Закрыть, но не хватает в отделе пользовательского интерфейса. Они работают над этим, но просто нет. Для настойчивости, только Java-сериализация из коробки.
Java Ява была великолепна, когда она появилась десять лет назад, но она так не развивалась. Это стареющий язык с огромным набором библиотек, но вам просто нужно слишком много кода, чтобы все было сделано, и каждая строка кода требует времени для написания.
Python Получил почти все, что ему нужно, но по какой-то причине он никогда не становился как основной, как, скажем, Java. Получил хороший набор пользовательских интерфейсов с PyQt4, классный конвертер OR с SQLAlchemy, но все-таки мы не видим, чтобы он дроссельной заслонки на полной скорости тянул вперед. Только с появлением модульных испытаний стало возможным писать большие проекты. Слишком низкий уровень для задачи.
Tcl/Tk Привлекательный набор виджета, но язык отстой, когда размер кода превышает определенную точку. Показывает его возраст.
OpenOffice Начиная с версии 2.0, OO имеет встроенную базу данных и инструмент «Access-like». Это в зачаточном состоянии, но они доберутся ... в конце концов. Не удалось обработать отношения parent/child, поскольку пользовательский интерфейс не позволяет их указывать (see bug). Исправлено в 3.1. С помощью 3.1 вы можете создать модель, но пользовательский интерфейс все равно займет много времени.
MS Access Практически все, что нам нужно, но параметры пользовательского интерфейса довольно ограничены. Разочарование.
преобладающими Нет способ реализации отношений и слишком ограничены в большинстве других случаев использования (вы просто не можете сделать многое другое с ним)
.net У меня нет никакого опыта с этим, в основном потому, что это только Windows. Я думаю, что это может быть довольно близко, но давайте посмотрим правде в глаза: в чем смысл блокировать четверть человечества?
Wow. Почему вы ответили «в вопросе»? Это как бы позволяет задавать этот вопрос. Голосование закрывается как «не настоящий вопрос». –
Что касается вашего комментария «.NET»: вы должны оставить его «без опыта». Вы можете блокировать четверть известного мира, но более 91% предприятий используют Windows на своих рабочих столах. –
Это действительно работает только в Интернете, но вы также можете посмотреть ColdFusion. Кроме того, Flex/AIR может быть хорошим слоем RAD UI. –