=pod

=head1 NAME

Embperl::Features - Main features of Embperl 2.0

=head1 Main features of Embperl 2.0

=over 4

=item * 

Embperl facilitates embedding Perl code into HTML/XML or other text documents. 
Perl code is evaluated at the server side and the result is sent to the browser.
All available Perl modules can be used without any restriction.


=item *

Allows to build Web sites out of small reusable components in an object-oriented way. 
Components can call and/or embed each other and inherit from other objects.


=item *

Standard layout of a web-site site can be defined once and the content can be 
dynamically generated by these components based on the uri. The documents need only 
contain the variable portions but not the common items which define the 
layout like headers/footers or navigation bars which normally form the template. 
Also these common elements can be overwritten in each sub-directory.


=item *

Embperl 2.0 thus facilitates separating code, layout and creating MVC (Model-View-Controller)
applications. Control logic can be moved into an application object, 
which controls further execution of the request, while the actual pages are
containing the display code. Simple applications can still embed all the code in the pages.


=item *

Source-code for each component can come from a different source, for eg. 
from file, memory or sub-request which allows to act on the output from another Apache 
application like PHP, JSP, CGI Script etc.


=item *

Each component can be in a different source format (e.g. HTML, WML, XML, POD, ...)
and can be transformed to other output formats, say by using via XSLT. 

=item *

Supports one or more scripting syntax using Embperl, ASP, Text, Perl and others.


=item *

Output generation is divided into small steps where each is processed by a plugable provider. 
The interaction of the providers can be individually configured for each component via recipes.

=item *

Supports caching of intermediate results and output.


=item * 

Embperl encompasses several features that ease the task of dynamic web-site content generation, 
including dynamic-tables, form-field-processing, escaping/unescaping, etc.

=item * 

Contains a module for easy form input validation, which is able to validate user input
at the server side and on the client side by one definition of rules.

=item *

Handles per-user and per-module persistent session requiring only storage and retrieval of 
the session data from a special hash.

=item *

UTF-8 Support (honours Perl's internal UTF-8 flag during in- and output)

=item *

Offers flexible configuration options to suite individual tastes and needs.


=item *

Fully integrated into Apache and mod_perl to acheive the best performance. 
Can also run as a free standing CGI-script, off-line or can be called from another Perl program.


=item *

The Perl module DBIx::Recordset offers high level, easy to use database access for Embperl.


=item *

I<Embperl::Mail> enables redirecting the result output to a mail-recipient.


=item *

I<Embperl::Inline> allows to embedd Embperl code in normal Perl code



=back



