2013-01-19 9 views
11

私はMicrosoft.Practices.EnterpriseLibrary.Dataとは何かを知りたいのですが、なぜこのDLLを使用するのですか? このdllの利点は何ですか?Microsoft.Practices.EnterpriseLibrary.Dataとは何ですか

3層アーキテクチャーでプロジェクトを作成して、SQL照会に最適な方法を作成します。

天気私はこのdllを使用するか、単純なsqlcommandとdataadapterに行きます。 は現在、私はこの方法で働いています: 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を作成する必要があり混乱して天気です。

+0

私はあなたのところにいましたので、私は同情しています。 SqlCommandとSqlConnectionオブジェクトの使用に問題があるとは限りません。エンタープライズライブラリのようなものは、より幅広いデータベース(SQL Serverだけでなく)で動作するように設定できるコードを記述する手段を提供する上位レベルのラッパーです。しかし、あなただけのことを学んでいるなら、私はあなたが持っているものにこだわると言うでしょう。 –

+0

Entity FrameworkはMicrosoftの現在のORMです。 –

+1

@AaronAnodide:間違っていることはわかりませんが、違いとは何か、そしてMicrosoft.Practices.EnterpriseLibrary.Dataの本当のメリットは何かを知りたいのですが、 –

答えて

13

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

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

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

学習データアクセス戦略ADO .Netを続行することをお勧めします。基礎知識があれば分かりますが、Microsoft.Practices.EnterpriseLibrary.DataまたはEntity FrameworkまたはNHibernateは、技術がADO .Netの上に構築されています。

関連する問題