Grails | это... Что такое Grails? (original) (raw)

Grails

Grails logo.png
Тип программный каркас для создания веб-приложений
Разработчик 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 г.

Содержание

Краткое описание

Grails разрабатывается с несколькими целями:

Высокая производительность разработки

В Grails три характеристики значительно повышают производительность разработчика по сравнению с традиционной Java веб-разработкой:

Фреймворк

Так как 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:

Our books

Интеграция с Java

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

Кем используется

Компанией SAP на базе Groovy/Grails разрабатывается фреймворк Composition On Grails для быстрой разработки веб приложений для платформы SAP NetWeaver 7.1 CE, который включает в себя SAP-специфичные расширения для Web Dynpro, Enterprise Web Services и BAPI.

См. также

Журнал

Ссылки

Просмотр этого шаблона Веб-фреймворки
ASP.NET DotNetNukeASP.NET MVC • MonoRail
ColdFusion ColdSpring • Fusebox • Mach-II • Model-Glue
Java Apache (CocoonStrutsVelocity • WebWork 2) • AppFuse • AraneaEclipseFacelets • Flexive • FreeMarkerGoogle Web ToolkitGrailsHamlets • ItsNat • JavaServer Faces • Jspx • JBoss Seam • jZeno • Makumba • OpenLaszlo • OpenXava • Reasonable Server Faces (RSF) • Restlet • RichFaces • RIFE • Shale • SmartClientSpringStripesTapestry • ThinWire • VaadinWebMacro • WebWork • WebObjects • WicketZK
JavaScript node.js • AJILE • Clean AJAX • Dojo Toolkit • Echo • Ext JSjQueryjMaki • Microsoft AJAX Library • MochiKit • MooToolsPrototype • qooxdoo • Rialto Toolkit • Ricoscript.aculo.usSmartClientSprySproutCoreYahoo! UI LibraryUnderscorePhoneGap
Perl CatalystInterchange • Titanium • Maypole • HTML:Mason
PHP Acode • Akelos • BlueShoes • CakePHP • Canvas • CodeIgniter • DIY • Drupal • Fuse • Horde • KohanaLiveStreet • PHP For Applications • PHPOpenbiz • PRADO • Qcodo • Seagull • Solar • Symfony • W3Core • YiiZend • Zoop • Joomla
Python CherryPyDjangoGAE framework • Karrigell • Nevow • Porcupine • PylonsPyramid • Spyce • TurboGearsTwistedTornado • Webware • Zope
Ruby Camping • Nitro • IOWA • Ramaze • Cerise • MerbRuby on RailsSinatra • Padrino
Прочиеязыки Alpha Five • Fusebox (ColdFusionPHP) • Helma Object Publisher (Server-side) • Lift (Scala) • Magic (Scheme) • OpenACS (Tcl) • Seaside (Smalltalk) • UnCommon Web (Common Lisp) • Yaws (Erlang) • Oracle Application Express (PL/SQL)