frameworks для - Какие веб-рамки Scala доступны?




фотошопа сделать (16)

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

Существуют ли веб-рамки для Scala, кроме Lift ?

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


Answers

И Sweet, и Slinky, кажется, не заражены в течение года. Sweet Maven repo sweetsoftwaredesign.com мертв, поэтому нет возможности загружать зависимости.


Меня очень интересует Scala, но я еще не использовал ее, поэтому с этим предупреждением рамки, о которых я знаю, не упоминаются в ответе HRJ (Lift, Sweet, Slinky):


Я наткнулся на ваш вопрос несколько недель назад, но с тех пор также узнал о Circumflex . Это хорошая минимальная структура, которая поэтому легко учится, и у нее имеется неплохая документация.

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


Я хотел бы добавить свои усилия в этот список. Вы можете узнать больше информации здесь:

brzy framework

Это в раннем развитии, и я все еще активно работаю над этим. Он включает в себя такие функции, как:

  • Основное внимание уделяется простоте и расширяемости.
  • Интегрированный инструмент построения.
  • Модульная конструкция; некоторые исходные модули включают поддержку масштабирования, электронной почты, jms, jpa, squeryl, cassandra, cron services и других.
  • Простые контроллеры и действия RESTful.

Все отзывы приветствуются.

UPDATE: 2011-09-078, я только что опубликовал большое обновление до версии 0.9.1. На http://brzy.org есть дополнительная информация, которая включает в себя скринкаст.


Вы также можете попробовать контекст . Он был разработан как Java-каркас, но я также успешно использовал его с Scala и без проблем. Это основанная на компонентах каркас и обладает такими же свойствами, как Lift или Tapestry.


Существует новая веб-инфраструктура, называемая веб-страницами Scala . С сайта:

Целевая аудитория

Веб-среда Scala Pages, скорее всего, понравится веб-программистам, которые исходят из фона Java и хотят программировать веб-приложения в Scala. Основное внимание уделяется ООП, а не функциональному программированию.

Характеристики и характеристики

  • Придерживается парадигма модели-представления-контроллера
  • Текстовый механизм шаблонов
  • Простой синтаксис: $variable и <?scp-instruction?>
  • Обнаружение кодировки / контента, способное обрабатывать международные текстовые кодировки
  • Фрагменты вместо пользовательских тегов
  • Перезапись URL

Я использую JAX-RS с помощью Jersey (вы можете писать хорошие ресурсы в Scala, Java или Groovy), чтобы писать веб-приложения RESTul. Затем я использую Scalate для рендеринга представлений с использованием одного из разных языков шаблонов ( JADE , Scaml , Scaml (страницы сервера Scala), Mustache и т. Д.).


Ниже приведена свалка фреймворков. Это не значит, что я их использовал:

  • Coeus . Традиционная веб-среда MVC для Scala.

  • Unfiltered . Инструментарий для обслуживания HTTP-запросов в Scala.

  • Uniscala Granite .

  • Gardel

  • Mondo

  • Amore . Порт Scala для веб-фреймворка Ruby Sinatra

  • Весы XML . Гибкий подход к обработке XML и упрощенный способ взаимодействия с XML.

  • Belt . Rack-подобный интерфейс для веб-приложений, построенный поверх Scalaz-HTTP

  • Frank . Веб-приложение DSL построенное поверх Scalaz / Belt

  • MixedBits . Основа для языка программирования Scala для создания веб-сайтов

  • Circumflex . Объединяет несколько автономных проектов с открытым исходным кодом для разработки приложений с использованием языка программирования Scala.

  • Scala Webmachine . Веб-сайт порта Башо в Scala, основанная на REST система для создания веб-приложений

  • Bowler . RESTful, многоканальная готовая веб-среда Scala


Прикрутил, я думаю, мы на одной лодке. Я также приезжаю в Скала из Эрланг. Мне очень нравится Nitrogen поэтому я решил создать веб-фреймворк Scala, вдохновленный им.

