wzorce repository, unity of work, devexpress mvc w architekturze asp.net mvc
TRANSCRIPT
![Page 1: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/1.jpg)
Wzorce
Repository, Unity Of Work
w architekturze ASP.NET MVC
Piotr StolaGrupa .NET Politechnika Koszalińska 14-12-2016
![Page 2: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/2.jpg)
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 ;)
![Page 3: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/3.jpg)
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
![Page 4: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/4.jpg)
Wprowadzenie
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
![Page 5: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/5.jpg)
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
![Page 6: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/6.jpg)
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
Controller View
Model
![Page 7: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/7.jpg)
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
![Page 8: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/8.jpg)
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
![Page 9: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/9.jpg)
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
![Page 10: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/10.jpg)
Architektura ASP.NET MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
![Page 11: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/11.jpg)
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
![Page 12: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/12.jpg)
Wzorzec Repository
@quick_net
1
Wzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
DO OR DO NOT – THERE IS NO TRY
![Page 13: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/13.jpg)
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()
![Page 14: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/14.jpg)
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
![Page 15: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/15.jpg)
Wzorzec Unity of Work
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
![Page 16: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/16.jpg)
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
![Page 17: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/17.jpg)
Feel the force! Devexpress MVC
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
![Page 18: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/18.jpg)
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
![Page 19: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/19.jpg)
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
![Page 20: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/20.jpg)
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
![Page 21: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/21.jpg)
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
![Page 22: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/22.jpg)
Podsumowanie
@quick_netWzorce Repository, Unity Of Work
w architekturze ASP.NET MVC
![Page 23: Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC](https://reader031.vdocuments.net/reader031/viewer/2022021418/5a6d023f7f8b9ade418b4999/html5/thumbnails/23.jpg)
QUESTION
&
ANSWERS
Piotr StolaGrupa .NET Politechnika Koszalińska 14-12-2016