=pod

=head1 NAME

Embperl::Features - Features von Embperl 2.0

=head1 Features von Embperl 2.0

=over 4

=item * 

Erlaubt das Einbetten von Perlcode in HTML/XML und andere Text Dokumente. Der Perlcode wird
im Server ausgeführt und das Ergebnis zum Browser geschickt. Alle
verfügbaren Perl-Module können eingesetzt werden.


=item *

Ermöglicht das Erstellen von Websites aus kleinen wiederverwendbaren Komponenten, 
in  objektorientierter Art und Weise. Komponenten können sich gegenseitig
aufrufen, einbetten und von einander erben.


=item *

Das standart Layout einer Website can einmal definiert werden und 
I<Embperl::Object> sorgt dafür das die passenden Komponeten
an die entsprechenden Stellen eingefügt werden. Die eigentlichen Seiten
enthalten nur noch den tatsächlichen Inhalt und nicht gemeinsamme Elemente wie
Kopf- und Fußbereich oder Navigationsleisten. Diese gemeinsammen Bereiche
können dabei je Unterverzeichnis überschrieben werden.


=item *

Unterstützt das Trennen von Code, Layout und Daten und das Erstellen von
MVC (Modell-View-Controller) Applikationen. Die Steuerlogik kann durch 
ein Applikationsobjekt abgebildet werden, welches den weiteren Ablauf
eines Requests beeinflussen und steuern kann, während die eigentlichen
Seiten nur noch den Code zur Anzeige enthalten. 
Für einfache Applikationen ist es jedoch, immer noch möglich allen Code 
in die Seiten selbst einzubetten.


=item *

Der Quellentext für die einzelnen Komponenten kann aus unterschiedlichen Quellen, wie
Dateisystem, Speicher oder dem Ergebnis eines Apache-Subrequest kommen. Ein Subrequest 
erlaubt das Nachbearbeiten der Ausgabe von anderen Apache-Applikationen wie PHP, JSP,
CGI-Skrips etc.


=item *

Komponenten können in unterschiedlichen Formaten vorliegen (z.B. HTML, WML, XML, POD, ...)
und, soweit nötig, in andere Ausgabeformate (z.B. via XSLT) transformiert werden.


=item *

Ermöglicht die Benutzung und Definition unterschiedlicher Syntaxen, wie Embperl, ASP, Text, Perl,
RTF und mehr.


=item *

Die Erzeugung der Ausgabe ist in kleine Schritte unterteilt, die jeweils von einem austauschbaren
Provider durchgeführt werden. Das Zusammenspiel der Provider ist individuell, mittels Rezepten (recipes)
konfigurierbar.


=item *

Erlaubt das Zwischenspeichern (Cachen) von Zwischenschritten und Ausgabe.


=item *

Stellt verschiedenste Features für das Webumfeld zur Verfügung, wei z.B.
dynamischen Tabellen, Formularfeldverarbeitung, HTML/URL-Kodierung etc.

=item *

Enthält ein Modul zur Überprüfung von Benutzereingaben in Formularfeldern.
Damit kann mit der Defintion eines Regelsatz, sowohl die serverseitige
wie auch die Clientseitige Überprüfung veranlasst werden.


=item *

Stellt Pro-Benutzer und Pro-Seite persitente Sessiondaten zur Verfügung.
Dafür ist es lediglich nötig die Daten in einem spezielle Hash abzulegen.


=item *

Bietet eine Reihe von Optionen zur Konfigurierung entsprechend 
den persönlichen Vorlieben und Bedürfnissen.

=item *

Vollständig integriert in Apache und mod_perl, um die beste
Performance zu erreichen. Kann auch als CGI Skript laufen,
Offline ausgeführt werden oder von anderem Perlprogrammen/-modulen
aufgerufen werden.

=item *

Das Perlmodule DBIx::Recordset bietet einen von SQL abstrahierten, einfach
zu handhabenden, Datenbankzugriff für Embperl.


=item *

I<Embperl::Mail> ermöglicht es das Ergebnis direkt an eine E-Mail
Adresse zu versenden.


=back