Pracuję nad aplikacją sieci web .NET, która korzysta z bazy danych SQL Server z około 20 do 30 tabelami. Większość tabel zostanie uwzględniona w rozwiązaniu .NET jako klasa. Napisałem własną warstwę dostępu do danych, aby odczytać obiekty i zapisać je w bazie danych. Całość składa się z zaledwie kilku klas i bardzo niewiele wierszy kodu en używa generycznych i refleksyjnych, aby dowiedzieć się, jakie SQL i parametry użyć. Teraz można coś takiego zrobić za pomocą NHibernate (lub frameworka similair), a niektórzy współpracownicy twierdzą, że to głupie, że nie używam tego. Moim głównym argumentem za niestosowaniem tego jest to, że chcę maksymalnej kontroli nad moją aplikacją, dokładnie wiem, co robi i jak wszystko działa, nawet jeśli to kosztuje więcej czasu na rozwój. Nie podoba mi się także to, że muszę mapować moją bazę danych w plikach XML (moje własne rozwiązanie pozwala mi mapować je w plikach klasy encji).Czy to głupie, że nie używam NHibernate do mojego projektu?
Więc, chciałbym usłyszeć od ciebie, czy to naprawdę głupie, aby nie używać NHibernate w tej sytuacji? Czy naprawdę jestem ignorantem, czy też nie jest to taki dziwny pomysł, aby użyć mojego własnego rozwiązania?
NHibernate jest opcją, jako ADO.NET Entity Framework (sprawdź też). –
Wyszukiwanie NHibernate.Mapping.Attributes - nie ma potrzeby przechowywania metadanych bazy danych w formacie XML. –
Można również dowiedzieć się "dokładnie, co wszystko robi i jak wszystko działa" podczas korzystania z NHibernate; kod źródłowy jest łatwo dostępny. Istnieją również inne doskonałe narzędzia, takie jak NHProf, które pokazują, co się dzieje. –