「CSharp-SQLite」の版間の差分
ナビゲーションに移動
検索に移動
imported>Administrator (→インストール) |
|||
(3人の利用者による、間の3版が非表示) | |||
2行目: | 2行目: | ||
== 概要 == | == 概要 == | ||
− | C#-SQLiteは、[[プラットフォーム呼び出し]]や[[アンセーフコード]]を一切使用していない。これにより[[Mono]]派生プロジェクトや[[Silverlight]]などの[[マネージドコード]]しか許されない環境においても[[SQLite]] | + | C#-SQLiteは、[[プラットフォーム呼び出し]]や[[アンセーフコード]]を一切使用していない。これにより[[Mono]]派生プロジェクトや[[Silverlight]]などの[[マネージドコード]]しか許されない環境においても[[SQLite]]を使うことができる。また[[C言語]]で書かれた[[SQLite]]の[[ライブラリ]]を同梱し[[P/Invoke]]で呼び出す方式ではひとつのビルドでマルチプラットフォーム対応することも非常に難しいものになる。 |
その一方で動作速度は[[マネージドコード]]であるため[[ネイティブコード]]に大幅に劣ると考えられていた。実際に最初期のC#-SQLiteはオリジナルバージョンの[[SQLite]]([[System.Data.SQLite]])に比べ、約5倍も遅かった。 | その一方で動作速度は[[マネージドコード]]であるため[[ネイティブコード]]に大幅に劣ると考えられていた。実際に最初期のC#-SQLiteはオリジナルバージョンの[[SQLite]]([[System.Data.SQLite]])に比べ、約5倍も遅かった。 | ||
15行目: | 15行目: | ||
当初SQLiteプロジェクトでは、名称に「SQLite」と含めることも認めていなかったが、後にその点だけは認めC#-SQLiteという名称に落ち着いている。 | 当初SQLiteプロジェクトでは、名称に「SQLite」と含めることも認めていなかったが、後にその点だけは認めC#-SQLiteという名称に落ち着いている。 | ||
+ | == 使い方 == | ||
+ | === インストール === | ||
+ | 非公式の[[NuGet]]パッケージが存在している。 | ||
+ | * https://www.nuget.org/packages/Community.CsharpSqlite.SQLiteClient/3.7.7.3 | ||
== 関連項目 == | == 関連項目 == | ||
20行目: | 24行目: | ||
* [[db4o]] | * [[db4o]] | ||
* [[Siverlight Database]] | * [[Siverlight Database]] | ||
− | * [[System.Data.SQLite]] | + | |
+ | ; 類似 | ||
+ | * [[System.Data.SQLite]] - [[Windows]]で動く[[ADO.NET]]対応のSQLite実装 | ||
+ | * [[Mono.Data.SQLite]] - [[Mono]]で動く[[ADO.NET]]対応のSQLite実装 | ||
+ | * [[sqlite-net]] - CSharp-SQLiteと同じくピュアC#実装でどこでも動く。[[ADO.NET]]非対応にすることで超軽量化を実現。 | ||
== 参考文献 == | == 参考文献 == |
2016年4月18日 (月) 06:26時点における最新版
C#-SQLiteとは、C言語で書かれたSQLiteを、P/Invokeやアンセーフコードを一切使用せずにC#で書き直したものである。
概要[編集 | ソースを編集]
C#-SQLiteは、プラットフォーム呼び出しやアンセーフコードを一切使用していない。これによりMono派生プロジェクトやSilverlightなどのマネージドコードしか許されない環境においてもSQLiteを使うことができる。またC言語で書かれたSQLiteのライブラリを同梱しP/Invokeで呼び出す方式ではひとつのビルドでマルチプラットフォーム対応することも非常に難しいものになる。
その一方で動作速度はマネージドコードであるためネイティブコードに大幅に劣ると考えられていた。実際に最初期のC#-SQLiteはオリジナルバージョンのSQLite(System.Data.SQLite)に比べ、約5倍も遅かった。
だが、ソースコードの最適化が進み、さらに.NET FrameworkのJITコンパイラーも着実に進化したこともあり、2011年9月1日に実施されたベンチマークでは一部項目でC#-SQLiteがSQLiteの2倍程度の速度で動作するという逆転現象が発生するに至っている。[1]
注意[編集 | ソースを編集]
C#-SQLiteはSQLiteの公認版ではなく、SQLiteとは一切提携などはしていない。
また、SQLite由来のバグについてはC#-SQLiteプロジェクトではなく本家SQLiteプロジェクトに報告してほしいとしている。
当初SQLiteプロジェクトでは、名称に「SQLite」と含めることも認めていなかったが、後にその点だけは認めC#-SQLiteという名称に落ち着いている。
使い方[編集 | ソースを編集]
インストール[編集 | ソースを編集]
非公式のNuGetパッケージが存在している。
関連項目[編集 | ソースを編集]
- 類似
- System.Data.SQLite - Windowsで動くADO.NET対応のSQLite実装
- Mono.Data.SQLite - Monoで動くADO.NET対応のSQLite実装
- sqlite-net - CSharp-SQLiteと同じくピュアC#実装でどこでも動く。ADO.NET非対応にすることで超軽量化を実現。