2013-01-19 46 views
11

Chcę wiedzieć, co to jest Microsoft.Practices.EnterpriseLibrary.Data i dlaczego używamy tej biblioteki DLL. jakie są zalety tej biblioteki DLL.co to jest Microsoft.Practices.EnterpriseLibrary.Data

Chcę utworzyć projekt na architekturze trójwarstwowej, jaki jest najlepszy sposób na zapytania sql.

Pogoda Używam tej biblioteki DLL lub przejdź do prostej komendy sql i dataadapter. Obecnie pracuję w ten sposób: mojego kodu w DAL pliku to:

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

Jestem zdezorientowany pogoda pracuję w odpowiedni sposób lub należy użyć Microsoft.Practices.EnterpriseLibrary.Data a następnie tworzę DatabaseFactory.

+0

Byłem tam, gdzie jesteś, więc jestem współczujący. Nie ma nic złego w korzystaniu z obiektów SqlCommand i SqlConnection. Rzeczy takie jak biblioteki przedsiębiorstw są wyższe owijarki poziomu, które daje środki, aby napisać kod, który może być skonfigurowany do pracy z szerszego zakresu baz danych (więcej niż tylko SQL Server). Jeśli dopiero się uczysz, powiedziałbym, że trzymaj się tego, co masz. –

+0

Entity Framework jest obecny ORM de jour –

+1

@AaronAnodide Microsoft: wiem, że nie ma nic złego, ale chcę wiedzieć, co jest różnica i jakie są rzeczywiste korzyści „Microsoft.Practices.EnterpriseLibrary.Data” –

Odpowiedz

13

Główną zaletą biblioteki Microsoft.Practices.EnterpriseLibrary.Data jest to, że łatwiej produkować kod bazy-agnostykiem. Deweloper współpracuje głównie z bardziej ogólnych Database vs SqlConnection i DbCommand vs obiektów SQLCommand teoretycznie mechanizm przełączania podstawową bazę danych z MSSQL do Oracle staje się nieco łatwiejsze. Chociaż w moim doświadczeniu programistycznym nigdy tego nie widziałem.

Microsoft.Practices.EnterpriseLibrary.Data kieruje także wywoływacza do użycia DbParameter parametrów zapytanie, co zmniejsza ryzyko zawału iniekcji SQL.

Biblioteka Microsoft.Practices.EnterpriseLibrary.Data jest wyższym streszczeniem głównych konstrukcji ADO .Net i umożliwia programistom wykonywanie tych samych zadań przy minimalnej ilości kodu.

Jeśli twoje strategie dostępu do danych uczących się sugeruję kontynuowanie ADO .Net, im bardziej rozumiesz podstawy, tym bardziej użyteczna będzie Microsoft.Practices.EnterpriseLibrary.Data lub Entity Framework lub NHibernate, ponieważ rozumiesz podstawy, ponieważ technologie są zbudowany na szczycie ADO .Net.