TERASOLUNA Server Framework for .NETという、NTTデータが社内利用しているフレームワークがオープンソースとして無償公開されたとのことで、そのドキュメントとソースコードを一通り拝見したのですが。。。
全体の設計思想は、完全にStrutsベースですね。可能な限り、情報は外部ファイル化され、各層、各ファイルの結合度は下げられています。
しかし、Webシステムとしての実用性の観点ではどうなんでしょうね?
- どんだけ設定ファイルを書かせれば気が済むんですか? 画面もビジネスロジックもSQLもエラーハンドリングさえも、全部、ID管理で外部ファイル化する必要が?
- それだけ書かせといて、コードを変えずに、設定だけを後で変更することができるんですか?いや、実質できないでしょう?
- それだけ書かせといて、入力チェック正規表現やメッセージについては、コード(リソースファイル)に埋まってますし。。。
- セッションライフサイクル管理って、どうなんでしょう?オブジェクトをそんな風に1元階層分類することが可能ですか?
- ID経由でSQL文だけもらっても、iBatis.NETのようなSQLの動的構成の仕組みがないってことは、Where句等が微妙に異なるSQL、join条件やselect結果が異なるSQLはどう管理すれば?
- そもそも、DB接続管理の仕組みはないけどいいの? ADO.NET任せ?
どうせやるのであれば、「このルールに乗っ取ってコーディングすれば、高品質・短納期」っていう風に、必要な機能全体をサポートしていて欲しいですが、そうでもないと思われます。対象にしている箇所のコードの標準化はできるかもしれませんが、作成工数、管理工数に無駄が多過ぎるのではないでしょうか? .NET Frameworkを素で利用するのと比較して、「標準化により、品質は多少担保される。工数はかなり増える」イメージです。
個人的に、Webシステム開発の場合は、そのライフサイクルも考慮して、もうちょっと、CoC的に「省ける部分は省く」感がほしいところです。