Ответ 1
Проводя это, проведя неделю или две с Лифтом, на самом деле служить кому-либо. Тем не менее, я хочу потратить некоторое время на исправление некоторые ошибки и неправильные представления.
- Для безопасности я не думаю, что это работа с каркасом.
Ты мертв. Безопасность - это основа работы. Очень важно, чтобы безопасность выполняется по умолчанию, а не полагается на каждого разработчика, чтобы понимать каждый уязвимости безопасности и убедитесь, что каждая строка кода учитывает это.
Все, что нам нужно сделать, это посмотреть, что случилось с GitHub чтобы понять, что даже лучшие кодеры, использующие хорошо известные технологии может сделать критическую ошибку.
Подъем обеспечивает надежный защитный слой сверху, поэтому по умолчанию нет XSS, CSRF и т.д. но разработчик может копать настолько глубоко, насколько он хочет HTTP-запрос и сделка с байтами на проводе.
- Без гражданства/состояния: трудно сказать, где основные отличия. Я знаю только, что игра имеет также состояние, если вы используете веб-сокеты.
В лифте очень ясно, где вам нужно состояние, а где нет. Лифт может поддерживать безстоящие, частично с точки зрения состояния и полностью работоспособные приложения. На странице за страницей и запрос по запросу, приложение "Лифт" может быть с сохранением состояния или без гражданства (например, в Foursquare, страницы места размещения являются апатридами для поисковые системы, но с сохранением состояния для браузеров, которые вошли в систему.) Для подробнее о проектных решениях вокруг штата, см. Подъем, состояние и масштабирование.
- Обе структуры используют sbt
В лифте используются Maven, sbt, Buildr и даже Ant. Подъемник не зависит от условий сборки и о среде развертывания (Java EE container, Netty, что угодно). Это важно потому что это облегчает интеграцию с остальной средой.
- Подъем с авторизацией, но я думаю, что есть плагин play2 scala, который делает то же самое
Лифтинг существует уже более 5 лет и имеет множество модулей и вещей для него. Веб-каркас Lift (в отличие от модулей) не зависит от стойкости, аутентификации и т.д., Поэтому вы можете использовать что-либо с лифтом.
- Async - Play 2 использует Akka. Не знаю, что использует лифт, но у них также есть что-то подобное.
Подъем имеет поддержку Async более 5 лет. Он запек в каркасе. Подъем поддержки Comet лучший из любых веб-фреймворков, потому что, среди прочего, он мультиплексирует все "push" запросы на странице по одному запросу к серверу, который позволяет избежать голода подключения. Как Lift делает асинхронный процесс менее важно, потому что одна из основных философий с Лифтом заключается в том, что мы удаляем сантехника от разработчика, чтобы разработчик мог сосредоточиться на бизнес-логике.
Но для тех, кто ухаживает, у Lift есть самые лучшие и легкие весовые актеры любых фреймворков в Scala -land. Мы были первыми, кто оторвался от библиотеки scala Actor и работал проложить путь для разных библиотек Актера, которые позволили Акке и ScalaZ Актерам процветать.
- Поднять суда с поддержкой CSRF. Play2 имеет модуль для CSRF, но это добавляет шаблон к вашему коду.
Это часть приверженности Лифт к безопасности. Он важный.
- Аутентификация без аутентификации, похоже, имеет некоторые уязвимости безопасности. Оба фреймворка имеют аутентификацию с учетом состояния. (play2 stateful/stateeless, lift stateful)
Приложения для подъема могут быть как с сохранением состояния, так и без апатридов по вашему желанию. Это ваш выбор и лифт дает очень четкое представление о том, как принять решение.
Кроме того, как я указал в столбце "Лифт", "Состояние" и "Масштабирование", как сериализовать состояние безопасным, масштабируемым, исполнительным образом (потому что практически каждый запрос в Интернете приложение, которое распознает конкретных пользователей, является состоянием) должно быть сделано в предсказуемом, безопасный способ для платформы с разумными переопределениями для разработчиков.
Замечание о разделении
Игра очень похожа на Rails: быстро получить сайт, сбитый вместе, и он основанный на MVC, поэтому многие разработчики это понимают. Но играть не хватает глубину и широту Rails (сообщество, плагины, опыт, талант и т.д.) Если вы хотите быстро, легко MVC, затем перейдите с Rails и JRuby и напишите back end в scala (они работают вместе необыкновенно хорошо.)
Подъем - это другой зверь. Там есть значительная кривая отладки (перестаньте думать MVC и сначала задумайтесь о пользовательском опыте, который перетекает в бизнес-логику.) Но как только вы поднимаетесь на кривую развязки, сайты Lift более безопасны, высоко масштабируемым, супер-интерактивным и намного легче поддерживать с течением времени.