Open棟梁Project - マイクロソフト系技術情報 Wiki
Dynamics AX開発がどんな感じか見てみました。
AXはリッチクライアントで 他システム開発に使用することもできるが、 基本はAXカスタマイズの範囲で使用する。
C++/CLIのUOC可能な範囲を絞ったサブセットのようなもの。
その範囲で、殆どのことは出来る模様。
従って、X++からの.NETやCOM、DLLのライブラリの呼出は可能。
.NET言語から呼び出しのみ可能。
X++のライブラリが出来るということはないので .NETのProjectをAOTに追加し、AOTのオブジェクトを.NETのProjectにD&D。 すると、WebServicesReference?的なクラスライブラリが自動生成される。 このライブラリを経由してAXのClass・Tableにアクセスする仕様。
VCS、TFS、VSSなどを選択できるが、大規模開発向けではなさそう。
カスタマイズが案外面倒である。
下位レイヤのコードの動きを理解する必要があるため。 (詳しくは下記のレイヤーを参照)
以下、その他の詳細情報
クライアントはADに属す必要がある。 AXのインストーラのインストールオプションでクライアントだけ選択する。
クライアントの機能は以下。 ・Webサービスに接続(VS、Office) ・VS連携は、VSTool(クライアント側と連携) ・SSRSからAXのデータソースに繋げる。
・レイヤー オブジェクトを管理している。 ・青(EndUser?) ・緑(Partner) ・ピンク(MS) オブジェクト指向の継承ではない。 ソースコードがコピーされる。 従って下位レイヤのコードの変更はマージが必要。
・AOT
・データディクショナリ 以下を定義する。 ・テーブル、ヴュー ・必須入力→必須入力チェックとなるもよう。 ・チェック処理もテーブルのメソッドに実装する。 この場合、既定のメソッドをオーバーライドする。 ・データ型 ・プリミティブ型 ・BaseEnums?(基本列挙方) ・拡張データ型(ドメイン的な)
・マップ 売り買い:数量?単価=金額 一つ実装すれば、色々な所で使える。
・Class <-- Form <-- MenuItem?
・Class X++のビジネスロジック
・Form 画面(datasource、method、designを定義) ・画面とデータを紐付けるだけ(項目移送は書かない)。
・画面の項目はデザイナでコントロールに下に フィールドを置くとその様に画面に出る。 ・コントロールのイベントは メソッドのオーバーライドで実装する。
・MenuItem? 画面を起動するリンクのようなもの。
・LabelFiles? 国際化対応の リソースファイル(.NETとほぼ同じ仕様)
・Job X++の動作確認に利用できる。
・Project(インポート・エクスポートが可能) ・モジュールを束ねて、インポート・エクスポート。 ・e.g.: ・共通 → partnerレイヤに。 ・国毎 → enduserレイヤに。