写点什么

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:563685
用户头像

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

关注

评论

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

零代码实现一对一表关系和无限主子表级联保存

crudapi

API crud crudapi 主子表 多对多

pandas apply 应用套路详解

披头

当 ITOA 遇上 Cloud Alert,企业可以至少每年节省 3600 小时!

睿象云

智能告警

2021年企业需要了解的和云计算相关的6大趋势

云计算

华为帐号服务学习笔记(一):什么是HMS,什么是华为帐号服务

Coding狙击

android HMS

Uniswap v3揭开真面目NA公链(Nirvana)NAC公链表示不服

区块链第一资讯

产品经理训练营第九周作业

Denny-xi

产品经理

华为帐号服务学习笔记(二):OAuth2.0协议详解

Coding狙击

android 华为 OAuth 2.0 HMS

INTERSPEECH2020 语音情感分析论文之我见

华为云开发者联盟

数据处理 模型 音频 语言情感分析 INTERSPEECH2020

大厂面试必问!2021新一波程序员跳槽季,附大厂真题面经

欢喜学安卓

android 程序员 面试 移动开发

阿里巴巴研究员叔同:云原生是企业数字创新的最短路径

阿里巴巴云原生

云计算 容器 微服务 开发者 云原生

一个提高领导力的极简工具

石云升

领导力 28天写作 职场经验 管理经验 3月日更

区块链落地应用瞄向海洋生态可持续场景,来看Trace Protocol如何改变人们生活?

CECBC

渔民

【OpenYurt 深度解析】边缘网关缓存能力的优雅实现

阿里巴巴云原生

容器 云原生 k8s 边缘计算 Go 语言

统一元数据,数据湖Catalog让大数据存算分离不再是问题

华为云开发者联盟

大数据 元数据 存算分离 华为云MRS 数据湖Catalog

RUOYI 框架教程 12| 若依视图解决多表查询,就是这么简单!

Java_若依框架教程

Java 技术 Ruoyi 框架 若依

Rust从0到1-所有权-概念介绍

rust 所有权

面试官:什么是死锁?怎么排查死锁?怎么避免死锁?

小林coding

多线程 操作系统 死锁

ZooKeeper 会话的秘密

HelloGitHub

Java zookeeper ZooKeeper原理 zk

AIOps 让「事件管理」变得更加智能

睿象云

AIOPS 告警管理

数字化浪潮下,“坐不住”的豪车品牌如何破局?

脑极体

Linux后端服务器网络编程之线程模型丨reactor模型详解

Linux服务器开发

reactor 后端 网络编程 Linux服务器开发 网络io

SQL 自连接的魅力

披头

区块链和物联网如何实现万物互联?

CECBC

区块链

Apache IceBerg表规范(最全版)(翻译者:聚变)

聚变

大数据 hive 数据湖 iceberg 聚变归来

教育部:探索推动区块链技术在招生考试、学历认证等领域的应用

CECBC

教育管理

第12周课后练习-数据应用(一)

潘涛

架构师训练营 4 期

ndk开发前景,某大厂开发者对于Android多线程的总结,系列篇

欢喜学安卓

android 程序员 面试 移动开发

gorm mysql表关联的一个例子

werbenhu

第十三周作业

Geek_mewu4t

Java锁总论

邱学喆

Java 锁机制

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