具有实体框架的UWP应用程序大小

时间:2017-01-24 09:34:31

标签: entity-framework entity-framework-6 uwp

我正在尝试使用dbStorage功能创建一个UWP应用程序。

我查看了UWP-Howto:https://msdn.microsoft.com/en-us/windows/uwp/data-access/index,看到有两种方法可以做到这一点。

  1. 使用基本的sqlite3 API(我不希望使用任何第三方包装程序库)
  2. 将实体框架与应用程序集成。
  3. 后一个选项确实是一个更好的选择,因为它是一个ORM,但我很想知道,添加它是否会使用普通的sqlite扩展来提升App大小?有没有人使用它会遇到这样的问题?

1 个答案:

答案 0 :(得分:1)

应用程序大小应该是创建UWP应用程序时最不关心的事情之一。这个尺寸是一次性的问题'当用户安装应用程序时,因为下载需要一些时间。 Windows 10商店中内置了许多改进以解决此问题:

  • 增量更新(仅更新已更改的应用的部分)
  • 文件单实例化(如果文件/库在您的系统上,则不会再次下载)
  • 部分资源下载(仅适用于设备的语言和缩放资源)

更多信息,请参阅例如这Build session

如果你想要准确的数字,我建议建立一个小的PoC,有和没有并比较大小(虽然大小会改变一点点,因为你写了不同的代码片段使其工作)。

但由于使用EF Core而增加的大小不会超过100的MB。包本身是EFCore.Sqlite 71kbEFCore.Relational 475kbEFCore 783kb,这些甚至包括多个dll,xml,......所以它只是其中的一小部分。再加上一些基本软件包(缓存,日志记录,......)以及可能会使用的一些额外的.NET标准库,这些库在使用基本API时可能不会被使用,您将额外添加几MB。在我看来,这是可以忽视的。

你应该担心的事情而不是初始下载时间是:

  • 应用程序启动时间。
  • 整体应用程序性能。
  • 开发人员的表现(以及创建应用程序的成本)。

如果您在本机sqlite3 API和EF Core之间进行选择,对我来说这将是一个简单的选择(考虑上面提到的第3点)。请记住,仍然存在issues EF Core和.NET Native(由商店完成的优化或在启用.NET本机工具链的发布模式下构建时)。如果你想很快发布到商店并拥有一个相当大的数据库,你可能会有一些麻烦让它免于崩溃。如果您可以侧载应用程序,只需在没有.NET Native工具链的情况下构建。