写点什么

SQLite 移植到了.NET

  • 2009-08-09
  • 本文字数:752 字

    阅读完需:约 2 分钟

Noah Hart 将 SQLite3 移植到了 C#上。虽然此次移植版本比原始版本要慢,但是此项目可以让.NET 托管项目在不使用任何 P/Invoke 和不安全代码的情况下使用 SQLite。

C#-SQLite 被寄放在Google Code 上,是从SQLite 3.6.16 到C#的完全移植,代码版权使用 MIT License 。C#-SQLite 通过了超过 3 万个测试用例,只有 9 个没有通过。编译好的二进制 exe 文件只有 528KB,和原始版本的 506KB 差不多。性能方面要比原始的C 版本差一些,但是Hart 说他还没有对代码做任何性能优化,而且他认为目前的性能还可以接受。所有的数据单位都是行/ 秒:

Test C#-SQLite SQLite Insert 300K 1300K Select 1500K 8450K Update 60K 300K Delete 250K 700KCory Nelson 解释了为什么移植SQLite 要比其它方式更好:避免P/Invoke 带来的“速度超慢和无法移植”问题。而且C 代码“充斥着goto 语句,会使优化变得十分困难”。

很多产品-如Adobe AIR-都包含和使用了SQLite。或许C#-SQLite 最能发挥的地方是Silverlight 项目, Tim Anderson 指出

可以在微软 Silverlight 中作为本地数据库使用,保存在 isolated storage 中。

……Silverlight 不允许 P/Invoke 和不安全代码,由于原始版本的 SQLite 中使用了大量的指针,即使只有很少的 P/Invoke,不安全的代码却一定有很多。

虽然 Silverlight 是实现在.NET Framework 上的,却不包含 System.Data 命名空间,但包含了 System.Linq。

C#-SQLite 并不是 SQLite 的官方版本,Hart 也与 SQLite.org 没有任何关系。SQLite 的创造者和商标所有人 Richard Hipp,在一开始并不同意将“SQLite”包含在项目名中,但是后来同意使用C#-SQLite。

除了这个项目,还有其它一些托管数据库,比如: Perst db4o Silverlight Database System.Data.SQLite

查看英文原文: SQLite Has Been Ported to .NET

2009-08-09 20:563705
用户头像

发布了 63 篇内容, 共 27.9 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

Java开发之命名规范

@零度

Java 命名规范

MySQL从入门到入魔(01)

海拥(haiyong.site)

MySQL 入门 28天写作 12月日更

为什么我不怎么用调试器

Justin

软件开发 28天写作 调试工具

网络安全产品之堡垒机应用于教育行业案例讲解

行云管家

网络安全 教育 等保 等级保护

LevelDB封装和功能拓展

FunTester

数据库 测试框架 测试开发 leveldb FunTester

Android C++系列:Linux Socket编程(四)多路IO转接服务器

轻口味

28天写作 12月日更

Flink Sql Gateway的原理与实践

安第斯智能云

数据库 sql

Hybris commerce产品主数据的搜索API,批量返回若干主数据的值

汪子熙

28天写作 SAP 12月日更

1. 编译原理概览

书旅

Go 后端 编译原理 源码剖析

再下一城!两大社区携手打造 API 日志监控新利器

API7.ai 技术团队

云原生 网关 日志管理 Apache APISIX Apache RocketMQ

10个常见的前端手写功能,你全都会吗?

CRMEB

从直播硬件出发,浅析直播技术到物联网设备的智能化趋势

阿里云CloudImagine

阿里云 物联网 直播 直播技术 视频云

阿里云李克:边缘云技术发展与实践

阿里云Edge Plus

CDN 边缘计算 CDN加速

十一月热点:BML预置模型调参添新利器;EasyDL图像分类上线免训练极速迭代模式

百度大脑

人工智能

管控一体化 | IM即时通讯构建企业协同生态链

BeeWorks

dart系列之:dart优秀的秘诀-隔离机制

程序那些事

flutter dart 程序那些事 12月日更 flutter for web

国内首次Feature Store Meetup回顾

第四范式开发者社区

机器学习 第四范式 OpenMLDB 特征平台

前端布局中让子元素横向排列并自动换行

Changing Lin

Vue 前端开发 12月日更

飞桨企业版重磅发布智能边缘控制台,5分钟零代码自动化模型部署

百度大脑

人工智能

数百名专家政要出席阿联酋区块链大会“DCS 2021 ” 虎符受邀亮相

区块链前沿News

Hoo 虎符交易所 区块链峰会 DCS 2021 全球分布式云存储峰会

VUEX的store用法

CRMEB

微服务架构 | 如何优化日志链路追踪输出SQL的执行效率?

李尚智

微服务架构 链路追踪 SpringCloud

压测大师链路监控服务开放免费体验预约

WeTest

从4K到8K,谁才是开启8K时代的钥匙?

郑州埃文科技

数据库 IP 8k

使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller

CODING DevOps

Kubernetes 云原生 APISIX Nocalhost Ingress Controller

Kafka-Broker的基本模块

编程江湖

大数据

什么是反序列化?反序列化的过程,原理

网络安全学海

黑客 网络安全 信息安全 渗透测试 反序列化

12月17日技术大咖云集,云智技术论坛“年度收官”聚焦知识智能化

百度大脑

人工智能

CRM报告如何改变您的业务

低代码小观

低代码 企业管理 CRM 企业管理系统 CRM系统

CurveFS预览版重磅首发,Curve加速迈向云原生软件定义存储

网易数帆

GitHub

3个步骤,4大平台,搞定大规模数据处理

百度开发者中心

大数据

SQLite移植到了.NET_.NET_Abel Avram_InfoQ精选文章