写点什么

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

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

关注

评论

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

【自驱型成长】——控制感

LeifChen

压力 控制感 8月日更 自驱型成长

配置Flink流式应用(九)

Databri_AI

flink Kubernetes YARN

Seata搭建与分布式事务入门

码农参上

SpringCloud spring cloud alibaba seata 8月日更

MySQL 系列教程之(四)MySQL 中的数据类型

若尘

MySQL 数据库 8月日更

部署MinIO存储服务的四种方式

liuzhen007

8月日更

QDS04 TensorFlow

耳东@Erdong

tensorflow 8月日更 qds

架构训练营毕业总结

Neil43

架构训练营

万字文肝Python基础知识

ベ布小禅

8月日更

模式包括问题和解决方案

escray

学习 极客时间 如何落地业务建模 8月日更

Linux之rcp命令

入门小站

Linux

【Vue2.x 源码学习】第三十五篇 - 组件部分 - Vue.component 实现

Brave

源码 vue2 8月日更

梳理会在Scrum中是活动还是事件?——《Scrum指南》重读有感(6)

Bruce Talk

Scrum 敏捷 随笔 Agile

实战架构训练营总结

贯通

#架构实战营

手撸二叉树之二叉树的堂兄弟节点

HelloWorld杰少

数据结构与算法 8月日更

JavaScript继承的实现方式:原型语言对象继承对象原理剖析

zhoulujun

JavaScript

Git 应该用 fetch 还是 pull

HoneyMoose

Android开发:Android Studio插件GsonFormat根据Json自动生成javabean的方法

三掌柜

8月日更 8月

python-类,对象--》多态,封装,继承

加里都好

Python

【Flutter 专题】66 图解基本约束 Box (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

crudapi增删改查接口零代码产品成功案例之商会联盟卡项目

crudapi

Java Vue 零代码 crudapi qusar

毕业总结

Johnny

架构实战营

架构实战营 毕业设计:设计电商秒杀系统

Ahu

Web框架Gin | Gin 中间件

xcbeyond

Go 语言 gin gin-middleware 8月日更

持久层Mybatis中对于SQL注入的问题,聊聊你的想法?

卢卡多多

SQL优化 8月日更

https 与 http 区别

一个大红包

8月日更

「让我们一起Golang」让协程自己kill自己

Regan Yue

协程 Go 语言 8月日更

从0开始的TypeScriptの七:函数

空城机

typescript 大前端 8月日更

前端之算法(四)快速排序

Augus

算法 8月日更

有书香气的七夕节

箭上有毒

8月日更

在线日期计算器

入门小站

工具

【设计模式】中介者模式

Andy阿辉

C# 后端 设计模式 8月日更

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