Seaside (программное обеспечение) - Seaside (software)

Приморский
Приморский логотип
Приморский логотип
Скриншот веб-приложения в режиме разработки
Скриншот веб-приложения в режиме разработки
Разработчики)Приморская команда[1]
изначальный выпуск2002; 18 лет назад (2002)
Стабильный выпуск
3.4.0 / 24 августа 2019 г.; 15 месяцев назад (2019-08-24)[2]
РепозиторийПриморский репозиторий
Написано вБолтовня
Операционная системаКроссплатформенность
ПлатформаIA-32, x86-64, РУКА
Доступно ванглийский
ТипВеб-фреймворк
ЛицензияМассачусетский технологический институт
Интернет сайтПриморский.st

Приморский, аббревиатура от «Squeak Enterprise Aubergines Server with Integrated Development Environment» - компьютер программного обеспечения, а веб-фреймворк разрабатывать веб-приложения на языке программирования Болтовня. Распространяется как бесплатное программное обеспечение с открытым исходным кодом под Лицензия MIT.

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

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

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

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

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

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

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

Философия

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

  • Делитесь как можно реже.
  • Используйте чистый, тщательно подобранный и содержательный URL-адреса.
  • Используйте шаблоны, чтобы отделить модель от презентации.

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

Порты

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

Критика

  • По сравнению с другими веб-фреймворки, Seaside интенсивно использует память. Один сессия мог накопить несколько сотен килобайт оперативной памяти. В более позднем выпуске, версии 2.8, этот размер значительно уменьшается (например, прежний типичный размер 200 КБ становится 50 КБ).
  • Побережье не следует Изобразительное State Transfer (REST) ​​по умолчанию. Вместо, Единые указатели ресурсов (URL-адреса) содержат информацию о ключе сеанса, и значимые URL-адреса должны быть созданы явно.

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

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

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

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

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

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

  1. ^ Приморская команда
  2. ^ https://github.com/SeasideSt/Seaside/releases
  3. ^ Seaside - инфраструктура веб-приложений с множеством потоков управления
  4. ^ IBM DeveloperWorks: пересекая границы: продолжения, веб-разработка, программирование на Java
  5. ^ Seaside: гибкая среда для создания динамических веб-приложений
  6. ^ Отладка приморских приложений
  7. ^ Ави Брайант объясняет, почему Seaside не использует шаблоны
  8. ^ Фреймворки веб-приложений: сравнительное исследование
  9. ^ Скринкаст: приложение для чата Seaside Comet
  10. ^ "'Web Heresies: Заметки сессии Seaside Framework, OSCON 2006 ". Архивировано 30 августа 2014 года.CS1 maint: BOT: статус исходного URL-адреса неизвестен (связь)
  11. ^ «Seaside 2.9 в настоящее время реализован на Pharo и служит эталонной реализацией».
  12. ^ Блог Seaside for Dolphin Smalltalk
  13. ^ Приморский2,6 г
  14. ^ Приморский 2.8
  15. ^ Работает ли Seaside на GNU Smalltalk, FAQ по GNU Smalltalk
  16. ^ Статья Джона Уделла в InfoWorld В архиве 2007-02-12 в Wayback Machine

внешняя ссылка