Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ovládam HTML, CSS a javascript. Som Windows 8 programátor?

Ovládam HTML, CSS a javascript. Som Windows 8 programátor?

Microsoft práve teraz rázne mení základ svojej existencie - Windows
platformu. Novinkou nie je len nové UI, ale aj nový aplikačný model a nové Windows API. Jednou z výrazných noviniek je tiež možnosť programovať Windows aplikácie v HTML5/javascripte. Na to, čo to konrétne znamená, ako to prakticky robiť, a aké možnosti z toho plynú sa pokúsime spolu pozrieť v tejto prezentácii.

Slavo Furman

October 28, 2011
Tweet

Other Decks in Programming

Transcript

  1. » Prečo Microsoft tak radikálne mení svoju platformu? »Ako si

    Microsoft predstavuje budúcnosť Windows? » Čo je vo Windows 8 nové? »Ako sa Windows 8 programuje? » Naozaj sa dá programovať natívne Windows aplikácie v HTML a javascripte? »Ovládam HTML, CSS a javascript. Som teda Windows 8 programátor? » A prečo by ma to malo zaujímať? Cieľ – jasné odpovede na otázky
  2. »Jeden operačný systém »Dve UI (Aero a Metro) »Dva typy

    aplikácií (Desktop mode a Metro style) Desktop a Metro
  3. „We will show off the opportunity to build applications for

    all of the customers of Windows 8, no matter what type of PC they have, ARM-based or Intel-based, from tablets to laptops to convertibles to desktops... “ -- Steve Sinofsky @ BUILD „One OS to Rule Them All“
  4. » Množstvo vylepšení » Intel (x86,x64) aj ARM architektúry »

    Menšie HW nároky » Štart do 2-8 sekúnd » Výrazné zlepšenie výkonu » Dá sa inštalovať všade, kde sa dá Windows 7 » Bežia všetky aplikácie, čo bežia na Windows 7 » Nový Task Manager » Nový Control Panel » Hyper-V » Refresh a Restart » UEFI secure boot protocol » Veľa nových vecí aj vo Windows 8 Server verzii Desktop mode
  5. » „Touch-based“ a „App-centric“ UI » Nový UI model (Metro)

    a nová Start obrazovka » Nové spôsoby prihlásenia: Windows Live a Picture password » Windows Live služby na synchronizáciu cez všetky Windows 8 zariadenia » Touch klávesnice » Plné ovládanie myšou aj klávesnicou » Nový aplikačný model a Windows Store » Charms (search, share, start, devices, settings) » Contracts (Seach, Sharing, AppToApp picking, ...) » Neaktívne aplikácie sú automaticky suspendované » ... veci sa stále ešte menia Metro style
  6. Windows 8 programming model Communication & Data Devices & Printing

    WinRT APIs Graphics & Media Desktop Apps C or C++ Win32 C# or VB or F# .NET 4.5 CLR or SL HTML JavaScript or XAML C#/VB (SL plugin) Internet Explorer Metro style Apps Application Model XAML JavaScript HTML / CSS C++ DirectX C#/VB .NET 4.5 Windows Kernel Services System Services View Model Controller Kernel CLR Chakra/Trident (win process)
  7. Dve hlavné investície MS pri vývoji Win8 » Nové Windows

    Runtime (WinRT) APIs » Nový aplikačný model (AppContainer) Tri hlavné ciele pri ich návrhu » Výkon » Bezpečnosť » Programovateľnosť („developer experience“) AppExecution Model a WinRT
  8. WinRT je maximálne optimalizované na výkon » Natívne (písané v

    C++), objektovo-orientované API na prístup k podkladovému OS a zariadeniu; súčasť OS » Každá operácia, ktorá trvá dlhšie než 50ms je realizovaná ako asynchrónna » Práve nepoužívané aplikácie sú suspendované » Prezentačná vrstva (XAML aj HTML) je plne HW akcelerovaná, rendering sa robí len cez DirectX » XAML vrstva bola kompletne prepísaná do natívneho kódu Výkon
  9. Nový aplikačný model » Aplikácia beží izolovaná v svojom aplikačnom

    kontajneri s kontrolovaným („brokered“) deklaratívnym prístupom k citlivým zdrojom » Aplikácia musí byť digitálne podpísaná » Deklaratívna inštalácia/odinštalácia Windows Store » Jediný distribučný kanál pre Metro style aplikácie » Aplikácie sú testované/preverované Microsoftom Bezpečnosť
  10. WinRT » Jasné a jednoznačné API, zamerané na písanie Metro

    style aplikácií, Contracts, jedna funkcionalita = jeden typ » Dôraz na rovnaký a prirodzený prístup k WinRT z rôznych programovacích jazykov, z rôznych programovacích prostredí (Language Projections) » Dôraz na znovupoužitie existujúceho kódu » Rozširovateľnosť – jednoduchá tvorba WinRT komponentov (C++/C#) » Dôraz na čo najlepšiu podporu v programovacích nástrojoch Programovateľnosť
  11. Windows Runtime Basic Types Strings HSTRING Avoids copying in multiple

    languages Basic Types INT32, UINT64 * Pointers allowed in limited cases Enumerations enum AsyncStatus Flag or non-flag styles Structures struct Rect; Can contain strings, but not interfaces Simple Arrays INT32 [] For very basic collections Interfaces IInspectable Methods are defined in interfaces Collections IVector<T>, IVectorView<T>, IMap<T> Iterators, Collections and events cross-language Runtime Class Windows.Storage.StorageFile Binds interfaces to make a class
  12. » Vysoko výkonné natívne interfejsy (evolúcia COM modelu) » Rozširovateľný

    katalóg registrovaných WinRT objektov v systéme (Windows Registry) » Windows Metadata – ECMA 335 (CLI Metadata) – kompletný popis WinRT ako súčasť systému » Language Projections – množstvo práce vloženej do nástrojov a infraštruktúry, aby bolo možné WinRT používať jednoduchým a prirodzeným spôsobom z rôznych programovacích jazykov a prostredí WinRT – pod kapotou
  13. »C++/Cx a DirectX »C++/Cx a XAML »C# alebo VB.NET a

    XAML »javascript a HTML/CSS Štyri základné možnosti ako vyvíjať Metro style aplikácie
  14. » Programujeme natívne Windows 8 aplikácie » Language Projection cez

    Chakra JS Engine » AppContainer-om je WebPlatform (IE10 rendering engine, Trident+Chakra) » WinJS – pure javascript knižnica na podporu programovania Metro style aplikácií („WinJS je pre Metro to, čo je jQuery pre client-side programovanie v browseri.“) » WinJS – javascript application model, helpers, patterns, implmenetation of Metro style UI controls » jQuery a ďalšie javascript knižnice fungujú (pozor na bezpečnosť a špecifické prípady) » Možnosť použiť WinRT komponenty písané v C++/C# Programujeme Metro style aplikácie v javascripte
  15. » Windows 8 – karta, na ktorú Microsoft stavil svoju

    budúcnosť v post-PC svete » Jeden OS s dvoma UI a dvoma aplikačnými modelmi » „no matter what type of PC you have“ » Desktop mode tu s nami bude ešte dlho » Moderné touch-based a App-centric UI » Windows Store Sumarizácia I.
  16. » Nový aplikačný model » WinRT – výkon, bezpečnosť, programovateľnosť

    » Metadata a Language projection do C++/Cx, C#, VB.NET a javascriptu » HTML/CSS/javascript ako reálna možnosť efektívne vyvíjať natívne Windows 8 metro style aplikácie veľmi podobným spôsobom ako štandardné web aplikácie » Možnosť použiť takmer všetky štandardné javascript knižnice » Možnosť používať WinRT komponenty písané v C++ a/alebo C# Sumarizácia II.
  17. » CES 2012 (10.-13.január) ... Win8 beta? Win Store CTP?

    » MIX12 (12.-14.apríl)... Win8 RC? Kinect 3D SDK? Apollo Preview? Win Store beta? » E3 2012 (5.-7.jún) ... XBOX360 SDK? Apollo SDK? » Summer 2012 (júl?, august?) ... Win8 RTM? Win Store RTM? Apollo RTM? » BUILD 2013 ... Win9, IE12, Apollo.vNext (preview) » Summer 2014 ... Win9, IE12, Apollo.vNext (RTM) Pohľad do kryštáľovej gule
  18. Konferencia BUILD 2011 (celý obsah) http://www.buildwindows.com/ MSDN Windows Dev Center

    http://msdn.microsoft.com/en-us/windows/home/ Windows 8 sample pack http://code.msdn.microsoft.com/windowsapps/Windows- Developer-Preview-6b53adbb Building Windows 8 blog http://blogs.msdn.com/b/b8/ MSDN Dev forum http://msdn.microsoft.com/en-us/windows/apps PluralSight školenia http://www.pluralsight-training.net/ @lubolacko a jeho web http://novywindows.wordpress.com/ …samozrejme vlastna skusenost (aj na Linuxe ci Macu) je nenahraditeľná … a Google/Bing is your friend. ;) Ďalšie zdroje: Slides, video, dokumentácia, blogy, fóra, mailing listy, školenia, ...