NHibernate - Architektura
W dzisiejszych czasach wiele systemów jest projektowanych z architekturą warstwową, NHibernate również ją ma i doskonale współpracuje z tym projektem.
Architektura warstwowa
Architektura warstwowa dzieli system na kilka grup, z których każda zawiera kod odnoszący się do konkretnego obszaru problemowego i te grupy nazywane są warstwami. Większość aplikacji na poziomie przedsiębiorstwa używahigh-level application architecture które składają się z trzech warstw -
- Warstwa prezentacji
- Warstwa biznesowa
- Warstwa trwałości
Na przykład warstwa interfejsu użytkownika, znana również jako warstwa prezentacji, może zawierać cały kod aplikacji do tworzenia stron internetowych i przetwarzania danych wejściowych użytkownika.
Jedną z głównych zalet podejścia warstwowego jest to, że często można wprowadzać zmiany w jednej warstwie bez znaczących zakłóceń w innych warstwach, dzięki czemu systemy lesser fragile and more maintainable.
Warstwa prezentacji
Jest to najwyższa warstwa, która zawiera kod odpowiedzialny za rysowanie interfejsu użytkownika, stron, okien dialogowych lub ekranów oraz zbieranie danych wejściowych użytkownika i sterowanie nawigacją.
Warstwa biznesowa
Warstwa biznesowa jest odpowiedzialna za wdrażanie wszelkich reguł biznesowych lub wymagań systemowych, które użytkownicy zrozumieliby jako część domeny problemu.
Wykorzystuje również ponownie model zdefiniowany przez warstwę trwałości.
Warstwa trwałości
Warstwa trwałości składa się z klas i komponentów, które są odpowiedzialne za zapisywanie i pobieranie danych aplikacji.
Ta warstwa definiuje również mapowanie między klasą modelu a bazą danych. W tej warstwie stosowany jest przede wszystkim NHibernate.
Baza danych
- Baza danych istnieje poza aplikacją .NET.
- To rzeczywista, trwała reprezentacja stanu systemu.
- Jeśli używana jest baza danych SQL, zawiera ona schemat relacyjny i prawdopodobnie procedury składowane.
Klasy pomocnicze / użytkowe
Każda aplikacja ma zestaw klas pomocniczych lub narzędziowych, które obsługują inne warstwy: na przykład widżety interfejsu użytkownika, klasy wiadomości, klasy wyjątków i narzędzia do logowania.
Te elementy nie są uważane za warstwy, ponieważ nie są zgodne z regułami zależności międzywarstwowych w architekturze warstwowej.
Architektura NHibernate
Jest to widok wysokiego poziomu aplikacji NHibernate, ale można również zobaczyć prostą architekturę NHibernate.
Kod aplikacji wykorzystuje NHibernate ISession i IQuery API do operacji trwałych i tylko do zarządzania transakcjami bazy danych, najlepiej przy użyciu NHibernate ITransaction API.