Web 2.0 is a buzzword that characterizes the trend to make web applications more accessible. It is about opening up your data and services to your customers. It is about supporting standard protocols and allowing your application to run on many different devices, not just a web browser on a desktop computer. It is about letting your users interact with each other. It is about letting your application evolve with the needs of your users. That’s why many Web 2.0 projects are constantly evolving.
In this chapter we will present the different solutions offered by Seaside to support Web 2.0. We will extend the todo application we built in Chapter 15 with Web 2.0 technology. The definition of Web 2.0 itself is still open. Every day there are new features popping up, calling themselves the new leader in the Web 2.0 movement. Seaside is very supportive of the Web 2.0 philosophy.
- Seaside ensures that the XHTML it produces is valid. It encourages developers to use meaningful XHTML markup and frees them from worrying about the final look of the application. Seaside lets designers define the colors, fonts and layout of the page through Cascading Style Sheets (CSS) as shown in Chapter 8.
- Seaside embraces the evolution of web applications. In contrast to file-based web frameworks, Seaside allows one to take advantage of the full power of the Smalltalk development environment. The ability to refactor, test and navigate an application with the same set of tools makes it extremely powerful and easy to change and adapt the application to new needs. On-the-fly debugging is a huge time saver.
- Seaside integrates easily with other output formats. Microformats are the easiest way to go. Just add specific classes and attributes to your XHTML to make your application generate a valid microformat. In Chapter 19 we demonstrate how to add an RSS (Really Simple Syndication) stream of todo items to your users.
- Comet takes AJAX to the next level. While traditional web servers always wait for the client to request data, Comet allows you to actively push changes from the server to the client. In Chapter 22 we will use this technology to let other people observe how our todo list updates.