Wiki source code of Programming__WebObjects

Version 920.1 by Philippe Rabier on 2012/12/05 12:01

Show last authors
1 {{warning}}
2 This is deprecated information\!
3 {{/warning}}
4
5 WebObjects is a an integrated suite of freely available Java frameworks and tools that helps a developer to develop scalable, sophisticated applications for the Internet on most computers with Java support.
6
7 It is the most mature platform available for enterprise level web server development, providing object oriented framework support for relational database object persistence (in any JDBC compliant database), Ajax, Web Services, streaming media, Java Client, Rapid Application Development, file upload/download and many other popular web technologies.
8
9 Originally developed by and for NeXT computers in the mid 1990's, it was ported by Apple to Mac OS X and Mac OS X Server under Objective C and then completely translated to Java. It is the technology on which Apple's own iTunes Music Store was developed.
10
11 It has a very active and helpful developer community with mailing list support at the [[WO Developer Mailing List>>http://lists.apple.com/archives/Webobjects-dev]].
12
13 = Introduction =
14
15 * [[What is WebObjects?>>documentation:Overview-What is WebObjects]]
16 * Naming Conventions
17 ** The naming convention for objects in WebObjects is that names are written in what is called "camel case".
18 ** The various prefixes are not hard to explain. "NS" stands for "NextStep", "EO" for "EnterpriseObject", "WO" for WebObjects.
19 * [[Foundation>>documentation:Overview-Foundation]]
20 * [[Objective-C to Java Transition>>Overview-Objective-C to Java Transition]]
21 * [[Recent Changes>>http://en.wikibooks.org/w/index.php?title=Special:Recentchangeslinked&target=Programming%3AWebObjects]]
22
23 = License =
24
25 As of WebObjects 5.3, the deployment of WebObjects-based server applications is now permitted on any platform. The Xcode 3.1 license (The last that included any reference to WebObjects) stated this:
26
27 D. WebObjects Software. Subject to the terms and conditions of this License, you may incorporate the WebObjects Software included in the Developer Software into application programs (both client and server) that you develop on an Apple-branded computer. You may also reproduce and distribute the WebObjects Software unmodified, in binary form only, on any platform but solely as incorporated into such application programs and only for use by end-users under terms that are at least as restrictive of those set forth in this License (including, without limitation, Sections 2, 6 and 7 of this License).For avoidance of doubt, you may not distribute the WebObjects Software on a stand-alone basis, and you may not develop application programs using the WebObjects Software (or any portion thereof) on any non-Apple branded computer.
28
29 = Foundation =
30
31 * [[Foundation>>documentation:Overview-Foundation]]
32 * [[Key Value Coding>>documentation:Overview-Key Value Coding]]
33
34 = Enterprise Object Framework (EOF) =
35
36 == Introduction ==
37
38 * [[Overview>>documentation:EOF-Overview]]
39
40 == Modeling ==
41
42 * [[Overview>>documentation:EOF-Modeling-Overview]]
43 * Required Reading
44 ** [[Entities>>documentation:EOF-Modeling-Entities]]
45 ** [[GlobalIDs>>documentation:EOF-Modeling-GlobalIDs]]
46 ** [[Attributes>>documentation:EOF-Modeling-Attributes]]
47 ** [[Entity Inheritance>>documentation:EOF-Modeling-Inheritance]]
48 ** [[Fetch Specifications>>documentation:EOF-Modeling-Fetch Specifications]]
49 ** [[Common Pitfalls and Troubleshooting>>documentation:EOF-Modeling-Common Pitfalls and Troubleshooting]]
50 ** [[EOModeler>>documentation:EOF-Modeling-EOModeler]]
51 ** [[EOModeler on Windows>>documentation:EOF-Modeling-EOModeler on Windows]]
52 ** [[Booleans>>documentation:EOF-Modeling-Booleans]]
53 * Advanced
54 ** [[JDBC>>documentation:EOF-Modeling-JDBC]]
55 ** [[Prototypes>>documentation:EOF-Modeling-Prototypes]]
56 ** [[Custom Attributes>>documentation:EOF-Modeling-Custom Attributes]]
57 * [[Examples>>documentation:EOF-Modeling-Examples]]
58
59 == Using EOF ==
60
61 * [[Overview>>documentation:EOF-Using EOF-Overview]]
62 * Required Reading
63 ** [[The EOF Commandments>>documentation:EOF-Using EOF-The EOF Commandments]]
64 ** [[EO Editing Context>>documentation:EOF-Using EOF-EO Editing Context]]
65 ** [[Context and Database Locking>>documentation:EOF-Using EOF-Context and Database Locking]]
66 ** [[Faulting>>documentation:EOF-Using EOF-Faulting]]
67 ** [[Fetching>>documentation:EOF-Using EOF-Fetching]]
68 ** [[Deleting>>documentation:EOF-Using EOF-Deleting]]
69 ** [[Caching and Freshness>>documentation:EOF-Using EOF-Caching and Freshness]]
70 ** [[Optimistic Locking>>documentation:EOF-Using EOF-Optimistic Locking]]
71 ** [[Memory Management>>documentation:EOF-Using EOF-Memory Management]]
72 ** [[EOF Best Practices>>documentation:EOF-Using EOF-EOF Best Practices]]
73 ** [[Configuration Settings>>documentation:EOF-Using EOF-Configuration Settings]]
74 ** [[Common Pitfalls and Troubleshooting>>documentation:EOF-Using EOF-Common Pitfalls and Troubleshooting]]
75 * Advanced
76 ** [[EOGenerator>>EOF-Using EOF-EOGenerator]]
77 ** [[Logging>>documentation:EOF-Using EOF-Logging]]
78 ** [[EOF Performance Tuning>>documentation:EOF-Using EOF-EOF Performance Tuning]]
79 ** [[Primary Keys>>documentation:EOF-Using EOF-Primary Keys]]
80 ** [[Compound Primary Keys>>documentation:EOF-Using EOF-Compound Primary Keys]]
81 ** [[Concurrency>>documentation:EOF-Using EOF-Concurrency]]
82 ** [[Validation>>documentation:EOF-Using EOF-Validation]]
83 ** [[Database Adaptors and Plugins>>documentation:EOF-Using EOF-Database Adaptors and Plugins]]
84 ** [[Undo and Redo>>documentation:EOF-Using EOF-Undo and Redo]]
85 ** [[EOSharedEditingContext>>documentation:EOF-Using EOF-EOSharedEditingContext]]
86 ** [[Raw Rows>>documentation:EOF-Using EOF-Raw Rows]]
87 ** [[Batch Fetching>>documentation:EOF-Using EOF-Batch Fetching]]
88 ** [[Fetch Limits>>documentation:EOF-Using EOF-Fetch Limits]]
89 ** [[Bulk Operations>>documentation:EOF-Using EOF-Bulk Operations]]
90 ** [[Schema Changes>>documentation:EOF-Using EOF-Schema Changes]]
91 ** [[Delegates and Notifications>>documentation:EOF-Using EOF-Delegates and Notifications]]
92 ** [[Multiple Stacks or Instances>>documentation:EOF-Using EOF-Multiple Stacks or Instances]]
93 ** [[Custom Qualifiers>>documentation:EOF-Using EOF-Custom Qualifiers]]
94 ** [[Localization and Internationalization>>documentation:EOF-Using EOF-Localization and Internationalization]]
95 ** [[Default Values>>documentation:EOF-Using EOF-Default Values]]
96 ** [[Custom EOAdaptor>>documentation:EOF-Using EOF-Custom EOAdaptor]]
97 ** [[EOF Traces>>documentation:EOF-Using EOF-EOF Traces]]
98 ** [[Problems>>documentation:EOF-Using EOF-Problems]]
99 * [[Tips and Tricks>>documentation:EOF-Using EOF-Tips and Tricks]]
100 * [[Help//EOF//is//Doing//Strange//Things//>>documentation:EOF-Using EOF-Breaking EOF]]
101
102 = Web Applications =
103
104 == Introduction ==
105
106 * [[Overview>>Web Applications-Overview]]
107
108 == Development ==
109
110 * [[Overview>>Programming__WebObjects-Web Applications-Development-Overview]]
111 * Required Reading
112 ** [[WO Adaptor>>documentation:Development-WO Adaptor]]
113 ** [[WO Session>>documentation:Development-WO Session]]
114 ** [[WO Component>>Programming__WebObjects-Web Applications-Development-WO Component]]
115 *** [[Binding Synchronization>>documentation:Development-WO Component-Binding Synchronization]]
116 *** [[Code, Templates, and WODs>>documentation:Development-WO Component-Code Template and WODs]]
117 ** [[Component Actions>>documentation:Development-Component Actions]]
118 ** [[Direct Actions>>documentation:Development-Direct Actions]]
119 ** [[Authentication and Security>>documentation:Development-Authentication and Security]]
120 ** [[General Best Practices>>documentation:Development-General Best Practices]]
121 ** [[WOForm Best Practices>>documentation:Development-WOForm Best Practices]]
122 ** [[Direct Connect>>Development-Direct Connect]]
123 ** [[Frameworks>>documentation:Development-Frameworks]]
124 ** [[Ajax>>documentation:Development-Ajax]]
125 ** [[CSS>>documentation:Development-CSS]]
126 ** [[Sending Emails>>documentation:Sending Emails]]
127 ** [[Common Pitfalls and Troubleshooting>>documentation:Development-Common Pitfalls and Troubleshooting]]
128 * Advanced
129 ** [[Audit Trails>>documentation:Development-Audit Trails]]
130 ** [[Image Thumbnailing>>documentation:Development-Thumbnailing]]
131 ** [[Database vs Filesystem (aka Images in the Database?)>>documentation:Development-Database vs Filesystem]]
132 ** [[Stateless Components>>documentation:Development-Stateless Components]]
133 ** [[WOEvents and Logging>>documentation:Development-WOEvents and Logging]]
134 ** [[PDF Generation>>documentation:Development-PDF Generation]]
135 ** [[Excel Generation>>documentation:Development-Excel Generation]]
136 ** [[SSL>>documentation:Development-SSL requests via https protocol]]
137 ** [[Localization and Internationalization>>documentation:Development-Localization and Internationalization]]
138 ** [[Testing and JUnit>>documentation:Development-Testing and JUnit]]
139 ** [[Custom Error Handling>>documentation:Development-Custom Error Handling]]
140 ** [[Custom Templates>>documentation:Development-Custom Templates]]
141 ** [[Calling Commandline Applications>>documentation:Calling Commandline Applications]]
142 ** [[Profiling WO Apps>>documentation:Development-Profiling WO Apps]]
143 ** [[J2EE Integration>>documentation:Development-J2EE Integration]]
144 ** [[WebObjects and Subversion>>Development-WebObjects and Subversion]]
145 ** [[Third Party Jars>>documentation:Development-Third Party Jars]]
146 ** [[Generating Static Pages>>documentation:Development-Generating Static Pages]]
147 ** [[Cocoa EO Applications>>Web Applications-Development-Cocoa EO Applications]]
148 ** [[Custom Resource Manager>>documentation:Development-Custom Resource Manager]]
149 ** [[Persistent Sessions>>documentation:Development-Persistent Sessions]]
150 ** [[How Forms Work>>documentation:Development-How Forms Work]]
151 * [[Development on Windows>>Development on Windows]]
152 * [[Tips and Tricks>>documentation:Development-Tips and Tricks]]
153 * Examples
154 ** [[Page Layout>>documentation:Development-Examples-Page Layout]]
155 ** [[List Components>>documentation:Development-Examples-List Components]]
156 ** [[Calendar Component>>documentation:Development-Examples-Calendar Component]]
157 ** [[Path Inspector>>documentation:Development-Examples-Path Inspector]]
158 ** [[Alphabetic List>>documentation:Development-Examples-Alphabetic List]]
159 ** [[Login>>documentation:Development-Examples-Login]]
160 ** [[Anchors>>documentation:Development-Examples-Anchors]]
161 ** [[Open Link in New Window>>documentation:Development-Examples-Open Link in New Window]]
162 ** [[Return a File>>documentation:Development-Examples-Return a File]]
163
164 == Deployment ==
165
166 * [[Overview>>Overview]]
167 * Required Reading
168 ** [[Apache>>documentation:Configuring Apache for WebObjects]]
169 ** [[Standard Deployment>>Deployment-Standard Deployment]]
170 ** [[Logging>>documentation:Log Rotation]]
171 ** [[Split Install>>documentation:Split Deployments]]
172 ** [[Common Pitfalls and Troubleshooting>>documentation:Troubleshooting Deployment]]
173 * Advanced
174 ** [[WOStats>>documentation:Troubleshooting WOStats]]
175 ** [[Additional Monitoring>>documentation:Monitoring your deployed Applications]]
176 ** [[Scheduled Restart>>documentation:Troubleshooting Scheduled Restarts]]
177 ** [[Tomcat Deployment>>documentation:Deploying with Tomcat]]
178 ** [[Killing WOA Processes>>documentation:Killing WOA Processes]]
179 ** [[Debugging Frozen Deployed Instances>>documentation:Troubleshooting Frozen Deployed Instances]]
180 * Platform Specifics
181 ** [[Mac OS X Server>>documentation:Deploying on Mac OS X 10.6 (Snow Leopard)]]
182 ** [[Solaris>>documentation:Deploying on Solaris (WO 5.3.3)]]
183 * Helpful Tools & Shellscripts
184
185 = Web Services =
186
187 * [[Overview>>Programming__WebObjects-Web Services-Overview]]
188 * Required Reading
189 ** [[WO as a Web Service Provider>>documentation:Web Services-Web Service Provider]]
190 ** [[WO as a Web Service Consumer>>documentation:Web Services-Web Service Consumer]]
191 ** [[Common Pitfalls and Troubleshooting>>documentation:Web Services-Common Pitfalls and Troubleshooting]]
192 * General Info
193 ** [[Instructions for .NET consuming Direct to WebServices>>documentation:Web Services-Instructions for .NET consuming Direct to WebServices]]
194 ** [[Testing Services with Terminal>>documentation:Web Services-Testing Services with Terminal]]
195 * Advanced
196 ** [[Sending Large Data>>documentation:Web Services-Sending Large Data]]
197 ** [[How to Trust Any SSL Certificate>>documentation:Web Services-How to Trust Any SSL Certificate]]
198 ** [[Problems>>documentation:Web Services-Problems]]
199 ** [[Controlling Enterprise Object Serialisation>>documentation:Web Services-Controlling Enterprise Object Serialisation]]
200 ** [[Controlling WSDL Service Location>>documentation:Web Services-Controlling WSDL Service Location]]
201 ** [[Integration with WebServicesCore on MacOS-X>>documentation:Web Services-Integration with WebServicesCore on MacOS-X]]
202 ** [[Working With Temporary GlobalIDs>>documentation:Web Services-Working With Temporary GlobalIDs]]
203
204 = Complementary Frameworks =
205
206 == Project WONDER ==
207
208 * [[Overview>>documentation:Project WONDER-Overview]]
209 * Required Reading
210 ** [[Installing>>documentation:Getting the Wonder Source Code]]
211 ** [[Quickstart>>documentation:Project WONDER-Quickstart]]
212 ** [[History>>documentation:Project WONDER-History]]
213 ** [[Frameworks>>Programming__WebObjects-Project WONDER-Frameworks]]
214 *** [[Ajax>>documentation:Ajax Framework]]
215 *** [[ERCalendar>>documentation:ERCalendar Framework]]
216 *** [[ERChangeNotificationJMS>>documentation:ERChangeNotificationJMS Framework]]
217 *** [[ERExtensions>>documentation:ERExtensions Framework]]
218 *** [[ERJavaMail>>documentation:ERJavaMail Framework]]
219 *** [[ERPlot>>documentation:ERPlot Framework]]
220 *** [[ERSelenium>>documentation:ERSelenium Framework]]
221 *** [[ExcelGeneration>>documentation:Project WONDER-Frameworks-ExcelGeneration]]
222 *** [[PostgresqlPlugin>>documentation:PostgresqlPlugin Framework]]
223 *** [[Validity>>documentation:Validity Framework]]
224 *** [[WOOgnl>>documentation:WOOgnl Framework]]
225 *** [[WOPaypal>>documentation:WOPaypal Framework]]
226 * Advanced
227
228 == WireHose ==
229
230 * [[Overview>>documentation:Wirehose]]
231 * Basic Concepts
232 ** [[Content Management>>documentation:Wirehose-Content Management]]
233 ** [[Access Control>>documentation:Wirehose-Access Control]]
234 ** [[Dynamic Layouts>>documentation:Wirehose-Dynamic Layouts]]
235 ** [[Rapid Development>>documentation:Wirehose-Rapid Revelopment]]
236 * Reference
237 ** Online Reference Library
238 *** [[Developer Overview>>http://www.wirehose.com/developer/DeveloperOverview.html]]
239 *** [[Java API Reference>>http://www.wirehose.com/developer/javadoc/]]
240 *** [[Properties Reference>>http://www.wirehose.com/developer/Properties.html]]
241 *** [[Database setup>>http://www.wirehose.com/developer/DatabaseSetup.html]]
242 *** [[Regular Expressions>>http://www.wirehose.com/developer/javadoc/com/stevesoft/pat/package-summary.html#reference]]
243 *  
244
245 == LEWOStuff ==
246
247 * [[Overview>>LEWOStuff-Overview]]
248
249 == GVC Frameworks and GVC.SiteMaker ==
250
251 * [[Overview>>documentation:GVC Frameworks-Overview]]
252
253 = Development Tools =
254
255 * [[Eclipse and WOlips>>WOL:Development Tools-Eclipse and WOlips]]
256 * [[EOModeler>>documentation:EOF-Modeling-EOModeler]]
257 * [[Running Though Apache>>documentation:Development Tools-Running Through Apache]]
258
259 = Direct-To =
260
261 * Required Reading
262 ** [[Web>>documentation:Direct-To-Web]]
263 * Advanced
264
265 = =
266
267 *  
268
269 = Java Client =
270
271 * [[Overview>>documentation:Java Client-Overview]]
272
273 = Testing =
274
275 * [[Load Testing WO Apps with JMeter>>documentation:Testing-Load Testing WO Apps with JMeter]]
276 * [[WOUnitTest>>Testing-WOUnitTest]]
277
278 = Database Compatibility / Comparisons =
279
280 * [[FrontBase>>Database Compatibility and Comparisons-FrontBase]]
281 * [[OpenBase>>Database Compatibility and Comparisons-OpenBase]]
282 * [[MySQL>>Database Compatibility and Comparisons-MySQL]]
283 * [[Postgresql>>Database Compatibility and Comparisons-PostgreSQL]]
284 * [[Oracle>>Database Compatibility and Comparisons-Oracle]]
285 * [[Data Migration>>documentation:Database Compatibility and Comparisons-DataMigration]]
286 * [[Informix>>Database Compatibility and Comparisons-Informix]]
287
288 = Alternative Technologies Pros / Cons =
289
290 * [[Cayenne>>Alternative Technologies-Cayenne]]
291 * [[Ruby on Rails>>Alternative Technologies-Ruby on Rails]]
292
293 = Additional Resources =
294
295 * [[Websites>>documentation:Additional Resources-Websites]]
296 * [[Books>>documentation:Additional Resources-Books]]
297 * [[Training>>documentation:Additional Resources-Training]]