Open棟梁Project - マイクロソフト系技術情報 Wiki
目次 †
概要 †
Dynamics AX開発がどんな感じか見てみました。
要約 †
基本項目 †
以下、基本的な項目の情報
AOT開発環境 †
AOTは、VB6のようなRAD開発環境。
- 業務のDBMSアプリに特化しているため、項目移送のコードは実装不要。
- 画面とDBの項目の対応付けで処理できる(よくあるパターン)。
X++ †
C#ベースらしい。
Javaにも似ているため習得しやすい。
- 従って、その範囲で、殆どのことは出来る模様。
- アクセス解決演算子が「:」なのでC++っぽくも視える。
参考
相互運用 †
DLL、COMの呼出し †
DLL、COMのライブラリの呼出も可能。
- これにはAOTのSystem Documentation以下にある組込ライブラリを使用する。
- また、利用頻度の高いDLL、COMのラッパー・ライブラリが用意されている。
.NETの呼出し †
そのまま.NETの呼出を実装できる。
- 独自開発のアセンプリも参照設定(Reference)でサーバ側に取り込む。
.NETからの呼出 †
.NET言語からの呼び出しのみ可能。
X++のライブラリが出来るということはないので、
以下のようにしてX++のコードを呼び出す必要がある。
- .NET ProjectをAOTに追加し、
- AOTのオブジェクトを.NET ProjectのソリューションエクスプローラーにD&Dする。
- すると、Service Reference 的なプロキシクラスが自動生成される。
- このライブラリを経由してAXのClass・Tableにアクセスする仕様。
詳しくは下記参照。
.NET Business Connectorを使用してアクセスすることもできる模様。
バージョン管理ツール †
VCS、TFS、VSSなどを選択できるが、大規模開発向けではなさそう。
情報量 †
サポート・サービスのトレーニング教材などが利用できる。
カスタマイズ †
- これは、下位レイヤのコードの動きを理解する必要があるため。
(詳しくは下記の「レイヤー」を参照)
- 一般的に、Fit率が70%以下になると難しくなると言われている。
詳細項目 †
以下、その他の詳細な項目の情報
処理方式 †
- 3層C/S型のリッチクライアント
- AXは、Webではなく、リッチクライアントで動作する。
- AXのクライアントは、ADに属す必要がある。
- AXクライアントのインストール
AXのインストーラのインストール・オプションでクライアントだけ選択する。
- クライアント側の機能
- 業務画面
- 開発ツール(AOT)
- Webサービス接続(VS、Office)
- VS連携は、VS Toolが必要
- VSの.NETのProjectをAOTに追加しAOTのオブジェクトにアクセス。
- SSRSからAXのデータソースに繋げてのReportの開発。
レイヤー †
オブジェクトを管理している。
- 青(EndUser?が開発したもの)
- 緑(Partnerが開発したもの)
- ピンク(MSが開発したもの)
オブジェクト指向の継承ではない。
ソースコードがコピーされる仕様。
従って下位レイヤのコードの変更はマージが必要。
AOTのツリー †
データディクショナリ †
以下を定義する。
- テーブル、ヴュー
- 必須入力→必須入力チェックとなるもよう。
- チェック処理もテーブルのメソッドに実装する。
この場合、CRUD操作の既定のメソッドをオーバーライドする。
データ型 †
- プリミティブ型
- BaseEnums?(基本列挙方)
- 拡張データ型(ドメイン的な)
マップ †
売り買い:数量 * 単価 = 金額
一つ実装すれば、色々な所で使える。
Class <-- Form <-- MenuItem? †
- Form
- 画面(datasource、method、designを定義)
画面とデータを紐付けるだけ(項目移送は書かない)。
- 画面の項目はデザイナでコントロールに下に
フィールドを置くとその様に画面に出る。
- コントロールのイベントはメソッドのオーバーライドで実装する。
- MenuItem?
画面を起動するリンクのようなもの。
LabelFiles? †
国際化対応のリソースファイル(.NETとほぼ同じ仕様)
Job †
- 多分、Jobを実装する領域。
- X++の動作確認(デバッグ実行)にも利用できる。
Project †
モジュールをProjectにまとめて、インポート・エクスポートが可能
e.g.:
- 共通 → partnerレイヤにインポート。
- 国毎 → enduserレイヤにインポート。