Dajbych.net


Zemětřesení za UWP

, 5 minut čtení

build logo

Během konference Microsoft Build 2019 se mnoho lidí ptalo na budoucnost UWP, protože se jí věnovalo jen velmi málo přednášek. Může to vypadat, že se nic nového neděje, ale opak je pravdou. Microsoft mění architekturu celého stacku. Vizuální vrstva se odděluje od operačního systému a kompilátor s implementací .NET se slučuje s .NET Core. Věci se hýbou kupředu.

.NET 5

Největším oznámením konference bylo představení .NET 5. Je to stříbrná kulka Microsoftu pro vývoj softwaru a tedy i budoucnost UWP. Toto jsou slova Scotta Huntera, ředitele programového managementu pro .NET, z rozhovoru pro .NET Today and Tomorrow :

Oznámili jsme, že UPW je v plánu pro .NET Core 3. Myslím tím, že bychom měli možnost spouštět UWP aplikace na vrcholu .NET Core 3 stacku. V současné době se běhové prostředí UPW nazývá .NET Native – zkompilované běhové prostředí AOT, které máme pro aplikace pro Windows Store. Ve vlně .NET Core 3 byste neměli kompilátor AOT. Běželi byste na stejném frameworku, jaký máme my. To, co děláme, je, že vezmeme .NET Core 3, vytvoříme balíček, vložíme ho do obchodu a aplikace Store je na tomto balíčku závislá a spustíme. Jakmile získáte vlnu .NET 5, budeme mít kompilátor AOT, který by pro tyto aplikace napodoboval .NET Native. To znamená, že ve vlně 3 byste měli možnost aplikace UWP využívat všechny funkce v .NET Standard 2.1 a běžet na .NET Core 3.

Při současném vytváření aplikací pro UPW vyvíjíte místně proti Core CLR a pak je publikujete, publikujete .NET Native. Jedná se o dvě různá běhová prostředí, což znamená, že někdy je vaše místní vývojová zkušenost „funguje to skvěle“ a když publikujete do Storu, nefunguje to. Takže si myslím, že další výhodou UPW v .NET Core je, že budete mít stejný vývojový příběh jako váš produkční příběh. Což znamená, že to usnadní vývoj.

Vývojáři UPW už nebudou izolovaným ostrovem s vlastním profilem rozhraní .NET Framework. Lidské zdroje potřebné k tomu, aby UPW bylo aktuální s nejnovějším standardem .NET Standard, by bylo možné přesunout na UWP XAML. Za kompilaci AOT bude zodpovídat .NET 5. Anders Hejlsberg, autor knih Turbo Pascal, Delphi, C# a TypeScript, řekl v rozhovoru „Ohlédnutí“ za C# :

Asi největší vliv na mě mělo, když jsme přidali generiky, což bylo z .NET 1.0 do .NET 2.0. To byla velká změna a měla jsem spoustu nových operačních kódů v běhovém prostředí a nový formát metadat a tak dále. Ale pak jsme udělali (což si zpětně myslím, že byla pravděpodobně chyba) v tom smyslu, že .NET runtime je komponenta Windows a je dodáván s operačním systémem Windows a nemůže běžet vedle sebe s jinými verzemi .NET. A to v jistém smyslu spoutalo vývoj čehokoli v běhu. A bylo několik let, kdy jsme se opravdu snažili dělat všechno v kompilátoru místo v běhu. Ale teď s .NET Core jsme se konečně dostali tam, kde si myslím, že bychom měli být na prvním místě, což je, že běh se může nainstalovat do adresáře, běžet vedle sebe, můžete ho smazat a je pryč, je to, jako by na vašem počítači nikdy nebyl. V tomto okamžiku můžete mít v běhu různé schopnosti a začneme se dívat na věci, které jsme předtím nemohli dělat.

Všechny dobré věci .NET Core budou k dispozici také pro aplikace pro UPW. A existuje spousta věcí, jako je interoperabilita gRPC nebo Java.

WinUI

Lindsay Kubasik, Senior Program Manager pracující na platformě Windows UI, zmínil budoucnost UWP během rozhovoru o plánu platformy Windows UI :

Děláme hodně práce na oddělení prezentační platformy od jádra operačního systému, což vám dává příležitost mít přístup ke všem novým funkcím uživatelského rozhraní, které stavíme na nižších verzích systému Windows.

Joe Stegman, programový manažer skupiny pro UPW XAML, potvrdil tuto strategii s některými dalšími technickými podrobnostmi:

Na vrcholu DirectX máme vrstvu vizuální kompozice a XAML nad tím. DirectX zůstává na platformě, ale v podstatě oddělujeme vrstvu kompozice (vizuální vrstvu, chcete-li vrstvu animací a některé naše vstupní vrstvy a vše nad tím, včetně celého zásobníku XAML a frameworku XAML) a zpřístupňujeme to vše v předchozích verzích Windows 10. Takže efektivně potřebujete pouze základní aplikaci běžící na RS 2 a poté můžete zásobník použít na jakémkoli počítači s Windows 10 větším.

To v podstatě znamená, že UWP aplikace budou stejně snadno přenosné jako hry. Budou se spoléhat pouze na konkrétní verzi rozhraní DirectX a prostředí Windows Runtime. Jak již víme, DirectX a Windows Runtime jsou udržovány jako zpětně kompatibilní. Největším bolehlavem UWP aplikací je dnes režie zpětné kompatibility v uživatelském rozhraní, protože uživatelské ovládací prvky jsou zabudované v operačním systému. Vestavěné ovládací prvky v aplikaci je přístup, který hry zavedly již před desítkami let a jak se to podle mého názoru mělo dělat na prvním místě.

Knihovna uživatelského rozhraní systému Windows obsahuje ovládací prvky, které jsou odděleny od platformy. Jsou dodávány mimo Windows jako balíčky NuGet. Nadcházející verze bude obsahovat ovládací prvek Tabs (který se používá v novém Windows Terminalu), validaci vstupů, nebo Výukové tipy.

Dlouhodobý projekt

Pravdou je, že UWP aplikace ztratily hodně ze své relevance, když se Microsoft rozhodl přestat vyrábět telefony a nikdo jiný nedodává Windows 10 jako mobilní operační systém. Když se však zamyslíme nad tím, proč se to stalo, musíme přiznat, že softwarová infrastruktura nebyla připravena na mobily s dotykovými displeji. Silverlight nad Windows CE, pak Windows Runtime XAML Framework a nakonec UWP, nemluvě o přenosných knihovnách tříd a sdílených projektech, nasazování aplikací přes aplikaci Zune a později přímo z Visual Studia s kombinací všech závislostí na různých verzích operačního systému, existence Windows Phone Marketplace vedle Windows Store, a fakt, že první vlna zařízení byla zaseknutá na Windows Phone 7.8 a druhá na Windows Phone 8.1 – to vše dohromady způsobilo jednu obrovskou bolest a ještě větší selhání.

Díky rychlému pokroku se manažeři Microsoftu spokojili s agilním vývojem, místo aby se vývojáři spokojili se skálopevným základem pro své aplikace, a to i za cenu zpoždění. Microsoft se poučil a připravuje se na budoucnost. Operační systém Windows 10 a Microsoft Store jsou nyní lépe připraveny na nadcházející zařízení (ať už jsou jakákoli) než kdykoli předtím.