.NET用アプリケーション フレームワーク
Open 棟梁 V1系
- エンプラシステム開発基盤 -
対応アプリケーション・アーキテクチャ一覧
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>
保守性 向上、生産性 向上、品質 向上、
信頼性 向上、セキュリティ・脆弱性の排除
2
2層 C / S = 得意
Windows Forms / WPF
• Windows Formsには、P層フレームワークにユーティリティ機能が
多数実装されている。WPFにはP層フレームワークの提供は無し。
• なお、2層C/Sでは、DBMS トランザクション ≒ コネクション
を継続利用するため非同期呼び出しを考慮しないで良い。
• リモートデスクトップ、ClickOnce対応も可能。
P層機能
イベント処理
画面管理・制御, etc.
B、D層機能
トランザクション管理
動的SQL、Dao生成, etc
3
バッチアプリ = 得意
Consoleアプリケーション
• もちろん、バッチも組める。
• 大量データ処理の高速化の
ためのユーティリティ機能もある。
B、D層機能
トランザクション管理
動的SQL、Dao生成, etc
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層機能
5
3層 C / S 通信制御機能を利用しない = 得意
• WebAPIをクロスプラットフォーム対応する場合は、RawなSOAP or REST
WebAPIとして実装する必要があるため、通信制御機能は使用できない。
• この場合も、フロントエンド、バックエンドの両方にOpen棟梁を適用可能。
Raw な
SOAP or REST
Windows Forms / WPF DBサーバWeb/APサーバ
B、D層機能P層機能
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層機能
7
Web3層アプリケーション = 得意
ASP.NET Web Forms
ASP.NET MVC
通信制御機能やRawなSOAP or RESTを使用して、
Web3層アプリケーションも構成可能。
DBサーバWeb/APサーバ
通信制御機能 or
RawなSOAP or REST
8
バックエンド開発 = DBMSアプリなら、まぁ得意
他のフロントエンド技術
B層、D層機能を使用可能
DBサーバWeb/APサーバ
B、D層機能
9
バックエンド開発 = DBMSアプリ以外は苦手
他のフロントエンド技術
NoSQLを使用したり、WebAPIのHubになったり、
… そういうのは苦手(お役に立てない)。
しかし、項目移送ぐらいなら、NiFiで実装してもイイかも。
NoSQLWeb/APサーバ
WebAPI
お役に立てません!
10
フロントエンド開発 = Windows Formsなら、まぁ、なんとか。
B層、D層機能を使用可能
Windows Forms
しかし、Windows Forms版フレームワーク単体適用だと、ちょっと弱い。
• バックエンドに某TPモニタを使った案件の事例は過去にあった。
• 最近のクラウド、SaaS、WebAPIの対応が難しくなってきている。
他のバックエンド技術
P層機能
イベント処理
画面管理・制御, etc.
11
END
評価方法 - Open 棟梁 Wiki
https://opentouryo.osscons.jp/index.php?%E8%
A9%95%E4%BE%A1%E6%96%B9%E6%B3%95
Get Started !!

Open棟梁 v1 の対応アプリケーション・アーキテクチャ一覧

  • 1.
    .NET用アプリケーション フレームワーク Open 棟梁V1系 - エンプラシステム開発基盤 - 対応アプリケーション・アーキテクチャ一覧
  • 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
  • 4.
    3 バッチアプリ = 得意 Consoleアプリケーション •もちろん、バッチも組める。 • 大量データ処理の高速化の ためのユーティリティ機能もある。 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.NETWeb 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.NETWeb Forms ASP.NET MVC 通信制御機能やRawなSOAP or RESTを使用して、 Web3層アプリケーションも構成可能。 DBサーバWeb/APサーバ 通信制御機能 or RawなSOAP or REST
  • 9.
  • 10.
    9 バックエンド開発 = DBMSアプリ以外は苦手 他のフロントエンド技術 NoSQLを使用したり、WebAPIのHubになったり、 …そういうのは苦手(お役に立てない)。 しかし、項目移送ぐらいなら、NiFiで実装してもイイかも。 NoSQLWeb/APサーバ WebAPI お役に立てません!
  • 11.
    10 フロントエンド開発 = WindowsFormsなら、まぁ、なんとか。 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 !!