Ответ 1
Меня очень интересует Scala, но я еще не использовал его, поэтому с этим предостережением рамки, о которых я знаю, не упоминаются в HRJ answer (Lift, Sweet, Slinky):
Я только начал изучать Scala, и первое, что я собираюсь реализовать, - это крошечное веб-приложение. Я использовал Erlang за последний год для реализации серверного программного обеспечения, но я никогда не писал веб-приложения раньше. Это будет большой опыт.
Существуют ли веб-рамки для Scala, за исключением Lift?
Не поймите меня неправильно, Lift выглядит потрясающе. Я просто хочу знать, сколько фреймворков существует, чтобы я мог выбирать между ними. Всегда хорошо иметь выбор, но я единственное, что я нашел, это Лифт.
Меня очень интересует Scala, но я еще не использовал его, поэтому с этим предостережением рамки, о которых я знаю, не упоминаются в HRJ answer (Lift, Sweet, Slinky):
Я написал сообщение в блоге об этом.
Подводя итог, некоторые из вариантов:
Наконец я обнаружил, что ни один из них не подходит для меня, и разработал мою собственную небольшую "структуру". (Пока это не open-source).
Ниже приведена свалка фреймворков. Это не значит, что я их использовал:
Coeus. Традиционная веб-инфраструктура MVC для Scala.
Unfiltered. Инструментарий для обслуживания HTTP-запросов в Scala.
Amore. Порт Scala веб-рамки Ruby Sinatra
Изменяет XML. Гибкий подход к обработке XML и упрощенный способ взаимодействия с XML.
Belt. Rack-подобный интерфейс для веб-приложений, построенных поверх Scalaz-HTTP
MixedBits. Основа для языка программирования Scala для создания веб-сайтов
Circumflex. Объединяет несколько автономных проектов с открытым исходным кодом для разработки приложений с использованием языка программирования Scala.
Scala Webmachine. Веб-сайт порта Башо в Scala, система на основе REST для создания веб-приложений
Bowler. RESTful, многоканальная готовая веб-инфраструктура Scala
Мне нравится Lift; -)
Play - мой второй выбор для Scala дружественных веб-фреймворков.
Капля - мой третий выбор.
Попробуйте Play Framework, которые также поддерживают Scala.
Следует отметить, что также существует значительный интерес к Wicket и Scala. Wicket отлично подходит для Scala. Если вы хотите воспользоваться очень зрелым проектом Wicket и его экосистемой (расширениями), а также кратким синтаксисом и преимуществами производительности Scala, это может быть для вас!
См. также:
Одна очень интересная веб-среда с коммерческим развертыванием - Scalatra, вдохновленная Ruby Sinatra. Здесь статья InfoQ об этом.
Я нахожу Unfiltered очень интересным https://github.com/unfiltered/unfiltered.
Он упоминается в списке IttayD.
Вот презентация об этом http://unfiltered.lessis.me/#0 и видео http://code.technically.us/post/942531598/doug-tangren-presents-the-unfiltered-toolkit-for
Также здесь есть статья с дополнительной информацией http://code.technically.us/post/998251172/holding-the-parameter
Play довольно сладка.
Теперь производство готово. Он включает в себя: классную структуру шаблонов, автоматическую перезагрузку исходных файлов на сейфе, сложную систему действий, удивительность akka и т.д.
Его часть Таблица типов безопасности.
Используя его для двух проектов, я могу сказать, что он работает довольно гладко, и в следующий раз вы должны подумать над тем, чтобы изучить новые веб-фреймворки.
Я использую JAX-RS, используя Jersey (вы можете написать хороший ресурс beans в Scala, Java или Groovy) для создания веб-приложений RESTul. Затем я использую Scalate для рендеринга представлений с использованием одного из разных языков шаблонов (JADE, Scaml, Ssp (Scala Страницы сервера), Mustache и т.д.).
Там есть новая веб-инфраструктура, называемая Scala Веб-страницы. На сайте:
Веб-структура Scala Pages, скорее всего, понравится веб-программистам, которые приходят с фона Java и хотят запрограммировать веб-приложения в Scala. Основное внимание уделяется ООП, а не функциональному программированию.
$variable
и <?scp-instruction?>
Прикрутил, я думаю, мы на одной лодке. Я также пришел к Scala из Эрланг. Мне нравится Nitrogen, поэтому я решил создать веб-фреймворк Scala, вдохновленный им.
Посмотрите Xitrum. Его документ довольно обширен. Из README:
Xitrum - это асинхронная и кластерная веб-фреймворк Scala и веб-сервер поверх Netty и Hazelcast:
Hazelcast также дает:
Для быстрого запуска следуйте tutorial.
Там также Pinky, который раньше был на битбакете, но был переведен на github.
Кстати, github - отличное место для поиска проектов Scala, так как там много там.
Я хотел бы добавить свои усилия в этот список. Вы можете узнать больше здесь:
Это в раннем развитии, и я все еще активно работаю над этим. Он включает в себя такие функции, как:
Приветствуется всякая обратная связь.
UPDATE: 2011-09-078, я только что опубликовал большое обновление до версии 0.9.1. Там больше информации на http://brzy.org, который включает в себя скринкаст.
Оба Sweet и Slinky, кажется, не заражены в течение года. Sweet Maven repo sweetsoftwaredesign.com мертв, поэтому нет возможности загружать зависимости.
Примечание: Spiffy устарел.
< штекеp >
Spiffy
Spiffy - это веб-фреймворк с использованием Scala, Akka (реализация Scala актера) и API Java Servlet 3.0. Он использует асинхронный интерфейс и нацелен на создание широкомасштабной параллельной и масштабируемой среды для веб-приложений. Всевозможные компоненты Spiffy основаны на идее, что они должны быть независимыми минималистическими модулями, которые очень быстро выполняют небольшую работу и передают запрос следующему компоненту в конвейере. После того как последний компонент обработает запрос, он сигнализирует контейнер сервлета путем "завершения" запроса и отправки его клиенту.
https://github.com/mardambey/spiffy
</разъем >
Вы также можете попробовать Context. Он был разработан как Java-framework, но я успешно использовал его с Scala также без проблем. Это компонентная основа и имеет аналогичные свойства, такие как Lift или Tapestry.
Я наткнулся на ваш вопрос несколько недель назад, но с тех пор также узнал о Circumflex. Это хорошая минимальная структура, поэтому ее легко изучить, и она также имеет неплохую документацию.
Помимо минимального уровня, он также утверждает, что хорошо работает с другими библиотеками и позволяет вам использовать свою собственную реализацию, когда вам это нужно.