CineStar Černý Most Praha 31. 10. 2012

Podobné dokumenty
Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

Desktop GUI. IW5 - Programování v.net a C# Desktop GUI

MVVM pro desktop i web

Architektura. Vedení sesterské dokumentace

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Studentská tvůrčí a odborná činnost STOČ Petr Čápek

Analýza a Návrh. Analýza

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

modelu MVC pro tvorbu aplikací

Bc. Martin Majer, AiP Beroun s.r.o.

Vývoj aplikací pro Windows Phone 8. Mgr. David Gešvindr MCT MSP MCPD MCITP

PV239/WP. Vývoj univerzálních Windows Store aplikací. Mgr. David Gešvindr MCSD: Windows Store MCSE: Data Platform MCT MSP

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

XD39NUR Semestrální práce Zimní semestr 2013/2014

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Elektronická podpora výuky předmětu Komprese dat

MVC (Model-View-Controller)

Formy komunikace s knihovnami

Vývoj mobilních aplikací pomocí frameworku Xamarin

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Vývoj univerzálních aplikací pro Windows 10. Mgr. David Gešvindr MCSD: Windows Store MCSE: Data Platform MCT MSP

VERZE 1.1.1, 1.1.2, 1.2 VIVO.LUNDEGAARD.EU

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Jak testovat software v praxi

Novinky. Autodesk Vault helpdesk.graitec.cz,

Semináˇr Java X J2EE Semináˇr Java X p.1/23

ČÁST 1. Základy 32bitového programování ve Windows

Vývoj mobilních aplikací pomocí frameworku Xamarin

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Rozklad na prvočinitele. 3. prosince 2010

Obsah. Zpracoval:

IS pro podporu BOZP na FIT ČVUT

Seznámení s prostředím dot.net Framework

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Univerzita Karlova v Praze. Matematicko-fyzikální fakulta. Diplomová práce. Ondřej Kunc. Multiplatformní mobilní aplikace databázového systému Matylda

Sem vložte zadání Vaší práce.

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

Co je Symantec pcanywhere 12.0? Hlavní výhody Snadné a bezpečné vzdálené připojení Hodnota Důvěra

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

Projekt JetConf REST API pro vzdálenou správu

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

Specifikace softwarového díla & Časový plán implementace. pro. MEF Editor

Vladimír

Základní typy struktur výpočetních systémů

Implementace systémů HIPS: ve znamení 64bitových platforem. Martin Dráb

Implementace systémů HIPS: historie a současnost. Martin Dráb

Komu je tato kniha určena? Jak je kniha uspořádána? Konvence použité v té to knize. Část i základy Microsoft Windows XP Professional

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Extrémně silné zabezpečení mobilního přístupu do sítě.

TÉMATICKÝ OKRUH Softwarové inženýrství

Ing. Jiří Fůsek. Základní informace. Pracovní zkušenosti. Vzdělání. 09/ nyní Freelancer. 09/ /2010 Univerzita Tomáše Bati ve Zlíně

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Mobile application developent

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

Praha 6, Arabská 16. Dokumentace Ročníkového Projektu

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Bezpečná autentizace přístupu do firemní sítě

Nasazení mapového redakčního systému Geocortex v prostředí Moravskoslezského kraje

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Architektura aplikace

Max Homebanking PS uživatelský manuál rozhraní pro automatické stahování dat

TÉMATICKÝ OKRUH Softwarové inženýrství

Programátorské večery. Tomáš Herceg Microsoft Student Partner

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1.

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Co je nového v aplikaci PaperPort 12?

Obsah. Úvod 11. Vytvoření emulátoru 20 Vytvoření emulátoru platformy Android 4.4 Wearable 22 Spouštění aplikací na reálném zařízení 23

Procesy a vlákna (Processes and Threads)

Novinky ve Visual Studio Tomáš Kroupa

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

5. Metody návrhu uživatelského rozhraní

Dokumentace k produktu IceWarp Notifikační nástroj

BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV INFORMATIKY FACULTY OF BUSINESS AND MANAGEMENT INSTITUTE OF INFORMATICS

w w w. u l t i m u m t e c h n o l o g i e s. c z Infrastructure-as-a-Service na platformě OpenStack

MASARYKOVA UNIVERZITA. Fakulta informatiky DIPLOMOVÁ PRÁCE. Vývoj aplikací pro Windows Phone 8 a portace na Windows 8

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Radek Krej í. NETCONF a YANG NETCONF. 29. listopadu 2014 Praha, IT 14.2

Wonderware Information Server 4.0 Co je nového

Vývoj informačních systémů. Přehled témat a úkolů

KLIENT VIRTUÁLNÍ ČEKÁRNY PRO POSKYTOVATELE SLUŽEB VIRTUAL WAITING ROOM CLIENT FOR SERVICE PROVIDER

Tisková řešení. EIP přidaná hodnota, kterou přidáte Vy sami. Září Aleš Povolný, Xerox CZ

Propojení Spectu - POSlavu

Návod k instalaci S O L U T I O N S

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Transkript:

CineStar Černý Most Praha 31. 10. 2012

Stejná aplikace na více zařízeních Michael Juřek Microsoft s.r.o.

Potřebné ingredience 1. Portable libraries 2. Návrhový vzor MVVM 3. XAML 4. Abstrakce platformy

