shuhelohelo’s blog

Xamarin.Forms多めです.

.NET Core 3.0 WPF with Prismなプロジェクトで画面デザイナを使いたい(準備編)

追記(20190604)

今更の追記ですが、現在は.NET Core 3.0 WPFで画面デザイナが使えるようになっています。 Visual Studio 2019をインストールしてください。

はじめに

.NET Coreで動作するWPFアプリをプレビューですが作成できるようになっています。 しかし、.NET Framework版と違って画面のデザイナがありません。 心の目でUIを描きながらXAMLを記述していかなければならず、これははっきり言って辛いです。 そこで、なんとかデザイナを使いたい、と思っていたところに朗報が。

rksoftware.hatenablog.com

いずこかのスーパーエンジニアが.NET Core WPFプロジェクトで画面デザイナを使用する方法をステップバイステップで解説してくれていました。

これに従えば目的は容易に達成できることでしょう。

ところでMVVMフレームワークの一つにPrismがあります。これを使うとMVVMなアプリケーションの開発をとても効率的に進めることができます。 これもぜひ.NET CoreなWPFでも使っていきたいところです。

このPrismですが、プレビュー以前の段階ですが.NET Core 3 WPFテンプレートを提供しています。 この.NET Core WPF with Prismのテンプレートを使って、.NET Core WPF with Prismなプロジェクトで画面デザイナを使えるようにしたいと思います。

環境

やってみよう

Prism Template Packのインストール

最初にVisual Studio拡張機能「Prism Template Pack」をインストールします。 Visual Studioの「拡張機能」メニューから検索してインストールします。 インストール時に再起動が必要です。

プロジェクトの作成

それではプロジェクトを作成します。 新しいプロジェクトの作成画面で「prism」と検索すると、「Prism Blank App(.NET Core 3)」というテンプレートが見つかります。

f:id:shuhelohelo:20190428140617p:plain

説明を読んでみると、

.NET Core 3 WPF with Prismなアプリケーションのテンプレート。

とあります。 また、

これはプレビューだよ。

ともあります。

全く問題ありません。

DIコンテナはUnityを選択して「Create project」します。

f:id:shuhelohelo:20190428141138p:plain

ビルド、そして…

プロジェクトが作成されたら早速ビルドしてみましょう。

f:id:shuhelohelo:20190428141316p:plain

Oh...

f:id:shuhelohelo:20190428141408p:plain

何を言っているのかわかりません。 まさか画面デザイナの前にビルドできないとは思ってもいませんでした。

エラーメッセージ欄には、

バージョン(>=7.2.0.1156-ci)のパッケージ Prism.Unityが見つかりません

とあります。 f:id:shuhelohelo:20190428141508p:plain

どうやらv7.2.0.1156-ci以上のPrism.Unityが必要のようです。 しかし、Nugetでプレリリースを含めて検索してもそんなバージョンのPrism.Unityはみつかりません。

そこでプロジェクト作成時に見たテンプレートの説明読んでみると、

MyGetのCIビルドが必要。

と書いてあります。

MyGetについてはこちらのサイトで以下のように説明されていました。

myget

NuGet Gallary へのアップロードは、「リリース作業」に当たります。数週とか数か月に1度、動作保証が(たとえベータ版であってもある程度は)ある状態で行うものです。

これに対して、NuGet パッケージの CI (継続的インテグレーション)サービスを提供しているのが myget です(正確には、NMP や Bower パッケージなどにも対応した、パッケージの CI サービスです)。myget は NuGet リポジトリ機能も提供していて、CI でビルドしたパッケージなどもここからダウンロードして利用できます。

Roslyn とか ASP.NET とか、いくつかのマイクロソフト製ライブラリは、この myget 上で毎夜ビルドしていて、最新の状態のパッケージを取得できるようになっています。

ということでベータ版以前の状態のPrism.Unityが必要です。 何も問題はありません。

NugetにMyGetのパッケージソースを追加する

  1. Visual Studio上でパッケージ管理画面を開き、「歯車マーク」をクリックして設定ダイアログを開きます。
  2. 緑色の「+」ボタンを押してパッケージソースを追加します。
  3. 「ソース」のテキストボックスに、https://www.myget.org/F/prismと入力します。(名前欄は何でも良いです。)
  4. 「更新」を押して変更を適用したあと、「OK」を押して設定ダイアログを閉じます。
  5. 最後に「パッケージソース」のドロップダウンリストで先程追加したパッケージソースを選択します。 f:id:shuhelohelo:20190428145734p:plain

これでCIビルドなPrism.Unityをインストールする準備が整いました。

CIビルドのPrism.Unityをインストールする

「プレリリースを含める」に忘れずにチェックをつけて「Prism.Unity」で検索すると、最新版のCIビルドパッケージが見つかるので、それをインストールします。 f:id:shuhelohelo:20190428150507p:plain

実行

インストールが完了したら、「リビルド」した後に実行してください。 何もないウィンドウが表示されます。 f:id:shuhelohelo:20190428150826p:plain

やっとスタートラインに立てました。

学んだこと

実験段階、ばりばり開発中なパッケージが必要なときは「MyGet」。

次回はこの.NET Core 3.0 WPF with Prismなアプリケーションで画面デザイナを使えるようにします。