Video über das Treefrog Framework

Video

Ein kleines Video, in dem gezeigt wird, wie mit Treefrog ein Weblog erstellt werden kann.

Advertisements

C++-Webframeworks in Übersicht: Treefrog

Standard

Bei meiner Suche nach geeigneten Webframeworks bin ich auf verschiedene Projekte gestoßen, die ich hier in einer kleinen Serie kurz vorstellen möchte:

Treefrog ist noch ein sehr junges Projekte (es muss so um das Jahr 2011 entstanden sein). Es verfolgt den Ansatz von Ruby-on-Rails. Als Grundlage bzw. Abhängigkeit hat das Framework die Qt-Lib. Wem das strenge Model–View–Controller-Konzept (MVC) nicht zusagt, kann Treefrog auch wie PHP verwenden, also C++-Code direkt in HTML einbetten. Der C++-Code wird dann zur Laufzeit interpretiert. Damit sind jedoch alle Vorteile von C++ hinfällig.

ohloh.net codeanalyse treefrog

Treefrog ist wie Tomcat oder Ruby-on-Rails ein Application-Server. Viele Arbeitsschritte werden hinter Tools „versteckt“. So wird das Makefile z.B. automatisch generiert. Die Datei-Struktur ist dem Vorbild von Tomcat und Ruby-on-Rails folgend, dem Entwickler vorgegeben. Mit den Tools kommt man relativ schnell zu einer lauffähigen Applikation. Mit einem Befehl kann ein lauffähiges Beispiel-Projekt erstellt werden.

Das Projekt steckt noch in den Anfängen. Die Muttersprache des Hauptentwickler ist japanisch. Daher ist der größte Teil der Dokumentation auf japanisch. Nach Einschätzung des Entwicklers, gibt es noch eine Reihe von Baustellen und unentdeckten Fehlern. Als ich mir das Projekt Anfang 2013 angesehen habe wurden viele Dinge noch nicht unterstützt. Mir fiel z.B. auf, dass es keine Möglichkeit gibt, Tamplates für den HTML Code zu benutzen, um immer wiederkehrende Elemente wie Banner, Menü und Fußzeile elegant einzubinden, anstatt diese redundant in verschiedenen Dateien identischen Code zu haben.

Soweit ich gesehen habe, ist Treefrog noch in keiner Linux-Distribution als Paket aufgenommen worden. Das Herunterladen, Kompilieren und Installieren gestaltet sich aber erfreulich unproblematisch. Das Qt-Framework, das vorausgesetzt wird, ist quasi bei jeder Linux-Distribution dabei.

Siehe auch: „C++-Webframeworks in Übersicht: Als Tabelle“


Creative Commons Lizenzvertrag

C++-Webframeworks in Übersicht: Als Tabelle

Standard

Bei meiner Suche nach geeigneten Webframeworks bin ich auf verschiedene Projekte gestoßen, die ich hier in einer kleinen Serie kurz vorstellen möchte. Hier eine tabellarische Übersicht, über die vier wichtigsten Projekte:

Projektname Wt (Witty) CppCMS Tntnet Treefrog
Projektstart 2009 2008 2005 2011
Abstraktionslevel Sehr hoch Mittel Mittel Sehr hoch
Aktive Entwickler >5 1 >1 >2
Code-Zeilen 285.620 1.839.480 260.388 51.335
Prepompiler Nein Ja Ja Ja
Abhängigkeiten
  • CMake
  • Boost-Lib
  • OpenSSL  (Opt.)
  • Pango (Opt.)
  • Boost-Lib
  • Python 2.x
  • CgiCC
  • libgcrypt
  • gettext
  • cxxtools
  • automake*
  • autoconf*
  • libtool*
  • postgresql-devel**
  • zlib-devel
  • openssl-devel
Qt
Lizenz
  • Open  Source
  • proprietär
  • Open Source
  • proprietär
OpenSource OpenSource
Datenbank-
unterstüzung
  • Firebird
  • SQLite
  • PostgreSQL
  • MySQL
  • SQLite
  • PostgreSQL
  • MySQL
  • SQLite
  • PostgreSQL
  • MySQL
  • Oracle
Über Qt:

  • MongoDB
  • SQLite
  • PostgreSQL
  • MySQL
Mailingliste Ja (sehr aktiv) Nein Ja Ja
Authentifikations-
methoden
  • Facebook
  • Google
  • E-mail-Token
  • SHA1
  • MD5
  • OAuth
  • Token
Extras E-mail-Versand
  • Serialisierung
    • XML
    • Json
    • CSV
  • Logging
  • Komplexes URL-Routing
  • REST
    • XML
    • Json
    • Binary
    • CSV
  • SOA
  • Validation
  • Mailer
  • Logging
  • Plugin
  • Image Manipulation
Pakete in
Distributionen
Ja Nein Ja Nein
Dokumentation Mittel,
viele Beispiele
Wenig Mittel,
viele Beispiele
Mittel
OS
  • Linux
  • Windows/Cygwin
  • MacOS
  • Android
  • Raspberry Pi
  • QNX
  • Solaris
  • Linux
  • Windows/Cygwin
  • MacOS
  • FreeBSD
  • Linux
  • UNIX-like OS
  • Linux
  • Windows
  • UNIX-like OS
  • MacOS

Erläuterungen
* Abhängigkeit wenn die Bibliothek selber übersetzt wird.
** Abhängigkeit optionaler Funktionen.


Creative Commons Lizenzvertrag