Použití kódu ve více aplikacích Stejný kód je často žádoucí využít na více platformách:.net framework desktop.net framework serverová aplikace Windows Phone Windows 8 (Windows Store) Silverlight XBOX VS do verze 2010 nenabízel dobrou podporu Možnost linkování souborů do projektu křehké, nepříliš praktické

VS 2012 portable library (PL) DLL knihovna pro více platforem Jeden projekt, jeden zdrojový kód, jeden kompilační výstup Každá platforma obsahuje různou sadu technologií PL mohou obsahovat pouze společný průnik technologií vybraných podporovaných platforem Mohou referencovat pouze jiné PL, které podporují stejné platformy

Možné reference Knihovna 3 (platforma A) Knihovna 4 (platforma A) Knihovna 1 (PL) (podpora A) Knihovna 2 (PL) (podpora A, B) Všechny ostatní reference nejsou povoleny Knihovna 5 (platforma B) Knihovna 6 (platforma B)

Ukázka: Úkolovník Reference Reference

DEMO Založení projektů

Potřebné ingredience 1. Portable libraries 2. Návrhový vzor MVVM 3. XAML 4. Abstrakce platformy

Co je MVVM? Model-View-ViewModel Návrhový vzor z rodiny MV* (MVC, MVP,...) Čistě odděluje jednotlivé vrstvy aplikace (dobře udržovatelný): Vzhled UI (View) vizualizace stavu UI Stav a chování UI (ViewModel) Nižší vrstvy (Model) např. přístup k datům, volání back-endu, herní algoritmus,... Nabízí velmi dobrou testovatelnost: ViewModel je plně testovatelný bez uživatelského rozhraní View neobsahuje prakticky žádný kód k testování

Schéma MVVM View Jak zobrazit? Interakce s uživatelem ViewModel Co zobrazit? Řízení interakce Model Datové objekty Obchodní logika atd. Data binding Reference Specifická platforma Portable library

ViewModel Nejdůležitější součást návrhového vzoru Připravuje a zpřístupňuje své vlastnosti pro data binding Je to jeho primární úloha Nemá žádnou znalost View Je velmi dobře testovatelný Nezávisí na žádném vizuálním prvku Je samostatně instancovatelný Může být (a bývá) umístěno v oddělené knihovně od View

ViewModel prakticky Obaluje jeden nebo více objektů z nižších vrstev Implementuje INotifyPropertyChanged pro zpřístupněné vlastnosti Zpřístupněné objekty samy implementují INotifyPropertyChanged Zpřístupněné kolekce implementují INotifyCollectionChanged pro změny obsahu Nejjednodušší je použít ObservableCollection<T> Operace na datech se provádí prostřednictvím příkazů zpřístupňujících ICommand Definují vlastní akci a kdy je možné ji provést Může též zpřístupňovat události, které pak slouží k navigaci v UI

Ukázka: Úkolovník Reference Reference

DEMO Model a ViewModel

Potřebné ingredience 1. Portable libraries 2. Návrhový vzor MVVM 3. XAML 4. Abstrakce platformy

XAML je všude Moderní deklarativní popis uživatelského rozhraní Propracovaný a jednoduchý data binding XAML je na všech typech zařízení a aplikací WPF na desktopu Windows 8 dotykové aplikace Windows Phone (Silverlight v prohlížeči)??? XBOX???

Stejný XAML všude? Bohužel NE: Různé formáty zařízení, styly práce a navigace Různé sady standardních ovládacích prvků Různá sada schopností implementace Na druhou stranu ovšem: Používáte stejné postupy a znalosti Velké části kódu lze přenášet kopírováním

XAML = View Prakticky vše by měl řešit data binding na ViewModel ViewModel je přiřazený jako DataContext Věnujte pozornost atributům: Mode, Converter, UpdateSourceTrigger,... (ne všechny na všech platformách) V ideálním případě neobsahuje žádný code-behind Ale není to priorita, buďte pragmatičtí Naučte se používat třídy implementující IValueConverter Např. datum splatnosti -> barva

Ukázka: Úkolovník Reference Reference

DEMO XAML pro View

Potřebné ingredience 1. Portable libraries 2. Návrhový vzor MVVM 3. XAML 4. Abstrakce platformy

Abstrakce platformy Typická aplikace potřebuje využívat řadu systémových služeb: Kryptografie, síťová komunikace, uložení nastavení, notifikace, autentizace,... Implementace těchto funkcí je na různých platformách různá Různé mechanismy, třídy, signatury metod, knihovny Řešením je abstrakce platformy

Princip Ve sdíleném kódu se definují rozhraní/abstraktní třídy pro jednotlivé systémové služby Sdílený kód je závislý na těchto definicích Každá platforma definuje svoje konkrétní implementace těchto rozhraní/abstraktních tříd Při startu aplikace jsou konkrétní implementace předány sdílenému kódu, který je pak volá

Příklad realizace Sdílený kód: Definice rozhraní IStorage, INotification Statická třída Platform obsahující: vlastnost Storage typu IStorage vlastnost Notification typu INotification Kód používá služby platformy (např. Platform.Storage.Save(...)) Kód každé platformy: Implementuje konkrétní třídy Storage, Notification Při startu jejich instance přiřadí vlastnostem třídy Platform

Ukázka: Úkolovník Reference Reference

DEMO Abstrakce platformy

Závěrem Aplikaci lze napsat pro více platforem tak, aby většina kódu byla sdílená napříč platformami Potřebné ingredience: Portable libraries Návrhový vzor MVVM XAML Abstrakce platformy