2010-10-11 14 views
8

Powiel możliwe:
What is NHibernate?Co to jest NHibernate i dlaczego powinienem go używać?

Słyszałem nazwę NHibernate używany dużo, ale ja naprawdę nie rozumiem, co to jest. Mam read the Wikipedia article, ale nie rozumiem, jak przy użyciu NHibernate w mojej aplikacji C# (pulpit w/WPF, internecie w/ASP.NET MVC) będzie:

  • Zmień kod
  • łatwiej/szybciej

Czy powinienem zaglądać do NHibernate w moich projektach?


UPDATE: Dzięki identyfikacji tego jako dupe! Nie zdawałem sobie sprawy, że to już zostało zadane.

Domyślam się, że moje prawdziwe pytanie dotyczy NHibernate versus Linq do SQL (którego używałem we wszystkich moich aplikacjach), ale to zostało już zadane here i here.

Dzięki, wszyscy! :)

+0

Najpierw możesz zajrzeć do LINQ2SQL, aby zorientować się, jak łatwo ORM może tworzyć rzeczy, a następnie zajrzeć do nHibernate później, co zapewnia ORM na poziomie przedsiębiorstwa więcej niż linq2sql. –

+0

lub http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework – pm100

+0

Ups, nie zdawałem sobie sprawy, że to dupek. Przepraszam! –

Odpowiedz

13

NHibernate jest ORM (Object Relational Mapper). Jego celem jest odwzorowanie obiektów w Twojej aplikacji OO na tabele w bazie danych dla trwałości.

Dlaczego byłbyś potrzebny? Ponieważ może to uchronić Cię przed napisaniem wielu żmudnych kodów ADO.NET. Zasadniczo zwiększa to produktywność programistów podczas tworzenia aplikacji CRUD, czyli aplikacji, których głównym celem jest tworzenie, odczytywanie, aktualizacja i usuwanie danych w bazie danych.

NHibernate jest open source i musisz zdać sobie sprawę, że uzależniasz swoją aplikację od bibliotek zewnętrznych, których długoterminowe cele mogą odbiegać od twoich.

Jeśli chcesz produktywności ORM bez wprowadzania tej zależności, rozważ Entity Framework lub Linq2SQL (zauważając, że Linq2SQL blokuje Cię w SQL Server).

I na koniec, jeśli nie potrzebujesz poprawy produktywności ORM, a chcesz absolutnej kontroli, trzymaj się starego ADO.NET.

+0

Interesujące byłoby wiedzieć, jak działa obecnie OP z bazą danych. Może nastąpić zmiana, której nie zrobił nawet z ADO.NET, co tłumaczyłoby, dlaczego nie płacze z tego powodu. = P – rebelliard

3

Głównym celem NHibernate jest opisana w Wikipedia article oraz:

Podstawową cechą NHibernate jest mapowanie z klas .NET do bazy danych (tabel i od typów danych CLR typów danych SQL). NHibernate udostępnia również funkcje zapytań i wyszukiwania danych.

NHibernate generuje polecenia SQL i zwalnia programistę z ręcznego ustawiania zestawu danych i konwersji obiektów, dzięki czemu aplikacja jest przenośna w większości baz danych SQL, a przenośność bazy danych jest bardzo niewielka.

1

NHibernate ratuje Cię przed ponownym wynalezieniem koła. 90% czasu, jaki wybierzesz, spowoduje, że nowy projekt będzie projektem CRUD (tworzenie, odczytywanie, aktualizacja i usuwanie) z bazą danych. NHibernate wykonuje tę pracę za Ciebie, miejmy nadzieję, że pozbędzie się trochę nudy konieczności napisania nowej warstwy dostępu do danych dla każdego projektu. Jeśli napiszesz do bazy danych, powiedziałbym, że tak, powinieneś zajrzeć do NHibernate, ale istnieje wiele ORMS tam. Mówię, wypróbuj je wszystkie.

Powiązane problemy