Светоотражающее веб-приложение (WebIDE) - PullRequest
3 голосов
/ 06 февраля 2009

Преамбула

Итак, на этот вопрос уже дан ответ, но так как это был мой первый вопрос для этого проекта, я собираюсь продолжить ссылаться на него в других вопросах, которые я задаю для этого проекта.

Для тех, кто пришел с другим вопросом, вот основная идея: создать веб-приложение, которое может упростить создание других веб-приложений или веб-сайтов. Для этого вы должны создать модульный сайт с «виджетами», а затем объединить их в конечные страницы отображения. Каждый виджет, вероятно, будет иметь свой собственный набор функций, объединенных в класс, если вы в противном случае используете Prototype или .prototype.fn.

В настоящее время

Я работаю над освоением основ: редактированием CSS, созданием пользовательских функций JavaScript и динамическим поиском их имен / входов, а также другими важными техническими аспектами проекта. Вскоре я создам приблизительный график функций, которые я хочу создать. Вскоре после этого я намереваюсь создать своего рода блог, чтобы держать всех в курсе статуса проекта.


Оригинальный вопрос

Привет всем, в настоящее время я пытаюсь формализовать свою идею для личного проекта (который впоследствии может превратиться в профессиональный). Концепция представляет собой отражающее веб-приложение. Другими словами, веб-приложение, которое может создавать другие веб-приложения и активно используется для создания и улучшения себя. Думайте об этом как об IDE веб-приложения для создания веб-приложений.

Итак, прежде чем я начну объяснять это дальше, мой вопрос ко всем вам таков: Как вы думаете, какие будут самые сложные задачи на этом пути и с чего лучше всего начинать?

Теперь позвольте мне кратко объяснить некоторые аспекты этой концепции. Я хочу, чтобы это приложение было как можно ближе к WYSIWYG, так как у вас есть область отображения, которая отображает весь или часть веб-сайта так, как он выглядит. Вы можете свободно просматривать его, чтобы добраться до областей, над которыми вы хотите работать, и использовать отладчик / консоль JavaScript, чтобы спросить "что произойдет, если ...?" вопросы.

Я намерен создать веб-приложения с помощью компонентов. Другими словами, результатом будет очень модульное веб-приложение, так что вы можете настраивать вещи в небольшом или большом масштабе с достаточной легкостью (обычно это лучше, чем ручное кодирование всего в <insert editor of choice>).

Когда веб-приложение / веб-приложение будет готово, это веб-приложение сможет создавать весь код, необходимый для установки и запуска созданного веб-сайта / веб-приложения (таким образом, установщик CSS, JavaScript, PHP и PHP для базы данных).

Вот несколько основных проблем, с которыми я столкнулся:

  • Изменение CSS на лету
  • Реализация отражения в JavaScript
  • Точный и краткий просмотрщик дерева DOM
  • Разрешение пользователям выбирать библиотеки JavaScript (например, Прототип , jQuery , Dojo , extJS и т. Д.)

Любые другие комментарии и предложения также приветствуются.

Редактировать 1: Мне очень нравится идея AppJet, и я проверю ее подробно, когда у меня будет время на этих выходных. Однако меня беспокоит только то, что это должно создать код, который можно использовать на других веб-серверах, поэтому, хотя AppJet может быть для меня отличным способом более быстрой разработки этого приложения, я все же думаю, что мне придется генерировать код PHP для своих пользователей. поставить на свои серверы.

Кроме того, когда я почувствую, что это готово к бета-тестированию, я обязательно выпущу его бесплатно для всех на этом сайте. Но я думал, что из беты я должен следовать схеме, аналогичной схеме git: бесплатно для приложений с открытым исходным кодом, стоит денег для частных / проприетарных приложений.

Ответы [ 2 ]

3 голосов
/ 06 февраля 2009

Концептуально, вы будете создавать виджеты, фабрику виджетов и фабрику по изготовлению фабрики.

Таким образом, вам нужно найти все различные типы взаимодействий, которые могут быть возможны при создании виджета, между виджетами, внутри фабрики и между несколькими фабриками по созданию виджетов, чтобы получить представление.

Что-то, что нужно держать в курсе того, как далеко будет слишком далеко, чтобы абстрагироваться?

** Я думаю, вам нужно будет полностью абстрагировать несколько слоев для самого пространства приложения. Тогда вам придется создать какой-то инструмент управления для всего этого. **

- Презентация, рабочий процесс и уровень данных.

Презентация: вы либо получаете отзыв, либо вводите данные. Обычно в результате нажатия или ввода чего-либо. Простой пример - создание динамических веб-форм в базе данных. Что бы вы хранили в базе данных о том, откуда она взялась / ушла? Это, вероятно, составило бы уровень представления. Вероятно, это будет наилучшее упражнение для начала, чтобы понять, что вам может понадобиться.

Рабочий процесс: было бы разумно создать простой механизм рабочего процесса. Я построил на e по образцу Windows Workflow , который у меня был запущен и запущен через 2 дня. Он может установить начальное событие, которое должно быть запущено, и т. Д. С точки зрения дизайнера, я мог бы представить программу типа Visio для связи этих событий. События в рабочем процессе будут управлять уровнем представления.

Данные: Вам потребуется хранить данные о приложении столько же, сколько и данных в приложении. Таким образом, форма, событие, структура данных может быть реализована путем хранения XML-документов в зависимости от того, нужно ли вам работать с какими-либо данными в формах или нет. Данные приложения также могут храниться в пустых шаблонах xml, которые вы заполняете, или в реальных таблицах. На этом этапе вам нужно будет создать процедуру создания таблицы, которая будет поддерживать таблицу для приложения в соответствии со спецификацией. У Google есть что-то подобное с их онлайн-базой данных Google.

Надеюсь, это поможет. Поделитесь тем, что вы в итоге придумали.

2 голосов
/ 06 февраля 2009

Зачем использовать PHP?

Appjet делает нечто очень похожее, используя 100% Javascript на стороне клиента и сервера с rhino .

Это облегчает программистам использование вашего сервиса и упрощает его развертывание. На самом деле даже их техника хранения данных использует Javascript (простые нативные объекты), что является действительно мощной идеей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...