トップ 一覧 ping 検索 ヘルプ RSS ログイン

UWP 開発メモの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!UWP 開発メモ
[Universal Windows Platform]

!!!Windows SDK
*https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk

!!!Windows Template Studio
*https://codezine.jp/article/detail/11282
!!インストール
+メニュー[ツール]−[拡張機能と更新プログラム]
+ダイアログの左側で[オンライン]を選択し、右上の検索窓に「"Windows Template Studio"」と入力、検索すると見つかる
+[ダウンロード]ボタンをクリック


!!!Windows Community Toolkit
*https://docs.microsoft.com/ja-jp/windows/communitytoolkit/
!!インストール
+Visual Studio 2017以上
+Build 16299以上のプロジェクト
+NuGetパッケージの管理から、Microsoft.Toolkit.UWP を検索し必要なパッケージをインストール
!!参照
!XAML
 xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
!C#
 using Microsoft.Toolkit.Uwp;
!!!Entity Framework Core
*https://docs.microsoft.com/ja-jp/ef/core/get-started/uwp/getting-started
*https://docs.microsoft.com/ja-jp/ef/core/get-started/netcore/new-db-sqlite
*http://kuttsun.blogspot.com/2018/01/entity-framework-core.html

!!インストール
+ NuGetパッケージマネージャー Microsoft.EntityFrameworkCore.Sqlite
!!Sqlite3ファイルが生成される場所
*ApplicationData.Current.LocalFolder.Path

!!ソリューションの構成
+UWPプロジェクト(Universal Windows)
+Modelプロジェクト(.NETStarndard Library + EntityFrameworkCore.Sqlite + EntityFrameworkCore.Tools)
+移行プロジェクト(ダミー)(.NETCore Console)

!!移行
*https://docs.microsoft.com/ja-jp/ef/core/managing-schemas/migrations/index
*http://typea.info/blg/glob/2017/08/uwp-sqlite-entityframework-core.html

!パッケージマネージャーコンソールから以下を実行

+プロジェクトの構成
++DbContextのサブクラス
++DbSet<モデル>
++context.Database.Migration() の呼び出し記述
+初期マイグレーションの構成
++移行プロジェクト(ダミー)をスタートアッププロジェクトに設定
++既定のプロジェクトに、Modelプロジェクトを指定
++PM> Add-Migration {初期Migration名}
++ModelプロジェクトのMigratinosディレクトリにDbContextのリフレクションにより移行スクリプトが構成される
+UWPアプリの実行
++context.Database.Migration() の呼び出し
++Sqliteデータベースが作成、マイグレーション実行
+データベースの確認
++ select * from __EFMigrationsHistory にマイグレーション情報
+変更マイグレーション
++モデルの追加・変更などをModelプロジェクトに適用
++移行プロジェクト(ダミー)をスタートアッププロジェクトに設定
++既定のプロジェクトに、Modelプロジェクトを指定
++PM> Add-Migration {変更Migration名}
++ModelプロジェクトのMigratinosディレクトリにDbContextのリフレクションにより移行スクリプトが構成される

+以下繰り返し
!!Powershellコマンド
!初期移行
 Add-Migration {任意のマイグレーション名}
*ディレクトリの下で 3 つのファイルがプロジェクトに追加

,ファイル,内容
,00000000000000_{任意のマイグレーション名}.cs,メインの移行ファイル。 (Up() で) 移行を適用し、(Down() で) それを元に戻すために必要な操作が含まれます。
,00000000000000_{任意のマイグレーション名}.Designer.cs,移行メタデータ ファイル。 EF によって使用される情報が含まれます。
,MyContextModelSnapshot.cs,現在のモデルのスナップショット。 次の移行を追加するときの変更内容の決定に使用されます。

!データベースを更新
 Update-Database

!移行の削除
*移行の追加後、適用する前に EF Core モデルの追加変更が必要なことに気付く場合があります。 最後の移行を削除するには、このコマンドを使用
 Remove-Migration
!移行を元に戻す
*移行をデータベースに既に適用しているが、元に戻す必要がある場合、同じコマンドを使用して移行を適用できますが、ロールバックする移行の名前を指定
 Update-Database {ロールバックする移行の名前}
!SQLスクリプトを作成
 Script-Migration
!実行時に移行を適用
*起動中または最初の実行中、実行時に移行を適用するアプリがあります。 Migrate() メソッドを使用してこれを行います
 myDbContext.Database.Migrate();
!!!MVVM Light
!RelayCommand
*http://my-clip-devdiary.blogspot.com/2011/01/relaycommand-mvvm-light-toolkit.html
::コマンドパラメータなし
*XAML
 <Button Content="Add"  Command="{x:Bind ViewModel.AddCommand}" />
*ViewModel
 public RelayCommand AddCommand { get; private set; }
     = new RelayCommand(async () => {
         await new MessageDialog("Foo", "Bar").ShowAsync();
     });