Wzorce architektoniczne

Podobne dokumenty
MVVM Light Toolkit. Julita Borkowska

Programowanie obiektowe

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Wprowadzenie do programowania aplikacji mobilnych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Projektowanie Graficznych Interfejsów Użytkownika. Robert Szmurło

W czystym JavaScripcie zasięgi zmiennych tworzone były poprzez funkcje anonimowe, w AngularJS posiadamy kontrolery, które także są funkcjami.

Architektura nowoczesnych aplikacji internetowych

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Szkolenie wycofane z oferty

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień Uniwersytet Warszawski

Webowy generator wykresów oparty na programie gnuplot

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Video And Map. Grzegorz Pieniążek. Video And Map jest to projekt wykorzystujący Google Maps i Youtube API

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Technologie internetowe ASP.NET Core. Paweł Rajba

GUI - projektowanie interfejsów

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Wzorce prezentacji internetowych

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Program szkolenia: Receptury testowania automatycznego - problemy, strategie, taktyki, techniki, narzędzia

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Tworzenie cross-platformowych aplikacji w Xamarin.Forms

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Techniki efektywnego testowania kodu dla programistów Java (Spock

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Program szkolenia: JavaScript Craftsmanship

Instrukcja laboratoryjna cz.6

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Warstwa prezentacji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Reporting Services. WinProg 2011/2012. Krzysztof Jeliński Dawid Gawroński 1 / 11

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści

Lokalizacja Oprogramowania

Programowanie obiektowe

Rozpoczynając wywód na temat MVVM należy najpierw zadań sobie kilka podstawowych pytań na temat MVVM jako wzorca projektowego :

Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:

KARTA PRZEDMIOTU. Warsztaty z Ruby on Rails. Ruby on Rails Workshop

MVC w praktyce tworzymy system artykułów. cz. 2

RAPORT KOŃCOWY PROJEKTU

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

Architektura MVC w ASP.NET. Autor wykładu: Marek Wojciechowski

WYKŁAD 1 TECHNOLOGIE FRONT-END CZĘŚĆ 1

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Aplikacje w środowisku VBA. Visual Basic for Aplications

Infrastruktura aplikacji WWW

Aplikacje WWW Wprowadzenie

Forum Client - Spring in Swing

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

Modele danych walidacja widoki zorientowane na model

Programowanie zorientowane obiektowo. Mateusz Kołecki

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Java Podstawy. Michał Bereta

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Leszek Stasiak Zastosowanie technologii LINQ w

Instalacja i obsługa aplikacji MAC Diagnoza EP w celu wykonania Arkusza obserwacji

Web frameworks do budowy aplikacji zgodnych z J2EE

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

Departament Zakupów Centralnych ul. Żaryna 2A, Warszawa tel. (22) DZC/AS/708/12. Warszawa, dn. 27 listopada 2012 r.

Analiza i projektowanie aplikacji Java

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Metody i narzędzia ewaluacji

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes.

Programowanie dla iphone projektowanie interfejsu użytkownika

Laboratorium 7 Blog: dodawanie i edycja wpisów

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Aplikacje WWW - laboratorium

TECHNOLOGIA JSP W TWORZENIU APLIKACJI ROZPROSZONYCH NA PRZYKŁADZIE SYSTEMU ZARZĄDZANIA NIERUCHOMOŚCIAMI W GMINIE

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

MVC w praktyce tworzymy system artykułów. cz. 1

Transkrypt:

Wzorce architektoniczne Architektura warstwowa, MVP, MVC, MVVM Wojciech Szymecki Wydział Fizyki, Astronomii i Informatyki Stosowanej Uniwersytet Mikołaja Kopernika 23 maja 2014

Architektura warstwowa W ramach tworzonych systemów najczęściej wyodrębniane są następujące warstwy: warstwa logiki biznesowej, warstwa prezentacji, warstwa dostępu do danych. Dodatkowymi warstwami mogą być, w zależności od systemu: warstwa autoryzacji użytkownika, warstwa danych (warstwa zarządzania danymi), warstwa kontrolek,... Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 2 / 13

Co to jest warstwa? To zależy... Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 3 / 13

Jakie są zalety warstw? Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 4 / 13

Jakie są zalety warstw? Serio, serio: zapobiegamy bałaganowi w kodzie, trzymając się konwencji kod staje się bardziej czytelny dla nas samych i współpracowników, ponieważ jest bardziej przewidywalny, rozbicie systemu na niezależne warstwy teoretycznie pozwala je wymieniać. Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 5 / 13

Czy model warstwowy ma wady? Nie powinno być zaskakujące, że: przerabianie gotowego systemu napisanego bez użycia warstw przez grupę 16-letnich programistów z półrocznym doświadczeniem w PeHaPe jest niehumanitarne, interfejsy, interfejsy, wszędzie interfejsy, pojawia się problem wstecznej zgodności interfejsów. Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 6 / 13

Wzorce architektoniczne i ich naturalne występowanie Model-View-Presenter Windows Forms Model-View-Controller ASP.Net MVC Model-View-ViewModel Windows Presentation Foundation Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 7 / 13

Model-View-Presenter Prezenter zawiera logikę stojącą za interfejsem użytkownika. Wszelkie działania na Widoku są oddelegowywane do Prezentera. Prezenter komunikuje się z Widokiem poprzez jego interfejs. To pozwala na mockowanie Widoku w testach jednostkowych. Przykład działania Użytkownik klika w przycisk Zapisz. Obsługa zdarzenia zostaje oddelegowana do metody Prezentera ZapiszButton Clicked. Gdy zapis zostaje zakończony Prezenter odwołuje się do Widoku poprzez interfejs aby pokazać użytkownikowi, że zapis się udał. Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 8 / 13

MVP Wariacja pierwsza Passive View Pasywny Widok Widok nie zawiera żadnej logiki. Prezenter siedzi w środku i rozmawia z Widokiem i Modelem. Widok i Model są od siebie kompletnie oddzielone. Model może odpalać zdarzenia (eventy) ale to Prezenter subskrybuje je żeby aktualizować Widok. Nie ma bezpośredniego bindowania danych, zamiast tego Widok udostępnia settery (właściwości w C#), z których korzysta Prezenter. Zalety: Wady: duże możliwości testowania UI czyste rozdzielenie Widoku i Modelu więcej pisania (dużo setterów) cały data binding trzeba napisać samemu Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 9 / 13

MVP Wariacja druga Supervising Controller Nadzorujący Kontroler Prezenter obsługuje akcje użytkownika takie jak wciśnięcie przycisku, nawigację, itp. Widok binduje dane bepośrednio z Modelu. Jednak to Prezenter jest odpowiedzialny za przekazanie do Widoku obiektu Modelu do zbindowania. Zalety: Wady: używając bindowania danych ograniczamy ilość kodu mniej punktów do testowania, przez to że część kodu załatwia nam bindowanie Widok jest mniej oddzielony od reszty bo komunikuje się z Modelem Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 10 / 13

Model-View-Controller Kontroler jest odpowiedzialny za ustalenie który Widok będzie wyświetlony w odpowiedzi na daną akcję (w tym start aplikacji). Pod tym względem różni się od MVP gdzie akcja przechodzi przez Widok do Prezentera. W MVC każda akcja na Widoku wiąże się z wywołaniem jakiejś akcji na Kontrolerze. W kontekście stron WWW każda akcja to zapytanie HTTP o dany URL. Kontroler odpowiada wygenerowanym Widokiem stroną HTML. W MVC nie mamy bezpośredniego bindowania do Modelu. Widok po prostu się renderuje, jest kompletnie bez stanu, jak również nie zawiera żadnej logiki w code behind. Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 11 / 13

Pytania na kolokwium Jakie trzy główne warstwy występują w architekturze warstwowej? Widok udostępnia interfejs we wzorcu MVP czy MVC? Na jakim wzorcu architektonicznym opierają się aplikacje Windows Forms? Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 12 / 13

Demo DEMO Wojciech Szymecki (WFAiIS UMK) Wzorce architektoniczne 23 maja 2014 13 / 13