2008-10-27 18 views
23

Po prostu zaczynam projekt, a ponieważ ten projekt jest osobisty, zastanawiałem się, jakie są zalety korzystania z Biblioteki Enterprise? Używamy wersji 2 dla kilku projektów w biurze, ale nie jestem do końca pewien (poza dobrymi praktykami) jego zalet, zwłaszcza w komponencie bazy danych. Jakakolwiek rada? DziękiZalety i wady korzystania z biblioteki Enterprise

Odpowiedz

13

Dla bloku aplikacji do bazy danych główną zaletą jest to, że ułatwia tworzenie kodu agnostycznego bazy danych. Deweloper współdziała głównie z typowymi obiektami Database i DbCommand, a nie np. SqlConnection, SqlCommand itd. W ten sposób przejście na inną bazę danych (np. Oracle) staje się bardziej wykonalne. W zależności od potrzeb biznesowych może to stanowić zdecydowaną przewagę. EntLib również delikatnie produje dewelopera w kierunku używania parametru DbParameter do parametrów zapytania, co zmniejsza ryzyko ataków typu SQL injection.

Kolejny plakat, o którym wspomniano, blok aplikacji danych jest nieco wyższy niż proste klasy ADO.NET, więc zwykle wymaga mniejszej liczby wierszy kodu, aby zrobić to samo.

Z mojego punktu widzenia najbardziej przydatne są bloki danych, wyjątków i rejestrowania. Wyjątki i logowanie razem bardzo ułatwiają rejestrowanie wyjątków (duh) w wielu miejscach i w wielu formatach. Na przykład, mogą umieścić cały wpis dziennika wyjątków, w tym ślad stosu, w dzienniku zdarzeń systemu Windows, co pozwala stosunkowo łatwo zdiagnozować problem.

Jedną z wad EntLib jest to, że niektóre bloki aplikacji umieszczają dość logikę w plikach konfiguracyjnych. Więc twoja logika jest bardziej rozłożona; niektóre są w kodzie, niektóre w plikach konfiguracyjnych. Plusem jest to, że konfigurację można zmodyfikować po zakończeniu kompilacji, a nawet po wdrożeniu.

+0

Po prostu z ciekawości, ile czasu zajęło Ci uruchomienie blokady wyjątku? Stary dokument lekarza powiedział "pół dnia" krzywej uczenia się, jakie było twoje doświadczenie? –

+0

Roszczenia M $ nie są nierozsądne, jeśli twoim celem jest posiadanie podstawowej wiedzy na temat konfiguracji bloku wyjątków (konsola konfiguracyjna jest tutaj nieoceniona). Korzystanie z tego bloku aplikacji (w rzeczy samej, wszystkie bloki aplikacji) wymaga jednak zmian kodu, więc YMMV. –

+0

Czy inny dostawca może być używany przez bloki danych (np.MySql) lub tylko to, co jest zawarte w strukturze (Oracle/SQL Server)? –

12

Mój zespół dokonał oceny Microsoft Patterns and Practices Enterprise Library około 2 lat temu w ramach przeprojektowania naszej linii produktów. Jedyną częścią, którą wykorzystaliśmy, był blok bazy danych. Zawiesiliśmy nawet to w niektórych klasach, które moglibyśmy utworzyć, abyśmy mogli wyśmiać DAL dla testów jednostkowych; blok kodu Microsoft używał wywołań statycznych do pracy z bazą danych. Nie jestem pewien, czy Microsoft zintegruje dowolny element LINQtoSQL lub Entity Framework z blokiem db. Byłbym niezdecydowany, aby skorzystać z bloku db teraz, jeśli nie korzystał z jednego z nich.

Jeśli chodzi o rejestrowanie, okazało się, że Log4Net jest znacznie bardziej niezawodnym i elastycznym rozwiązaniem, które rejestruje firma Microsoft. Połączyliśmy to z naszymi potrzebami w zakresie rejestrowania.

Do obsługi wyjątków przetworzyliśmy własne. Kod Microsoft nie zajmował się zdalnymi przypadkami, z którymi chcieliśmy sobie poradzić, a ponieważ używaliśmy zewnętrznego systemu logowania, lepiej było napisać własną bibliotekę wyjątków i zintegrować się z nią. Przekonałem się, że pewien poziom integracji struktury logowania w ramach wyjątków może być bardzo użyteczny. Napisaliśmy lekkie klasy otoki wokół Log4Net i wywołaliśmy je z naszego rejestrowania wyjątków, więc nie wprowadziliśmy zależności na Log4Net.

3

Oprócz elementów wymienionych przez Pawła na temat bloku danych aplikacji, chciałbym również zaznaczyć, że z mojego doświadczenia wynika, że ​​blok aplikacji danych zapewnia znacznie SZYBKĄ metodę zapisu potrzebnego kodu bazy danych, z pomocnikami, którzy istnieją . Używam go ze względu na jego spójny wygląd i dynamikę rozwoju.

+0

Wydaje mi się dziwne, że MS projektuje ADO.NET, a następnie projektują bloki danych aplikacji i mówią "użyj tego", to jest to, co odnoszą sukcesy w projektach, nie mówiąc, że ADO.NET jest zbyt uciążliwy. – ChadD

Powiązane problemy