Moja firma chce użyć ORM do nowego rozwoju w .Net. Obecnie patrzymy na nHibernate, ze względu na jego popularność, jednak LLBLGen jest inną opcją, którą możemy rozważyć. Koszt nie jest głównym czynnikiem. Potrzebujemy rozwiązania, które zapewnia dobrą separację modelu domeny od bazy danych, dobrą strategię buforowania, wydajność rozwoju (tj. Jeśli mogę edytować ją w GUI zamiast w plikach konfiguracyjnych, świetnie), dobrą obsługę klienta.Które narzędzie ORM należy użyć do rozwoju sieci .Net?
Wiem, że nHibernate jest bardzo popularny, ale wiem również, że cena (to nic nie kosztuje) może być częścią tego powodu dla typów open source. Ponieważ koszt nie jest podstawowym czynnikiem (chyba że cena wynosi> 10 000 USD), który byś wybrał biorąc pod uwagę nasze okoliczności? Poza tym, jakie inne czynniki, poza wymienionymi przeze mnie, uważasz za najważniejsze przy wyborze ORM?
Rozdzielczość
W końcu decyduje NHibernate jako rozwiązanie, jednak z perspektywy czasu, myślę, że bym poszedł z LL gdybyśmy mieli to zrobić jeszcze raz. Po prostu nie znaleziono plików mapujących xml. Generatory kodu, które znalazłem dla NHibernate pozostawiły wiele do życzenia. Uważam Fluent NHibernate za interesujący projekt, ale wolę poczekać, aż dojrzeje przed użyciem.
Okazało się, że najważniejszą częścią mojego procesu uczenia się okazały się nie technologie, ale dwa wzorce projektowe: repozytorium i oddzielne wzorce interfejsu. Definiując interfejs repozytorium dostępu do danych (Jeffrey Palermo ma wiele postów na blogu i zarówno w książkach Apress, jak i Wrox MVC to pokazują), możemy użyć LinqtoSQL, LLBLGen, NHibernate itp. I zamienić implementację DAL później, jeśli się przełączy. Podczas gdy jeden z moich współpracowników używa aplikacji NHibernate w swojej aplikacji, wybrałem opcję korzystania z LinqToSQL na mojej najnowszej aplikacji i działało dobrze.
Ric - używamy obecnie LLBLGEN. Próbujemy wprowadzić więcej testów jednostkowych do naszej nowej aplikacji i napotykamy na pewne trudności bez uderzania w bazę danych (używamy modelu adaptera). W jaki sposób podchodzisz do testów jednostkowych LLBL? –
Hi @LuckyLindy Proponuję http://ayende.com/projects/rhino-mocks.aspx i tworzę fałszywe obiekty zamiast używać bazy danych bezpośrednio, myślę, że to może być pełne pytanie SO prawie ponieważ możesz poprosić o coś zasługującego na lepsza odpowiedź niż moja :) –