{"text_format":"2","workbook":"xls","n_sheets":1,"sheets":["report2"],"not_rendered":{"charts":0,"images":0,"macros":0,"external_links":1,"defined_names":1,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900","formulas":"cached_only"}

{"sheet":"report2","index":0,"n_rows":25,"n_cols":5,"rows_kept":25,"cut":false,"hidden":false,"merged":[[0,2,0,3],[0,4,0,5],[1,2,1,3],[1,4,1,5],[2,2,2,3],[2,4,2,5],[3,2,3,3],[4,2,4,3],[7,2,7,3],[8,2,8,3],[9,2,9,3],[10,2,10,3],[13,2,13,3],[14,2,14,3],[17,2,17,3]],"flags":["formulas_cached_only"]}
[null,"1.","Record Nr.",null,"UNINA9910780429003321"]
[null,null,"Autore",null,"Dickinson Jon"]
[null,null,"Titolo",null,"Grails 1.1 web application development [[electronic resource] ] : reclaiming productivity for faster Java web development / / Jon Dickinson"]
[null,null,"Pubbl/distr/stampa",null,"Birmingham, U.K., : Packt Pub., 2009"]
[null,null,"ISBN",null,"1-282-11197-3"]
[{"$nulls":4},"9786612111976"]
[{"$nulls":4},"1-84719-669-1"]
[null,null,"Descrizione fisica",null,"1 online resource (328 p.)"]
[null,null,"Collana",null,"From technologies to solutions"]
[null,null,"Disciplina",null,"658.4/06"]
[null,null,"Soggetti",null,"Web site development"]
[{"$nulls":4},"Groovy (Computer program language)"]
[{"$nulls":4},"Application software - Development"]
[null,null,"Lingua di pubblicazione",null,"Inglese"]
[null,null,"Formato",null,"Materiale a stampa"]
[null,null,null,"Livello bibliografico","Monografia"]
[null,null,null,"Note generali","Includes index."]
[null,null,"Nota di contenuto",null,"Cover; Table of Contents; Preface; Chapter 1: Getting Started with Grails; Why Grails?; Less configuration; Faster setup; Shorter develop/test cycle; Consistent development environment; Domain-specific language for web development; Fewer dependencies; Installing Grails; Build a team communication portal; Summary; Chapter 2: Managing Users with Scaffolding; What is scaffolding?; Create the domain classes; Create the User domain class; Create the Role domain class; Creating controllers to enable scaffolding; Control through constraints; Meeting the relations; Relating roles and users"]
[{"$nulls":4},"Ordering fields through constraintsBootstrapping demo data; Summary; Chapter 3: Posting Messages; Message domain class; Rendering a form; Message controller; Groovy Server Pages; Create message view; Grails layouts; Show the form; Handling user input; Binding the request to the domain; Validate and save; Flash scope; Redirect; Render validation errors; Feedback to the user; Create a home page; HomeController; List all messages; Home page view; Styles and navigation; Set the default page; Update the layout; Tidying up; HTML encoding; Overriding validation error messages; Summary"]
[{"$nulls":4},"Chapter 4: Introduction to GroovyWhat is Groovy?; Object-Oriented; Dynamic; Functional; Loosely typed and strongly typed; Why Groovy?; Familiar syntax; Direct integration with Java; Running Groovy; Installing "]
[{"$nulls":4},"Groovy; Groovy shell; Groovy console; Execute Groovy scripts; Groovy classes and scripts; Groovy Features; Semicolons; Strings; Numbers; Lists; Maps; Ranges; Truth and equality; Closures; Plain old Groovy objects; Metaprogramming; Adding dynamic behavior; The great pretender; Builders; Summary; Chapter 5: Authentication with JSecurity Plugin; Where to find plug-ins?; Installing a plug-in"]
[{"$nulls":4},"Configuring JSecurity plug-inHow does JSecurity work?; More about realms; Create a simple realm; Implement authenticate; Dynamic finders; Implement hasRole; Install the authentication controller; The authentication filter; Password encryption; Add the missing pieces; Encryption of users' passwords; Permission denied page; Sign out link; Who posted that?; Relate messages to users; Making it happen; Showing the user; Hibernate lazy loading; Eager load users; Summary; Chapter 6: Testing; Writing unit tests; Why we write unit tests; Confidence in code; Improve design; Developer productivity"]
[{"$nulls":4},"Document codeHow to write unit tests; Test discreet units of code; Trust your libraries; Test your production code; Descriptive test names; Test one thing at a time; JUnit refresher; SetUp and TearDown; Asserting expectations; Unit tests in Grails; Groovy test extensions; Create a grails test; Running our tests; Grails testing plug-in; Testing Metacontroller; Testing validation; Limitations of Grails in unit tests; Integration testing; External dependencies; Repeatable tests; Integration tests in Grails; BootStrap for environments; Functional testing; Environment setup; Repeatable tests"]
[{"$nulls":4},"Test performance"]
[null,null,null,"Sommario/riassunto","Reclaiming Productivity for faster Java Web Development"]