Grails | это... Что такое Grails? (original) (raw)
Grails
Тип | программный каркас для создания веб-приложений |
Разработчик | Steven Devijver, Graeme Rocher |
Написана на | Groovy |
Операционная система | кроссплатформенное ПО на Java |
Последняя версия | 2.1.2 (5 декабря 2012 года) |
Тестовая версия | 2.2.0RC2 (2 ноября 2012 года) |
Лицензия | Apache License 2.0 |
Сайт | www.grails.org |
Grails — программный каркас для создания веб-приложений, написанный на скриптовом языке Groovy, который в свою очередь основан на Java. Grails создан под сильным влиянием широко известного Ruby on Rails и основан на шаблоне «Модель-представление-поведение» (MVC). Grails был создан с целью привлечь интерес пользователей к платформе Java и дать Java-разработчикам возможности для быстрого построения веб-приложений с лёгкостью и гибкостью, которая была недоступна прежде.
Разработка продукта ведётся с июля 2005. Первый релиз 0.1 был выпущен в марте 2006 г.
Содержание
- 1 Краткое описание
- 2 Высокая производительность разработки
- 3 Фреймворк
- 4 Интеграция с Java
- 5 Кем используется
- 6 См. также
- 7 Журнал
- 8 Ссылки
Краткое описание
Grails разрабатывается с несколькими целями:
- Предоставить высокопродуктивный программный каркас для веб-разработки для платформы Java.
- Совместимость с проверенными технологиями Java, такими как Hibernate и Spring.
- Предложить непротиворечивый, единообразный каркас, что позволит избавиться от неопределённости и будет лёгок к изучению.
- Документировать только те части фрэймворка, которые имеют значение для пользователей.
- Предложить пользователям то, что они хотят видеть в областях часто сложных и противоречивых:
- Мощная и непротиворечивая поддержа персистенции (сохранности данных).
- Мощные и лёгкие в использовании шаблоны страниц (view), использующие GSP (Groovy Server Pages).
- Динамические библиотеки тегов для лёгкого создания компонентов веб-страниц.
- Хорошая поддержка Ajax, легко расширяемая и настраиваемая под цели разработчика Grails — Ajax(библиотеки:jQuery(по умолчанию), Rico, Prototype, Dojo и YUI — с помощью плагинов).
- Предоставить примеры приложений, которые демонстрируют возможности данного программного каркаса.
- Обеспечить режим разработки, включающий встроенный веб-сервер и автоматическую перегрузку ресурсов.
Высокая производительность разработки
В Grails три характеристики значительно повышают производительность разработчика по сравнению с традиционной Java веб-разработкой:
- Отсутствие XML конфигураций
- Готовая к использованию среда разработки
- Функциональность, доступная благодаря использованию примесей (mixins)
Фреймворк
Так как Grails был разработан согласно парадигме Модель-представление-поведение, то три составляющие этой парадигмы (модель, представление и контроллер) определяют работу этого фреймворка. Для создания каркаса проекта можно использовать - командную строку для Grails с командой:
grails create-app my-project-name
Эта команда grails
запустит проект на встроенном веб-сервере который будет доступен по адресу http://localhost:8080/:
grails run-app
Контроллер
Grails использует контроллеры для определения как себя будет вести представление. Пример контроллера:
class BookController { def list() { [ books: Book.findAll() ] } }
Контроллер имеет метод list
который возвращает все книги из базы данных взятые у модели Book. Для создания контроллера из командной строки используется команда grails
:
grails create-controller Book
Это команда создает контроллер с именем BookController в директории grails-app/controllers
проекта. Для вызова метода list
нужно вызвать http://localhost:8080/book/list
.
Модель
Модель в Grails отображается на базу данных используя GORM (Grails Object Relational Mapping). Классы модели хранятся в директории проекта grails-app/domain
и могут быть созданы командой grails
:
grails create-domain-class Book
Пример созданного класса модели:
class Book { String title Person author }
Механизм сохранения данных в GORM реализован через Hibernate. Таким образом база данных может быть спроецирована в GORM классы используя стандартные Hibernate mapping файлы.
Представление
Grails поддерживает JSP и GSP. Пример ниже показывает пример страницы GSP которая отображает список книг в модели, через метод findAll
, которую предоставил контроллер в методе list
:
- ${it.title} (${it.author.name})
Интеграция с Java
Grails сделан как часть платформы Java, и это означает, что его очень легко можно использовать вместе с Java библиотеками, фреймворками и существующей базой кода.
Кем используется
Компанией SAP на базе Groovy/Grails разрабатывается фреймворк Composition On Grails для быстрой разработки веб приложений для платформы SAP NetWeaver 7.1 CE, который включает в себя SAP-специфичные расширения для Web Dynpro, Enterprise Web Services и BAPI.
См. также
Журнал
Ссылки
- Официальный сайт
- Guide on Grails site
- Getting Started with Grails
- Русскоязычное сообщество, посвящённое Grails, в живом журнале
Веб-фреймворки | |
---|---|
ASP.NET | DotNetNuke • ASP.NET MVC • MonoRail |
ColdFusion | ColdSpring • Fusebox • Mach-II • Model-Glue |
Java | Apache (Cocoon • Struts • Velocity • WebWork 2) • AppFuse • Aranea • Eclipse • Facelets • Flexive • FreeMarker • Google Web Toolkit • Grails • Hamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClient • Spring • Stripes • Tapestry • ThinWire • Vaadin • WebMacro • WebWork • WebObjects • Wicket • ZK |
JavaScript | node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JS • jQuery • jMaki • Microsoft AJAX Library • MochiKit • MooTools • Prototype • qooxdoo • Rialto Toolkit • Rico • script.aculo.us • SmartClient • Spry • SproutCore • Yahoo! UI Library • Underscore • PhoneGap |
Perl | Catalyst • Interchange • Titanium • Maypole • HTML:Mason |
PHP | Acode • Akelos • BlueShoes • CakePHP • Canvas • CodeIgniter • DIY • Drupal • Fuse • Horde • Kohana • LiveStreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull • Solar • Symfony • W3Core • Yii • Zend • Zoop • Joomla |
Python | CherryPy • Django • GAE framework • Karrigell • Nevow • Porcupine • Pylons • Pyramid • Spyce • TurboGears • Twisted • Tornado • Webware • Zope |
Ruby | Camping • Nitro • IOWA • Ramaze • Cerise • Merb • Ruby on Rails • Sinatra • Padrino |
Прочиеязыки | Alpha Five • Fusebox (ColdFusion • PHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL) |