X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FIntro.pod;h=632e1c3ecc66d6bda6b3518a5c91fb648b75d182;hb=90bb105a110e94c71fca62dc8f41a6d3a46d8330;hp=a3661e8f7ab7a225d6e304e66529f068501527db;hpb=70d5ae4951da5b2224e73040b05c344b6a2d6c1c;p=catagits%2FCatalyst-Runtime.git diff --git a/lib/Catalyst/Manual/Intro.pod b/lib/Catalyst/Manual/Intro.pod index a3661e8..632e1c3 100644 --- a/lib/Catalyst/Manual/Intro.pod +++ b/lib/Catalyst/Manual/Intro.pod @@ -4,15 +4,27 @@ Catalyst::Manual::Intro - Introduction to Catalyst =head1 DESCRIPTION -This is a brief overview of why and how to use Catalyst. It explains how -Catalyst works and shows how to get a simple application up and running -quickly. +This is a brief introduction to Catalyst. It explains the most important +features of how Catalyst works and shows how to get a simple application +up and running quickly. For an introduction (without code) to Catalyst +itself, and why you should be using it, see L. +For a systematic step-by-step introduction to writing an application +with Catalyst, see L. =head2 What is Catalyst? -Catalyst is an elegant web application framework, extremely flexible yet -extremely simple. It's similar to Ruby on Rails, Spring (Java) and -L, upon which it was originally based. +Catalyst is an elegant web application framework, extremely flexible +yet extremely simple. It's similar to Ruby on Rails, Spring (Java), +and L, upon which it was originally based. Its most important +design philosphy is to provide easy access to all the tools you need +to develop web applications, with few restrictions on how you need to +use these tools. However, this does mean that it is always possible to +do things in a different way. Other web frameworks are B +simpler to use, but achieve this by locking the programmer into a +single set of tools. Catalyst's emphasis on flexibility means that you +have to think more to use it. We view this as a feature. For example, +this leads to Catalyst being more suited to system integration tasks +than other web frameworks. =head3 MVC @@ -23,14 +35,15 @@ modify code that handles one concern without affecting code that handles the others. Catalyst promotes the re-use of existing Perl modules that already handle common web application concerns well. -Here's how the M, V, and C map to those concerns, with examples of -well-known Perl modules you may want to use for each. +Here's how the Model, View, and Controller map to those concerns, with +examples of well-known Perl modules you may want to use for each. =over 4 =item * B -Access and modify content (data). L, L, L... +Access and modify content (data). L, L, +L, L... =item * B @@ -40,21 +53,20 @@ L, L... =item * B Control the whole request phase, check parameters, dispatch actions, flow -control. Catalyst! +control. Catalyst itself! =back -If you're unfamiliar with MVC and design patterns, you may want to check -out the original book on the subject, I, by Gamma, -Helm, Johnson, and Vlissides, also known as the Gang of Four (GoF). You -can also just Google it. Many, many web application frameworks are -based on MVC, including all those listed above. +If you're unfamiliar with MVC and design patterns, you may want to +check out the original book on the subject, I, by +Gamma, Helm, Johnson, and Vlissides, also known as the Gang of Four +(GoF). Many, many web application frameworks are based on MVC, which +is becoming a popular design paradigm for the world wide web. =head3 Flexibility -Catalyst is much more flexible than many other frameworks. We'll talk -more about this later, but rest assured you can use your favorite Perl -modules with Catalyst. +Catalyst is much more flexible than many other frameworks. Rest assured +you can use your favorite Perl modules with Catalyst. =over 4 @@ -78,7 +90,7 @@ multiple Catalyst applications. =item * B -Catalyst allows you to dispatch any URLs to any application L, +Catalyst allows you to dispatch any URLs to any application L, even through regular expressions! Unlike most other frameworks, it doesn't require mod_rewrite or class and method names in URLs. @@ -92,9 +104,10 @@ example: Now http://localhost:3000/hello prints "Hello World!". -=item * B +=item * B -Use L or L. +Use L or L. Other +engines are also available. =back @@ -108,7 +121,7 @@ simple way. =item * B Components interoperate very smoothly. For example, Catalyst -automatically makes a L object available to every +automatically makes a L object available to every component. Via the context, you can access the request object, share data between components, and control the flow of your application. Building a Catalyst application feels a lot like snapping @@ -121,18 +134,20 @@ and loads them. =item * B -See L for L, or L -for L