C#
我正在编写一个需要在iOS,Android,Windows Phone,WPF,Windows 8 Metro,Linux和Mac上运行的应用程序。 我在跨平台领域拥有大约95%的代码,但UI和一些事情显然需要针对每个平台编码。
现在,我们需要在应用程序中添加一些非常简单的数据库支持,并且我希望能够在我的代码中针对来自跨平台领域的Sqlite进行工作。 这可以用任何现有的Sqlite包装完成,还是需要创建自己的? 或者我应该使用几个具有相同语法的Sqlite包装器,并仅从不同的csproj文件(每个平台)引用不同的库?
我已阅读过这篇Q / A是否有SQLite的.NET / C#包装? 但经过一个小时的阅读,我仍然不确定如何在所有这些平台上工作,所以我认为有人可能在我之前想到了这些东西。
使用SQLite进行跨平台.NET / C#开发的一些选项是:
SQLitePCL.raw
用于低级(原始)访问SQLite的便携式类库(PCL)
SQLitePCL.raw在SQLite C API的ontop上提供了一个非常简单的C#包装器。 由SQLitePCL.raw公开的API对于应用程序开发人员来说是不利的,但它被设计用作一个通用的可移植层,可以在其上构建友好的包装器。
许可证 :Apache许可证v2
源代码 :https://github.com/ericsink/SQLitePCL.raw
Nuget :https: //www.nuget.org/packages/SQLitePCLRaw.core
平台 :Xamarin.Android,Xamarin.iOS,UWP,Windows Phone 8.1,.NET 4.5,.NET 4.0,.NET 3.5,Linux,MacOS,NetStandard 1.1,Windows Phone 8(带有限制),Windows Phone 8.1 Silverlight )
SQLitePCL.pretty
在SQLitePCL.raw之上的漂亮的脸
这个库使用友好的C#面向对象的API封装了像SQLitePCL.raw提供的C一样的SQLiteAPI。 SQLitePCL.pretty具有广泛的单元测试覆盖率,并支持更多最新SQLite版本中提供的许多新功能。
许可证 :Apache许可证v2
源代码 :https://github.com/bordoley/SQLitePCL.pretty
Nuget :https: //www.nuget.org/packages/SQLitePCL.pretty
平台 :与SQLitePCL.raw相同
SQLite的网
简单,功能强大的跨平台SQLite客户端和ORM for .NET
SQLite-net被设计成一个快速和方便的数据库层。 非常容易与现有项目集成并在所有.NET平台上运行,使用非常简单的方法安全地执行CRUD操作和查询(使用参数)并以强类型方式检索这些查询的结果。
许可证 :MIT许可证
源代码 :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 Core的一部分,由Microsoft维护
许可证 :Apache许可证v2
源代码 :https://github.com/aspnet/Microsoft.Data.Sqlite
Nuget :https: //www.nuget.org/packages/Microsoft.Data.SQLite
平台 :.NET Framework,Mono,.NET Core(.NET Native,CoreCLR,Windows Universal),Xamarin(已计划)
我建议使用SQLite包装器的Mono版本(http://www.mono-project.com/SQLite)。 包装本身完全是用托管代码编写的,你只需要为相应的环境提供Sqlite库。
我有一个C#项目可以在Linux和Windows上运行。
你可能会逃脱使用官方的C#包装(http://system.data.sqlite.org/),但我不确定它如何处理多个平台。
链接地址: http://www.djcxy.com/p/19761.html上一篇: c#