Nhibernate vs Linq
LINQ
LINQ står for sprogintegreret forespørgsel. Grundlæggende adresserer LINQ den aktuelle databaseudviklingsmodel i sammenhæng med objektorienteret programmeringsmodel. Imidlertid har omfattende support til LINQ brug for nogle udvidelser på det anvendte sprog, da Linq ikke er et komplet ORM-værktøj (Object Relational Mapping). Sådanne udvidelser øger output og effektivitet og giver således en kortere, mere meningsfuld og mere udtryksfuld syntaks til at manipulere data.
LINQ er en programmeringsmodel, der introducerer forespørgsler som et førsteklasses koncept til ethvert Microsoft NET-sprog. Med andre ord betragtes det som et forespørgselssprog, der primært bruges med MS SQL Server. Mange synes Linq temmelig nyttigt i mindre applikationer, hvor behovet for database ikke er stort.
NHibernate
NHibernate er en open source objektrelational mapping eller ORM-løsning til Microsoft .NET-platformen. Det er udviklet på lignende måde som Java's Hibernate-bibliotek, der leverer tjenester til at videreføre .NET-rammeobjekter til og fra en underliggende database.
Det er primært rettet mod udviklere, der fokuserer på domæne i stedet for database. NHibernate kan anvendes med næsten ethvert DataBase Management System (DBMS).
Ulemper, uden intelligens, har NHibernate et begrænset sprog, der spørges efter. Ikke desto mindre er det ganske fleksibelt med hensyn til den slags objektdefinitioner, der kan kortlægges til bordstrukturer. NHibernate præsenterer flere muligheder, da man kan finpusse en masse aspekter med hensyn til datatilgang. Det er næsten ubegrænset.
Resumé:
1. Med Linq findes der allerede database, og relationer og en vis programmering vil være afhængig af, hvordan databasen er defineret.
2. I modsætning til Linq er NHibernate en open source.
3. Nhibernate er et ORM-værktøj, mens Linq er et ufuldstændigt ORM-værktøj, da det har brug for yderligere udvidelser.
4. Linq er primært et forespørgselssprog, mens NHibernate har et begrænset forespørgselssprog.
5. Linq er meget mere nyttigt i små applikationer, hvor der ikke er nogen massiv afhængighed af databaser.
6. NHibernate er meget fleksibel og giver flere muligheder.