12

Microsoft.Practices.EnterpriseLibrary.Data.dllこのアセンブリとは何か、なぜこのアセンブリを使用するのかを知りたいです。

この dll の利点は何ですか?

私は 3 層アーキテクチャでプロジェクトを作成したいと考えており、SQL クエリを実行するための最良の方法は何かに興味があります。

この dll を使用するか、シンプルSqlCommandDataAdapter. 現在、私はこの方法で作業しています:(DALファイルのコード:)

public void Insert(long id)
{
    connection.Open();
    SqlCommand dCmd = new SqlCommand("test_procedure", connection);
    dCmd.CommandType = CommandType.StoredProcedure;
    try
    {
        dCmd.Parameters.AddWithValue("@id", id);           
        dCmd.ExecuteNonQuery();
    }
    catch
    {
        throw;
    }
    finally
    {
        dCmd.Dispose();
        connection.Close();
        connection.Dispose();
    }
}

私は適切な方法で作業しているのか、Microsoft.Practices.EnterpriseLibrary.DataそれともDatabaseFactory.

4

1 に答える 1

15

Microsoft.Practices.EnterpriseLibrary.Data ライブラリの主な利点は、データベースに依存しないコードを簡単に作成できることです。開発者は主に、より一般的な Database 対 SqlConnection および DbCommand 対 SqlCommand オブジェクトと対話します。理論的には、基礎となるデータベースを MSSQL から Oracle に切り替えるメカニズムがいくぶん簡単になります。私の開発経験では、それが起こるのを見たことはありません。

Microsoft.Practices.EnterpriseLibrary.Data は、クエリ パラメーターに DbParameter を使用するように開発者に指示します。これにより、SQL インジェクション攻撃のリスクが軽減されます。

Microsoft.Practices.EnterpriseLibrary.Data は、コア ADO .Net 構造の高度な抽象化であり、開発者は最小限のコードで同じタスクを完了することができます。

データ アクセス戦略を学習している場合は、ADO .Net を引き続き使用することをお勧めします。基本を理解すればするほど、Microsoft.Practices.EnterpriseLibrary.Data または Entity Framework または NHibernate を使用する必要があります。これは、テクノロジが上に構築されているため、基本を理解するためです。 ADO.Net.

于 2013-01-19T11:39:45.993 に答える