ドローイング空間

3D-CADを中心に、雑多なことをかいています。

C# WPFで、Prismを使いはじめるための環境構築に関する試行錯誤

広告

C#WPFの組み合わせでアプリケーションを開発する場合、 MVVMと呼ばれるデザインパターンで実装することをいろいろな場面で求められます。 WPFで直接MVVMデザインパターンの様式で実装を行うのは、困難なため、 「Prism」や「MVVM Light Toolkit」などのMVVMでの実装を支援するツールキットを利用することが一般的と言われています。 そこで、この記事では、C# WPFで、Prismを使いはじめるために何をしたら良いのか、実際に、確認してみます。

 

MVVMデザインパターンC#WPFで学習するために、Prismを使用してみることにします。 現時点では、Prismツールキットは、Prism6が最新バージョンのようです。 しかし、環境を構築する方法が理解できていないので、ドキュメントが多い、Prism5で行いました。

基本的な情報

プロジェクトの所在

GitHabのPrizmのページです。

PrismLibrary/Prism

Prismのドキュメントの所在

C#に関連するドキュメントは、インターネット上に大量に存在するようなのですが、 英語で書かれているものが多いのも手伝って、理解できない情報を学ぶために必要なドキュメントを見つけるのは困難です。

Developer's Guide to Microsoft Prism Library 5.0 for WPF(英語)

英語のドキュメントです。かなり量があります。

一部については、和訳しました。

「Developer's Guide to Prism Library 5.0 for WPF」の和訳

しかし、読んでもよくわかりません。読んでもよく変わらないドキュメントって一体何?と思ってしまいます。 おそらく、学ぶために必要な前提となる知識が幾つかを私が習得していないことが原因と思われます。 そして、それが何かわからないのが困り者です。

Composite Application Guidance for WPF

翻訳されたドキュメントです。同じサンプルアプリケーションが使われていることから、 使用する環境が、Visual Studio 2008と.NET Framework 3.5のため、 Prism前身となるToolkit を使用した過去のドキュメントを思われます。 しっかりと読んでいませんが、デスクトップアプリケーションを開発するためのドキュメントのようです。 MVVMデザインパターンもまだ確立されていない時期のもののようです。 Prizm 5.0より以前のバージョンと思われますが、ドキュメントが翻訳されているので、 英語な苦手な場合は、こちらのドキュメントで理解した後、 英語のドキュメンに挑戦したほうが効率的かと推測できます。

Prismのチュートリアル、サンプルコード

それなりに存在するようです。ただ、複数のモジュールに分割して、実装するスタイルなので、 コードは、多く、読みにくくなっているものと推測されます。いくつか、ダウンロードパッケージの中に存在します。

方針

理解できるだけの情報が見つからないので、見つかった情報を組み合わせながら、サンプルコードで習得して行く方向で行こうと思います。 理解が進んだら、見える範囲も広がるはずなので、その時点で、調べなおせば、理解できることもあるかと思います。

開発環境の構築

サンプルコードを実行できる環境を構築する方法を考えます。 ドキュメントを読んでもPrismをどうやって使い始めたらいいのか読み取れません。 そこで実際に、環境を整え、サンプルコードを使ってみることにします。

Visual Studio Community 2015で、Prismの開発環境を構築しようと思います。

Prism 5.0 for WPFをダウンロードする

Prism 6.0は、既に利用できるようなのですが、ダウンロードパッケージが見つからなかったので、 Prism 5.0を使用することにしました。 ただ、このダウンロードパッケージは、チュートリアルとドキュメントが入っていますが、 参照は、Visual Studio のNuGet機能で追加する必要があります。

Prism 5.0 for WPFをダウンロードする

Download Prism 5.0 for WPF – April 2014 from Official Microsoft Download Center

ツールキットやライブラリの追加についても、 コード内で、実際にどのようなことが起こって使えるようになっているかも理解できていないので、 試行錯誤で試していきたいと思います。

説明によると「Prismは、あなたが、Windows Presentation Foundation (WPF)デスクトップ・アプリケーションを、 もっと簡単に、高機能な設計し、そして、構築し、柔軟に、そして、簡単に保守するのを助けるために、 設計された手引きを提供します。」とありますので、 Prism 5.0 for WPFは、デスクトップアプリケーション向けのパッケージのようです。