Взгляните на Xitrum . Его документ довольно обширен. Из README:

Xitrum - это асинхронная и кластерная веб-платформа Scala и веб-сервер поверх Netty и Hazelcast:

  • Он заполняет промежуток между Scalatra и Lift: более мощный, чем Scalatra, и более простой в использовании, чем Lift. Вы можете легко создать API RESTful и обратные передачи. Xitrum - это контроллер, сначала как Скалатра, а не вид спереди, как Лифт.
  • Аннотации используются для URL-маршрутов в духе JAX-RS. Вам не нужно объявлять все маршруты в одном месте.
  • Типично, в духе Скалы.
  • Асинк, в духе Netty.
  • Сеансы могут храниться в файлах cookie или кластеризованных Hazelcast.
  • Проверка jQuery интегрирована для проверки стороны браузера и сервера. i18n с использованием GNU gettext, что означает, в отличие от большинства других решений, поддерживаются как сингулярные, так и множественные формы.
  • Условный GET с использованием ETag.

Hazelcast также дает:

  • Внутрипроцессный и кластерный кэш вам не нужны отдельные серверы кеша.
  • В процессе работы и кластеризации Comet вы можете масштабировать Comet на несколько веб-серверов.

Следуйте tutorial для быстрого запуска.


Следует отметить, что также существует значительный интерес к Wicket и Scala . Калитка отлично подходит для Скалы. Если вы хотите воспользоваться очень зрелым проектом Wicket и его экосистемой (расширениями), а также кратким синтаксисом и преимуществом производительности Scala, это может быть для вас!

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

  1. Некоторые проза

  2. Presentation

  3. Некоторые опыты с Wicket и Scala

  4. Анонсы со ссылкой на проект для кода клея для привязки Scala к моделям


Одной очень интересной веб- Scalatra с коммерческим развертыванием является Scalatra , вдохновленная Sinatra Ruby's. Вот статья InfoQ об этом.


Игра довольно милая.

В настоящее время производство готово. Он включает в себя: классную структуру шаблонов, автоматическую перезагрузку исходных файлов на сейфе, сложную систему действий, удивительность akka и т. Д.

Его часть стека типов .

Используя его для двух проектов, я могу сказать, что он работает довольно гладко, и в следующий раз вы должны подумать над тем, чтобы изучить новые веб-фреймворки.


Примечание: Spiffy устарел.

< plug >

Spiffy :

  • написано в Scala
  • использует фантастическую библиотеку Akka и актеров в масштабе
  • использует сервлет API 3.0 для обработки асинхронных запросов
  • является модульным (замена компонентов осуществляется прямо)
  • использует DSL для сокращения кода, где вы этого не хотите
  • поддерживает Scalate и Freemarker для шаблонов

Spiffy - это веб-инфраструктура с использованием Scala, Akka (реализация актера Scala) и API Java Servlet 3.0. Он использует асинхронный интерфейс и нацелен на создание широкомасштабной параллельной и масштабируемой среды для веб-приложений. Различные компоненты Spiffy основаны на идее, что они должны быть независимыми минималистическими модулями, которые выполняют небольшую работу очень быстро и передают запрос следующему компоненту в конвейере. После того как последний компонент завершит обработку запроса, он сигнализирует контейнер сервлета путем «завершения» запроса и отправки его клиенту.

https://github.com/mardambey/spiffy

< / plug >


Я написал сообщение в блоге об этом.

Подводя итог, некоторые из вариантов:

  1. Lift
  2. Sweet
  3. Slinky

Наконец я обнаружил, что ни один из них не подходит для меня, и разработал мою собственную небольшую «структуру». (Пока это не open-source).


Мне нравится Lift ;-)

Play - мой второй выбор для дружественных Scala веб-фреймворков.

Каретка - мой третий выбор.


В моем каталоге находится каталог фреймворков: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks

не каталог

/Developer/SDKs/MacOSXversion.sdk/System/Library/Frameworks




scala frameworks web-frameworks lift