VSite的项目/解决方案结构

时间:2013-12-20 12:54:46

标签: c# sqlite windows-phone-8 portable-class-library

我正在开发一个使用VS2013的项目,该项目将针对WP8,WinRT和x86或x64体系结构上的Windows桌面平台。

这个项目需要本地数据访问/存储,我选择了SQLite。

我想知道是否有人可以指向我的资源/博客/示例,它将向我展示如何创建一个数据层,这将允许我针对上述所有内容,同时仍然保留尽可能多的公共代码库数据层?

我有每个SQLite“flavors”的vsix扩展以及C#包装器System.Data.SQLite

非常感谢,

理查德

1 个答案:

答案 0 :(得分:3)

您将不得不创建一个可供所有这些平台使用的可移植类库。

在该可移植类库中,您将需要使用一个接口,并且您必须传递特定于平台的实现(WP8和WindowsRT将需要稍微不同的实现)。

但是这对我有所帮助。可能还有一些其他资源,但这绝对是最好的资源,也是让我能够做到你想做的事情。

这是我所遵循的一系列剧集(并在此过程中做了一些改动),但它对我帮助很大。 http://nicksnettravels.builttoroam.com/post/2013/06/02/Windows-(RT-and-Phone)-and-Sqlite-(Part-1).aspx

以下是本系列第4部分的一些片段:

  

创建一个单独的SQLitePCL项目并定义一组接口   它映射到Sqlite-net公开的类/方法。我   不会让你厌倦细节,但你可以从下面看到   image只是几个接口将映射到这样的类   作为SQliteConnection,TableMapping和Column。

关于平台实施:

  

对于每个平台,我们需要实现这些接口。这是   真的是采用SQLite.cs中定义的sqlite-net类   和SQliteAsync.cs并修改它们以实现定义的   接口。这不像调整类那么简单   签名包括适当的界面但距离不远。

     

我们需要为每个平台创建一个单独的类库,例如   SQLiteWinRT和SQLiteWP8。您启动哪个平台并不重要   因为你将成为(我先做过电话实施)   使用“添加为链接”技术引用相同的类   在上一篇文章中讨论过。如果我们只是简单的话,你可能会想   将两个库添加相同的类为什么他们不能   全部在共享PCL中。答案在于有条件的   sqlite-net文件顶部的编译语句 - 这些   确定如何为各个平台构建类。