Created Manual::About (INCOMPLETE, just a stub now)
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Manual / About.pod
CommitLineData
aa2b0d97 1=head1 NAME
2
3Catalyst::Manual::About - Basic explanation of Catalyst
4
5=head1 DESCRIPTION
6
7This document is a basic introduction to the I<why> of Catalyst. It does
8not teach you how to write Catalyst applications; for an introduction to
9that please see L<Catalyst::Manual::Intro>. Rather, it explains the
10basics of what Catalyst is typically used for, and why you might want
11to use Catalyst to build your applications.
12
13=head2 What is Catalyst? The short summary
14
15Catalyst is a web application framework. This means that you use it to
16help build applications that run on the web, or that run using protocols
17used for the web. Catalyst is designed to make it easy to manage the
18various tasks you need to do to run an application on the web, either by
19doing them itself, or by letting you "plug in" existing Perl modules
20that do what you need. There are a number of things you typically do
21with a web application, for example:
22
23=over 4
24
25=item * Interact with a web server
26
27If you're on the web, you're relying on a web server, a program that
28sends files over the web. There are a number of these, and your
29application has to do the right thing to make sure that your data works
30with the web server you're using. If you change your web server, you
31don't want to have to rewrite your entire application to work with the
32new one.
33
34=item * Do something based on a URI
35
36So that C<http://www.mysite.com/catalog/view/23> will go to a "view" of
37item 23 in your catalog, and C<http://www.mysite.com/order_status/7582>
38will display the status of order 7582, and
39C<http://www.mysite.com/add_comment/?page=8> will display a form to add
40a comment to page 8.
41
42=item * Interact with a data store
43
44You probably use a database to keep track of your information. Your
45application needs an easy way to interact with your database, so you can
46create, edit, and retrieve your data.
47
48=item * Handle forms
49
50When a user submits a form, you process it, and make sure it's been
51filled in properly, and then then do something based on the
52result--submitting an order, updating a record, sending e-mail, or going
53back to the form if there's an error.
54
55=item * Display results
56
57You have an application running on the web, people need to see
58things. You usually want to display things on a web browser; you will
59probably be using a template system to help generate HTML code; you
60might need other kinds of display, such as PDF files or RSS feeds.
61
62=item * Manage users
63
64You might need the concept of a "user", someone who's allowed to use
65your system, and is allowed to do certain things only. Perhaps normal
66users can only view or modify their own information; administrative
67users can view or modify anything; normal users can only order items for
68their own account; normal users can view things but not modify them;
69order-processing users can send records to a different part of the
70system; and so forth. You need a way of ensuring that people are who
71they say they are, and that people only do the things they're allowed to
72do.
73
74=item * Develop the application itself
75
76When you're writing or modifying the application, you want to have
77access to detailed logs of what it is doing. You want to be able to
78write tests to ensure that it does what it's supposed to, and that new
79changes don't break the existing code.
80
81=back
82
83Catalyst makes it easy to do all of these tasks, and many more. It is
84extremely flexible in terms of what it allows you to do, and very fast.
85It has a very large number of "plugins" that interact with existing Perl
86modules so that you can easily using them from within your application.
87
88=head3 What B<isn't> Catalyst?
89
90Catalyst is not an out-of-the-box solution that allows you to set up a
91complete working e-commerce application in ten minutes. (There are,
92however, several systems built on top of Catalyst that can get you very
93close to a working app.) It is not designed for end users, but for
94working programmers.
95
96=head2 Some background
97
98=head2 The MVC pattern
99
100=head1 AUTHOR
101
102Jesse Sheidlower, C<jester@panix.com>
103
104=head1 SEE ALSO
105
106L<Catalyst>, L<Catalyst::Manual::Intro>
107
108=head1 COPYRIGHT
109
110This program is free software, you can redistribute it and/or modify it
111under the same terms as Perl itself.