はじめに
Webアプリケーションの開発案件をみると、使われている言語はJavaとPHPが特に多いように思います。C++のものはまず聞きません。C++プログラマがWebアプリケーションの開発プロジェクトに参画するとなると、新たに別の言語を習得しなければならないのが現実です。TIOBE Programming Community Indexというプログラミング言語の人気度調査において、C++は長い間高い水準をキープしているわけですが、そんなC++でWebアプリケーションの開発はできないのでしょうか。
インターネットを検索してみると、C++のWebフレームワークは存在しないこともありません。数少ないそれらのフレームワークを調べてみると、JavaやPHPのものに比べて機能的に見劣りしていたり、C++ゆえにプラットフォームに依存する傾向があるように思います。
「C++でも簡単にWebアプリケーションを開発したい!」
そんなニーズを叶えるために筆者本人が作り始めたソフトが、ここで紹介するTreeFrog Frameworkです。
TreeFrog FrameworkはC++によるフルスタックのWebフレームワークです。MVCアーキテクチャのもとO/Rマッピングライブラリやテンプレートなどの仕組みを提供し、「設定より規約」のポリシーでプログラミング言語C++でも高い生産性の実現を目指しています。ジェネレータコマンドによるソースコードやMakefileの自動生成機能で、開発者はロジックに専念できるでしょう。また、クロスプラットフォームに対応しているので、開発したソースコードをコンパイルしなおすだけで、複数のプラットフォームで動作します。
モデル層ではO/Rマッピングライブラリが提供されます。この機能のおかげで開発者はSQLをほとんど書く必要はありません。もしSQLを記述する場合には、プレースホルダを使って簡単かつ安全にクエリを実行する仕組みもあります。TreeFrog FrameworkはQtをベースにしているおかげで、MySQL、PostgreSQL、SQLite、Oracleなど多くのデータベースシステムと組み合わせることができます。
ビュー層には、ERBとOtamaという2つのテンプレートシステムが採用されています。どちらのシステムもテンプレートを使い、動的に値を出力したり、条件分岐やループ処理が行えます。
C++で開発する最大のメリットは、アプリケーションが高速かつ少ないメモリ使用量で動作することです。Webアプリケーション自体がさらに高速に動作すれば、より少ない数のサーバで多くのリクエストを処理することが可能になるでしょう。
手前味噌になってしまいますが、次でTreeFrog Frameworkを紹介します。
対象読者
- C++でWebアプリケーションを開発したいプログラマ
- 高速に動作するWebフレームワークを探している技術者
インストール
必要環境
- Windows XP/Vista/7, Linux, Mac OS X、UNIX系のOS
- Qt SDK version 4.6 以降
1. ダウンロードしたファイルを解凍します
下記のx.x.xの部分は適宜読み替えてください。
$ tar xvfz treefrog-x.x.x.tar.gz
2. 解凍したディレクトリでビルドします
Windowsの場合:
リリース版とデバッグ版の2つのタイプのバイナリを作ります。Qt Command Promptで次のコマンドを実行してビルドします。
> cd treefrog-x.x.x > configure --enable-debug > cd src > mingw32-make install > cd ..\tools > mingw32-make instal > cd .. > configure > cd src > mingw32-make install > cd ..\tools > mingw32-make instal
Linux、Mac OS XなどUNIX系OSの場合 :
コマンドラインから次を入力します。
$ cd treefrog-x.x.x $ ./configure $ cd src $ make $ sudo make install $ cd ../tools $ make $ sudo make install
3. TreeFrog Command Promptのショートカットを作ります(Windowsのみ)
C:\Windows\System32\cmd.exe /K C:\TreeFrog\x.x.x\bin\tfenv.bat
ちなみに、configureスクリプトで指定できるオプションを確認できます。
$ ./configure --help