Open棟梁Project - マイクロソフト系技術情報 Wiki

* 目次 [#w2dce1f0]
#contents

*概要 [#yc9d2729]
Dynamics AX開発がどんな感じか見てみました。

*要約 [#zd5ee541]
AXはリッチクライアントで
他システム開発に使用することもできるが、
基本はAXカスタマイズの範囲で使用する。

-AXのクライアント・ライセンスが必要になる。~
ライセンスは人という考え方と、端末という考え方がある。

-AX担当もSAP担当とほぼ同じくカスタマイズの面倒は見ないので、~
partner側がテンプレートを拡充する場合を除き、enduser以上に詳しくなれない。

**AOT開発環境 [#r885bb77]
-AOTは、VB6のようなRAD開発環境。
--業務のDBMSアプリに特化しているため、項目移送のコードは実装不要。
--画面とDBの項目の対応付けで処理できる(よくあるパターン)。

**X++ [#j7f00222]
C++/CLIのUOC可能な範囲を絞ったサブセットのようなもの。

その範囲で、殆どのことは出来る模様。

**相互運用(他言語の呼出し) [#m09fb4fd]
従って、X++からの.NETやCOM、DLLのライブラリの呼出は可能。

***COM、DLL [#t140d1ed]
-これにはsystem documentation以下にある組込ライブラリを使用する。
-また、利用頻度の高いCOM、DLLののラッパーライブラリが用意されている。
--WinAPI.BringWindowToTop.etc~
https://msdn.microsoft.com/en-us/library/winapi.aspx
--SysExcelXXXX~
https://msdn.microsoft.com/en-us/library/gg959078.aspx

***.NET [#bfdae46b]
-C++/CLIのようにそのまま書ける。
-独自開発のアセンプリも参照設定(Reference)でサーバ側に取り込む。

**相互運用(他言語からの呼出) [#g76ab4c6]
.NET言語から呼び出しのみ可能。

X++のライブラリが出来るということはないので
.NETのProjectをAOTに追加し、AOTのオブジェクトを.NETのProjectにD&D。
すると、WebServicesReference的なクラスライブラリが自動生成される。
このライブラリを経由してAXのClass・Tableにアクセスする仕様。

***バージョン管理ツール [#x2a8c032]
VCS、TFS、VSSなどを選択できるが、大規模開発向けではなさそう。

***情報量 [#z440b241]
-MSDNなどは整理されてきている。
-ブログなどの情報源はまだ少ない。

**カスタマイズ [#w3f133ab]
カスタマイズが案外面倒である。

下位レイヤのコードの動きを理解する必要があるため。
 (詳しくは下記のレイヤーを参照)


*詳細 [#d4921417]
以下、その他の詳細情報

**AXはリッチクライアントで動作する。 [#d6a93bcf]
 クライアントは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レイヤに。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS