Zespół programistów, z którym pracuję, wkrótce przejdzie na platformę .NET 4.0, jednak używana przez nas biblioteka klas dostępu do danych nadal używa „klasycznego” ADO.NET, co oznacza SqlDataReader , DataTable i tym podobne. Tymczasem wydaje się, że Microsoft i prawdopodobnie reszta świata idzie do przodu dzięki Entity Framework i WCF Data Services . W witrynie MSDN nie znalazłem niczego, co wskazywałoby, które technologie dostępu do danych Microsoft uważa za najlepsze praktyki.
Czy Microsoft ma preferencje? Z jakiego dostępu do danych korzysta obecnie większość osób? Czy istnieją dobre powody, aby pozostać przy ADO.NET classic i nie przejść do Entity Framework?
c#
.net
database-development
T. Webster
źródło
źródło
Odpowiedzi:
W mojej firmie używamy EF. To ładna ORM, odpowiednia do naszego małego projektu. W rzeczywistości ludzie używają EF lub NHibernate. Oba frameworki są dobre. EF ma doskonałą obsługę MS i możesz znaleźć świetne narzędzia w pakiecie z Visual Studio. NHibernate jest uważany za lepszy niż EF, ale istnieje większa „krzywa uczenia się”, więc poświęcisz jej więcej czasu.
Myślę, że jeśli używasz „klasycznego” Ado.Net, wypróbuj EF. Utwórz prosty projekt i zastąp niektóre metody DAL. Sprawdź, jak to działa i jak możesz zarządzać / modyfikować kod. Porównaj to z prostymi metodami „SqlDataReader” i zdecyduj, który jest lepszy. Pamiętaj, że każda zmiana technologii wymaga czasu na przyjęcie, więc musisz obliczyć, czy ta zmiana będzie korzystna dla Twojej firmy w dłuższej perspektywie.
źródło
Mój zespół odczuwa ból związany z przejściem na EF. Nie dzieje się tak dlatego, że EF jest zły lub nieprzydatny, ale zakres konwersji naszych istniejących warstw danych (dość masywnych) z silnie typowanych zestawów danych pochodzących z ADO.Net Framework 2.0 na EF to po prostu dużo intensywnej pracy, która tak naprawdę nie zyskuje coś nam. W przypadku nowych rzeczy jesteśmy wciąż dość rozdarci, ponieważ wszyscy mamy opinie i cele. W naszych projektach Silverlight skupiamy się wyłącznie na usługach EF i RIA, ale w projektach internetowych (formularze internetowe i MVC 3) korzystamy przede wszystkim z Linq2Sql.
Za pomocą Linq2Sql znajdujemy mniej problemów i szybszy rozwój, ale wiem, że Microsoft promuje program EF (szczególnie w przypadku usług WCF i RIA). Linq2Sql nigdzie się nie wybiera, ale wszystkie nowe zabawki i fajne funkcje zostaną skoncentrowane na EF. Powiedziałbym, że jeśli masz wcześniej wybór, EF byłby dobrym miejscem do rozpoczęcia. Jeśli jesteś już w połowie strumienia, nie wiem, czy bardzo łatwo będzie się przestawić.
źródło
Entity Framework to preferowana metoda. LinqToSql będzie obsługiwany i utrzymywany, ale programowanie koncentruje się na Entity Framework. Wybór między ADO.NET Entity Framework a LINQ to SQL
źródło