Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
-
Upload
quick-solution -
Category
Software
-
view
211 -
download
2
Transcript of Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Wzorce
Repository, Unity Of Work
w architekturze ASP.NET MVC
Piotr StolaGrupa .NET Politechnika Koszalińska 14-12-2016
Wprowadzenie
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
> [email protected] / @quick_net
> niezależny konsultant, programista .NET / C# / Devexpress
> tworzymy rozwiązania dla szeroko rozumianego sektor finansowego
> od 2014 Devexpress MVP
> popołudniami – Mistrz Jedi i Architekt LEGO ;)
Wprowadzenie
@quick_net
1
2
3
4
5
6
7
8
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Wprowadzenie
Architektura ASP.NET MVC
Wzorzec Repository
Wzorzec Unity of Work
Feel the force! Devexpress MVC
Pros & Cons
Podsumowanie
Q & A
Wprowadzenie
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Controller View
Model
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Model
>
>
>
>
abstrakcyjne pojęcie
reprezentuje poszczególne stany naszej aplikacji
POCOs, ViewModels, Domain Models,
Data Containers
powinien być dostępny na każdym poziomie
aplikacji
grupowanie obiektów w
biznesowe – domenowe zbiory
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
View
>
>
>
>
prezentacja wyników operacji, stanu modelu
użytkownikowi w postaci UI
odpowiedzialny za interakcję z użytkownikiem,
brak logiki biznesowej, widoki powinny zawierać
tylko logikę prezentacyjną
technologie powiązane : HTML5, JavaScript
(JQuery, Angular JS, Knockout JS), CSS,
TypeScript, rozwiązania zewnętrzne jak
Devexpress MVC
> na jeden widok, może składać się wiele
niezależnych widoków częściowych – pratial views
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Controller
>
>
>
interpretacja akcji użytkownika
przetworzenie i operacje biznesowe
na obiekcie modelu
przekazanie wyników operacji do widoku
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Wzorzec Repository
@quick_net
>
>
>
>
>
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
warstwa abstrakcji pomiędzy logiką biznesową aplikacji,
a warstwą dostępu do danych
głównie realizuje implementacje operacji CRUD
na warstwie dostępu do danych
dzięki implementacji interfejsu Repository możemy w „łatwy”
sposób podmienić warstwę dostępu do danych
zmniejsza liczbę duplikowanego kodu przez co ogranicza
wystąpienie błędów oraz zapewnia łatwość
utrzymania kodu
istnieje kilka rodzajów implementacji
Wzorzec Repository
@quick_net
1
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
DO OR DO NOT – THERE IS NO TRY
Wzorzec Unity Of Work
@quick_net
>
>
>
>
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
zarządzanie stanem obiektów, które modyfikujemy, dodajemy,
usuwamy z bazy danych
zapewnienie transakcyjności operacji
współdzielenie kontekstu dostępu do bazy danych pomiędzy
repozytoriami i minimalizowanie operacji zapisu
najprostsza implementacja Unity Of Work sprowadza się do
implementacji metody Save()
Wzorzec Unity of Work
@quick_net
1
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
DO OR DO NOT – THERE IS NO TRY
Wzorzec Unity of Work
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Presentation
Buissnes
Buissnes Services
Data Access
ASP.NET MVC
DB
UNITY OF WORK
REPOSITORY REPOSITORY
DbContext
C V
M
Common Core
Feel the force! Devexpress MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Feel the force! Devexpress MVC
@quick_net
1
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
DO OR DO NOT – THERE IS NO TRY
Feel the force! Devexpress MVC
@quick_net
>
>
>
>
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
niski próg wejściowy jeżeli chodzi o naukę implementacji
szybsza implementacja funkcjonalności w projekcie
UI out of the box
aplikacja, która jest cross-browser
> wsparcie dla JavaScripy i AJAX - Callbacks, TypeScript
> wsparcie dla urządzeń mobilnych
Pros & Cons
@quick_net
+
-
+
-
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
klarowne rozdzielenie zależności i odpowiedzialności w projekcie
ograniczenie, spłaszczenie możliwości systemów ORM
minimalizacja duplikowanego kodu oraz podniesienie
możliwości reużywalności kodu
nadmierne rozbudowanie Repository = zmniejszenie uniwersalności
+ oddzielenie kodu warstwy prezentacji (HTML/JS) od code behind
(Controller / Repository)
- prawie zawsze systemy ORM mają zaimplementowane obydwa wzorce
+ dzięki implementacji interfejsu Repository możemy w „łatwy” sposób
podmienić warstwę dostępu do danych
- zagrożenie pobierania nadmiernej ilości danych do warstwy prezentacji
Podsumowanie
@quick_net
+
+
+
+
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Separate of Concerns
Repository
Unity of Work
Devexpress MVC
+ Model View Controller
- DI / Services / Unit Testing / Validation Strategy
Podsumowanie
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
QUESTION
&
ANSWERS
Piotr StolaGrupa .NET Politechnika Koszalińska 14-12-2016