From 9940083e7f0f6e46de66703987b6b1286904465c Mon Sep 17 00:00:00 2001 From: Dmitri Zagidulin Date: Wed, 21 Oct 2015 14:51:56 -0400 Subject: [PATCH] First draft, parts and chapters (#4) --- 01-Cincom/Cincom.pillar | 16 ++++++++++++++++ 01-GettingStarted/GettingStarted.pillar | 13 +++++++++++++ 01-Pharo/Pharo.pillar | 17 +++++++++++++++++ 02-Fundamentals/Fundamentals.pillar | 7 +++++++ .../RenderingComponents.pillar | 11 +++++++++++ Introduction/Introduction.pillar | 18 ++++++++++++++++++ Introduction/acknowledgments.pier | 1 - Introduction/formatting-conventions.pier | 1 - Introduction/introduction.pier | 1 - Introduction/one-click-image.pier | 1 - Introduction/online-book.pier | 1 - Introduction/pdf-book.pier | 1 - Introduction/print-book.pier | 1 - Introduction/seaside-applications.pier | 1 - Introduction/structure-of-book.pier | 1 - Introduction/what-is-seaside.pier | 1 - Introduction/what-is-smalltalk.pier | 1 - pillar.conf | 18 ++++++------------ 18 files changed, 88 insertions(+), 23 deletions(-) create mode 100644 01-Cincom/Cincom.pillar create mode 100644 01-GettingStarted/GettingStarted.pillar create mode 100644 01-Pharo/Pharo.pillar create mode 100644 02-Fundamentals/Fundamentals.pillar create mode 100644 02-RenderingComponents/RenderingComponents.pillar create mode 100644 Introduction/Introduction.pillar delete mode 100644 Introduction/acknowledgments.pier delete mode 100644 Introduction/formatting-conventions.pier delete mode 100644 Introduction/introduction.pier delete mode 100644 Introduction/one-click-image.pier delete mode 100644 Introduction/online-book.pier delete mode 100644 Introduction/pdf-book.pier delete mode 100644 Introduction/print-book.pier delete mode 100644 Introduction/seaside-applications.pier delete mode 100644 Introduction/structure-of-book.pier delete mode 100644 Introduction/what-is-seaside.pier delete mode 100644 Introduction/what-is-smalltalk.pier diff --git a/01-Cincom/Cincom.pillar b/01-Cincom/Cincom.pillar new file mode 100644 index 0000000..1957741 --- /dev/null +++ b/01-Cincom/Cincom.pillar @@ -0,0 +1,16 @@ +!!Cincom Smalltalk +@sec:started-cincom + +''by Bruce Boyer, Cincom Systems, VisualWorks Development'' + +In this section we describe how to get started developing a Seaside application +in VisualWorks. We assume that you already have a 7.7 version of VisualWorks +installed. If not, go to the Cincom Smalltalk download site +http://www.cincomsmalltalk.com/. We’ll be working with the noncommercial +release, although the features that are preloaded into the noncommercial version +aren’t needed for working with Seaside. + +As an alternative, Seaside and VisualWorks are tightly integrated in +WebVelocity, which is also available on the Cincom Smalltalk download page. +WebVelocity provides a browser-based development environment and detailed +documentation that help guide you in developing Seaside applications. diff --git a/01-GettingStarted/GettingStarted.pillar b/01-GettingStarted/GettingStarted.pillar new file mode 100644 index 0000000..d80c72b --- /dev/null +++ b/01-GettingStarted/GettingStarted.pillar @@ -0,0 +1,13 @@ +!I. Getting Started +@sec:gettingstarted + +This part will show you how to get a simple Seaside application up and running +in your favourite Smalltalk dialect in less than 15 minutes. There is no point +in reading all of the following chapters, simply pick the one describing your +favourite platform and skip the others. Seaside itself is the same everywhere, +only the Smalltalk interface and development tools differ slightly from dialect +to dialect. + +If you’re new to Smalltalk, the instructions for Pharo/Squeak will introduce you +to the Seaside One Click Image, which is designed to get you up and running as +quickly as possible. diff --git a/01-Pharo/Pharo.pillar b/01-Pharo/Pharo.pillar new file mode 100644 index 0000000..b35ab04 --- /dev/null +++ b/01-Pharo/Pharo.pillar @@ -0,0 +1,17 @@ +!!Pharo Smalltalk +@sec:started-pharo + +In this chapter we will show you how to get started with Seaside using the +Seaside “One Click Image”. Within 15 minutes, you will install and launch +Seaside, interact with a Smalltalk IDE and write a simple Seaside counter +application. You will follow the entire procedure of creating a Seaside +application. This process will highlight some of the features of Seaside. If you +are new to Smalltalk, we suggest you to read chapters 3, 4 and 5 of ''Pharo by +Example'' which is a free and online book available from www.pharobyexample.org. +This will highlight some of the features of Smalltalk. + +As we mentioned previously, there are several implementations of Smalltalk. Some +are commercial, such as VisualWorks, VA Smalltalk, Gemstone, and Dolphin. Others +are open source, such as Pharo, Squeak and GNU Smalltalk; and finally, some are +free but not open source, such as Smalltalk/X. Seaside is developed in Pharo, +then ported to the other Smalltalks. diff --git a/02-Fundamentals/Fundamentals.pillar b/02-Fundamentals/Fundamentals.pillar new file mode 100644 index 0000000..e75be20 --- /dev/null +++ b/02-Fundamentals/Fundamentals.pillar @@ -0,0 +1,7 @@ +!II. Fundamentals +@sec:fundamentals + +In this part we will introduce you to the manipulation of basic elements such as +texts, anchors and callbacks as well as forms. It presents the notion of +''brushes'' that is central to the Seaside API. Understanding these concepts +will be fundamental to your use of Seaside. diff --git a/02-RenderingComponents/RenderingComponents.pillar b/02-RenderingComponents/RenderingComponents.pillar new file mode 100644 index 0000000..4d88827 --- /dev/null +++ b/02-RenderingComponents/RenderingComponents.pillar @@ -0,0 +1,11 @@ +!!Rendering Components +@sec:renderingcomponents + +In this chapter you will learn the basics of displaying text and other +information such as tables and lists with Seaside and its powerful XHTML +manipulation interface. You will learn how to create a component which could +include text, a form, a picture, or anything else that you would like to display +in a web browser. Seaside’s component framework is one of its most powerful +features and writing an application in Seaside amounts to creating and +manipulating components. You will learn how to use Seaside’s API, which is based +on the concept of ""brushes"", to generate valid XHTML. diff --git a/Introduction/Introduction.pillar b/Introduction/Introduction.pillar new file mode 100644 index 0000000..e72d6f4 --- /dev/null +++ b/Introduction/Introduction.pillar @@ -0,0 +1,18 @@ +!Introduction +@sec:introduction + +Seaside is an excellent framework for easily developing advanced and dynamic web +applications. Seaside lets you create reusable components that you can freely +compose using Smalltalk — a simple and pure object-oriented language. + +Seaside offers a powerful callback mechanism that lets you trigger code snippets +when the users clicks on a link. With Seaside, you can debug your web +application with a powerful dynamic debugger and modify the code on the fly +while your server is running. This makes the development of complex dynamic +applications smooth and fast. + +With Seaside, you have the time to focus on your design and solutions to your +problems. In this chapter, we give an overview of Seaside and present some +Smalltalk basics to help you to follow along with the book. In the next chapter, +we will show you how you can program your first Seaside component in just 15 +minutes. diff --git a/Introduction/acknowledgments.pier b/Introduction/acknowledgments.pier deleted file mode 100644 index d205e68..0000000 --- a/Introduction/acknowledgments.pier +++ /dev/null @@ -1 +0,0 @@ -We wish to thank all the people who helped to make this book possible. Torsten Bergmann, Damien Cassou, Tom Krisch, Philippe Marshall, Ruben Schempp, Roger Whitney, and Julian Fitzell carefully reviewed the book and provided valuable feedback. Martin J. Laubach for his Sudoku code. Ramon Leon for letting us use his ideas described on his blog on SandStoneDB, and Chris Muller for Magma. Jeff Dorst provided financial support for supporting student text reading. Markus Gaelli for brainstorming on the book title. Samuel Morello for designing the cover. We thank the European Smalltalk User Group, Inceptive.be, Cincom Systems, GemStone Systems Inc. and Instantiations for the generous financial support. Furthermore, an uncountable number of people provided feedback through the notes on the website: aaamos, agarcia, alamkhan733, aldeveron, alejperez, alex.albitov, alleagrastudena, amalagsoftware, amalawi, andre, andrew.evil.genius, andy.burnett, anhlh, anitatiwari66, anonimo, antkrause, anukpriya, apstein, arc, ardaliev, artem.voroztsov, asselinraymond, astares, awol, b.prior, bart.gauquie, basilmir, bendict101, benoit.astruc, bgridley, bilesja, bjorn.eiderback, blank, bonzini, bouraqadi, brauer, briannolan45, bromagosa, bruefkasten, bschwab, bugmenot, cacciaresi, carlg, carlos.crosetti, cdrick65, cems, cesar.smx, chaetal, chicoary, chip, chris.pollard, chrismeyer206, christophe.rettien, chunsj, citizen428, cj-bachinger, colson, craig, crystal.dry.eyes, cuyeu, cy.delaunay, dago1965, damien.cassou, damien.pollet, dan, danc, david, davidleonhardt, dev, didier, dmytrenko.d, dsblakewatson, dvciontu, ed.stow, efinleyscience, elendilo, epovazan, fabio.braga, fgadzinski, flipityskipit, fractallyte, fraggerbe, francois.le.coguiec, francois.stephany, frans, frelach, friends.prince, fritz.schenk, galyathee, garybarnett, gaston.dalloglio, geert.wl.claes, george, ginolee859, goaway1000, haga551010, halcyonshizzle, hannes.hirzel, hentai, hichem_warum_nicht, hjhoffmann, hm, ino.santangelo, intrader, ismailshuaibu, itsme213, jailachure11, jayers, jborden23, jeremy.chan, jesusalbertosanchez, jgarcia, jguell, jkiggundu, jnials, joel, john.chludzinski, john_okeefe, josef.springer, jpamayag, jred_xv, jrinkel, juanmfernandez, junkabyss, juraj.kubelka, justin.forder, karsten, kees, kjborden23, kommentaren, kontakinti_11, kremerk, landriese, laurent.laffont, lehoanganh.vn, lenglish5, lgadallah, liangbing64, linuxghostpower, liquidhorse, lorenzo, luis.ramirez, ma.chris.m, mani7info, manishmore14, marcello.rocha, marcos.macedo, mark.owens999, martin.t.krebs, matthias.berth, mcleod, merlyn, michael, misaeboca, miss.martinezsandra, mitul_b_shah, momode56, momoewang, morbusg, mriffe, muzzahmed01, nathan_benninghoff, nath_kamal, ncalexander, netprobe, nick.ager, nielvv, nikita.pristupchik, niko.saint, niko.schwarz, nizar.jouini, nrf, nwmullen, offray, pat.maddox, paulpham, pdebruic, peterg, petton.nicolas, pjw1, qwe517, r.koller, rafael.luque.leiva, rajat.tags, ramiro, ramon.leon, ramshreyas.rao, razavi, rene.mages, rh, rhawley, richard_a_green, riverdusty, robert, robert.reitenbach, robin.luiten, rogthedodge, ron.fucci, rsiel.455, rwelch, samoila.mircea, samthecool7, sean, seansorrel, seaside.web.macta, sebovick, sergio, sergio.rrd, shar_28_min, sheshadri.mantha, simon, simon.denier, smalltalk, smalltalktelevision, snoobabk, sokhoeun.kong, solveig.instantiations, squeakman, ssmith, stefan.izota, stephan, stephen.smith, steve, stevek, sthomas1, stuart, sukumini_g, szaidi6, t.pierce, tallman, tanga, tariqrauf2002, tatacarrera, tfahey, thewinterlion, thiagosl, timloo0710, tobez, tony, tony.fleig, tpburke, tudor.girba, tyusupov, udo.schneider, unixmonkey1, vagy, vanchau, victorct83, vinref, vmusulainen, vsteiss, watchlala, web.macta, wolfopsys, wrcstewart, wrinkles, write.to.me, wsgibson, xekoukou, xs4hkr, y2ahsan, yanni, yasirkaram, zanveb82, zhangxinchun2008. Thank you all. We give a special thanks to Avi Bryant and Julian Fitzell for inventing Seaside. In particular, they showed us that going against the current is possible when you have brilliant ideas and a powerful language such as Smalltalk. \ No newline at end of file diff --git a/Introduction/formatting-conventions.pier b/Introduction/formatting-conventions.pier deleted file mode 100644 index 63f2612..0000000 --- a/Introduction/formatting-conventions.pier +++ /dev/null @@ -1 +0,0 @@ -We need to say a word about formatting conventions before we proceed. In Pharo, as in most Smalltalk implementations, you edit code using a code browser as we will show you in the next Chapter. To look at the code for a method, you select a package, then a class, a method category and finally the method you want to see. The method's class is always visible. When reading a book, a method's class may not be so obvious. To help your understanding of the code we present, we will follow a common convention to display Smalltalk code: we will prefix a method signature with its class name. Here is an example. Suppose you need to enter the method ==renderContentOn:== in your browser, and this method is in the class: ==WebSudoku==. You will see the following code in your browser. ==renderContentOn: html == html div == id: 'board'; == with: [ html form: [ self renderBoardOn: html ] ] To help you remember that this method is defined in the class ==WebSudoku==, we will write it as follows: ==WebSudoku>>renderContentOn: html == html div == id: 'board'; == with: [ html form: [ self renderBoardOn: html ] ] When you enter the text for this method, you do not type ==WebSudoku>>==. It is there only so you will know the method's class. We will use a similar convention in the running text. To be precise about a method and its class, we will use ==WebSudoku>>renderContentOn:==. In Smalltalk, a class and an instance of a class both have methods. The class methods are analogous to static methods in Java. Class methods respond to messages sent to the class itself. To make it clear that we are talking about a class method, we will refer to it using ==WebSudoku class>>canBeRoot==. For example, here is the definition of the class method ==canBeRoot==, defined on the class ==WebSudoku==: ==WebSudoku class>>canBeRoot == ^ true We use the following annotations for specific notes: @@note This is a side-note and might be interesting to readers more curious about the topic. @@advanced This is a remark covering advanced topics. It can be safely skipped on the first pass through the book. @@important This is an important note, if you do not follow the suggestions you are likely to get into trouble. \ No newline at end of file diff --git a/Introduction/introduction.pier b/Introduction/introduction.pier deleted file mode 100644 index 85133aa..0000000 --- a/Introduction/introduction.pier +++ /dev/null @@ -1 +0,0 @@ -Seaside is an excellent framework for easily developing advanced and dynamic web applications. Seaside lets you create reusable components that you can freely compose using Smalltalk \-- a simple and pure object-oriented language. Seaside offers a powerful callback mechanism that lets you trigger code snippets when the users clicks on a link. With Seaside, you can debug your web application with a powerful dynamic debugger and modify the code on the fly while your server is running. This makes the development of complex dynamic applications smooth and fast. With Seaside, you have the time to focus on your design and solutions to your problems. In this chapter, we give an overview of Seaside and present some Smalltalk basics to help you to follow along with the book. In the *next chapter>getting-started*, we will show you how ''you'' can program your first Seaside component in just 15 minutes. \ No newline at end of file diff --git a/Introduction/one-click-image.pier b/Introduction/one-click-image.pier deleted file mode 100644 index 7bea9b5..0000000 --- a/Introduction/one-click-image.pier +++ /dev/null @@ -1 +0,0 @@ -There are several implementations of Smalltalk. Some are commercial, such as Cincom Smalltalk, GemStone Smalltalk, VA Smalltalk, and Dolphin Smalltalk. Others are open source, such as Pharo, Squeak and GNU Smalltalk. Seaside is developed in Pharo, then ported to the other Smalltalks. The first chapter provides an equivalent of a ``Getting Started\'' chapter to all major Smalltalk implementations. In this book, we use the Seaside 3.0 ``One Click Image\'' which you can find on the Seaside website at *www.seaside.st>http://www.seaside.st/*. The ``One Click Image\'' is a bundle of everything you need to run Seaside once you unzip it. This book is based on Pharo Smalltalk, a fork of Squeak that is used to build the One Click Image. We suggest you use this image to start. It makes things much simpler. The Seaside mailing list is a good place to ask questions because the subscribers to the list answer questions quickly. Do not hesitate to join and participate in the community. Okay then, you now have tools at your disposal to help you through any problems you might encounter. \ No newline at end of file diff --git a/Introduction/online-book.pier b/Introduction/online-book.pier deleted file mode 100644 index f588ca2..0000000 --- a/Introduction/online-book.pier +++ /dev/null @@ -1 +0,0 @@ -A free online version of this book is available at *book.seaside.st>http://book.seaside.st*. The online version is always up-to-date and permits readers to add notes at the bottom of every page. This immediately notifies other readers of problems and helps us to quickly resolve remaining issues. We will regularly go through the notes and address the issues raised in the main text. The complete book is written using the Pier content management system that itself is written using Seaside. The PDF version of the book is automatically rebuilt every night from the contents of the website. The online version of the book can be navigated using the following keyboard shortcuts. This allows you to quickly navigate the contents of the book. |{!Keys |{! |{!Action | ==k== | ''left-arrow'' | Previous Page | ==j== | ''right-arrow'' | Next Page | ==p== | | Parent Page | ==i== | | Table of Contents \ No newline at end of file diff --git a/Introduction/pdf-book.pier b/Introduction/pdf-book.pier deleted file mode 100644 index 6456cf4..0000000 --- a/Introduction/pdf-book.pier +++ /dev/null @@ -1 +0,0 @@ -You can buy a complete PDF version of this book for ''14 Euros'' (approximately 19 USD) using the PayPal link below. After the payment process click the link to be redirected back to the download area of this website. Don't forget to bookmark the download page, if you want to download the latest builds of the PDF book in the future. By buying the PDF version you support our hard work on the book.
\""
\ No newline at end of file diff --git a/Introduction/print-book.pier b/Introduction/print-book.pier deleted file mode 100644 index b2508ad..0000000 --- a/Introduction/print-book.pier +++ /dev/null @@ -1 +0,0 @@ -You can buy a print-on-demand, softcover copy of this book for ''28 Euros'' (approximately 40 USD) through Lulu. The printed book is identical with the *online>../online-book* and the *PDF>../pdf-book* version of the book at ''Friday, April 23, 2010''. Due to technical reasons we are unable to update the printed versions as frequently as the online and PDF version. By buying the printed version you support our hard work on the book.
Support independent publishing: Buy this book on Lulu.
\ No newline at end of file diff --git a/Introduction/seaside-applications.pier b/Introduction/seaside-applications.pier deleted file mode 100644 index e9e13fc..0000000 --- a/Introduction/seaside-applications.pier +++ /dev/null @@ -1 +0,0 @@ -With Seaside, you will be able to build any kind of web application. You can see some Seaside applications running on the web. You can find more information at *seaside.st/about/users>http://seaside.st/about/users*. Seaside is used in many intranet web applications, that are often not readily visible without going behind the scenes. We have selected two Seaside examples from the publicly available projects. Have a look at them to see the kind of interaction and application flow that can be built with Seaside. ; ""Yesplan"" (*www.yesplan.be>http://www.yesplan.be/*) +index:Yesplan+ : Yesplan is a collaborative event planning web application. A video on the website shows a nice summary of the application. The user interaction and smooth application flow is really striking and a good illustration of the power of Seaside to build complex applications. ; ""Cmsbox"" (*www.cmsbox.ch>http://www.cmsbox.ch/*) +index:Cmsbox+ : An AJAX-based content management system designed for usability. Here the navigation is more the kind we expect from a web application. There are also several open-source projects based on Seaside; we list two interesting ones, since you may use them when going through the book. ; ""Pier"" (*www.piercms.com>http://www.piercms.com/*) +index:Pier+ : Pier is a kind of meta content management system into which a Seaside application can be plugged. Pier is the second generation of an industrial strength content application management system. It is based on Magritte, a powerful meta-description framework. Pier enables easy composition and configuration of interactive web sites with new and ready-made Seaside application or components through a convenient web interface without having to write code. The Seaside website is based on Pier, as is the online version of this book. ; ""SqueakSource"" (*www.squeaksource.com>http://www.squeaksource.com/*) +index:SqueakSource+ : SqueakSource is a web-based source management system for Squeak using the Monticello code versioning system and it is more traditional in the kind of flow it presents. \ No newline at end of file diff --git a/Introduction/structure-of-book.pier b/Introduction/structure-of-book.pier deleted file mode 100644 index 54de2af..0000000 --- a/Introduction/structure-of-book.pier +++ /dev/null @@ -1 +0,0 @@ -; *ref:../../getting-started*: *../../getting-started* : Explains how to get a Seaside application up and running in less than 15 minutes. It will show you some Seaside tools. ; *ref:../../fundamentals*: *../../fundamentals* : Shows you how to manipulate basic elements, such as text, anchors, and callbacks, as well as forms. It presents the notion of a ''brush'', which is central to the Seaside API. ; *ref:../../components*: *../../components* : Describes components, the basic building blocks of Seaside. It shows how components are defined and can populate the screen or be called and embedded within one another. It also presents tasks that are control flow components and describes how reuse is achieved in Seaside via component decoration. It ends with a discussion of the Slime library, which checks and validates your Seaside code. ; *ref:../../in-action*: *../../in-action* : This part develops two little applications \-- a todo list manager and a sudoku player. Then it presents how to serve files, a discussion of character encodings, and how to customize a session to hold application-centric information. ; *ref:../../web-20*: *../../web-20* : This part describes how to create an RSS feed, as well as the details of integrating JavaScript into an application. It finishes by showing some push technology such as ''Comet'', which allows you to synchronize multiple applications. ; *ref:../../advanced*: *Advanced>../../advanced* : Presents some details that you face when you configure and deploy a Seaside application. It shows how to test Seaside components, and discusses Seaside security by presenting the most common attacks and how Seaside deals with them effectively. Then, even though Seaside is not about persistency, we discuss some persistency approaches in Squeak. Finally, we present Magritte, a meta-data framework, and its Seaside integration. Magritte lets you generate forms on the fly. \ No newline at end of file diff --git a/Introduction/what-is-seaside.pier b/Introduction/what-is-seaside.pier deleted file mode 100644 index ba2e49f..0000000 --- a/Introduction/what-is-seaside.pier +++ /dev/null @@ -1 +0,0 @@ -+index:Julian Fitzell+ Seaside is a free, open source framework (collection of Smalltalk classes). The developer can use and extend these classes to produce highly dynamic web-based ''applications''. By applications, we mean real applications with potentially complex workflows and user interactions, in contrast to just collections of static pages. Seaside makes web development simpler and can help you build applications that are cleaner and easier to maintain because it has: - a solid component model and callbacks, - support for sequencing interactions, - native (Smalltalk) debugging interface, and - support for using AJAX and other Web 2.0 technologies. Seaside applications are based on the composition of independent components. Each component is responsible for its rendering, its state, and its own control flow. Seaside enables you to freely compose such components, creating advanced and dynamic applications comparable to widget libraries such as Swing or Morphic. What is really powerful is that the control flow of an application is written in plain Smalltalk code. +index:Avi Bryant+ +index:Julian Fitzell+ +index:Philippe Marshall+ +index:Lukas Renggli+ Seaside was originally created by Avi Bryant and Julian Fitzell. It is supported by an active community and enhanced by several Seaside experts. Currently, Julian Fitzell, Philippe Marshall, and Lukas Renggli (one of the authors of this book), are leading its development. Seaside is often described as a ''heretic web framework'' because by design it goes against what is currently considered best practice for web development \-- such as using templates or clean, carefully chosen, meaningful URLs. Seaside does not follow REST (Representational State Transfer) by default. Instead, URLs hold session key information, and meaningful URLs have to be generated explicitly, if needed. When using a template system (PHP, JSP, ASP, ColdFusion, and so on), the logic is scattered across many files, which makes the application hard to maintain. Reuse, if possible at all, is often based on copying files. The philosophy of the template approach is to separate the responsibilities of designers and programmers. This is a good idea that Seaside also embraces. Seaside encourages the developer to use CSS to describe the visual appearance of a component, but it does not use a templating engine, and encourages developers to programmatically generate meaningful and valid XHTML markup. Seaside is easy to learn and use. By comparison, JSF (JavaServer Faces) requires you to use and understand several technologies such as Servlets, XML, JSP, navigation configuration in ==faces.config== files, and so on. In Seaside, you only need to know Smalltalk, which is more compact and easier to learn than Java. Furthermore, it is good to know some basics about CSS. Seaside lets you to concentrate on the problem at hand and not on integrating technologies. Seaside ensures that you always generate valid XHTML and that all your code is in Smalltalk. In summary, several aspects of Seaside's design differ from most mainstream web application frameworks. In Seaside - Session state is maintained on the server. - XHTML is generated completely in Smalltalk. There are no templates or ``server pages\'' although it isn't hard to build such things in Seaside. - You use callbacks for anchors and buttons, rather than loosely coupled page references and request IDs. - You use plain Smalltalk to define the flow of your application. You do not need a dedicated language or XML configuration files. Combined, these features make working with Seaside much like writing a desktop GUI application. Actually, in some ways it is simpler, since the web browser takes a lot of the application details out of your hands. The next section lists some real-world Seaside applications that you can browse to understand the kind of applications you can build with Seaside. Each of these applications allows complex interaction with the user, rather than a simple collection of pages. \ No newline at end of file diff --git a/Introduction/what-is-smalltalk.pier b/Introduction/what-is-smalltalk.pier deleted file mode 100644 index 60ec918..0000000 --- a/Introduction/what-is-smalltalk.pier +++ /dev/null @@ -1 +0,0 @@ -In his book ``*Beyond Java>http://oreilly.com/catalog/9780596100940/*\'', Bruce Tate asks whether Seaside can really be innovative if it was developed using Smalltalk, a language that emerged in the late 80s. It's a relevant question, and there is an answer; there are several good reasons why it is so innovative. First, the design of Smalltalk is still one of the best in terms of elegance, purity, and consistency. Second, the set of tools is really good: debuggers, browsers, refactoring engines, and unit testing frameworks were all invented in Smalltalk. Third, and most important, in Smalltalk you constantly interact with live objects. This is particularly exciting when developing web applications. There's no need to constantly recompile your code or restart the server. Instead, you debug your applications on the fly, recompile running code, and access your business objects right in the browser, which gives you a huge productivity gain. Experience has proven to us that Smalltalk is not difficult to learn, it provides many advantages and it's no hindrance to using Seaside. In fact we often see people starting to learn Smalltalk because of Seaside. To help you get up to speed, we suggest you read ''Pharo by Example''. It is a free book available at *www.pharobyexample.org>http://www.pharobyexample.org/*. Chapters 3, 4 and 5 contain a minimal description of Smalltalk, its object-oriented model and the elementary syntax elements that you need to know to follow this book. In the next chapter, we will help you to get started with the environment step by step. \ No newline at end of file diff --git a/pillar.conf b/pillar.conf index c6294b5..53b8314 100644 --- a/pillar.conf +++ b/pillar.conf @@ -25,17 +25,11 @@ } }, "inputFiles" : [ - "Introduction/introduction.pier", - "Introduction/what-is-seaside.pier", - "Introduction/seaside-applications.pier", - "Introduction/what-is-smalltalk.pier", - "Introduction/one-click-image.pier", - "Introduction/structure-of-book.pier", - "Introduction/formatting-conventions.pier", - "Introduction/online-book.pier", - "Introduction/pdf-book.pier", - "Introduction/print-book.pier", - "Introduction/acknowledgments.pier", - "getting-started/getting-started.pier" + "Introduction/Introduction.pillar", + "01-GettingStarted/GettingStarted.pillar", + "01-Pharo/Pharo.pillar", + "01-Cincom/Cincom.pillar", + "02-Fundamentals/Fundamentals.pillar", + "02-RenderingComponents/RenderingComponents.pillar" ] }