2013-04-15 10 views
16

Muszę utworzyć aplikację, w której poproszono mnie o utworzenie warstwy trwałości w aplikacji. Aplikacja znajduje się w .net. Stworzyłem warstwę biznesową i warstwę prezentacji, ale nie wiem jak i dlaczego powinienem utworzyć warstwę trwałości.Jakie jest zastosowanie warstwy trwałości w dowolnej aplikacji?

Przeszukałem i poznałem, że warstwa trwałości służy do przechowywania i pobierania danych zwykle z bazy danych.

Czy ktoś może wyjaśnić szczegółowo?

Odpowiedz

10

Powód, dla którego należy zbudować warstwę DAL (warstwę dostępu do danych) lub dowolny inny rodzaj warstwy pośredniej między silnikiem bazy danych a logiką biznesową/aplikacyjną, polega na dodaniu tej warstwy między izolatami reszty/warstw górnych twoja aplikacja z konkretnego silnika bazy danych/technologii, której używasz właśnie teraz.

Ma to kilka zalet, takich jak łatwiejsza migracja do innych mechanizmów magazynowania, lepsza enkapsulacja logiki bazy danych w pojedynczej warstwie (łatwiej jest je wymienić lub zmodyfikować później, w zależności od tego, jak dobrze zaprojektowano interfejsy między warstwami itp.)

zobaczyć moją odpowiedź tutaj najbardziej ocenił, że jest to przykład o ASP.NET MVC i EF ale strukturyzacji rozwiązania i projekty jest rzeczywiście technologia niezależna: MVC3 and Entity Framework

także przeczytać kilka artykułów, aby lepiej zrozumieć tę sprawę, dla przykład: http://www.developerfusion.com/article/84492/net-and-data-persistence/

8

W bardzo prosty sposób warstwa wytrwałość jest sposobem SAVE i RETRIEVE przedmiotów, które aplikacja korzysta.

Prostym przykładem jest klasa reprezentująca osobę (imię, wiek i płeć). Podczas działania aplikacja jest przechowywana w pamięci. Powiedzmy jednak, że chcesz, aby te informacje były dostępne, jeśli zamkniesz i ponownie otworzysz aplikację. Cóż, potrzebujesz jeszcze jednego sposobu, aby ZAPISZ tę osobę, a następnie ponownie ponownie odzyskać ponownie. Tutaj pojawia się warstwa uporczywości i napiszą gdzieś "permanentną" osobę.

To może być baza danych, plik płaski, w zależności od rejestru czasie życia i wymagań itp

w twojej warstw utrwalania będzie odbywać CRUD (Create, Read, Update, Delete) operacje. Często w stosunku do bazy danych, więc chcesz Stwórz nową osobę (Fred Bloggs). Powiedzmy, że zmienili nazwę innego użytkownika systemu, może przeczytać rekord i zmienić na Fred Miggins i Update bazy danych. Ten klient opuści kraj, aby je usunąć.

11

warstwa odpornościowa inaczej nazywana warstwą dostępu do danych lub inną terminologią.

Oddziela odwagę pozyskiwania i zapisywania danych z warstwy biznesowej. Powodem, dla którego to robisz, jest to, że logika biznesowa (ta część aplikacji, która robi duże manipulowanie danymi) nie jest powiązana z określonym typem źródła danych.

Warstwa danych będzie musiała być zapisana jako specyficzna dla bazy danych. Więc jeśli używasz MySQL do uzyskania dostępu do wszystkich twoich danych, zapiszesz dataLayer do tego użytku.

Jeśli w którymś momencie zdecydujesz się na MongoDB, zamiast przepisywania całej aplikacji. Możesz przepisać tylko części dostępu do danych, aby uzyskać dane z MongoDB. Ponieważ logika biznesowa nie obchodzi, w jaki sposób otrzymujesz dane, tylko to, co robisz, to i warstwa prezentacji może pozostać nietknięta.

Mam nadzieję, że to pomoże.

+0

Czy możemy powiedzieć, że mój repozytorium realizacja tupot jest mój warstwa Trwałość? –

2

Jeśli nie zapisujesz gdzieś swoich danych, nie będzie tam ponownie, gdy aplikacja zostanie ponownie otwarta. Możesz zapisać go do bazy danych, jak powiedziałeś (SQL, Oracle, PostGRE itp.) Lub bezpośrednio na dysk (serializacja w formacie binarnym lub zwykły tekst itp.).

Używanie warstwy do wykonania tego jest dobrą praktyką. Zmniejsza to sprzężenie (czyli kod spaghetti) i znacznie ułatwia konserwację.

Proponuję przeczytać o Hibernate i jego kuzynce .NET, NHibernate.

2

Persistence = odczyt/zapis/usuwanie rekordów na dysk lub bazę danych.

Warstwa = izolacja itp

Trwałość warstwy = oznacza zazwyczaj izolować odczyt/zapis/kasowanie logiki z logiki biznesowej. najlepiej poprzez umieszczenie kilku (lub jednego) punktu interakcji między logiką biznesową a modułami trwałości.

myślę, że coś mamy wszystko zrobić (zapisać na dysku, db, etc), to tylko wyobraźnia semestr, oni po prostu pytając nas:

  1. upewnić się, że utrzymywanie dokładnie zgrupujcie części,
  2. idealnie przy niewielu (lub dokładnie jednym) punkcie interakcji pomiędzy logiką biznesową (np. wzorzec bramki),
  3. , więc w przyszłości może chcielibyśmy zmienić typy baz danych lub hosty (np. mniejszy zakres - po prostu musielibyśmy zmoczyć części utrwalające, aby je uruchomić).

Cheers,

Powiązane problemy