2008-09-17 7 views

Odpowiedz

17

Kiedy mówisz Zamek Zakładam, że oznaczać Castle Active Record?

Różnica polega na tym, że NHibernate to OR/M i jest skierowany do programistów, którzy chcą skupić się na domenie zamiast na bazie danych. Z linq do sql, twoja baza danych jest już istniejąca, a ty jesteś związkiem, a niektóre programowanie będzie oparte na sposobie definiowania twojej bazy danych.

Teraz między NHibernate i Castle ActiveRecord - są one podobne do tego, że kierujesz projektowaniem aplikacji z domeny, ale z NHibernate dostarczasz odwzorowujące pliki xml (lub klasy mapowania z płynnym NHibernate), gdzie w Active Record używasz konwencja dotycząca konfiguracji (przy użyciu atrybutów do definiowania kolumn i ustawień, które nie pasują w sposób naturalny). Akta Castle Active nadal używają NHibernate w tle.

Jeden OR/M niekoniecznie jest "jedynym prawdziwym sposobem". To zależy od twojego środowiska, aplikacji, którą rozwijasz i od twojego zespołu.

Możesz również chcieć sprawdzić SubSonic. Świetnie sprawdza się w przypadku aktywnych rekordów, ale nie w przypadku projektu, w którym chcesz się skupić głównie na domenie. W zależności od projektu, zwykle używam albo NHibernate (z Castle Active Record) lub Subsonic

1

LINQ to tylko zestaw nowych C# funkcji: metod rozszerzenie, wyrażeń lambda, inicjatorów obiektu, anonimowych typów itp

Z drugiej strony "LINQ to SQL" to coś, co można porównać z innymi wrapperami SQL.

1

NHibernate i Linq To Sql są obiektowymi/relacyjnymi maperami zaprojektowanymi w celu ułatwienia radzenia sobie z niedopasowaniem impedancji między obiektami a RDBMS. Jeśli chcesz osiągnąć testowalną, nieustępliwą aplikację ignorantów, NHibernate jest drogą do zrobienia. Zawsze polecałbym NHibernate przez Linq To Sql. Oba narzędzia mają na celu usunięcie problemu z dostępem do danych. Ile razy trzeba napisać kod dostępu do danych?

Zamek to szkielet aplikacji i kontener Inversion of Control, który nie zapewnia dostępu do danych. Dostarcza urządzenia do używania NHibernate, co zapewnia mniejsze tarcie, a także zapewnia implementację wzoru Actuve Record przy użyciu NHibernate.

1

Właściwie używamy razem Linq i NHibernate (z Fluent). Jeśli masz trochę cierpliwości z krzywą uczenia się, to szybko się zakochasz.

Powiązane problemy