top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
blancoDb Enterprise Edition 1.4.0 (Java版)と blancoDbDotNet 0.0.5 (.NET Framework版)との機能の主な差異の説明など
blancoDbDotNetを用いると、SQL定義書を入力として、データベースアクセスのためのC#.NETソースコードの自動生成を行うことができます。
実行環境
Microsoft VisualStudio .NET 2003 にのみ対応。
Microsoft SQL Server 2000 (ADO.NET経由) にのみ対応。
実行には、Sun Java実行環境 1.4.2 および Microsoft SQL Server 2000 JDBCドライバが必要。 ※blancoDbDotNet本体は Java言語で作成されています。一方で blancoDbDotNetが生成するソースコードは C#.NETであり、実行ランタイムは .NET Frameworkとなります。
実現する機能
SQL定義書とソースコードの自動的な同期。
任意のSQL文をもとに、そのSQLを実行するための C#.NETソースコードの自動生成。
データベース上の型をもとにプログラミング言語上での型を強制的に決定することによる、型ずれの確実な防止。
検索結果をデータベースカーソル的に利用が可能。
SQLインジェクションが発生しにくい環境の提供。
動的SQLのサポート。
ADO.NETで利用可能なSQLを そのまま利用可能。
一意制約違反や件数制約に関するラッパーの提供。
特徴
ドキュメントとソースコードの自動的な同期。
生成されたソースコードは実行時ライブラリを必要としない。
SQL定義書を中心として、SQL開発者とC#.NET開発者の分業が可能。
実行時のキャスト例外の発生可能性を極小化。
SQLパラメータ設定忘れを仕組みとして防止。
関連する日記
2009/10/01 日記: blancoDbDotNet (blancoDb .NET Framework版) の ODP.NET 対応
2006/06/09 日記: blanco Frameworkの .NET Framework用 R/Oマッピングツールである blancoDbDotNetのロードマップ
blancoDb Enterprise Edition 1.4.0 (Java版)と blancoDbDotNet 0.0.5 (.NET Framework版)との機能の主な差異を示します。blancoDbDotNetは blancoDbの基本的な機能を引き継いでいます。Java版でのノウハウがそのまま利用できるようになっています。しかし、blancoDbDotNet(.NET Framework版)は Java版と比べると下記の機能がありません。この点に留意する必要があります。
プリミティブ型にマップされる型におけるNULLの利用 .NET版では 整数・浮動小数点・真偽型ではNULLが利用できません。このため、データベース上の型は整数・浮動小数点・真偽型の場合には非NULL制約を付与するように設定してください。 ※これは .NET Frameworkの仕様からくる制限によるものです。VisualStudio .NET 2005より前のバージョンに対応する.NET Frameworkにおいては プリミティブ型においてNULLを適切に扱うことができません。
双方向カーソル対応 blancoDbDotNetは双方向カーソルには対応していません。順方向カーソルのみが利用できます。 ※これは ADO.NETの仕様からくる制限によるものです。
更新を伴う検索 更新を伴う検索(SELECT FOR UPDATE相当)については対応していません。 ※これは ADO.NETの仕様からくる制限によるものです。
ストアドプロシージャ対応 現行バージョンではストアドプロシージャを利用することができません。
SQL Server 2000以外のRDBMSの対応 現状の .NET版は ADO.NET経由のSQL Server 2000にのみ対応します。Oracle対応(ODP.NET対応)はありません。
ロギング対応 ロギングを行うためのソースコード自動生成はおこなわれません。Java版では Log4Jを利用したロギングを行うソースコードを自動生成させることができますが、.NET版ではロギングを行うソースコードは自動生成させることはできません。
効率の良いバイナリ型の順次転送 効率の良いバイナリ型の順次転送はできません。メモリ効率や速度という観点では .NET版は Java版に比べて劣ります。.NET版ではバイト配列(byte[])に一旦データを蓄積してから処理を行うようになっています。 ※これは ADO.NETの仕様からくる制限によるものです。
Eclipseプラグイン対応 blancoDbDotNetは Apache Antタスクでのみ起動することができます。