Приморский (программное обеспечение)
![]() Приморский логотип | |
![]() Снимок экрана веб-приложения в режиме разработки | |
Разработчик(и) | Приморская команда [ 1 ] |
---|---|
Первоначальный выпуск | 2002 год |
Стабильная версия | 3.5.5
/ 8 октября 2023 г [ 2 ] |
Репозиторий | |
Написано в | Смолток |
Операционная система | Кросс-платформенный |
Платформа | ИА-32 , x86-64 , ARM |
Доступно в | Английский |
Тип | Веб-фреймворк |
Лицензия | С |
Веб-сайт | www ![]() |
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- разметка создается программно. на базе Seaside (Среда управления контентом Pier предлагает синтаксис вики-разметки для шаблонов.) Seaside использует обратные вызовы при замыканиях , чтобы указать действия, которые необходимо предпринять при нажатии на ссылку или отправке формы. Разработчики и пользователи Seaside утверждают, что это помогает обеспечить разделение структуры (разметки) от контента и представления ( каскадные таблицы стилей (CSS)). [ 7 ] Сочетание компонентов, обратных вызовов и замыканий Seaside может значительно сократить семантический разрыв между сложным рабочим процессом и его представлением в коде. [ 8 ]
Seaside поддерживает Ajax посредством интеграции со script.aculo.us и jQuery . Seaside также поддерживает Comet . технологию передачи серверов в стиле [ 9 ] Seaside может работать как с реализациями веб-серверов на основе Smalltalk, так и с другими реализациями, отличными от Smalltalk (Nginx, Apache).
Философия
[ редактировать ]За последние несколько лет некоторые лучшие практики получили широкое признание в области веб-разработки:
- Делитесь как можно меньшим количеством состояний.
- Используйте чистые, тщательно выбранные и содержательные URL-адреса .
- Используйте шаблоны, чтобы отделить модель от презентации.
Сисайд намеренно нарушает все эти правила. Ави Брайант, тогда работавший в 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 ] Завершен порт версии 2.8 для GemStone, [ 14 ] а предварительная версия 3.0 работает на GNU Smalltalk 3.0a и более поздних версиях. [ 15 ]
Пакет веб-сервера в стандартной библиотеке Racket (язык программирования) использует очень похожую философию, также основанную на продолжениях. [ 16 ]
Критика
[ редактировать ]- По сравнению с другими веб-фреймворками , Seaside требует большого количества памяти. Одна сессия могла накопить несколько сотен килобайт оперативной памяти. В более поздней версии, версии 2.8, этот размер значительно уменьшен (например, ранее типичный размер 200 КБ стал 50 КБ).
- Seaside не использует передачу репрезентативного состояния По умолчанию (REST). Вместо этого унифицированные указатели ресурсов (URL) содержат информацию о ключах сеанса, и значимые URL-адреса должны генерироваться явно.
Проекты с открытым исходным кодом, использующие его
[ редактировать ]Многие проекты с открытым исходным кодом используют Seaside, вот некоторые из них:
- Магритт - структура метаописания с тесной интеграцией в Seaside.
- Pier — система управления контентом и платформа приложений высокого уровня для Seaside.
- Проект АДК
Собственные проекты, использующие его
[ редактировать ]Многие собственные проекты используют Seaside, вот некоторые из них:
- Dabble DB – веб-приложение для работы с базами данных [ 17 ]
- Cmsbox – система управления контентом (CMS), предоставленная netstyle.ch для швейцарского рынка.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Приморская команда
- ^ «Выпуски · SeasideSt/Seaside» . Гитхаб .
- ^ Seaside - платформа веб-приложений с множественным потоком управления
- ^ IBM DeveloperWorks: Пересечение границ: продолжение, веб-разработка, программирование на Java.
- ^ Seaside: гибкая среда для создания динамических веб-приложений
- ^ Отладка морских приложений
- ^ Ави Брайант объясняет, почему Seaside не использует шаблоны.
- ^ Платформы веб-приложений: сравнительное исследование
- ^ Скринкаст: Приложение Seaside Comet Chat
- ^ « Интернет-ереси: The Seaside Framework», заметки о сессии, OSCON 2006» . Архивировано из оригинала 30 августа 2014 г.
{{cite web}}
: CS1 maint: bot: исходный статус URL неизвестен ( ссылка ) - ^ «В настоящее время на Pharo реализована версия Seaside 2.9, которая служит эталонной реализацией».
- ^ Блог Seaside for Dolphin Smalltalk
- ^ Приморский2.6г
- ^ Приморский 2.8
- ^ Работает ли Seaside на GNU Smalltalk , Часто задаваемые вопросы по GNU Smalltalk
- ^ «Продолжение: веб-приложения в рэкете» .
- ^ Статья Джона Уделла в InfoWorld. Архивировано 12 февраля 2007 г. в Wayback Machine.