2. 1
Open棟梁 v1系 全体像
Open棟梁 基幹システム
開発基盤
.NET リッチクライアント
WWWブラウザ
HTML
SOAP, JSON
(バイナリ転送)
WebAPI
(REST, JSON-RPC)
様々なスマート・デバイス
BusinessLogic層
Transaction Root
ベースクラス1
サブクラス
ベースクラス2
DataAccess層
ベースクラス1
サブクラス
ベースクラス2
通信制御機能
.NET サービスインターフェイス
バイナリ・オブジェクト転送
汎用サービスインターフェイス
SOAP, REST (JSON, XML)
バイナリ・オブジェクト転送
Presentation層:ASP.NET
Web Form or MVC
SOAP, REST (JSON, XML)
DBMS
XML or SQLファイル
<?xml version="1.0" ?>
<ROOT>
SELECT A, B, C, D
FROM T
<WHERE>
WHERE
<IF>AND A = @A</IF>
<IF>AND A LIKE @A_LIKE</IF>
<IF>AND B = @B</IF>
<IF>AND B LIKE @B_LIKE</IF>
<IF>AND C = @C</IF>
</WHERE>
ORDER BY
<IF name="SEQUENCE">A
<ELSE>B</ELSE>
</IF>
</ROOT>
保守性 向上、生産性 向上、品質 向上、
信頼性 向上、セキュリティ・脆弱性の排除
3. 2
2層 C / S = 得意
Windows Forms / WPF
• Windows Formsには、P層フレームワークにユーティリティ機能が
多数実装されている。WPFにはP層フレームワークの提供は無し。
• なお、2層C/Sでは、DBMS トランザクション ≒ コネクション
を継続利用するため非同期呼び出しを考慮しないで良い。
• リモートデスクトップ、ClickOnce対応も可能。
P層機能
イベント処理
画面管理・制御, etc.
B、D層機能
トランザクション管理
動的SQL、Dao生成, etc
5. 4
3層 C / S 通信制御機能を利用する = 得意
Windows Forms / WPF
• 通信制御機能により、2層 C/S を 3層 C/S に容易に拡張できる。
• 通信制御機能の内部はSOAP、RESTによるオブジェクトのバイナリ転送。
• Windows FormsのP層フレームワークを使用した場合の非同期呼び出しは、
TAP(async/await)ではなくEAP (Control.Invoke、.BeginInvoke)のみ。
• なお、当該アーキテクチャをインプロセス呼出モードで2層C/Sにも適用可。
通信制御機能
DBサーバWeb/APサーバ
B、D層機能P層機能
6. 5
3層 C / S 通信制御機能を利用しない = 得意
• WebAPIをクロスプラットフォーム対応する場合は、RawなSOAP or REST
WebAPIとして実装する必要があるため、通信制御機能は使用できない。
• この場合も、フロントエンド、バックエンドの両方にOpen棟梁を適用可能。
Raw な
SOAP or REST
Windows Forms / WPF DBサーバWeb/APサーバ
B、D層機能P層機能
7. 6
Web2層アプリケーション = 得意
ASP.NET Web Forms
ASP.NET MVC
Web FormsにもMVCにも、P層フレームワークが用意されている。
Web Forms版には ≒ Windows Forms版のユーティリティ機能が実装
されているが、 MVC版は(、機能を乗せ難く)、提供機能が少ない。
あと、同様に、Web Forms版はTAP(async/await)をサポートしない。
DBサーバWeb/APサーバ
B、D層機能P層機能
8. 7
Web3層アプリケーション = 得意
ASP.NET Web Forms
ASP.NET MVC
通信制御機能やRawなSOAP or RESTを使用して、
Web3層アプリケーションも構成可能。
DBサーバWeb/APサーバ
通信制御機能 or
RawなSOAP or REST
11. 10
フロントエンド開発 = Windows Formsなら、まぁ、なんとか。
B層、D層機能を使用可能
Windows Forms
しかし、Windows Forms版フレームワーク単体適用だと、ちょっと弱い。
• バックエンドに某TPモニタを使った案件の事例は過去にあった。
• 最近のクラウド、SaaS、WebAPIの対応が難しくなってきている。
他のバックエンド技術
P層機能
イベント処理
画面管理・制御, etc.
12. 11
END
評価方法 - Open 棟梁 Wiki
https://opentouryo.osscons.jp/index.php?%E8%
A9%95%E4%BE%A1%E6%96%B9%E6%B3%95
Get Started !!