Martin Dybal Microsoft MSP, MCP

Slides:



Advertisements
Podobné prezentace
Vyvíjejte webové aplikace nově a lépe
Advertisements

Ing. Jan Mittner Rozšíření modelu 2. Vazba 1:n 3. Vazba m:n 2.
Sociální síť Projekt pro předměty Y36SI2 a Y36SI3.
Základní škola Strž Dvůr Králové nad Labem, Česká republika Our school in a box Our school Naše škola To je velká krabice. This is a big box.
DOTKNĚTE SE JE TO SENCHA (TOUCH). Web JavaScript Ext JS Miroslav Juhos.
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
Zend Framework 2. Svět se změnil! Zapomeňte! Všechno je jinak!
Vektorový animátor Diplomová práce
Michal Neuwirth Partner Technical Readiness Microsoft s.r.o.
Chain of responsibility Martin Malý prezentace na předmět Návrhové vzory (PRG024) na MFF UK
Tvorba webových aplikací
Michael Juřek Software Architect Microsoft s.r.o.

Oracle BI APPS Oracle BI Applications are complete, pre-built BI solutions that help people at all levels of an organization better understand how their.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Návrh a tvorba WWW Přednáška 13 Vývoj webových aplikací.
AJAX nejmodernější webová technologie… seminář pro učitele ZŠ a SŠ Mgr. Marek Osuchowski Ostravská univerzita © 2011.
Úvod do JavaScriptu JavaScript je p JavaScript je programovací jazyk, který se používá na webových stránkách. JavaScript je typu KLIENT - KLIENT To znamená,
Jiří Burian DPE PM Nový typ aplikací a požadvků Visual Studio 2008 Silverlight Expression Web 2.0 Připravujeme lokalizaci komunitních.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Businessland / Giving a Presentation 06B15 AutorLadislava Pechová Období.
Microsoft Office Project 2007 Představení aplikace.
Číslo projektuCZ.1.07/1.5.00/ Číslo materiáluVY_32_INOVACE_178 Název školyGymnázium, Tachov, Pionýrská 1370 Autor Mgr. Eleonora Klasová Předmět.
Efektivní vývoj webů v ASP.NET 4.0 Tomáš Herceg Microsoft MVP Microsoft Student Partner
Tutorial:Business Academy Topic: Conditional Formatting Prepared by : Mgr. Zdeněk Hrdina Projekt Anglicky v odborných předmětech, CZ.1.07/1.3.09/
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM Business Communications/Suggesting Settlements 06C19 AutorLadislava Pechová.
Import záznamů diplomových prací nové řešení Antonín Vaishar, SUAleph, 26. –
SERVICESSERVER CLIENT Operating System Relational Database Application ServicesSystems Management Developer Tools Programming Model Applications.
Internet Explorer 8 Štěpán Bechynský Developer Evangelist Microsoft s.r.o.
Kreslítko Petr Diviš Zdeněk Papež. Úvod Desktopová („stand-alone“) aplikace Jednoduchý grafický editor  Tvorba a editace základních geometrických objektů.
1 Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 – Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím.
Windows 7 & Internet Explorer 8 vývoj aplikací a kompatibilita Štěpán Bechynský, Ondřej Štrba Developer Evangelists
Akademie ZENU Ukázková aplikace. Tak o tomhle to nebude…
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
Autorem materiálu a všech jeho částí, není- li uvedeno jinak, je Ing. Petra Andrlová Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání.
Tvorba aplikace pro evidenci rybářských úlovků, využívající službu WWW Vedoucí diplomové práce : Ing. Kateřina Růžičková, Ph.D. Název diplomové práce:
Tato prezentace je hrazena z projektu: Spolupráce s partnery – základ kvalitní odborné výuky Registrační číslo: CZ.1.07/1.1.01/
Testování s TestComplete
Potřebujete vybudovat business aplikaci? Pokryje dílčí obchodní potřeby určité skupiny zaměstnanců, jednoho nebo více týmů Bude vytvořena / připravena.
EU PENÍZE ŠKOLÁM Operační program Vzdělávání pro konkurenceschopnost ZÁKLADNÍ ŠKOLA OLOMOUC příspěvková organizace MOZARTOVA 48, OLOMOUC tel.: 585.
Název školyIntegrovaná střední škola technická, Vysoké Mýto, Mládežnická 380 Číslo a název projektuCZ.1.07/1.5.00/ Inovace vzdělávacích metod EU.
Vývoj aplikací pro Facebook Štěpán Bechynský. Typy Facebook aplikací Běží v prostředí Facebook – IFrame Lze spouštět a testovat z localhost – FBML Zpracovává.
Systém pro sledování vývoje cen produktů AVT LS 2015 Petr Kalas.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Databáze MS ACCESS 2010.
y.cz Název školyStřední odborná škola a Gymnázium Staré Město Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Roman Chovanec Název šablonyIII/2.
Podpora rozvoje cizích jazyků pro Evropu 21. stol. INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Tento projekt je spolufinancován Evropským sociálním fondem a státním.
EU peníze středním školám Název vzdělávacího materiálu: Verbs about clothes I Číslo vzdělávacího materiálu: AJ2-4 Šablona: II/2 Inovace a zkvalitnění výuky.
Nástroje self service Business Intelligence Jiří Neoral
Gymnázium, Brno, Elgartova 3 GE - Vyšší kvalita výuky CZ.1.07/1.5.00/ III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Téma: English Grammar.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY MVC vs MVP.
Randstad Java Academy vše o kurzu Gabriela Hrbáčková Director Randstad Professionals.
TDD - Test Driven Development
SOLID principy v OOP návrhu
Team Foundation Server 2015
Page  1.
Pattern Oriented Software Architecture
C# WPF.
First Conditional – tvar a použití
VY_22_ INOVACE_27_ ANGLICKÝ JAZYK 5
MY HOUSE - MY CASTLE Autor: Mgr. Ivana Tesařová
Název školy: Střední zdravotnická škola a vyšší odborná škola zdravotnická Karlovy Vary Číslo projektu: CZ.1.07/1.5.00/ Vzdělávací materiál: Podmínková.
Unit testování v JavaScriptu
Společnost (Society) B2
Martin Dybal Microsoft MSP, MCP
Webové aplikace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN
Trendy v unit testování a mockování
Pattern Oriented Software Architecture MVC & PAC
Monitor Object 1.
Observer Struktura -každodenní použití -základní struktura -vlastnosti
Desktopové aplikace na .NET Core
Transkript prezentace:

