by Josh Paul
09/26/2003
WebObjects is most often referred to as an application server; however, it's much more. WebObjects consists of a set of frameworks that allow you to write cross-platform, server-distributed applications, and a set of tools to help you write them. The tools include WebObjects Builder, EOModeler, Rule Editor, and WebServices Assistant. You'll also use Project Builder and sometimes even Interface Builder.
The applications must be written in Java, but can be distributed in a variety of ways, including HTML, Java Client, or even via Web Services. Since WebObjects is Java-based, you can actually use other tools to create WO Applications, such as Eclipse, an open source Java IDE led by IBM. However, I'm going to concentrate on using Apple's tools for creating and distributing an HTML application.
Why Use WO?
WebObjects allows you to create a wide variety of applications. It's a mature suite of frameworks and tools that were obtained by Apple in its acquisition of NeXT.
WebObjects was a crown jewel at NeXT. Companies like Disney, Deutch Bank, and AAA all use(d) WebObjects to create cutting edge web applications (heck, even Dell used it). Even today, WebObjects is being used to create new and compelling applications, like the Apple Music Store.
For $700, you get the complete WebObjects package. In the package, you'll find a developers license and a deployment license, along with a few manuals. You will be able to deploy on almost every J2EE application server or on any system running J2SE (1.3.1 or higher). However, Apple only supports deployment on Mac OS X Server, Windows 2000, or Solaris 8. As you'll discover, WebObjects is an amazing deal at almost any price. The deployment license used to cost $50,000 just three years ago!)
What is EnterpriseObjects?
If you read about WebObjects, you're bound to come across the terms EnterpriseObjects (EOs),
EOF, and EOModel. I'm sure you're wondering "What the heck is all this EO stuff?" In my opinion, EO is the greatest thing since sliced bread.
However, since this is a technically sophisticated audience, I'll go into little greater detail. Also, it would be a crime to not mention
EOF while talking about WO. (This is even a felony in some parts of the world.)
The Enterprise Objects Framework (EOF) helps you manage the persistence of objects. Most often, this persistence relates to a database. EOF is wonderfully database-independent, so it doesn't matter if you initially use MySQL, only to discover you've won the lottery
and can grab a copy of Oracle. Of course, the more likely scenario is
that your company has decided to develop against MySQL and use Oracle
for deployment. In either case, a simple flip of the JDBC switch and
your application has migrated from MySQL to Oracle.
Why Use EOs?
EOF allows you to store information in a database and access the information
in an object-oriented manner. EOF provides a persistence layer to maintain
information over an indefinite period of time, even if you turn
your server off. There are a few products similar to EOF on the market, and
they fall under the Object-Relational Mapping banner.
Let's Get to Work: Create a Simple Login Page
In order for you to create the next Big Thing, you'll need to learn how
to use WebObjects. The first step in learning WO is to get a copy. If
you're a member of the Apple Developer
Connection, you should be able to download a demo version. If you're
not a member, you can either join ADC or purchase a copy of WebObjects.
Below, I'm going to walk you through creating a simple login page.
As a side note, I want to mention that I've been using WO/EOF since late
1999 and am still learning new features. The set of frameworks is rich
and deep, so don't be surprised if you're still discovering features
a few years after working with the product. As a programmer, I love
this fact.
Simple Login Window using WebObjects
Create a New Project
Go ahead and launch ProjectBuilder and create a new Project. You'll notice
that WO provides you with templates for nine different types of projects.
You should select the WebObjects Application template.
|