ダンロードページの英語の文章を和訳しました。

詳細

Details

Prismは、あなたが、Windows Presentation Foundation (WPF)デスクトップ・アプリケーションを、もっと簡単に、高機能な設計し、 そして、構築し、柔軟に、そして、簡単に保守するのを助けるために、設計された手引きを提供します。 関心事の分離と疎結合のような、重要な構造的な設計原理を実現するデザインパターンを使用して、 Prismは、独立して進化できる疎結合コンポーネントを使用して、 あなたが、アプリケーションを設計・構築するために役立ちます。 しかし、それは、全体的なアプリケーションに、簡単に、継ぎ目なく、統合することができます。 アプリケーションは、多くの場合、複合アプリケーションと呼ばれます。

システム要件

System Requirements

  • Version: 5.0 File
  • Name: PrismV5.exe
  • Date Published: 5/5/2014
  • File Size:3.9 MB
サポートされているOS

Windows 7Windows 8Windows 8.1Windows Server 2012

このガイダンスを用いて、構築されるWPFアプリケーションは、実行するために、.NET Framework 4.5を要求します。 あなたは、Prismライブラリを使用する前に、以下をインストールする必要があります。: Microsoft Visual Studio 2012、あるいは、Windows Server 2013 Professional、あるいは、Ultimateエディション

Microsoft .NET Framework 4.5、あるいは、4.5.1(Visual Studio 2013と一緒にインストールされます) また、あなたは、以下をインストールしたいかもしれません。:Project Linker 2.2

インストールの説明

Install Instructions

詳細なインストール手順は、Readme fileで提供されています。 私たちは、すべての開発者が、この文書を読むことを推奨しています。 Prismの資産をインストールするには、Prismv5.exeファイルを右クリックし、そして、管理者として実行をクリックします。 これは、あなたの選んだフォルダに、ソース・コードとリファレンスAPIドキュメンテーションを解凍します。 Prismは、コード資産の各々にショートカット・ファイルを提供します。

追加の情報

Additional Information

詳細については、MSDNのPrismのホームページを参照してください。フィードバックを提供するために、 支援を手に入れます、あるいは、追加コンテンツをダウンロードし、Prismのコミュニティ・サイトを訪問します。

ダウンロードしたファイルを解凍する

ダウンロードしたファイルを実行します。

ダウンロードしたファイルを実行します。

利用許諾が表示されます。

利用許諾が表示されます。

インストールフォルダを選択します。

インストールフォルダを選択します。

指定したフォルダにファイルが展開されました。

指定したフォルダにファイルが展開されました。

Readme.htmの和訳

和訳してみました。

Prism Library 5.0 for WPFのダウンロードとセットアップ

QuickStartを実行する

Readmeを読んでも、この後、何をすればいいのかよく分かりません。

ダウンロードし、解凍したファイルの中から、「Open QS - Hello World QuickStart」を実行します。 どれから始めたらいいのかわかりませんが、 プログラミングで、使い始めに「Hello World」を表示させるのは、伝統的な作法のなのでは?と思います。

ダウンロードし、解凍したファイルの中から、「Open QS - Hello World QuickStart」を実行します。

Microsoft Visual Studio Community 2015で、ソリューションが開きます。

Microsoft Visual Studio Community 2015が既にインストールされた環境で実行しています。

エラーが、表示されます。Prismに関連するライブラリの参照は、自動では追加されないようです。

エラーが、表示されます。

ソリューションエクスプローラーで、参照を確認すると、警告マークが表示された項目が、表示されています。

ソリューションエクスプローラーで、参照を確認すると、警告マークが表示された項目が、表示されています。

ソリューション・エクスプローラーの参照で右クリックして、「NuGetパッケージ管理(N)...」を選択します。

ソリューション・エクスプローラーの参照で右クリックして、「NuGetパッケージ管理(N)...」を選択します。

「このソリューションに一部のNuGetパッケージが見つかりません。クリックするとオンラインパッケージリソースから復元します。」 と表示されているので、「復元」ボタンを押します。

