Skip to content

High Level View of ATF_j

Gary edited this page Mar 10, 2015 · 2 revisions

== ATF 概略の紹介 ==

ATF はゲームデベロッパーにとって非常に有用な、アプリケーション開発のためのソフトウェアフレームワークです。

ATF で理解すべき主要なフレームワークは「Managed Extensibility Framework (MEF)」、「Document Object Model (DOM)」、「適応」、および「コンテキスト」です。このページではこれらのフレームワークを簡単に説明します。また、概要は中核的な ATF フレームワークにも記載されています。

ATF クラスの多くは Microsoft 社の MEF コンポーネントとして構築されているため、アプリケーションへの取り込みが非常に簡単です。コードを一行書くだけで、アプリケーションにコンポーネントを追加できます。MEF は Microsoft 社のフレームワークですが、ATF でも多用されています。MEF コンポーネントは多くのアプリケーションに共通する機能を提供します。たとえば、標準的なコマンドを持つ [ファイル] メニューの追加、標準的なファイルダイアログの提供、各種オブジェクトパレットの UI への追加などが可能で、これらの機能を独自に開発する必要がありません。詳細は、MEF with ATF (英語) を参照してください。特に有用なコンポーネンツの一覧は、Important ATF Components (英語) を参照してください。

通常、アプリケーションではデータの作成や編集が可能で、大抵の場合に、データの複数ビューの同期保持、元に戻す/やり直し、切り取り/コピー/貼り付け、ファイルの永続性などの、データ関連の機能を必要とします。ATF ドキュメントオブジェクトモデル (DOM) は、データの変更を監視するメカニズムを持つシンプルな階層的インメモリデータベースで、すべての必要な機能を提供します。DOM はインメモリの XML ファイルに似ており、アプリケーションデータを XML ファイルで永続化させるクラスが提供されています。ただし、ほかの方法でもデータを永続化させることができます。DOM の構造はアプリケーションのデータ構造を反映し、スキーマファイルを使用して定義できます。ただし、DOM と XML のサポートは完全に独立しており、相互に必要としません。DOM の概説は、DOM in a Nutshell (英語) を参照してください。一般的なドキュメントの説明は、Documents in ATF (英語) を参照してください。

ATF で使用する適応とは、型の継承を使用せずに、ある型の C# オブジェクトをほかの型のオブジェクトのように見せる技法です。DOM を使用する場合には特に、適応が重要となります。これは、適応が基本 DOM クラスの DomNode をコード全体において、より便利なアプリケーションに特化したクラスに見せるためです。これにより、データ表記をビジネスロジックから独立させることができます。ソフトウェアエンジニアリングの設計パターンでは、適応は Adapter および Decorator のパターンで構成されます。詳しくは Adaptation in ATF (英語) を参照してください。

多くの場合、アプリケーションは複数ドキュメントの表示や編集を同時にサポートします。また、複数ドキュメントそれぞれの、選択、元に戻す/やり直しの履歴もサポートされます。ATF ではこれらの独立したデータのグループを「コンテキスト」と呼びます。ほとんどのアプリケーションでは、コンテキストはメモリに読み込まれた単一のドキュメントに関連付けられますが、ドキュメントとコンテキストは別のものです。1 つのドキュメントは複数のコンテキストを含むことができ、1 つのコンテキストは複数のドキュメントのデータを把握することもあります。エディターおよび、さまざまなツールやコマンドは通常、現在アクティブなコンテキストを使用します。詳細は、ATF Contexts (英語) を参照してください。

ATF の目的は、ATF の提供するコントロールやコンポーネントを利用した、ゲームデベロッパーが使用可能なアプリケーションの開発です。たとえば、ステートチャートエディターで示すように、状態や遷移を表すエディターの開発に使用するステートチャートレンダラーを提供します。また、回路エディターの豊富なサポートもあります。これらの特化した機能の詳細は、Specialized ATF Topics (英語) を参照してください。

SimpleDOMEditor および SimpleDOMEditorWPF のサンプルで示すように、Windows フォーム (WinForms) および Windows Presentation Foundation (WPF) の両方を使用してアプリケーションを開発することが可能です。両サンプルの実行内容は同じですが、それぞれ WinForms と WPF で実装されています。詳しい情報やほかのサンプルを見るには、ATF コードサンプルを参照してください。

ATF には多数のクラスやインターフェイスがあります。ATF の構成方法は、いくつかの異なる観点から見ることができます。詳しくは ATF Structure (英語) を参照してください。

ATF は C# .NET コンポーネントのセットであり、.NET フレームワークの拡張と考えることもできます。デベロッパーの生産性の強化するために、.NET との統一プログラミングモデルを提供するデザインガイドラインに従っています。フレームワーク開発を理解するには、フレームワーク開発の習得を参照してください。

Clone this wiki locally