Author: buildbot
Date: Fri Mar  7 02:20:47 2014
New Revision: 900375

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/tapestry-tutorial.html

Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/tapestry/content/tapestry-tutorial.html
==============================================================================
--- websites/production/tapestry/content/tapestry-tutorial.html (original)
+++ websites/production/tapestry/content/tapestry-tutorial.html Fri Mar  7 
02:20:47 2014
@@ -68,7 +68,7 @@
                     <span class="icon icon-page" title="Page">Page:</span>     
       </div>
 
             <div class="details">
-                            <a shape="rect" 
href="principles.html">Principles</a>
+                            <a shape="rect" 
href="introduction.html">Introduction</a>
                     
                 
                             </div>
@@ -77,7 +77,7 @@
                     <span class="icon icon-page" title="Page">Page:</span>     
       </div>
 
             <div class="details">
-                            <a shape="rect" 
href="introduction.html">Introduction</a>
+                            <a shape="rect" 
href="tapestry-for-jsf-users.html">Tapestry for JSF Users</a>
                     
                 
                             </div>
@@ -86,7 +86,7 @@
                     <span class="icon icon-page" title="Page">Page:</span>     
       </div>
 
             <div class="details">
-                            <a shape="rect" 
href="tapestry-tutorial.html">Tapestry Tutorial</a>
+                            <a shape="rect" 
href="principles.html">Principles</a>
                     
                 
                             </div>
@@ -95,7 +95,7 @@
                     <span class="icon icon-page" title="Page">Page:</span>     
       </div>
 
             <div class="details">
-                            <a shape="rect" 
href="tapestry-for-jsf-users.html">Tapestry for JSF Users</a>
+                            <a shape="rect" 
href="getting-started.html">Getting Started</a>
                     
                 
                             </div>
@@ -104,54 +104,12 @@
                     <span class="icon icon-page" title="Page">Page:</span>     
       </div>
 
             <div class="details">
-                            <a shape="rect" 
href="getting-started.html">Getting Started</a>
+                            <a shape="rect" 
href="tapestry-tutorial.html">Tapestry Tutorial</a>
                     
                 
                             </div>
         </li></ul>
-</div> 
-
-<h1 id="TapestryTutorial-TableofContents">Table of Contents</h1>
-
-<ul class="childpages-macro"><li><a shape="rect" 
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a shape="rect" 
href="creating-the-skeleton-application.html">Creating The Skeleton 
Application</a></li><li><a shape="rect" 
href="loading-the-project-into-eclipse.html">Loading the Project Into 
Eclipse</a></li><li><a shape="rect" href="exploring-the-project.html">Exploring 
the Project</a></li><li><a shape="rect" 
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a shape="rect" 
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a shape="rect" 
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul>
-
-<h1 id="TapestryTutorial-Introduction">Introduction</h1>
-
-<p>Welcome to Tapestry!</p>
-
-<p>This is a tutorial for people who will be creating Tapestry 5 applications. 
It doesn't matter whether you have experience with Tapestry 4 (or Tapestry 3, 
for that matter) or whether you are completely new to Tapestry. In fact, in 
some ways, the less you know about web development in general, and older 
Tapestry versions in particular, the better off you may be ... that much less 
to unlearn!</p>
-
-<p>You do need to have a reasonable understanding of HTML, a smattering of 
XML, and a good understanding of basic Java language features, and a few newer 
things such as Java Annotations.</p>
-
-<h1 id="TapestryTutorial-TheChallengesofWebApplicationDevelopment">The 
Challenges of Web Application Development</h1>
-
-<p>If you're used to developing web applications using servlets and JSPs, or 
with Struts, you are simply used to a lot of pain. So much pain, you may not 
even understand the dire situation you are in! These are environments with no 
safety net; Struts and the Servlet API have no idea how your application is 
structured, or how the different pieces fit together. Any URL can be an action 
and any action can forward to any view (usually a JSP) to provide an HTML 
response to the web browser. The pain is the unending series of small, yet 
important, decisions you have to make as a developer (and communicate to the 
rest of your team). What are the naming conventions for actions, for pages, for 
attributes stored in the HttpSession or HttpServletRequest? Where do 
cross-cutting concerns such as database transactions, caching and security get 
implemented (and do you have to cut-and-paste Java or XML to make it work?) How 
are your packages organized ... where to the user interface classes go, and 
 where do the data and entity objects go?  How do you share code from one part 
