アプリサイズは、UWPアプリケーションを作成する際に気にする最後のものの1つである必要があります。このサイズは、ダウンロードに時間がかかるため、ユーザーがアプリをインストールすると「問題」が1回発生します。この問題に取り組むためにWindows 10ストアに組み込まれた改善点がたくさんあります:
- 差分更新(のみ変更あなたのアプリケーションの一部を更新)
- ファイルの単一インスタンス作成(ファイル/ライブラリがあなたの上にある場合システム、それが再びダウンロードされません)
- 部分的なリソースのダウンロード(デバイスのために合うだけの言語とスケール資産)
詳細情報、例えばを参照してくださいこのBuild session。
正確な数字が必要な場合は、サイズの違いを問わずに小さなPoCを作成することをお勧めします(小さなコードも同様に変更されます)。
しかし、EFコアを使用しているために追加されるサイズは、100sのMBの大きさにはなりません。パッケージ自体はEFCore.Sqlite 71kb,EFCore.Relational 475kb,EFCore 783kbであり、これらは複数のdll、xmlなどを含んでいます。そのほんの一部です。いくつかの基本パッケージ(Caching、Logging、...)と、おそらくいくつかの追加の.NET標準ライブラリが使用され、基本的なAPIを使用するときには使用されないかもしれません。私の意見では無視できる。あなたは代わりの初期ダウンロード時間を気にすべきである
ものがあります:
- アプリケーション起動時間。
- 全体的なアプリケーションのパフォーマンス。
- 開発者のパフォーマンス(したがってアプリケーションを作成するコスト)。
ネイティブのsqlite3 APIとEFコアの選択肢があれば、簡単に選択できます(上記のポイント3を考えてください)。 issuesにはEF Coreと.NET Nativeがあります(ストアで最適化されているか、.NETネイティブツールチェーンを有効にしてリリースモードでビルドしたときに最適化されています)。あなたが非常にすぐに店に公開し、かなり大きなデータベースを持っている場合は、クラッシュフリーにするためにいくつかの問題があるかもしれません。アプリをサイドロードすることができれば、.NETネイティブツールチェーンなしでビルドするだけです。
正確には、サイズを比較するためのサンプルアプリケーションを作成しようとしましたが、EFが起動時に数多くのライブラリを追加したように見えるため、結果は信頼できません。 もう1つはmsdnリンクですが、私たちのUWPプロジェクトで直接 #includeへの参照を追加することでSQLite SDKを使用できますが、私はどの方法も見つけられませんUWPに.hを含めます。実際に直接使用できるかどうか、またはこのSQLiteを使用してラッパーライブラリを作成する必要があるかどうかについての考え方 https://msdn.microsoft.com/en-us/windows/uwp/data-access/sqlite-databases –
Tulika
これは私が述べたことですが、.NET Standardからいくつかの依存関係が追加されていますが、合計サイズは数GBにはならず、最終的にサイズの違いに気を付けるべきではありません。最適化。 コメントの2番目の部分については、別の質問をする必要があります。 SOはチャットボードとして意図されていないので、各(サブ)質問には、Googleなどを通じた検索のためのリンクが必要です。 – Bart