stringtranslate.com

Приморский (программное обеспечение)

Seaside , аббревиатура, которая расшифровывается как «Squeak Enterprise Aubergines Server с интегрированной средой разработки», — это компьютерное программное обеспечение , веб-фреймворк для разработки веб-приложений на языке программирования Smalltalk . Он распространяется как бесплатное программное обеспечение с открытым исходным кодом под лицензией MIT .

Seaside предоставляет компонентную архитектуру, в которой веб-страницы строятся в виде деревьев отдельных компонентов с отслеживанием состояния , каждый из которых инкапсулирует небольшую часть страницы. Seaside использует продолжения для моделирования нескольких независимых потоков между различными компонентами. [3] Таким образом, это веб-фреймворк, основанный на продолжении [4], основанный на возможности манипулировать стеком выполнения некоторых реализаций Smalltalk .

Ключевая особенность

Хотя последующее улучшение обработки состояния в движках JavaScript веб-браузера привело к тому, что этот аспект сегодня менее важен, метод Seaside обработки состояния браузера (через продолжения ) был первоначальным предметом интереса в первые годы после его выпуска в 2002 году. Этот механизм обеспечивает откат и возобновление, решая многие распространенные проблемы, возникающие при запуске веб-приложений, адекватно поддерживая состояние на стороне сервера, даже когда используются кнопки веб-браузера «Назад», «Вперед» или «Обновить». Серверы на основе продолжения дают разработчику возможность поддерживать состояние сервера масштабируемым образом. [5]

Отличительной особенностью Seaside является интегрированная среда разработки, обеспечивающая доступ к инструментам разработки и поддержку отладки внутри приложения. В режиме разработки на веб-страницу сообщается о необработанных ошибках; разработчики могут получать доступ к коду и состоянию программы и изменять их непосредственно с веб-страницы, что позволяет выполнять процессы выявления и исправления ошибок в интегрированной среде разработки (IDE). [6]

Приложение Seaside — это набор взаимодействующих компонентов. Каждый из них сохраняет состояние при просмотре страниц и может отображать себя в потоке HTML . Таким образом, легко написать компонент один раз, а затем повторно использовать его в другом месте приложения. Seaside также поддерживает понятие задач, которые позволяют программисту описывать высокоуровневую логику взаимодействия компонентов.

Seaside не ориентирован на шаблоны и не предлагает создание или использование шаблонов HTML; HTML- разметка создается программно. (Среда управления контентом Pier на базе Seaside предлагает синтаксис вики-разметки для шаблонов.) Seaside использует обратные вызовы при замыканиях , чтобы указать действия, которые необходимо предпринять при нажатии на ссылку или отправке формы. Разработчики и пользователи Seaside утверждают, что это помогает обеспечить разделение структуры (разметки) от контента и представления ( каскадные таблицы стилей (CSS)). [7] Сочетание компонентов, обратных вызовов и замыканий Seaside может значительно уменьшить семантический разрыв между сложным рабочим процессом и его представлением в коде. [8]

Seaside поддерживает Ajax посредством интеграции со script.aculo.us и jQuery . Seaside также поддерживает технологию передачи серверов в стиле Comet . [9] Seaside может работать как с реализациями веб-серверов на основе Smalltalk, так и с другими реализациями, отличными от Smalltalk (Nginx, Apache).

Философия

За последние несколько лет некоторые лучшие практики получили широкое признание в области веб-разработки:

Сисайд намеренно нарушает все эти правила. Ави Брайант, тогда работавший в Dabble DB, в 2006 году назвал ее «еретической» структурой, утверждая, что этот осторожный и аргументированный отказ от общепринятых принципов веб-разработки привел к созданию очень эффективной модели разработки веб-приложений. [10]

Порты

Основная разработка Seaside реализована на Pharo Smalltalk. [11] Существуют порты для других диалектов Smalltalk. Первоначальная разработка Seaside велась на Squeak в начале 2000-х. Мишель Бани реализовал порты на VisualWorks через Seaside версии 2.7; Cincom Systems поддерживает Seaside как часть VisualWorks с начала 2008 года. Компания Instantiations объявила о поддержке Seaside в своей платформе VAST (VA Smalltalk) версии 8.0 в 2009 году. Платформа VAST продолжает поддерживать Seaside в своей последней версии. Эстебан Маринголо сохранил порт 2.8, а также некоторые другие дополнения (например, script.aculo.us ) для Dolphin Smalltalk X6. [12] Gemstone Systems реализовала порт на Gemstone/S . [13] Для GemStone был завершен порт 2.8, [14] а предварительная версия 3.0 работает на GNU Smalltalk 3.0a и более поздних версиях. [15]

Пакет веб-сервера в стандартной библиотеке Racket (язык программирования) использует очень похожую философию, также основанную на продолжениях. [16]

Критика

Проекты с открытым исходным кодом, использующие его

Многие проекты с открытым исходным кодом используют Seaside, вот некоторые из них:

Собственные проекты, использующие его

Многие собственные проекты используют Seaside, вот некоторые из них:

Смотрите также

Рекомендации

  1. ^ Приморская команда
  2. ^ "Релизы · SeasideSt/Seaside" . Гитхаб .
  3. ^ Seaside - платформа веб-приложений с множественным потоком управления
  4. ^ IBM DeveloperWorks: Пересечение границ: продолжение, веб-разработка, программирование на Java.
  5. ^ Seaside: гибкая среда для создания динамических веб-приложений
  6. ^ Отладка морских приложений
  7. ^ Ави Брайант объясняет, почему Seaside не использует шаблоны.
  8. ^ Платформы веб-приложений: сравнительное исследование
  9. ^ Скринкаст: Приложение Seaside Comet Chat
  10. ^ «Интернет-ереси: Примечания к сессии Seaside Framework, OSCON 2006» . Архивировано из оригинала 30 августа 2014 г.{{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  11. ^ «В настоящее время на Pharo реализована версия Seaside 2.9, которая служит эталонной реализацией».
  12. ^ Блог Seaside for Dolphin Smalltalk
  13. ^ Приморский2.6г
  14. ^ Приморский 2.8
  15. ^ Работает ли Seaside на GNU Smalltalk, Часто задаваемые вопросы по GNU Smalltalk
  16. ^ «Продолжение: Веб-приложения в рэкете» .
  17. ^ Статья Джона Уделла в InfoWorld. Архивировано 12 февраля 2007 г. в Wayback Machine.

Внешние ссылки