2013-01-19 7 views
11

Ich möchte wissen, was Microsoft.Practices.EnterpriseLibrary.Data ist und warum wir diese DLL verwenden. Was sind die Vorteile dieser DLL?Was ist Microsoft.Practices.EnterpriseLibrary.Data

Ich möchte ein Projekt auf 3-Tier-Architektur erstellen, was der beste Weg für SQL-Abfragen ist.

wetter ich benutze diese dll oder gehe für einfache sqlcommand und datenadapter. derzeit i auf diese Weise arbeitet: My-Code in DAL Datei ist:

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(); 
    } 
} 

Ich bin verwirrt Wetter i in der richtigen Art und Weise tätig bin oder soll ich Microsoft.Practices.EnterpriseLibrary.Data verwenden und erstellen Sie dann i DatabaseFactory.

+0

Ich war wo du bist, also bin ich sympathisch. Ich weiß nicht, dass etwas mit der Verwendung der SqlCommand- und SqlConnection-Objekte falsch ist. Dinge wie die Enterprise-Bibliothek sind Wrapper auf höherer Ebene, die Ihnen die Möglichkeit geben, Code zu schreiben, der so konfiguriert werden kann, dass er mit einer größeren Bandbreite von Datenbanken (mehr als nur SQL Server) funktioniert. Wenn Sie nur lernen, würde ich sagen, bleiben Sie bei dem, was Sie haben. –

+0

Das Entity Framework ist Microsofts aktuelles ORM de jour –

+1

@AaronAnodide: Ich weiß, dass nichts falsch ist, aber ich möchte wissen, was der Unterschied ist und was die wirklichen Vorteile von 'Microsoft.Practices.EnterpriseLibrary.Data' sind –

Antwort

13

Der Hauptvorteil der Microsoft.Practices.EnterpriseLibrary.Data-Bibliothek besteht darin, dass es die Erstellung von datenbankunabhängigem Code erleichtert. Der Entwickler interagiert hauptsächlich mit generischeren Database vs SqlConnection- und DbCommand vs SqlCommand-Objekten. In der Theorie wird der Mechanismus der Umschaltung der zugrunde liegenden Datenbank von MSSQL auf Oracle etwas einfacher. Auch wenn ich dies in meiner Entwicklungserfahrung noch nie gesehen habe.

Microsoft.Practices.EnterpriseLibrary.Data weist den Entwickler außerdem an, DbParameter für Abfrageparameter zu verwenden, wodurch das Risiko von SQL-Injection-Angriffen verringert wird.

Die Microsoft.Practices.EnterpriseLibrary.Data ist eine höhere Zusammenfassung der Kern ADO. NET-Konstrukte und ermöglicht es dem Entwickler, die gleichen Aufgaben in einer minimalen Menge Code abzuschließen.

Wenn Sie Datenzugriffsstrategien lernen, empfehle ich ADO fortzusetzen. Je mehr Sie die Grundlagen verstehen, desto nützlicher ist Microsoft.Practices.EnterpriseLibrary.Data oder Entity Framework oder NHibernate zu verwenden, da Sie die Grundlagen der Technologien verstehen auf ADO .Net gebaut.