開発基盤部会 Blog

開発基盤部会 Blog >> 記事詳細

2018/07/25

Open棟梁プロジェクトの起源について。 (3)

Tweet ThisSend to Facebook | by nishino
 前回、「Open棟梁プロジェクトの起源について。」の第2回の投稿を行いましたが、今回は、その第3回の投稿です。

 2007年からの社内 横展開を開始して以降、産業系の案件が中心でしたが、公共系や金融系のメガ・ステップ級の案件も経験しつつ、以下のような機能を順次追加していきました。

  • 動的SQLとD層自動生成機能
  • 複数ブラウザ・ウィンドウ
    • 業務モーダル・ダイアログ
    • ブラウザ・ウィンドウ別Sessionスコープ
    • 不正操作防止機能
  • 多用なアーキテクチャへの対応
    • WPF / Silverlight、
      ASP.NET MVC、WebAPI、UWP
    • 通信制御機能
    • リッチクライアント対応

 以下に、その経緯などをつらつらと書いていこうと思います。

<動的SQLとD層自動生成機能>

 当時、既に、Seasar2のS2Daoや、iBATISなどの動的SQLフレームワークが存在していたため、始めは、S2Dao.NETを組み込む予定でしたが、いろいろ調査してみて、S2Container.NETと分離可能か?が良く解らなかったため、結局「動的パラメタライズド・クエリ」の自作を行いました。

 この判断は、後の、2-way-SQLの代替として、より正確なSQL定義検証が可能となる「動的パラメタライズド・クエリ分析ツール」開発や「D層自動生成ツール」開発時の動的SQL機能の拡張を容易にしたこと、The Seasar Projectの活動停止を考えると、結果的に吉と出たと考えています。

 また、業務アプリケーションのドメインでO/Rマッパーの適合性があまり高くないということも本機能のニーズを押上ました。

<複数ブラウザ・ウィンドウ>

 複数ブラウザ・ウィンドウ対応として「業務モーダル・ダイアログ」、「ブラウザ・ウィンドウ別Sessionスコープ」、「不正操作防止機能」などの実装を行いました。

 これらの実装は、「フレームワーク側の実装」を見ると、難易度も高く、且つ、かなりの工数(恐らく3-5人月程度)を必要とするので、中小規模のスクラッチ開発にスクラッチ実装していくことは「殆ど不可能」と思いますが、Open棟梁の適用プロジェクトでは、これらの機能の実装を0コストで導入することを可能としました。

<多用なアーキテクチャへの対応>

 当初の目的でもある、「.NETのサポートする多種多様なアーキテクチャをサポートする。」を実現するために、Windows Forms、バッチ(Console)、WPF / Silverlight、ASP.NET MVC、WebAPI、UWPなど、更に多様なPresentation層に対応するテンプレートが追加されていきました。

 この際のキー・コンポーネントが以下のP6 - 10の「通信制御機能」で、

 これにより、以下のP20 - 23のような、リッチクライアントの3層C/S系アーキテクチャのサポートを拡充させることができました。


 また、この「通信制御機能」の設計のポイントとしては、「異種透過性」の実現のため、よりスマートな設計に見える「透過プロキシ」を採用しなかった点が挙げられます。

 この「異種透過性」サポートの取組は、ランタイムの異なる「Silverlight / WinRT / UWP」のサポートを経て、現在は、「SPA」や「スマホ向けHybridアプリ、Nativeアプリ」など、「Node.js製のCLI」と「Visual Studio Code」などの任意のエディタを使用する新しい開発のサポートを可能にしています。

 次回に続く。
09:00 | 投票する | 投票数(0) | コメント(0)