Seaside (программное обеспечение) - Seaside (software)
Приморский логотип | |
Скриншот веб-приложения в режиме разработки | |
Разработчики) | Приморская команда[1] |
---|---|
изначальный выпуск | 2002 |
Стабильный выпуск | 3.4.0 / 24 августа 2019 г.[2] |
Репозиторий | Приморский репозиторий |
Написано в | Болтовня |
Операционная система | Кроссплатформенность |
Платформа | IA-32, x86-64, РУКА |
Доступно в | английский |
Тип | Веб-фреймворк |
Лицензия | Массачусетский технологический институт |
Интернет сайт | Приморский |
Приморский, аббревиатура от «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 используется во многих проектах с открытым исходным кодом, некоторые из которых:
- Magritte - фреймворк метаописания с тесной интеграцией в Seaside
- Причал - а система управления контентом и фреймворк высокого уровня для Seaside
- ADK Project
Собственные проекты, использующие это
Многие проприетарные проекты используют Seaside, некоторые из них:
- Dabble DB - веб-приложение базы данных[16]
- Cmsbox - а система управления контентом (CMS) предоставлен netstyle.ch для швейцарского рынка.
Смотрите также
- Стек решений, СТЕКЛО
- Nagare (веб-фреймворк)
- Список систем управления контентом
- Сравнение веб-фреймворков
Рекомендации
- ^ Приморская команда
- ^ https://github.com/SeasideSt/Seaside/releases
- ^ Seaside - инфраструктура веб-приложений с множеством потоков управления
- ^ IBM DeveloperWorks: пересекая границы: продолжения, веб-разработка, программирование на Java
- ^ Seaside: гибкая среда для создания динамических веб-приложений
- ^ Отладка приморских приложений
- ^ Ави Брайант объясняет, почему Seaside не использует шаблоны
- ^ Фреймворки веб-приложений: сравнительное исследование
- ^ Скринкаст: приложение для чата Seaside Comet
- ^ "'Web Heresies: Заметки сессии Seaside Framework, OSCON 2006 ". Архивировано 30 августа 2014 года.CS1 maint: BOT: статус исходного URL-адреса неизвестен (связь)
- ^ «Seaside 2.9 в настоящее время реализован на Pharo и служит эталонной реализацией».
- ^ Блог Seaside for Dolphin Smalltalk
- ^ Приморский2,6 г
- ^ Приморский 2.8
- ^ Работает ли Seaside на GNU Smalltalk, FAQ по GNU Smalltalk
- ^ Статья Джона Уделла в InfoWorld В архиве 2007-02-12 в Wayback Machine