| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「UWP 開発メモ」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
==UWP 開発メモ==
+
==[[UWP 開発メモ]]==
 
[[Universal Windows Platform]] |  
 
[[Universal Windows Platform]] |  
  
==Windows SDK==
+
==[[Windows]] SDK==
 
*https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk
 
*https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk
  
==Windows Template Studio==
+
==[[Windows]] Template Studio==
 
*https://codezine.jp/article/detail/11282
 
*https://codezine.jp/article/detail/11282
 
===インストール===
 
===インストール===
 
#メニュー[ツール]-[拡張機能と更新プログラム]
 
#メニュー[ツール]-[拡張機能と更新プログラム]
#ダイアログの左側で[オンライン]を選択し、右上の検索窓に「"Windows Template Studio"」と入力、検索すると見つかる
+
#ダイアログの左側で[オンライン]を選択し、右上の検索窓に「"[[Windows]] Template Studio"」と入力、検索すると見つかる
 
#[ダウンロード]ボタンをクリック
 
#[ダウンロード]ボタンをクリック
  
  
==Windows Community Toolkit==
+
==[[Windows]] Community Toolkit==
 
*https://docs.microsoft.com/ja-jp/windows/communitytoolkit/
 
*https://docs.microsoft.com/ja-jp/windows/communitytoolkit/
 
===インストール===
 
===インストール===
#Visual Studio 2017以上
+
#[[Visual Studio]] 2017以上
 
#Build 16299以上のプロジェクト
 
#Build 16299以上のプロジェクト
 
#NuGetパッケージの管理から、Microsoft.Toolkit.UWP を検索し必要なパッケージをインストール
 
#NuGetパッケージの管理から、Microsoft.Toolkit.UWP を検索し必要なパッケージをインストール
22行目: 22行目:
 
====XAML====
 
====XAML====
 
  xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
 
  xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
