Sounds fantastic. Any plans for an electronic version of the book? I'll buy it right now if it's available.
On Jun 16, 2013, at 3:50 AM, Markus Ruggiero wrote: > One year ago at WOWODC12 I said I'd write a WO Book. It was not done by year > end as I hoped, but now it is here!!! I wrote it just for fun, it's a hobby > project and so I often had to interrupt working on it when a customer > threatened my with work he was willing to pay for. Anyway, it's done now, > just some minor formatting task left for the final print. And already I do > have more than enough ideas for a successor. No promise yet, might take > another year -- and of course only when there is interest being shown. > > The book will go to print within the next couple weeks. > > I'll bring pre-print evaluation copies to WOWODC13. One more reason to come > to Montréal!! Be the first to actually see and browse and read the new book > about WebObjects and Wonder. > > Table of Contents > Part A - The Environment 8 > 1 Introduction 9 > 1.1 A bit of history 9 > 1.2 Where do we stand today? 10 > 1.3 What do you need to create great Project Wonder applications? 10 > 1.4 Hi-level overview of the frameworks 10 > 1.4.1 What is a Framework? 11 > 1.4.2 WebObjects Frameworks 11 > 1.4.3 Project Wonder Frameworks 11 > 2 Setting up your development environment 13 > 2.1 What do you need? 13 > 2.1.1 Hardware suitable for Project Wonder development 13 > 2.1.2 Software needed for Project Wonder development 13 > 2.2 Where goes what? 14 > 2.3 Installing the tools 16 > 2.3.1 Automatic installation of Eclipse and WOLips 16 > 2.3.2 Manual installation of Eclipse and WOLips 17 > 2.4 Installing the frameworks 20 > 2.4.1 Installing WebObjects 20 > 2.4.2 Installing Project Wonder 21 > 2.4.3 Final test if everything is installed properly 30 > 3 Where to get help 34 > Part B - Basic Concepts and Classes 36 > 4 Our first application 37 > 4.1 Overview of the request-response-loop 37 > 4.2 Direct connect during development 37 > 4.3 Layout of the BasicConcepts Project 37 > 4.4 Editing and working with Components 40 > 5 Design patterns 47 > 5.1 Model View Controller 47 > 5.2 Key Value Coding 49 > 5.2.1 Let’s play a bit with key-value-coding 49 > 5.2.2 For the Curious: The NSKeyValueCoding Interface 52 > 5.3 Summary 52 > 6 Request Response Loop 53 > 6.1 The WOAdaptor 54 > 6.2 The classes WORequest and ERXRequest 55 > 6.3 The classes WOResponse and ERXResponse 56 > 6.4 The classes WOContext and ERXWOContext 56 > 6.5 Summary 57 > 7 Application, Session, and Component Classes 58 > 7.1 The Application class ERXApplication 58 > 7.1.1 Playing with the application class 59 > 7.2 The Session class ERXSession 60 > 7.2.1 Session mechanics in Wonder 61 > 7.2.2 Session id with cookies 62 > 7.2.3 Lifetime of a session 64 > 7.3 The view/controller combo WOComponent and the controller class > ERXComponent 66 > 7.3.1 What is a (WO)component? 66 > 7.3.2 Layout of a component 66 > 7.3.3 Creating a new component object 67 > 7.3.4 The view part of a component 68 > 7.3.5 Other parts of a component 69 > 7.4 Summary 70 > 8 Flow of control 71 > 8.1 awake() and sleep() methods 71 > 8.2 Processing the request 73 > 8.2.1 Phase 1, getting input data from the request 73 > 8.2.2 Phase 2, acting upon the request, processing the data 74 > 8.2.3 Phase 3, generating the response 74 > 8.3 Handling of navigation 74 > 8.4 The page cache and backtracking 77 > 8.5 Summary 79 > 9 Wonder has its own advanced collection classes 80 > 9.1 Array-like classes NSArray and NSMutableArray 80 > 9.2 Playing with NSArray and NSMutableArray 80 > 9.3 HashMap-like classes NSDictionary and NSMutableDictionary 81 > 9.4 Playing with NSDictionary and NSMutableDictionary 81 > 9.5 Summary 82 > 10 Repeating and Conditional HTML 83 > 10.1 Repeating Data in a Web Page with WORepetiton 83 > 10.2 Conditional HTML 86 > 10.3 Summary 88 > 11 HTML forms and gathering user input 89 > 11.1 The WOForm element 89 > 11.2 Text input fields 89 > 11.2.1 WOTextField 90 > 11.2.2 WOText 91 > 11.2.3 WOPasswordField 91 > 11.3 Checkboxes and Radio Buttons 91 > 11.4 Popup Buttons and Selection Lists 94 > 11.5 Arbitrary Dynamic html Elements? WOGenericElement and > WOGenericContainer to the rescue 96 > 11.6 Actions make Things happen – Elements that can trigger Actions 96 > 11.7 Summary 99 > 12 Custom Components 100 > 12.1 Creating a custom component 100 > 12.2 The WOComponentContent Component 108 > Part C - Enterprise Objects 111 > 13 Enterprise Objects 112 > 13.1 What are Enterprise Objects? 112 > 13.2 Enterprise Objects have Behavior 112 > 13.3 The Technical Side of Enterprise Objects 112 > 14 The Editing Context 114 > 14.1 The classes ERXEC and EOEditingContext 114 > 14.2 Accessing the editing context 114 > 14.3 Working with your own editing context 115 > 15 Objects and the Relational World – The Data Model 116 > 15.1 Entities, Classes, and Relational Tables 116 > 15.2 Creating the EOModel 117 > 15.3 Creating entities 122 > 15.4 Creating attributes and other entities 124 > 15.4.1 Attribute Settings 126 > 15.5 Adding simple relationships 128 > 15.6 Adding a many-to-many relationship 129 > 15.7 Add the JDBC driver for your database to the project 132 > 15.8 Generating the database structure 133 > 15.9 Generating the Java class files 134 > 15.9.1 How Java class files are being generated 135 > 16 Fetching Enterprise Objects 139 > 16.1 Qualifying – How To Build Qualifiers 139 > 16.1.1 Testing for equality 139 > 16.1.2 Wildcard qualifying 139 > 16.1.3 Qualifying across a key path 139 > 16.1.4 Building an SQL like qualifying string 139 > 16.1.5 Qualifying for NULL values 140 > 16.1.6 In-Memory Filtering of an Array 140 > 16.2 What Order Do You Like Your Objects? – Sorting 140 > 16.2.1 In-Memory Sorting of an Array 141 > 16.3 The Fetch Specification ERXFetchSpecification 141 > 16.3.1 Building a Fetch Specification Manually in Code 141 > 16.4 FetchSpecification in the Model 142 > 16.5 Putting it all together 146 > 16.6 Using the Wonder Convenience Methods for Fetching 146 > 16.7 Using EOUtilities Convenience Methods 147 > 16.8 A Complete Fetch Example 147 > 17 Editing Enterprise Objects 152 > 17.1 The Editing Context revisited 152 > 17.2 Creating New Enterprise Objects 153 > 17.3 Deleting Enterprise Objects 153 > 17.4 Saving Changes, Reverting Enterprise Objects to Previous State 153 > 18 Working with Relationships 155 > 18.1 Adding an Object to a Relationship 156 > 18.2 Breaking the Relationship between Objects 156 > 18.3 WOToOneRelationship and WOToManyRelationship Components 157 > Part D - More Useful Things 159 > 19 Working with Cookies 160 > 19.1 Sending cookies in the response 160 > 19.2 Receiving cookies in the request 161 > 19.3 A cookie example 161 > 19.4 Issues with cookies 165 > 20 Display Groups and Batch Navigation 166 > 20.1 What is a display group? 166 > 20.2 Using a display group 166 > 20.3 Defining and Initializing a Display Group with the Graphical Editor > 169 > 20.4 Batch Navigation with Display Groups 172 > 20.5 How does a display group work under the hood? 175 > 20.6 “To DisplayGroup” or not “To DisplayGroup”, that’s the Question! > 176 > 20.7 Initializing a Display Group in Code 176 > 21 Direct Actions 177 > 21.1 Direct Actions – a Lightweight Request-Response-Loop 177 > 21.2 There are different request handlers to a Wonder application 177 > 21.3 Setting the Default Request Handler 178 > 21.4 Direct Actions in Action 178 > 21.4.1 The Main component 179 > 21.4.2 Direct Action Methods 181 > 21.4.3 Accessing Form Values 181 > 21.4.4 Accessing the Database and the Editing Context 182 > 21.5 Direct Actions and Sessions 182 > 21.6 Creating direct action URLs 183 > 21.7 When would you use direct actions? 183 > 21.8 Example: Using a direct action to generate a CSV file 184 > 22 Debugging and Logging 186 > 22.1 Generating log output to the console 186 > 22.1.1 Using NSLog 186 > 22.1.2 Logging with Log4j 187 > 22.1.3 Logging SQL statements 188 > Part E - Deployment 191 > 23 Introduction to Deployment 192 > 23.1 Requirements 192 > 23.2 The Big Picture 193 > 23.3 Deployment Architecture 194 > 23.4 Split install 194 > 23.5 The Role of wotaskd 194 > 23.6 The Role of JavaMonitor 195 > 24 Setting up the Server 197 > 24.1 Preparing the Directory Structure 197 > 24.2 Installing JavaMonitor and wotaskd 197 > 24.3 Setting up the Web Server and WOAdaptor 200 > 24.4 Creating Symbolic Links for Convenience 203 > 24.5 Setting up the Server in JavaMonitor 204 > 25 Building Your Application for Deployment 209 > 26 Deploying Your Application 216 > 26.1 Bring the Application over to the Server 216 > 26.2 Making the Application known to JavaMonitor and wotaskd 217 > 26.3 Managing the application with JavaMonitor 221 > 26.3.1 Configuring the Site 221 > 26.3.2 Application Settings 226 > Table of Pictures and Graphics 230 > Index 233 > > > > Markus Ruggiero > [email protected] > Check out the new book about Project Wonder and WebObjects on > http://www.kataputt.com/ > > > > > > _______________________________________________ > Do not post admin requests to the list. They will be ignored. > Webobjects-dev mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/sparky005s%40yahoo.com > > This email sent to [email protected]
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
