Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of business)

Embed Size (px)

Citation preview

  • 1. WinRT w Windows 8 i tzw.aplikacje LOB (300) Tomasz Kopacz Architect Evangelist | Microsoft

2. Cel sesji Jak pisa aplikacje biznesowe dla Windows 8 Przegld scenariuszy przydatnych przy ich implementacji 3. Cechy aplikacji biznesowych (LOB) Przechowuj wraliwe dane (te prywatno) Komunikuj si z zapleczem (BEZPIECZNIE!) Zwykle danych jest bardzo duo Czasami s wielomoduowe Zwykle maj histori z brod: C++, MFC, Zwykle zawieraj jakie wane algorytmy publiczny sklep?NIGDY Wygld mniej istotny (TO SI ZMIENIA!!!) 4. Problem wiata dzisiejszego Ruch BYOD, praca z domu, praca nakomputerze ony/ma/dziecka Czyli co? Policy korporacyjne na komputerzedomowym? Domownik: WRRR Brak policy w ogle: Administrator: WRRR Szukamy zotego rodka 5. Przypomnienie subiektywnie wybranecechy appsw WinRT Izolacja (Sandbox) owszem, ale kontrakty do wspdzielenia Nowoczesny UI + touch + sensory + nowe urzdzenia + Zapewnienie Fast & Fluid async / await Broker kontrolujcy dostp do wraliwych API / danych Powiadamianie Sensory (Bogata grafika (DX 11.1) ) Aplikacja ma kontrol nad caym ekranem 6. Plan prezentacji Jak dziaa Windows 8 pod spodem? Jak budowa komponenty? Scenariusze Kryptografia i bezpieczestwo Logowanie W8 jak klient Web Services - ASMX / WCF / REST Praca z dua iloci danych Wielomoduowa aplikacja + Wymiana danych Powiadamianie Wasny sklep 7. Jzyki w ktrych mona pisa na W8 Zaoenie: programista uywa tej wiedzy, ktr ju posiada HTML + JavaScript, GOTOWE ukady stron XAML + C# / VB.NET te do migracji rozwiza z WindowsPhone C++ - gry, specjalistyczne algorytmy, GOTOWE fragmenty kodu Ale Windows 8 pozwala CZY te technologie UI w HTML Logika w C# Obliczenia w C++ (cho w JavaScript bd te szybkie ) 8. Jak to dziaa? 9. .NET WinRT Interop RCW = Runtime Callable Wrapper Zwiksza reference counting obiektu ABI Implementuje finalizator ktry zmniejsza referencecounting Marshal.ReleaseComObject = Dispose CCW = ABI Callable Wrapper Odwoanie do obiektu zarzdzanego jako do COM Kosztowne? NIE! Ale mona te pracowa z typami WinRT! void SetVal(int index, int value); - AU void SetValRange(int start,int length,int[]values); Albo przyj jako parametr IBuffer i gowypeni 10. Typy .NET a WinRT Tylko klasy sealed (oprcz kontrolek XAML) Std interfejsy popularne! List vs IList |IVector Sygnatury API musz wykorzystywa typy WinRT Cz typw ma sposoby na konwersj np. extension methods Typy generyczne NIE; Virtual NIE Struktury mog mie tylko publiczne pola Uwaga! Mwimy o przekazywaniu, nie implementacji Uwaga na tablice i kolekcje Nietypowe przekazywanie przez referencj / readonly 11. 01 Demo 3 2ciekawostkiAPI z AsyncZ tablicy do strumieni w JS(2 style pracy z plikami pomin w materiaach) 12. (Demo na slajdach) Klient C# - bez problemu (ale on moe te natywnie bez adnych porednikw Klient JS promises (.then, .done, funkcja progres); jedyne ograniczenie nie da si bezporednio CancellationToken przekaza. Ale da si async anulowa (.Cancel ) 13. (Demo na slajdach) 14. Pojemniki DI/IoCUnity, Autofact Problem: duo komponentw, zwizki przez dodajreferencj Dependency Injection, Inversion of Control Rozwizania: Unity (P& P) DI + przechwytywanie typw + instancjonowanie Autofac jeden z pierwszych pojemnikw DI / IoC (2007) MEF lekkie narzdzie do kompozycji, rozszerzenia, dynamiczneodkrywanie dziki atrybutom Generalnie uwagi: Jutro, 12:00-13:00 systemw obowizkowe Sesja warta dla wikszychBartomiej Zass: Tworzenie aplikacji dla Windows Phone i Windows 8 dwie pieczenie przy jednym ogniu (w skrcie MVVM/PCL/strategie); 15. DemoUnity w Windows 8(malutki Portable Library + autofac)(Malutkie MEF) 16. Co to obiekt ABI? Bazuje na koncepcjach COM Binarny standard komponentu Referencja do obiektu WinRT (czyli ABI) towskanik do wskanika do vtable ktra zawieratablic wskanikw do funkcji interfejsw.Pierwsze dwa to: IUnknown IInspectable 17. Czyli: Kady obiekt WinRT implementuje IUnknown AddRef / Release / QueryInterface (+ WeakReference do unikania zaptle cyklicznych) Kady obiekt WinRT implementuje IInspectable GetIids lista ID interfejsw GetRuntimeClassName nazwa (z przestrzeni nazw), naprzykad Windows.Foundation.Collections.IVector`1> GetTrustLevel (Base / Partial / Full) IActivationFactory (jak stworzy obiekt) 18. WinMD, CLI Czyli ILDASM, Reflector 19. Mamy fragment w C++ - co dalej C++/CX, Windows Runtime WRL, Windows Runtime C++Component Template Library Mapuj wzorce C++ (konstruktor...) Niezalene od kompilatora (znanena interfejsy COM template); pena kontrola nad Mapuje pomidzy wyjtkami a wydajnoci (zwaszcza Marshalingwartociami HRESULT jak si odbywa + cykl ycia). Odwzorowuje wyjciowe parametry i HRESULT, IDL itpzwracane wartoci Cel podstawowy: atwa migracja ATL Zapewnia automatyczn obsug / inne -> WRLzliczania referencji dla wskanikw "C:Program Files (x86)Windowsdo obiektw Windows Runtime Kits8.0IncludeWinRTwrl" Odczyt i zapis metadanych 20. A ja mam binarny komponent NIE DZIAA! Binarnie si nie da trzeba mie kod Dlaczego? Bo WinRT: Wymaga by komponenty byyACTIVABLE To znaczy (uproszczenie!) by mona byo wywoa domylnykonstruktor Ale obiekt ABI moe by uywany jako obiekt COM (domylnie jest tak deklarowany; mona to wyczy) Opcja: zewntrzne hostowanie + komunikacja typu RPC bdzie dalej 21. Demo rejestr jak todziaa w rodku Windows 8 22. (Demo do materiaw) 23. Migracja C++? Lektura tu Pakujemy w WRL; Czasami wygodniej skonwertowa doC++/WX Uwaga! Da si woa dowolne Win32 API Ale nie przejdzie to certyfikacji! 24. DEMOMigracja (na przykadzie C++) i WRL od zera 25. To te dziaa w drug stron Aplikacja desktop moe woa WinRT How to: Add or Remove References By Using theReference anager Po zmianie .csproj, normalnie wywoujemy metody Bdy sprawdzi czy jest dodaneWindowsRutnime, InteropServices Uruchomienie Modern UI Apps (patrz rejestr): IApplicationActivationManager::ActivateApplication start knownfolder:{1e87508d-89c2-42f0-8a7e- 26. DEMO(troch proste jak woa z trybu desktop WinRT) 27. (tak oglnie) 28. Uwierzytelnianie i bezpieczestwoZintegrowane Certyffikacja dla WieloczynnikoweFederacja - ADFS Single Sign On z Uwierzytelnianie uwierzytelnianie appsa - My iuwierzytelnianieLive, Facebook, itWindowsRootp..IzolowaneMechanizm Wsparcie Crypto APIsPodpisywanie Bezpieczestwo pojemnikizdolnoci SSL/TLS aplikacjiAppsw 29. Bezpieczestwo co moe W8 Kryptografia Klucze symetryczne / asymetryczne Dziedziczenie kluczy na podstawie hasa Kody HMAC (message authentication) Podpisywanie treci DPAPI (DataProtection) statyczne / strumienie danych Kodowanie PKI Tworzenie certyfikatw, te self-signed, importowanie PFX, SmartCard Certyfikaty z My Zablokowanie dziedziczenia zaufania z systemu Per aplikacja root certificates / trusted certificates Kryteria: Hardware-based, wynikajce z acucha, automatyczny wybr 30. DEMORne opcje zwizane z szyfrowaniem 31. Trzy rozwizania (technologie) Serwer: Tradycyjne usugi Web WCF Usugi w stylu REST Pisane w WCF | Pisane w ASP.NET MVC Web Api