Как создать платформу виджетов с нуля - PullRequest
2 голосов
/ 13 мая 2009

Мы хотим создать платформу виджетов для определенного веб-сайта.

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

Какие рамки мы должны использовать? Я хорошо знаком с RoR, и хорошо с Java / .Net, но я не знаю, легко ли это сделать в rails, потому что я не понимаю, как это будет выглядеть как обычное веб-приложение.

Множество платформ виджетов позволяют сторонним разработчикам использовать Javascript. Насколько легко это будет, нам придется создавать переводчика или что-то в этом роде?

Какой архитектуре мы должны следовать? Храним ли мы виджеты в базе данных?

Ответы [ 5 ]

1 голос
/ 18 мая 2009

Посмотрите на Java Portlet спецификацию. Protlets, кажется, именно то, что вы ищете. По крайней мере, вы должны прочитать технический обзор. Доступно много контейнеров портлетов (каркасов).

Если вы действительно должны создать все с нуля , посмотрите на Android AppWidget рамки. Android - это открытая ОС Google для мобильных гаджетов. Они полностью разделяют код ОС (контейнер виджетов) и сторонний код (провайдеры виджетов) - это действительно полезно, если вам приходится иметь дело с ненадежным предоставленным пользователем кодом.

Motorola также предоставляет собственную платформу виджетов для мобильных телефонов , но она не является открытым исходным кодом.

0 голосов
/ 21 мая 2009

Я недавно создал собственный набор виджетов для своих проектов. Это было не плохо. С другой стороны, он не так хорош, как ExtJS, поэтому я наконец-то перешел к этому набору виджетов. Для ваших целей, пожалуйста, посмотрите библиотеку виджетов Ext-GWT.

0 голосов
/ 19 мая 2009

Вы ищете http://jswaf.googlecode.com/

Я являюсь соавтором этого инструмента ... Но его версия, доступная в Интернете, устарела.

У меня на домашних компьютерах гораздо лучшая версия, но, к сожалению, я не могу получить к ней доступ в течение следующих двух месяцев: (


Если вы хотите написать свой собственный фреймворк с нуля, даже доступная сейчас онлайн версия даст вам довольно хорошее представление о том, как это сделать.

Да, вы правы: чтобы создать виджет времени выполнения, вам нужно использовать интерпретаторы. К счастью, вы можете напрямую использовать интерпретатор JavaScript, доступный в браузере.

Все в коде JSWAF.

Пожалуйста, присылайте комментарии о JSWAF, особенно если вы найдете что-то глупое об этом.

Ура, JRH.

0 голосов
/ 19 мая 2009

Я думаю, у меня есть следующие вопросы:

  • Что вы подразумеваете под виджетом, а

  • Что вы подразумеваете под "С нуля"?

Если под «с нуля» вы имеете в виду, что вы не хотите просто обрабатывать ранее существующие виджеты, я бы начал с выбора фреймворка javascript, соответствующего вашим спецификациям (jquery, dojo, aria и т. Д.), А затем выяснил, может простираться так далеко, насколько вы можете их подтолкнуть. (это предполагает, что вы не против того, чтобы виджеты были с открытым исходным кодом. Также вы можете либо восполнить недостаток доступности, либо не рассматривать это как проблему.)

Я бы не стал полагаться на серверную сторону больше, чем на вывод кода, сохранение изменений и загрузку сохраненных данных для виджета. Если вам уже нужен ajax для передачи взаимодействий от клиента к серверу, зачем останавливать виджет, заставляя сервер обращать внимание на другие механизмы виджета?

Я бы не использовал Java, но по той же причине, что и Н. Шервин. Это не моя сильная сторона. Но я также думаю, что мы выходим за пределы зависимости от компиляторов и полноценных приложений для выполнения задач в Интернете. У Java будет свое место в обозримом будущем, но нам не нужно полагаться на него (или, если уж на то пошло, Flash), когда наши браузеры (и разработчики!) Могут выполнять работу быстрее и с меньшими накладными расходами. (Не говоря уже о том, что это может ПОМОЧЬ доступности и удобству использования. Подумайте, мобильные телефоны не нуждаются в специальном приложении для просмотра Facebook или Twitter!)

Все это немного меняется в зависимости от моего первого вопроса: что вы подразумеваете под виджетом? Если вы имеете в виду календарь встреч, или фоторамку, или таймер обратного отсчета (Боже, мне скучно, извините), то помните все, что я сказал выше. Используйте php или RoR для генерации кода, js через хорошую платформу, чтобы сделать его галочкой, и ajax для xml в MySQL для обработки взаимодействий помимо обработки событий.

Но если вам нужен виджет для посетителей, чтобы они могли поиграть в pac-man, или спроектировать план дома своей мечты, или что-нибудь по-настоящему тяжелое в математике / графике, то я бы поклонился тем, кто знает намного больше, чем я Java / флэш. Я думаю, что наступает день, когда я смогу ударить по барабану даже в тех случаях, но получить что-то даже близко сегодня не стоит человеко-часов.

Вот кое-что, с чем я сейчас борюсь, это может помочь уточнить ваши потребности ...

Давайте представим такой виджет, как Ding от Southwest Airlines! виджет рабочего стола, но в сети. Он предупредит вас, как только появится хорошая сделка. Время имеет большое значение, потому что есть ограниченные места. У вас есть браузер запрашивает сервер каждые полсекунды, чтобы увидеть, есть ли обновление? Вы настраиваете БД, которая при обновлении отправляет на сервер crontask для запуска сценария, обновляющего XML-файл, который браузеру намного проще проверять на наличие изменений размера файла? И все это для того, чтобы пользователь мог использовать DING без необходимости обновления (что, вероятно, приведет к созданию менее эффективной версии того же уровня на сервере)?

У меня есть js-скрипт, который запрашивает cookie для активной страницы каждые полсекунды, поэтому пользователь получает предупреждение, когда его собираются выгнать. Я уверен, что есть какой-то прослушиватель событий, который может устранить необходимость зацикливания, но есть ли эквивалент, когда что-то происходит на сервере, а браузер просто зависает?

Только мои мысли о виджетах и ​​веб-приложениях. Надеюсь, это было полезно.

0 голосов
/ 15 мая 2009

Что именно вы пытаетесь сделать?

Ваш сайт новый? или он уже существует в определенной среде?

Я бы предположил, что вы можете создать свою страницу из шаблона xml и использовать какой-то собственный синтаксический анализатор саксофонов для замены ссылок на виджеты кусками html на сервере, Вы могли бы использовать xslt, но я подозреваю, что было бы проще вызвать произвольный код с помощью синтаксического анализатора саксофона.

Мне нравится java, потому что это мое пространство, но я уверен, что ruby ​​и .net достойны похвалы за простые манипуляции с dom.

Сторонние разработчики могут предоставить вышеупомянутые фрагменты html с включенными тегами script, чтобы обеспечить любую функциональность, которую они хотят.

...