Wiki source code of The WebObjects Beginner Book
Version 7.1 by Pascal Robert on 2011/05/04 12:06
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
6.1 | 1 | 1. History and Introduction |
![]() |
2.1 | 2 | 1*. Overview of WebObjects and EOF (what is it) |
3 | 1*. History of WebObjects and EOF (NeXT, Objective-C, Java) | ||
4 | 1*. Getting to Know Eclipse and WOLips | ||
5 | 1*. Project Wonder | ||
6 | 1*. Your First Application | ||
![]() |
6.1 | 7 | 1. Planning for a Maintainable Application |
![]() |
2.1 | 8 | 1*. Importance of MVC separation |
9 | 1*. Unit Testing WebObjects with Eclipse | ||
10 | 1*. Logging from the Start, Using log4j | ||
11 | 1*. Using Frameworks for Organization and Code Reuse | ||
12 | 1*. The Hello World Scaffold Application | ||
13 | 1*. RAD: Rapid Turnaround and Hot Code Replace | ||
![]() |
6.1 | 14 | 1. Thinking About Design with WebObjects |
![]() |
2.1 | 15 | 1*. How a WebObjects Developer Thinks |
16 | 1*. Relationships not Queries | ||
![]() |
6.1 | 17 | Good chance that you are already using another Web development tool, and good chance that you have to fetch and update your data with plain-old SQL calls. While knowing SQL calls is helpful in a WebObjects context, you must not think about them. With EOF, you fetch and update your data with Java methods and EOF will take care of translating your code to the corresponding SQL calls for your RDBMS system. What you do need is good database design concepts, since EOF can be very picky if your database model is not done right. |
![]() |
2.1 | 18 | 1*. Qualifiers |
19 | 1*. Fetch Specifications | ||
20 | 1*. Business Logic for Business Objects | ||
21 | 1*. Components are for View Not Process | ||
22 | 1*. Object Design | ||
23 | 1*. The Request - Response Loop | ||
24 | 1*. Why Defer Optimization Concerns | ||
25 | 1*. Key Value Coding and WOGNL Extensions | ||
26 | 1*. Description of the Application to be Built (blog) | ||
![]() |
6.1 | 27 | 1. The EOModel |
![]() |
2.1 | 28 | 1*. Entities |
29 | 1*. Attributes | ||
30 | 1*. Value Types | ||
31 | 1*. Prototypes | ||
32 | 1*. To 1 Relations | ||
33 | 1*. To Many Relations | ||
34 | 1*. Many to Many Join Tables | ||
35 | 1*. Flattened Relations | ||
36 | 1*. Using Multiple Models | ||
37 | 1*. Relationships Across Models | ||
38 | 1*. Fetch Specs in Model | ||
39 | 1*. EO Inheritance | ||
40 | 1*. EOGenerator | ||
41 | 1*. Handling Blob Data | ||
42 | 1*. Connection Dictionary | ||
43 | 1*. Runtime Selection of the Connection Dictionary and Prototypes | ||
44 | 1*. Debugging JDBC Connections and Jdbc2info | ||
![]() |
6.1 | 45 | 1. Leveraging the Power of EOF |
![]() |
2.1 | 46 | 1*. Fetching Objects |
47 | 1*. Locking | ||
48 | 1*. Data Freshness | ||
49 | 1*. Using SQL when needed | ||
50 | 1*. Raw Rows | ||
51 | 1*. Fetch Efficiency (pre and batch fetching) | ||
52 | 1*. Optimistic Locking Failures | ||
53 | 1*. Constraint Failures | ||
![]() |
6.1 | 54 | 1. Basics of Page Construction |
![]() |
2.1 | 55 | 1*. Strings and Formatting |
56 | 1*. Loops | ||
57 | 1*. Conditionals | ||
58 | 1*. Forms | ||
59 | 1*. Switch Component | ||
60 | 1*. Action methods | ||
61 | 1*. Bindings | ||
![]() |
6.1 | 62 | 1. Advanced Page Construction |
![]() |
2.1 | 63 | 1*. Localization (standard and Wonder) |
64 | 1*. WOComponentContent | ||
65 | 1*. CSS (standard and Wonder, including localization) | ||
66 | 1*. JavaScript (standard and Wonder, including localization) | ||
67 | 1*. Returning to Previous Page | ||
68 | 1*. RR Loop and Phases | ||
69 | 1*. Common Super Class | ||
![]() |
6.1 | 70 | 1. Deployment |
![]() |
2.1 | 71 | 1*. Using Apache: Develop Like you Deploy |
72 | 1*. Why Deployment at the Beginning? | ||
73 | 1*. Structure of .framework and .woa Build Products | ||
74 | 1*. WebObjects and Classpaths | ||
75 | 1*. Organizing Deployments | ||
76 | 1*. Apache Configuration | ||
77 | 1*. SSL Configuration | ||
78 | 1*. Deployment Components: JavaMonitor, Wotaskd and javawoservice | ||
79 | 1*. Setting up JavaMonitor | ||
80 | 1*. Editing spawnofwotaskd.sh | ||
81 | 1*. Configuring an Application | ||
82 | 1*. Logging and Permissions | ||
83 | 1*. Optimization: Adjusting Timeouts, Memory Usage, and Number of Instances | ||
84 | 1*. Trouble Shooting: Where to look when things go wrong | ||
85 | 1*. Deployment alternatives (servlet, mod//proxy)// | ||
86 | 1*. Wonder versions of wotaskd and JavaMonitor | ||
87 | 1*. Handling Transitions between http and https | ||
![]() |
6.1 | 88 | 1. Creating and Using Reusable Components |
![]() |
2.1 | 89 | 1*. Design |
90 | 1*. Caret Notation | ||
91 | 1*. Synchronization | ||
92 | 1*. Stateless | ||
93 | 1*. Refactoring Pages into Reusable Components | ||
![]() |
6.1 | 94 | 1. Validation |
![]() |
2.1 | 95 | 1*. Basics from Practical WebObjects |
96 | 1*. Using Page to Store exceptions | ||
97 | 1*. Using form inputs which handle their own validation | ||
98 | 1*. JavaScript Client Side Validation (maybe with components) | ||
![]() |
6.1 | 99 | 1. Web Services and WebObjects |
![]() |
2.1 | 100 | 1*. Using Direct2WebServices |
101 | 1*. Using WebServices Directly | ||
102 | 1*. The Lower Levels | ||
![]() |
6.1 | 103 | 1. D2W |
104 | 1. JavaClient | ||
105 | 1. Ajax | ||
106 | 1. WO and other clients | ||
![]() |
2.1 | 107 | 11. Cocoa |
108 | 11. ERRest/Dojo or other |