「このソリューションに一部のNuGetパッケージが見つかりません。クリックするとオンラインパッケージリソースから復元します。」 と表示されているので、「復元」ボタンを押します。

インストールされているPrism関連のNuGetパッケージとReadmeに記載されていたNuGetパッケージを比較します。

「Prism.MefExtensions」がありません。

参考:Readmeに記載されている必要とするNuGetパッケージ

  • Prism

    NuGet依存関係パッケージをダウンロードします。-Prism.Composition、Prism.Interactivity、Prism.MvvmとPrism.PubSubEvents NuGetパッケージ。

  • Prism.Composition

    モジュール性、UIの構成、ブートストラップ、インタラクティブ性、IActiveAware、ナビゲーションと非推奨のNotificationObjectとPropertySupport。

  • Prism.Interactivity

    インタラクティブ性。

  • Prism.Mvvm

    MVVMのためのPortableクラス・ライブラリーとMVVMをサポートする関連するプラットホーム固有のコード。 Commanding、BindableBase、ErrorsContainer、IViewとViewModelLocationProviderが含まれています。

  • Prism.PubSubEvents

    PubSubEventsのためのPortableクラス・ライブラリー。

  • Prism.UnityExtensions

    Unityに基づいて、Prismアプリケーションを構築するために、Prismに、これらの拡張を使用します。

  • Prism.MefExtensions

    拡張管理フレームワーク(MEF)に基づいて、Prismアプリケーションを構築するために、Prismで、これらの拡張を使用します。

インストールされているPrism関連のNuGetパッケージを確認します

参照タブに、移行し、「Prism.MefExtensions」を検索ボックスに入力し、検索します。

参照タブに、移行し、「Prism.MefExtensions」を検索ボックスに入力し、検索します。

選択して、「インストール」をクリックします。

選択して、「インストール」をクリックします。

ダイアログが表示されるので、OKをクリックします。

ダイアログが表示されるので、OKをクリックします。

ライセンスの同意ダイアログが表示されます。

http://compositewpf.codeplex.com/licenseです。

ライセンスの同意ダイアログが表示されます。

インストールしました。

インストールしました。

エラーが減りました。

エラーが減りました。

検索ボックスをクリアし、「更新プログラム」を選択し、「すべてのパッケージを選択」チェックボックスにチェックを入れ、「更新」をクリックします。

検索ボックスをクリアし、「更新プログラム」を選択し、「すべてのパッケージを選択」チェックボックスにチェックを入れ、「更新」をクリックします。

確認タイアログが表示されます。OKをクリックします。

確認タイアログが表示されます。OKをクリックします。

ライセンスの同意ダイアログが表示されます「同意する」をクリックします。

ライセンスの同意ダイアログが表示されます「同意する」をクリックします。

エラーは、1つ増え、6個になりました。

エラーは、1つ増え、6個になりました。

ソリューションエクスプローラーの参照の警告表示はなくなりました。

ソリューションエクスプローラーの参照の警告表示はなくなりました。

開始ボタンをクリックして、ビルドし、実行してみます。

開始ボタンをクリックして、ビルドし、実行してみます。

エラーで終了します。

エラーで終了します。

エラーは、1つに減りました。

エラーは、1つに減りました。

再び、ソリューション・エクスプローラーの参照で右クリックして、「NuGetパッケージ管理(N)...」を選択します。

再び、ソリューション・エクスプローラーの参照で右クリックして、「NuGetパッケージ管理(N)...」を選択します。

「インストール済み」を選択し、「Unity」を選択し、バージョン「3.5.1404」で更新します。

「インストール済み」を選択し、「Unity」を選択し、バージョン「3.5.1404」で更新します。

確認のダイアログが表示されます。OKをクリックします。

確認のダイアログが表示されます。OKをクリックします。

ライセンスの同意ダイアログが表示されます。

ライセンスの同意ダイアログが表示されます。

Unityがダウングレードできました。

Unityがダウングレードできました。

エラーが消えました。

エラーが消えました。

開始ボタンをクリックして、ビルドし、実行してみます。

開始ボタンをクリックして、ビルドし、実行してみます。

実行できました。これで、Prismを利用できる状態になったことが確認できました。

実行できました。これで、Prismを利用できる状態になったことが確認できました。