マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Dynamics AX開発がどんな感じか見てみました。

要約

  • 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++のコードを呼び出す必要がある。

  1. .NET ProjectをAOTに追加し、
  2. AOTのオブジェクトを.NET ProjectのソリューションエクスプローラーにD&Dする。
  3. すると、Service Reference 的なプロキシクラスが自動生成される。
  4. このライブラリを経由してAXのClass・Tableにアクセスする仕様。
    • Dynamics CRMのエンティティ・アクセス方法に似ている。

詳しくは下記参照。

.NET Business Connectorを使用してアクセスすることもできる模様。

バージョン管理ツール

VCS、TFS、VSSなどを選択できるが、大規模開発向けではなさそう。

情報量

サポート・サービスのトレーニング教材などが利用できる。

  • MSDNなどは整理されてきている。
  • ブログなどの情報源はまだ少ない。

カスタマイズ

  • カスタマイズが案外面倒である。
  • これは、下位レイヤのコードの動きを理解する必要があるため。
    (詳しくは下記の「レイヤー」を参照)
  • 一般的に、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?

  • Class
    • X++のビジネスロジック
  • Form
    • 画面(datasource、method、designを定義)
      画面とデータを紐付けるだけ(項目移送は書かない)。
    • 画面の項目はデザイナでコントロールに下に
      フィールドを置くとその様に画面に出る。
    • コントロールのイベントはメソッドのオーバーライドで実装する。
  • MenuItem?
    画面を起動するリンクのようなもの。

LabelFiles?

国際化対応のリソースファイル(.NETとほぼ同じ仕様)

Job

  • 多分、Jobを実装する領域。
  • X++の動作確認(デバッグ実行)にも利用できる。

Project

モジュールをProjectにまとめて、インポート・エクスポートが可能

e.g.:

  • 共通 → partnerレイヤにインポート。
  • 国毎 → enduserレイヤにインポート。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-03-01 (水) 20:59:16 (994d)