2017-01-24 8 views
1

dbStorage機能を使用してUWPアプリケーションを作成しようとしています。UWP Entity Frameworkのアプリケーションサイズ

UWP-Howto:https://msdn.microsoft.com/en-us/windows/uwp/data-access/indexを見て、これを行う方法は2つあります。

  1. アプリケーションでEntity Frameworkの統合
  2. (任意のサードパーティのラッパー・ライブラリーを使用したい、私はいけない)、基本的なsqlite3のAPIを使用してどちらか。

後者のオプションは、ORMであるため、より良い選択肢と思われますが、私は知りたいのですが、これを追加すると、プレーンなsqlite拡張を使用するのと比べてアプリケーションのサイズが大きくなります。そのような問題に直面した人は誰ですか?

答えて

1

アプリサイズは、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ネイティブツールチェーンなしでビルドするだけです。

+0

正確には、サイズを比較するためのサンプルアプリケーションを作成しようとしましたが、EFが起動時に数多くのライブラリを追加したように見えるため、結果は信頼できません。 もう1つはmsdnリンクですが、私たちのUWPプロジェクトで直接 #include への参照を追加することでSQLite SDKを使用できますが、私はどの方法も見つけられませんUWPに.hを含めます。実際に直接使用できるかどうか、またはこのSQLiteを使用してラッパーライブラリを作成する必要があるかどうかについての考え方 https://msdn.microsoft.com/en-us/windows/uwp/data-access/sqlite-databases – Tulika

+0

これは私が述べたことですが、.NET Standardからいくつかの依存関係が追加されていますが、合計サイズは数GBにはならず、最終的にサイズの違いに気を付けるべきではありません。最適化。 コメントの2番目の部分については、別の質問をする必要があります。 SOはチャットボードとして意図されていないので、各(サブ)質問には、Googleなどを通じた検索のためのリンクが必要です。 – Bart