Martin Dybal Microsoft MSP, MCP MVVM Martin Dybal Microsoft MSP, MCP www.dotnetcollege.cz

MVVM IoC/DI DataBinding Messanger ViewModel Locator Testing Command

Výsledná aplikace

Project dependency diagram

DAL + BL http://wug.cz/zaznamy/301-Zajimave-navrhove-vzory-v-praxi

Prezentační návrhové vzory Prezentační návrhové vzory se zabývají rozdělením nejvyšší (UI) vrstvy . Hlavní účely Oddělit logiku zobrazování dat od logiky zpracování Testovatelný kód Znovu použitelnost kódu

Kde se s MVVM můžete potkat XAML – WPF, WP, UWP, Xamarin, Silverlight Web client, angular.js, knockout,js, … Web - dotvvm

Kde se s MVVM můžete potkat XAML – WPF, WP, UWP, Xamarin, Silverlight

MVVM - Web Web client, angular.js, knockout,js, … Web - dotvvm Klient (js) Klient (html) Web - dotvvm Klient (dothtml) Server (C#)

Výhody MVVM - SRP Single responsibility principle

Výhody MVVM View ViewModel viewmodel Usnadňuje spolupráci vyvojáře a designéra XAML based Web View MyWindow.xaml MyWindow.xaml.cs ViewModel MyViewModel.cs Html Css Javascript viewmodel

Výhody MVVM - testovatelnost “O testech se nevyjednává” POKORNÝ, Jiří. Test driven development for legacy code. In: WUG: Testovatelný kód a Test first v C# “Code without tests is bad code” “It doesn't matter how well written it is; it doesn't matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably. Without them, we really don't know if our code is getting better or worse.” FEATHERS, Michael C. Working effectively with legacy code. Robert C. Martin series. Upper Saddle River: Prentice-Hall, 2005. ISBN 978-0-13-117705-5.

Výhody MVVM Udržovatelnost

Výhody MVVM Snažší rozšiřitelnost kódu

Nevýhody MVVM Je potřeba vícero kódu Ale je lépe uspořádán

Model View ViewModel View Model ViewModel BusinessLayer View ViewModel Zobrazuje data uživateli a dává mu možnost ovládání programu a zadávání nových dat. ViewModel drží si kontext aktuální (části) obrazovky. Model Reprezentuje data. View Model ViewModel BusinessLayer

MVC MVVM View View ViewModel Model Controller Model Change notifications Model Controller Model Controller Pro každý request může být použit nový controller Stará se o vytvoření view nebo ovládá již existující Controller předá View model ViewModel Žije po celou dobu View Nemá referenci na View Drží kontext obrazovky View přijmá notifikace ViewModelu

MVC MVVM View View ViewModel Model Controller Model Change notifications Model Controller Model Life cycle Uživatel interaguje s UI Je vytvořen nový controller Je zavolána příslušná metoda na controller Controller získá veškerá potřebná data pro nové view Controller vytvoří nové View, předá mu data (model) a sám zaniká Uživatel vidí nové view Life cycle View dostává referenci na ViewModel a využívá jeho vlastnosti Například pro vykreslení. Uživatel interaguje s UI ViewModel obsluhuje žádost uživatele Například pomocí Icommand Změní se vlasnosti viewmodel View se překresluje

Model View ViewModel View TextBox Button ViewModel Firstname Lastname SaveCommand Binding Binding Binding Databinding - provázání dat s vlastnostmi UI kontrolek DataContext

Rozložení projektu bez MVVM

Rozložení MVVM projektu Change notifications

DataBinding Účel Provázat data s vlastnostmi UI kontrolek Po změně dat v DataConext se automaticky, pomocí INotifyPropertyChanged, překreslí UI

IoC/DI Účel

ViewModelLocator Účel

Convertors Účel

Command Účel Výhody Parallelní zpracování Undo Unifikace logování Vyčlenit metodu do vlastní třídy Výhody Parallelní zpracování Undo Unifikace logování Command je objekt obalujicí operaci a pamatuje si všechna data, která potřebuje

ICommand

ICommand

Komunikace mezi ViewModely ViewModelA ViewModelB ViewModelD ViewModelC

Komunikace mezi ViewModely ViewModelA ViewModelB ViewModelD ViewModelC

Event aggregator / Messenger ViewModelA ViewModelB Message Message Messenger Event na steroidech ViewModelD ViewModelC

Messenger demo