Author: spadkins
Date: Sun Sep 3 18:34:29 2006
New Revision: 6834
Added:
p5ee/trunk/App-Context/lib/App/quickstart.pod
Log:
new
Added: p5ee/trunk/App-Context/lib/App/quickstart.pod
==============================================================================
--- (empty file)
+++ p5ee/trunk/App-Context/lib/App/quickstart.pod Sun Sep 3 18:34:29 2006
@@ -0,0 +1,243 @@
+#!perl -w
+# run this document through perl to check its syntax
+use Pod::Checker;
+podchecker(\*DATA);
+__END__
+
+=head1 NAME
+
+App::quickstart - App::Context Developer's Quick-Start Guide
+
+=head1 INTRODUCTION
+
+This is the Developer's Quickstart Guide to the App::Context Framework.
+Its focus is to give a minimum amount of theoretical or explanatory
+background and get right into learning by example.
+
+=head1 DOCUMENTATION OVERVIEW
+
+That having been said, it is also important to let you know
+what documentation exists and what state it is in.
+
+I got started building the App::Context framework a while ago.
+The documentation is very limited. This is an effort to bring it all together.
+This list shows how all of the documentation fits together and in what state
+it is [???=unknown,RED=incomplete,YEL=ok,GRN=complete].
+
+=head2 PURE DOCUMENTATION
+
+The following documentation is in good shape.
+To get started, read them more or less in the order shown.
+
+=over
+
+=item * L<App::quickstart> - This quick start guide.
+
+=item * L<App::installguide::hosted> - Installing the App::Context Framework on a non-root web hosting account
+
+=back
+
+The following documentation also is in good shape.
+It is background reference material.
+
+=over
+
+=item * L<App::datetime> - Guidance on date, time, and datetime types in perl.
+
+=item * L<App::exceptions> - Guidance on exceptions in perl.
+
+=back
+
+The following documentation is in a state that needs review, modification, or completion.
+
+=over
+
+=item * L<App::perlstyle> - A perl style guide that builds minimally on L<perlstyle>.
+
+=item * L<App::faq> - Questions about P5EE.
+
+=item * L<App::installguide> - Installing the App::Context Framework on Unix.
+
+=item * L<App::installguide::win32> - Installing the App::Context Framework on Windows.
+
+=item * L<App::devguide> - Developers' Guide.
+
+=item * L<App::devguide> - Developers' Guide.
+
+=item * L<App::adminguide> - Administrators' Guide.
+
+=item * L<App::adminguide::cvs> - Admin Guide, setting up CVS source control.
+
+=back
+
+=head2 CLASS/MODULE DOCUMENTATION (indented entries are subclasses)
+
+Most of this documentation needs review, modification, and completion.
+
+=over
+
+=item * L<App> - The module that bootstraps the use of the App::Context Framework.
+
+=item * L<App::Context> - Abstract class representing the the runtime context of the program.
+
+=item * +-- L<App::Context::Cmd> - A program running in a command-line context.
+
+=item * +-- L<App::Context::HTTP> - A program running in a CGI/mod_perl context.
+
+=item * +-- L<App::Context::Server> - A program running in a multi-process server context.
+
+=item * +-- L<App::Context::ClusterController> - Running in a multi-node cluster context.
+
+=item * +-- L<App::Context::ClusterNode> - Running on a single node of a cluster.
+
+=item * +-- L<App::Context::NetServer> - Another flavor of server context (not yet implemented).
+
+=item * L<App::Exceptions> - Defines the exceptions used in the framework.
+
+=item * L<App::UserAgent>
+
+=item * L<App::Request>
+
+=item * +-- L<App::Request::CGI>
+
+=item * L<App::Response>
+
+=item * L<App::Session>
+
+=item * +-- L<App::Session::HTMLHidden>
+
+=item * +-- L<App::Session::Cookie>
+
+=item * L<App::Reference>
+
+=item * +-- L<App::Conf>
+
+=item * +-- L<App::Conf::File>
+
+=item * L<App::Service>
+
+=item * +-- L<App::Serializer>
+
+=item * +-- L<App::Serializer::Properties>
+
+=item * +-- L<App::Serializer::Ini>
+
+=item * +-- L<App::Serializer::Perl>
+
+=item * +-- L<App::Serializer::Xml>
+
+=item * +-- L<App::Serializer::Yaml>
+
+=item * +-- L<App::Serializer::OneLine>
+
+=item * +-- L<App::Serializer::TextArray>
+
+=item * +-- L<App::Serializer::Storable>
+
+=item * +-- L<App::SessionObject>
+
+=item * +-- L<App::Authentication>
+
+=item * +-- L<App::Authorization>
+
+=item * +-- L<App::ValueDomain>
+
+=item * +-- L<App::SharedDatastore>
+
+=item * +-- L<App::MessageDispatcher>
+
+=item * +-- L<App::CallDispatcher>
+
+=item * +-- L<App::CallDispatcher::HTTPSimple>
+
+=item * +-- L<App::ResourceLocker>
+
+=item * +-- L<App::ResourceLocker::IPCSemaphore>
+
+=item * +-- L<App::ResourceLocker::IPCLocker>
+
+=item * L<Apache::Framework::App>
+
+=back
+
+=head1 INSTALLATION
+
+You can go through one of the installation guides.
+Installing the App::Context Framework generally involves several distributions
+and should just work when installed from CPAN.
+
+ perl -MCPAN -e shell
+ cpan> install App::Options
+ cpan> install App::Context
+ cpan> install App::Repository
+ cpan> install App::Widget
+ cpan> exit
+
+If it's not this easy, I need to work on making it easier.
+
+=head1 QUICK START TO COMMAND LINE APPLICATIONS
+
+At the moment, the biggest advantage of using the App::Context Framework for
+programs which are not web applications is in developing a suite of database programs
+(particularly for a MySQL database).
+
+Choose a root directory for your system, assigning it to the PREFIX variable.
+
+vi ~/.bash_profile
+
+ export PREFIX=/usr/mycompany/prod
+
+vi $PREFIX/etc/app.conf
+
+ dbhost = localhost
+ dbname = test
+ dbuser = scott
+ dbpass = tiger
+
+vi $PREFIX/etc/app.pl
+
+ $conf = {
+ Repository => {
+ default => { alias => "db", },
+ db => {
+ class => "App::Repository::MySQL",
+ },
+ };
+
+vi $PREFIX/bin/prog
+
+ #!/usr/bin/perl -w
+ use strict;
+ use App::Options (
+ options => [qw(dbhost dbname dbuser dbpass)],
+ option => {
+ dbhost => {
+ description => "database host",
+ default => "localhost",
+ },
+ dbname => {
+ description => "database name",
+ default => "test",
+ },
+ dbuser => {
+ description => "database user",
+ default => "scott",
+ },
+ dbpass => {
+ description => "database password",
+ },
+ },
+ );
+ use App;
+ use App::Repository;
+ {
+ my $context = $App->context();
+ my $db = $context->repository();
+ # perform database ops like ...
+ # my $rows = $db->get_rows("customer", { last_name => "Smith" }, ["first_name", "last_name", "birth_dt"]);
+ # my $hashes = $db->get_hashes("customer", { "birth_dt.le" => "2000-01-01" }, ["first_name", "last_name", "birth_dt"]);
+ # my $age = $db->get("customer", { customer_id => 45 }, "age");
+ }
+
+=cut
+
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.