Dynamic Web Development with Seaside

Buy PDF

Table of Contents

Table of Contents
Table of Figures
Foreword
1
Introduction
1.1
What is Seaside?
1.2
Seaside Applications
1.3
What is Smalltalk?
1.3.1
One-Click Image
1.4
Structure of the Book
1.5
Formatting Conventions
1.6
About the Online Book
1.7
About the PDF Book
1.8
Acknowledgments
I
Getting Started
2
Pharo and Squeak
2.1
Using the One Click Image
2.1.1
Of Mice and Menus
2.2
What is a Smalltalk Image?
2.3
The Comanche Server
2.4
A First Seaside Component
2.4.1
Defining a Category
2.4.2
Defining a Component
2.4.3
Defining the Code
2.4.4
Rendering a Counter
2.4.5
Registering as a Seaside Application
2.4.6
Automatically Registering a Component
2.4.7
Adding Behavior
2.4.8
Adding a Class Comment
2.5
Saving your Package to Monticello
2.6
Summary
3
Cincom Smalltalk
3.1
Loading Seaside into VisualWorks
3.2
Seaside Operations Menu
3.3
Seaside Settings
3.4
Persistence
3.5
Developing in VisualWorks
3.5.1
Basic Tools
3.5.2
Packages and Categories
3.5.3
Name Spaces
3.5.4
Additional Components
3.6
Developing a First Component
3.6.1
Create a Package
3.6.2
Create a Name Space
3.6.3
Define a Component
3.6.4
Editing Generated Methods
3.6.5
Rendering the Counter
3.6.6
Registering the Application
3.6.7
Adding Behavior
3.6.8
Rendering the Behavior
4
GemStone/S
4.1
Using the GLASS Virtual Appliance
4.2
A First Seaside Component
4.2.1
Defining a Component
4.2.2
Defining Some Methods
4.2.3
Rendering a counter
4.2.4
Registering the Application
4.2.5
Adding Behavior
4.3
Keeping Up With the Latest Features
5
GNU Smalltalk
5.1
Creating a GNU Smalltalk image with Seaside loaded
5.2
Operating the GNU Smalltalk virtual machine remotely
5.3
Developing in GNU Smalltalk
5.4
Developing your first component
6
VA Smalltalk
6.1
Loading Seaside into VA Smalltalk
6.2
Starting VA Smalltalk Seaside
6.2.1
Seaside Server Control Panel Menu Options
6.2.2
Adding a Server Adaptor
6.2.3
Starting a Server Adaptor
6.2.4
A Simple Seaside Example
6.3
Developing Your First Seaside Component
6.3.1
Defining a Component
6.3.2
Adding Some Methods
6.3.3
Rendering a Counter
6.3.4
Registering the Counter Component
6.3.5
Adding Behavior to the Counter
II
Fundamentals
7
Rendering Components
7.1
Rendering Hello World
7.2
Fun with Seaside XHTML Canvas
7.3
More Fun with the Seaside Canvas
7.4
Rendering Objects
7.5
Brush Structure
7.6
Learning Canvas and Brush APIs
7.7
Rendering Lists and Tables
7.8
Style Sheets
7.9
Summary
8
CSS in a Nutshell
8.1
CSS Principles
8.2
CSS Selectors
8.2.1
Tag Selector
8.2.2
Class Selector
8.2.3
Pseudo Class Selector
8.2.4
Reference or ID Selector
8.3
Composed Selectors
8.4
Summary
9
Anchors and Callbacks
9.1
From Anchors to Callbacks
9.2
Callbacks
9.3
About Callbacks
9.4
Contact Information Model
9.5
Listing the Contacts
9.6
Adding a Contact
9.7
Removing a Contact
9.8
Creating a mailto: Anchor
9.9
Summary
10
Forms
10.1
Basics: Text Input Fields
10.2
Convenience Methods
10.3
Drop-Down Menus and List Boxes
10.4
Radio Buttons
10.5
Check Boxes
10.6
Date Inputs
10.7
File Uploads
10.8
Summary
III
Using Components
11
Calling Components
11.1
Displaying a Component Modally
11.2
Example of call/answer
11.3
Call/Answer Explained
11.4
Component Sequencing
11.5
Answer to the Caller
11.6
Don't call while rendering
11.7
A Look at Built-In Dialogs
11.8
Handling The Back Button
11.9
Show/Answer Explained
11.10
Summary
12
Embedding Components
12.1
Principle: Component Children
12.2
Example: Embedding an Editor
12.3
Components All The Way Down
12.4
Intercepting a Subcomponent's Answer
12.5
A Word about Reuse
12.6
Decorations
12.6.1
Visual Decorations
12.6.2
Behavioral Decorations
12.7
Component Coupling
12.8
Summary
13
Tasks
13.1
Sequencing Components
13.2
Isolation: Control Application Flow
13.3
Hotel Reservation: Task vs. Component
13.4
Mini Inn: Embedding Components
13.5
Summary
14
Writing good Seaside Code
14.1
A Seaside Program Checker
14.2
Slime at Work
14.3
Summary
IV
Seaside In Action
15
A Simple ToDo Application
15.1
Defining A Model
15.2
Defining the View
15.3
Rendering and Brushes
15.4
Adding Callbacks
15.5
Adding a Form
15.6
Calling Other Components
15.7
Answer
15.8
Embedding Child Components
15.9
Summary
16
A Web Sudoku Player
16.1
Sudoku Solver
16.2
Sudoku Component
16.3
Rendering the Sudoku Grid
16.4
Adding Input
16.5
Back Button
16.6
Summary
17
Serving Files
17.1
Images
17.2
Including CSS and Javascript
17.3
Working With File Libraries
17.3.1
Creating a File Library
17.3.2
Referencing FileLibrary files by URL
17.4
Example of FileLibrary in use
17.5
Which method should I use?
17.6
A Word about Character Encodings
17.6.1
Character sets
17.6.2
Encodings
17.6.3
In Seaside and Pharo
18
Managing Sessions
18.1
Accessing the Current Session
18.2
Accessing the Session from the Debugger
18.3
Customizing the Session for Login
18.4
Lifecycle of a Session
18.5
Catching the Session Expiry Notification
18.6
Recovering from Expired Sessions
18.7
Manually Expiring Sessions
18.8
Summary
V
Web 2.0
19
Really Simple Syndication
19.1
Creating a News Feed
19.2
Render the Channel Definition
19.3
Rendering News Items
19.4
Subscribe to the Feed
19.5
Summary
20
Dynamic Content with Scriptaculous
20.1
Prototype and script.aculo.us
20.1.1
Installation
20.1.2
Adding the Library
20.2
Snippets and Brushes
20.2.1
Instantiate a Brush
20.2.2
Using a Brush
20.2.3
Configure a Brush
20.3
Adding an Effect
20.4
AJAX: Talking back to the Server
20.4.1
Defining a Callback
20.4.2
Serializing a Form
20.4.3
Updating XHTML
20.4.4
Behind the curtains
20.4.5
Wrap Up
20.5
Drag and Drop
20.6
JavaScript Controls
20.7
Debugging AJAX
20.8
Summary
21
Comet
21.1
Inside Comet
21.2
Getting Started
21.3
The Counter Explained
21.4
Summary
VI
Advanced Topics
22
Deployment
22.1
Preparing for Deployment
22.2
Seaside-Hosting
22.3
Deployment with Apache
22.3.1
Preparing the Server
22.3.2
Installing Apache
22.3.3
Installing the Squeak VM
22.3.4
Running the VMs
22.3.5
Configuring Apache
22.3.6
Serving files with Apache
22.4
Maintaining Deployed Images
22.4.1
Headful System
22.4.2
Virtual Network Computing
22.4.3
Deployment Tools
22.4.4
Request Handler
23
Some Persistency Approaches
23.1
Image-Based Persistence
23.2
Object Serialization
23.3
Sandstone: an Active-Record Image-based Approach
23.3.1
The SandstoneDB API
23.3.2
About Concurrency
23.4
Magma: an Object-Oriented Database
23.4.1
How it works
23.4.2
Getting Started
23.4.3
Running Remotely
23.5
GLORP: an Object-Relational Mapper
24
Magritte: Meta-data at Work
24.1
Basic Principles
24.2
First Example
24.3
Descriptions
24.4
Exceptions
24.5
Adding Validation
24.6
Accessors and Mementos
24.7
Custom Views
24.8
Custom Descriptions
24.9
Summary
Keyword Index

User Contributed Notes

bromagosa (27 October 2009, 2:22 am)

The second the printed version comes out I'm gonna buy it straight away.

 

This totally covers Seaside's lack of documentation once and for all!

cacciaresi (1 September 2009, 3:21 pm)

WOW, this is really cool!

Thanks!

Add a Note

Copyright © 9 February 2010 Michael Davies, Stéphane Ducasse, Lukas Renggli, C. David Shaffer, Rick Zaccone
This book is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 license.

This book is published using Seaside, Magritte and the Pier book publishing engine.