検索
特集

特集:Longhornアプリケーションの構築方法FTP Online(3/6 ページ)

Microsoftからリリースされた最近のOSとは異なり、Longhornは開発者に対して明確なインパクトを提供するだろう。ここでは、簡単なLonghornアプリケーションの構築方法について学んでいく(日本語訳:澤田侑尚) 。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 ビルドシステムは、それぞれのXAMLファイルをマネージドクラス定義へとコンパイルする。デフォルトでは、マネージドクラスはXAMLソースファイルと同一のファイル名を持つ。例えば、Markup.xamlファイルはMarkupという名のクラス定義にコンパイルされる。DefaultClrNameSpaceプロパティをIntroLonghornに指定すると、ビルドシステムは生成されるクラスのIntroLonghorn名前空間プリフィックスを付ける。つまり、Markup.xaml定義から、ビルドシステムがIntroLonghorn.Markupというクラス名を生成することになる。

 ほかのプロジェクトをインポートする前にプロパティは定義しているので、インポートされたプロジェクト内の規則は指定されたプロパティ値を使うことになる。例題では、LanguageプロパティがC#に定義されているため、C#アプリケーションに対する固有のビルド規則が適用される。

 ビルドターゲットの規則はLonghornアプリケーションの実行可能ファイルを生成する。しかし、これらのビルド規則を全てのプロジェクトファイルに指定するのは、単調な作業のくり返しとなる。そのため、WindowsApplication.targetという名の定義済みのプロジェクトファイルをインポートすることにする。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 このインポートされるファイルは、Windowsアプリケーションを開発するための標準のビルド規則を含み、Buildと名づけられたターゲットを間接的に定義する。

 ItemGroup要素とその子要素のItemは、アプリケーションをビルドするために必要なすべての要素を定義する。ユーザーはType属性がApplicationDefinitionに設定されたItem要素を1つ持つ必要がある。 このItem要素は、アプリケーションで使用する、Applicationオブジェクトを定義したファイルを指定する。 このApplicationオブジェクトは、MSAvalon.Windows.Applicationクラスもしくは MSAvalon.Windows.Navigation.NavigationApplicationクラスの典型的なインスタンスである。どちらのクラスも後述する。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 Type属性がPagesに設定されている各Item要素は、以下のようなXAMLファイルのセットを定義する。ビルドシステムは、これらのXAML定義をクラスにコンパイルし、それらを生成されるアセンブリを含める。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 Type属性がCodeに設定されている各Item要素は、以下のようなソースファイルを表現する。ビルドシステムは、プロジェクトのLanguageプロパティで選択される適切なコンパイラを使い、これらのソースファイルをコンパイルする。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 このプロジェクトは他のプロジェクトに依存している場合もある。ビルドシステムがこのプロジェクトをビルドするには、それらの従属するプロジェクトをコンパイルしなければならない。これらの従属するプロジェクトは、Type属性がDependentProjectsに設定されたItem要素を使って列挙できる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 また、このプロジェクトのコードは、「コンポーネントアセンブリ」とも呼ばれる既にビルドされたアセンブリの型を使用するかもしれない。コンポーネントアセンブリを使ったコードをコンパイルするためには、コンパイラは各アセンブリを参照する必要がある。また、アプリケーションを展開するときに、これらのコンポーネントアセンブリも展開する必要がある。各コンポーネントアセンブリは、Type属性がComponentsのItem要素を使って列挙できる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 参照されるアセンブリは、コンポーネントアセンブリとは若干異なる。どちらの場合も、コードはビルド済みのアセンブリの型を利用する。しかし、コンポーネントアセンブリをユーザアプリケーションの一部として配布しても、参照されるアセンブリはアプリケーションの一部として配布することはない。ビルドシステムでは、この違いを知る必要がある。

 コンパイラはビルド時に指定されたアセンブリを参照するが、そのアセンブリはアプリケーションの展開の一部に含まれないということを指定するには、Type属性がReferencesに設定されたItem要素を使用する。ビルドシステムは、例えばmscorlib.dllやSystem.dll、PresentationFramework.dllといった標準のシステムアセンブリへの参照を自動的にインクルードするが、アプリケーションが参照する必要のある非標準のアセンブリは明示的に追加する必要がある。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 アプリケーションはリソースを使用することもできる。次のように、Type属性がResourcesに設定されたItem要素は、アプリケーションが使用するリソースを定義する。ビルドシステムは、生成されるアセンブリにリソースを埋め込むか、またはリソースをスタンドアロンのファイルとしてインクルードできる。また、ビルドシステムは、地域化に対応するリソースを、サテライトアセンブリに追加できる。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 続いて、実行型のアプリケーションに追加するライブラリをビルドする(コラム3参照)。

コラム3:ライブラリプロジェクトの生成

 アプリケーションプロジェクトとライブラリプロジェクトの主な違いは、ライブラリプロジェクトは一般的にアプリケーション定義アイテムを含まない点と、TargetTypeプロパティの値をLibraryに設定する点にある。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

© Copyright 2001-2005 Fawcette Technical Publications

ページトップに戻る