Obecnie mamy następujący stos:
- VS 2005
- Formularze internetowe
- SQL Server 2005
- IIS 6
Planujemy przejść do tego:
- VS 2010
- MVC i formularze internetowe
- SQL Server 2008
- IIS 7
Moje pytanie brzmi: kiedy przechodzimy do MVC z VS 2010, czy powinniśmy używać Entity Framework (lub innego ORM), mikro ORM (jak Massive ), czy po prostu zwykłego SQL?
Wszystkie samouczki, które przeczytałem o VS 2010, mają na celu wykorzystanie Entity Framework do transakcji danych, ale czy będzie to możliwe w najbliższej przyszłości (ponad 5 lat)?
Jeśli ma to znaczenie, aplikacje naszego klienta mogą mieć od 10 do 1000 aktywnych użytkowników.
asp.net
asp.net-mvc
entity-framework
webforms
guanome
źródło
źródło
Odpowiedzi:
Niedawno przestawiłem się z używania wbudowanych zapytań SQL na używanie EF i oto, co znalazłem:
Plusy
Cons
1:0-1
relację, w której EF chce użyć1:0-*
Nie jestem jednak ekspertem w dziedzinie EF, więc prawdopodobnie przegapiłem kilka rzeczy. To tylko elementy, które znam w przeszłości, kiedy przechodziłem z wbudowanego SQL na Entity Framework. Cieszę się, że dokonałem zmiany, ale były czasy, kiedy naprawdę nienawidziłem EF z powodu jego dziwactw.
źródło
Entity Framework to narzędzie zwiększające wydajność. Jeśli nie masz uzasadnionego powodu, aby tego nie robić (np. Korzystasz z SQL 2000 lub nie masz czasu, aby rozwinąć technologię), skorzystaj z najlepszych dostępnych narzędzi.
Biorąc to pod uwagę, uważam, że koncepcja jednostek bardzo dobrze przekłada się na model wzorca MVC. Chociaż relacja 1: 1 z modelami i tabelami jest złą praktyką, myślenie w kategoriach encji ma tendencję do tworzenia czystych projektów, łatwego do odczytania kodu (szczególnie w przypadku LINQ).
Entity Framework jest aktywnie wspierany przez Microsoft. Nikt nie ma magicznej kryształowej kuli, która by powiedziała „wsparcie potrwa X lat”. Nie widzę powodu, by sądzić, że Istota umrze w ciągu najbliższych 5 lat.
źródło
Innym potencjalnym rozwiązaniem jest użycie alternatywnej biblioteki Entity Framework Library, która nie jest dostarczana z VS. Istnieje kilka dostępnych w Internecie.
Koncepcja szkieletu Entity / 3 layer istnieje już od jakiegoś czasu i współpracuje z kilkoma niestandardowymi bibliotekami, podobnie jak wielu innych programistów, zanim Microsoft wydał własną „oficjalną” strukturę.
Plusy
Korzystaj z frameworku Entity (DAL), nie blokując się ciągłymi zmianami bibliotek / frameworka Microsoft.
Dodanie funkcji do biblioteki, które być może nie są dostępne w istniejącej bibliotece oficjalnej, na przykład przy użyciu kilku marek dtabase.
Cons
Muszę wspierać bibliotekę lub narzędzia. Bardzo często jest używane narzędzie do kodowania generatora jednostek do generowania enitites.
źródło
Musisz podjąć decyzję architektoniczną w oparciu o problem i istniejące rozwiązanie. Podobnie jak w przypadku każdej technologii, istnieją zalety i wady.
Osobiście zwykle używałbym frameworku encji do nowego programowania, ale nie przerabiałam działającego kodu. Otrzymujesz wtedy szybkość przyszłego usuwania, ale nie musisz inwestować dużo czasu na konwersję kodu. Wadą tego podejścia jest zmniejszenie spójności.
źródło
W twojej sytuacji zdecydowanie użyłbym Entity Framework, przekonałem się, że działa dobrze z MVC.
Oto kilka prawdziwych powodów i wskazówek.
Jest jednak wiele rzeczy, których musisz się nauczyć o korzystaniu z ORM.
Rzeczy do rozważenia
Gorąco poleciłbym również pierwsze podejście do kodu, nawet jeśli masz już bazę danych.
źródło