of your application to another?</p>
-
-<p>On top of all that, the traditional approaches thrust something most 
unwanted in your face: <em>multi-threaded coding</em>. Remember back to Object 
Oriented Programming 101 where an object was defined as a bundle of data and 
operations on that data? You have to unlearn that lesson as soon as you build a 
traditional web application, because web applications are multi-threaded. An 
application server could be handling dozens or hundreds of requests from 
individual users, each in their own thread, and each sharing the exact same 
objects. Suddenly, you can't store data inside an object (a servlet or a Struts 
Action) because whatever data you store for one user will be instantly 
overwritten by some other user.</p>
-
-<p>Worse, your objects each have only one operation: <code>doGet()</code> or 
<code>doPost()</code>.</p>
-
-<p>Meanwhile, most of your day-to-day work involves deciding how to package up 
some data already inside a particular Java object and squeeze that data into a 
URL's query parameters, so that you can write more code to convert it back if 
the user clicks that particular link. And don't forget editing a bunch of XML 
files to keep the servlet container, or the Struts framework, aware of these 
decisions.</p>
-
-<p>Just for laughs, remember that you have to rebuild, redeploy and restart 
your application after virtually any change. Is any of this familiar? Then 
perhaps you'd appreciate something a little <em>less</em> familiar: 
Tapestry.</p>
-
-<h1 id="TapestryTutorial-TheTapestryWay">The Tapestry Way</h1>
-
-<p>Tapestry uses a very different model: a structured, organized world of 
pages, and components within pages. Everything has a very specific name (that 
you provide). Once you know the name of a page, you know the location of the 
Java class for that page, the location of the template for that page, and the 
total structure of the page. Tapestry knows all this as well, and can make 
things <strong>just work</strong>.</p>
-
-<p>As we'll see in the following pages, Tapestry lets you code in terms of 
your objects. You'll barely see any Tapestry classes, outside of a few Java 
annotations. If you have information to store, store it as fields of your 
classes, not inside the HttpServletRequest or HttpSession. If you need some 
code to execute, it's just a simple annotation or method naming convention to 
get Tapestry to invoke that method, at the right time, with the right data. The 
methods don't even have to be public!</p>
-
-<p>Tapestry also shields you from most of the multi-threaded aspects of web 
application development. Tapestry manages the life cycle of your page and 
components objects, and the fields of the pages and components, in a 
thread-safe way. Your page and component classes always look like simple, 
standard <a shape="rect" class="external-link" 
href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object"; >POJOs</a>. </p>
-
-<p>Tapestry began in January 2000, and it now reflects over ten years of 
experience of the entire Tapestry community. Tapestry brings to the table all 
that experience about the best ways to build scalable, maintainable, robust, 
internationalized (and more recently) Ajax-enabled applications. Tapestry 5 
represents a completely new code base (compared to Tapestry 4) designed to 
simplify the Tapestry coding model while at the same time extending the power 
of Tapestry and improving performance.</p>
-
-<h1 id="TapestryTutorial-GettingTheTutorialSource">Getting The Tutorial 
Source</h1>
-
-<p>The source code for the Tapestry tutorial is available on <a shape="rect" 
class="external-link" href="https://github.com/hlship/tapestry5-tutorial"; 
>GitHub</a> (although you won't need it to complete the tutorial).</p>
-
-<h1 id="TapestryTutorial-TimetoBegin">Time to Begin</h1>
-
-<p>Okay, enough background. Now let's get started on the tutorial: <a 
shape="rect" href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></p></div>
+</div><h1 id="TapestryTutorial-TableofContents">Table of 
Contents</h1><p></p><ul class="childpages-macro"><li><a shape="rect" 
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a shape="rect" 
href="creating-the-skeleton-application.html">Creating The Skeleton 
Application</a></li><li><a shape="rect" 
href="loading-the-project-into-eclipse.html">Loading the Project Into 
Eclipse</a></li><li><a shape="rect" href="exploring-the-project.html">Exploring 
the Project</a></li><li><a shape="rect" 
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a shape="rect" 
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a shape="rect" 
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul><h1 
id="TapestryTutorial-Introduction">Introduction</h1><p>Welcome to 
Tapestry!</p><p>This is a tutorial for people who will be creating Tapestry 5 
app
 lications. It doesn't matter whether you have experience with Tapestry 4 (or 
Tapestry 3, for that matter) or whether you are completely new to Tapestry. In 
fact, in some ways, the less you know about web development in general, and 
older Tapestry versions in particular, the better off you may be ... that much 
less to unlearn!</p><p>You do need to have a reasonable understanding of HTML, 
a smattering of XML, and a good understanding of basic Java language features, 
including Annotations.</p><h1 
id="TapestryTutorial-TheChallengesofWebApplicationDevelopment">The Challenges 
of Web Application Development</h1><p>If you're used to developing web 
applications using servlets and JSPs, or with Struts, you are simply used to a 
lot of pain. So much pain, you may not even understand the dire situation you 
are in! These are environments with no safety net; Struts and the Servlet API 
have no idea how your application is structured, or how the different pieces 
fit together. Any URL can be an actio
 n and any action can forward to any view (usually a JSP) to provide an HTML 
