我正在写一个应用程序,需要运行在iOS,安卓,Windows Phone,WPF,Windows8Metro,Linux和Mac。我有大约95%的跨平台领域的代码,但是UI和一些东西显然需要针对每个平台进行专门的编码。
现在,我们需要在应用程序中添加一些非常简单的数据库支持,我希望在我的代码中使用跨平台的Sqlite。这可以使用任何现有的Sqlite包装器来完成吗?或者我需要创建自己的包装器吗?或者我应该使用几个具有相同语法的Sqlite包装器,并且只引用我的不同csproj文件中的不同库(每个平台)?
我已经读过这篇Q/A Is there a .NET/C# wrapper for SQLite?,但在读了一个小时之后,我仍然不确定如何让事情在所有这些平台上工作,所以我想可能有人在我之前就已经考虑到了这些事情。
发布于 2016-11-16 01:28:07
使用SQLite进行跨平台.NET/C#开发的一些选项包括:
SQLitePCL.raw
可移植的类库(PCL),用于对SQLite的低级(原始)访问
SQLitePCL.raw在SQLite C应用编程接口之上提供了一个非常薄的C#包装器。从应用程序开发人员的角度来看,SQLitePCL.raw公开的应用程序接口是不友好的,但它被设计为用作一个通用的可移植层,在这个层上可以构建更友好的包装器。
Apache : License v2
源代码:https://github.com/ericsink/SQLitePCL.raw
Nuget:https://www.nuget.org/packages/SQLitePCLRaw.core
SQLitePCL.pretty
SQLitePCL.raw上面的一张漂亮的脸
这个库封装了SQLitePCL.raw提供的类似C的SQLiteAPI,并提供了一个友好的C#面向对象的应用程序接口。SQLitePCL.pretty具有广泛的单元测试覆盖面,并支持较新的SQLite版本中提供的许多较新功能。
Apache : License v2
源代码:https://github.com/bordoley/SQLitePCL.pretty
Nuget:https://www.nuget.org/packages/SQLitePCL.pretty
平台:与SQLitePCL.raw相同
SQLite-net
适用于.NET的简单、强大、跨平台的SQLite客户端和对象关系管理
SQLite-net被设计为一个快速方便的数据库层。
License :麻省理工学院许可
源代码:https://github.com/praeclarum/sqlite-net
Nuget:https://www.nuget.org/packages/sqlite-net-pcl
平台:与SQLitePCL.raw相同
Microsoft.Data.Sqlite
System.Data.Common接口的SQLite实现
此项目是ASP.NET核心的一部分,由微软维护
Apache : License v2
源代码:https://github.com/aspnet/Microsoft.Data.Sqlite
Nuget:https://www.nuget.org/packages/Microsoft.Data.SQLite
平台:.NET框架,单声道,.NET核心(.NET原生,CoreCLR,Windows通用),Xamarin (计划)
发布于 2012-10-23 04:49:37
我推荐使用SQLite包装器的单版本(http://www.mono-project.com/SQLite)。包装器本身完全是用托管代码编写的,您只需要为相应的环境提供Sqlite库。
通过这样做,我有一个可以在linux和windows上运行的C#项目。
您也许可以使用官方的C#包装器(http://system.data.sqlite.org/),但我不确定它如何处理多个平台。
https://stackoverflow.com/questions/13016578
复制相似问题