====C#====
+
====[[C#]]====
 
  using Microsoft.Toolkit.Uwp;
 
  using Microsoft.Toolkit.Uwp;
 
==Entity Framework Core==
 
==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/uwp/getting-started
*https://docs.microsoft.com/ja-jp/ef/core/get-started/netcore/new-db-sqlite
+
*https://docs.microsoft.com/ja-jp/ef/core/get-started/netcore/new-db-[[sqlite]]
 
*http://kuttsun.blogspot.com/2018/01/entity-framework-core.html
 
*http://kuttsun.blogspot.com/2018/01/entity-framework-core.html
  
35行目: 35行目:
  
 
===ソリューションの構成===
 
===ソリューションの構成===
#UWPプロジェクト(Universal Windows)
+
#UWPプロジェクト(Universal [[Windows]])
#Modelプロジェクト(.NETStarndard Library + EntityFrameworkCore.Sqlite + EntityFrameworkCore.Tools)
+
#Modelプロジェクト([[.NET]]Starndard Library + EntityFrameworkCore.Sqlite + EntityFrameworkCore.Tools)
#移行プロジェクト(ダミー)(.NETCore Console)
+
#移行プロジェクト(ダミー)([[.NET]]Core Console)
  
 
===移行===
 
===移行===
 
*https://docs.microsoft.com/ja-jp/ef/core/managing-schemas/migrations/index
 
*https://docs.microsoft.com/ja-jp/ef/core/managing-schemas/migrations/index
*http://typea.info/blg/glob/2017/08/uwp-sqlite-entityframework-core.html
+
*http://typea.info/blg/glob/2017/08/uwp-[[sqlite]]-entityframework-core.html
  
 
====パッケージマネージャーコンソールから以下を実行====
 
====パッケージマネージャーコンソールから以下を実行====
48行目: 48行目:
 
##DbContextのサブクラス
 
##DbContextのサブクラス
 
##DbSet<モデル>
 
##DbSet<モデル>
##context.Database.Migration() の呼び出し記述
+
##context.[[Database]].Migration() の呼び出し記述
 
#初期マイグレーションの構成
 
#初期マイグレーションの構成
 
##移行プロジェクト(ダミー)をスタートアッププロジェクトに設定
 
##移行プロジェクト(ダミー)をスタートアッププロジェクトに設定
55行目: 55行目:
 
##ModelプロジェクトのMigratinosディレクトリにDbContextのリフレクションにより移行スクリプトが構成される
 
##ModelプロジェクトのMigratinosディレクトリにDbContextのリフレクションにより移行スクリプトが構成される
 
#UWPアプリの実行
 
#UWPアプリの実行
##context.Database.Migration() の呼び出し
+
##context.[[Database]].Migration() の呼び出し
 
##Sqliteデータベースが作成、マイグレーション実行
 
##Sqliteデータベースが作成、マイグレーション実行
 
#データベースの確認
 
#データベースの確認
66行目: 66行目:
 
##ModelプロジェクトのMigratinosディレクトリにDbContextのリフレクションにより移行スクリプトが構成される
 
##ModelプロジェクトのMigratinosディレクトリにDbContextのリフレクションにより移行スクリプトが構成される
 
#以下繰り返し
 
#以下繰り返し
===Powershellコマンド===
+
===[[Powershell]]コマンド===
 
====初期移行====
 
====初期移行====
 
  Add-Migration {任意のマイグレーション名}
 
  Add-Migration {任意のマイグレーション名}
87行目: 87行目:
  
 
====データベースを更新====
 
====データベースを更新====
  Update-Database
+
  Update-[[Database]]
  
 
====移行の削除====
 
====移行の削除====
 
*移行の追加後、適用する前に EF Core モデルの追加変更が必要なことに気付く場合があります。 最後の移行を削除するには、このコマンドを使用
 
*移行の追加後、適用する前に EF Core モデルの追加変更が必要なことに気付く場合があります。 最後の移行を削除するには、このコマンドを使用
  Remove-Migration
+
  [[R]]emove-Migration
 
====移行を元に戻す====
 
====移行を元に戻す====
 
*移行をデータベースに既に適用しているが、元に戻す必要がある場合、同じコマンドを使用して移行を適用できますが、ロールバックする移行の名前を指定
 
*移行をデータベースに既に適用しているが、元に戻す必要がある場合、同じコマンドを使用して移行を適用できますが、ロールバックする移行の名前を指定
  Update-Database {ロールバックする移行の名前}
+
  Update-[[Database]] {ロールバックする移行の名前}
====SQLスクリプトを作成====
+
====[[SQL]]スクリプトを作成====
 
  Script-Migration
 
  Script-Migration
 
====実行時に移行を適用====
 
====実行時に移行を適用====
 
*起動中または最初の実行中、実行時に移行を適用するアプリがあります。 Migrate() メソッドを使用してこれを行います
 
*起動中または最初の実行中、実行時に移行を適用するアプリがあります。 Migrate() メソッドを使用してこれを行います
  myDbContext.Database.Migrate();
+
  myDbContext.[[Database]].Migrate();
 
==MVVM Light==
 
==MVVM Light==
====RelayCommand====
+
====[[R]]elayCommand====
 
*http://my-clip-devdiary.blogspot.com/2011/01/relaycommand-mvvm-light-toolkit.html
 
*http://my-clip-devdiary.blogspot.com/2011/01/relaycommand-mvvm-light-toolkit.html
 
=====コマンドパラメータなし=====
 
=====コマンドパラメータなし=====
107行目: 107行目:
 
  <Button Content="Add"  Command="{x:Bind ViewModel.AddCommand}" />
 
  <Button Content="Add"  Command="{x:Bind ViewModel.AddCommand}" />
 
*ViewModel
 
*ViewModel
  public RelayCommand AddCommand { get; private set; }
+
  public [[R]]elayCommand AddCommand { get; private set; }
     = new RelayCommand(async () => {
+
     = new [[R]]elayCommand(async () => {
 
         await new MessageDialog("Foo", "Bar").ShowAsync();
 
         await new MessageDialog("Foo", "Bar").ShowAsync();
 
     });
 
     });

2020年2月16日 (日) 04:33時点における最新版

UWP 開発メモ

Universal Windows Platform |

Windows SDK

Windows Template Studio

インストール

  1. メニュー[ツール]-[拡張機能と更新プログラム]
  2. ダイアログの左側で[オンライン]を選択し、右上の検索窓に「"Windows Template Studio"」と入力、検索すると見つかる
  3. [ダウンロード]ボタンをクリック


Windows Community Toolkit

インストール

  1. Visual Studio 2017以上
  2. Build 16299以上のプロジェクト
  3. NuGetパッケージの管理から、Microsoft.Toolkit.UWP を検索し必要なパッケージをインストール

参照

XAML

xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"

C#

using Microsoft.Toolkit.Uwp;

Entity Framework Core

インストール

  1. NuGetパッケージマネージャー Microsoft.EntityFrameworkCore.Sqlite

Sqlite3ファイルが生成される場所

  • ApplicationData.Current.LocalFolder.Path

ソリューションの構成

  1. UWPプロジェクト(Universal Windows)
  2. Modelプロジェクト(.NETStarndard Library + EntityFrameworkCore.Sqlite + EntityFrameworkCore.Tools)
  3. 移行プロジェクト(ダミー)(.NETCore Console)

移行

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

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

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

コマンドパラメータなし
  • 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();
    });