response to the web browser. The pain is the unending series of small, yet 
important, decisions you have to make as a developer (and communicate to the 
rest of your team). What are the naming conventions for actions, for pages, for 
attributes stored in the HttpSession or HttpServletRequest? Where do 
cross-cutting concerns such as database transactions, caching and security get 
implemented (and do you have to cut-and-paste Java or XML to make it work?) How 
are your packages organized ... where to the user interface classes go, and 
where do the data and entity objects go? How do you share code from one part of 
your application to another?</p><p>On top of all that, the traditional 
approaches thrust something most unwanted in your face: <em>multi-threaded 
coding</em>. Remember back to Object Oriented Programming 101 where an object 
was defined as a bundle of data and operations on that data? You have to 
unlearn 
 that lesson as soon as you build a traditional web application, because web 
applications are multi-threaded. An application server could be handling dozens 
or hundreds of requests from individual users, each in their own thread, and 
each sharing the exact same objects. Suddenly, you can't store data inside an 
object (a servlet or a Struts Action) because whatever data you store for one 
user will be instantly overwritten by some other user.</p><p>Worse, your 
objects each have only one operation: <code>doGet()</code> or 
<code>doPost()</code>.</p><p>Meanwhile, most of your day-to-day work involves 
deciding how to package up some data already inside a particular Java object 
and squeeze that data into a URL's query parameters, so that you can write more 
code to convert it back if the user clicks that particular link. And don't 
forget editing a bunch of XML files to keep the servlet container, or the 
Struts framework, aware of these decisions.</p><p>Just for laughs, remember 
that you have
  to rebuild, redeploy and restart your application after virtually any change. 
Is any of this familiar? Then perhaps you'd appreciate something a little 
<em>less</em> familiar: Tapestry.</p><h1 
id="TapestryTutorial-TheTapestryWay">The Tapestry Way</h1><p>Tapestry uses a 
very different model: a structured, organized world of pages, and components 
within pages. Everything has a very specific name (that you provide). Once you 
know the name of a page, you know the location of the Java class for that page, 
the location of the template for that page, and the total structure of the 
page. Tapestry knows all this as well, and can make things <strong>just 
work</strong>.</p><p>As we'll see in the following pages, Tapestry lets you 
code in terms of your objects. You'll barely see any Tapestry classes, outside 
of a few Java annotations. If you have information to store, store it as fields 
of your classes, not inside the HttpServletRequest or HttpSession. If you need 
some code to execute, it's ju
 st a simple annotation or method naming convention to get Tapestry to invoke 
that method, at the right time, with the right data. The methods don't even 
have to be public!</p><p>Tapestry also shields you from most of the 
multi-threaded aspects of web application development. Tapestry manages the 
life cycle of your page and components objects, and the fields of the pages and 
components, in a thread-safe way. Your page and component classes always look 
like simple, standard <a shape="rect" class="external-link" 
href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object"; 
>POJOs</a>.</p><p>Tapestry began in January 2000, and it now reflects over ten 
years of experience of the entire Tapestry community. Tapestry brings to the 
table all that experience about the best ways to build scalable, maintainable, 
robust, internationalized (and more recently) Ajax-enabled applications. 
Tapestry 5 represents a completely new code base (compared to Tapestry 4) 
designed to simplify the Tapestry coding m
 odel while at the same time extending the power of Tapestry and improving 
performance.</p><h1 id="TapestryTutorial-GettingTheTutorialSource">Getting The 
Tutorial Source</h1><p>The source code for the Tapestry tutorial is available 
on <a shape="rect" class="external-link" 
href="https://github.com/hlship/tapestry5-tutorial"; >GitHub</a> (although you 
won't need it to complete the tutorial).</p><h1 
id="TapestryTutorial-TimetoBegin">Time to Begin</h1><p>Okay, enough background. 
Now let's get started on the tutorial: <a shape="rect" 
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></p></div>
 </div>
 
 <div class="clearer"></div>


Reply via email to