Sdílet prostřednictvím


Kurz: Modernizace aplikace WPF

Existuje mnoho způsobů, jak modernizovat stávající desktopové aplikace integrací nejnovějších funkcí Windows do stávajícího zdrojového kódu, a nemusíte přepisovat aplikace úplně od začátku. V tomto kurzu prozkoumáme několik způsobů, jak modernizovat stávající obchodní aplikaci WPF pomocí těchto funkcí:

  • .NET Core 3
  • Ovládací prvky XAML pro UWP s XAML Islands
  • Adaptivní karty a oznámení systému Windows
  • Nasazení MSIX

Tento kurz vyžaduje následující vývojové dovednosti:

  • Zkušenosti s vývojem desktopových aplikací pro Windows pomocí WPF
  • Základní znalost jazyka C# a XAML
  • Základní znalosti UWP

Přehled

Tento kurz obsahuje kód pro jednoduchou obchodní aplikaci WPF s názvem Contoso Expenses. Ve fiktivním scénáři tutoriálu je Contoso Expenses interní aplikací, kterou používají manažeři společnosti Contoso Corporation k uchovávání přehledu o výdajích, které byly odeslány jejich týmy. Správci jsou teď vybaveni dotykovými zařízeními a chtějí používat aplikaci Contoso Expenses bez myši nebo klávesnice. Bohužel, aktuální verze aplikace není přívětivá pro dotykové ovládání.

Společnost Contoso chce modernizovat tuto aplikaci novými funkcemi Windows, aby zaměstnanci mohli efektivněji vytvářet sestavy výdajů. Mnohé z těchto funkcí je možné snadno implementovat vytvořením nové aplikace pro UPW. Stávající aplikace je ale složitá a je výsledkem mnoha let vývoje různých týmů. Proto není možnost přepisovat ji úplně od začátku pomocí nové technologie. Tým hledá nejlepší přístup k přidání nových funkcí do existujícího základu kódu.

Na začátku kurzu společnost Contoso Expenses cílí na rozhraní .NET Framework 4.7.2 a používá následující knihovny třetích stran:

  • MVVM Light, základní implementace modelu MVVM.
  • Unity, kontejner pro vkládání závislostí.
  • LiteDb, vložené řešení NoSQL pro ukládání dat.
  • Bogus, nástroj pro generování falešných dat.

V tomto kurzu vylepšíte výdaje společnosti Contoso novými funkcemi Windows:

  • Migrace existující aplikace WPF do .NET Core 3.0 V budoucnosti se otevřou nové a důležité scénáře.
  • Pomocí ostrůvků XAML hostujte zabalené ovládací prvky InkCanvas a MapControl, které poskytuje sada Windows Community Toolkit.
  • K hostování standardního ovládacího prvku XAML pro UPW (v tomto případě CalendarView) použijte ostrovy XAML.
  • Integrujte adaptivní karty a oznámení Windows do aplikace.
  • Zabalte aplikaci pomocí MSIX a nastavte kanál CI/CD v Azure DevOps, abyste mohli automaticky dodávat nové verze aplikace testerům a uživatelům, jakmile bude dostupná.

Požadavky

Abyste mohli tento kurz provést, musí mít váš vývojový počítač nainstalované tyto požadavky:

Ujistěte se, že v sadě Visual Studio 2019 nainstalujete následující úlohy a volitelné funkce:

  • Vývoj desktopových aplikací .NET
  • Vývoj pro univerzální platformu Windows
  • Windows SDK (10.0.18362.0 nebo novější)

Získání ukázkové aplikace Contoso Expenses

Než začnete s kurzem, stáhněte si zdrojový kód pro aplikaci Contoso Expenses a ujistěte se, že můžete vytvořit kód v sadě Visual Studio.

  1. Stáhněte zdrojový kód aplikace z karty Releases repozitáře workshopu AppConsult WinAppsModernization. Přímý odkaz je https://github.com/microsoft/AppConsult-WinAppsModernizationWorkshop/releases.
  2. Otevřete soubor ZIP a extrahujte veškerý obsah do kořenového adresáře na jednotce C:\. Vytvoří složku s názvem C:\WinAppsModernizationWorkshop.
  3. Otevřete Visual Studio 2019 a poklikejte na soubor C:\WinAppsModernizationWorkshop\Lab\Exercise1\01-Start\ContosoExpenses\ContosoExpenses.sln a otevřete řešení.
  4. Stisknutím tlačítka Start nebo CTRL+ F5 ověřte, že můžete sestavit, spustit a ladit projekt Contoso Expenses WPF.

Začínáme

Jakmile budete mít zdrojový kód ukázkové aplikace Contoso Expenses a můžete si ověřit, že ho můžete sestavit v sadě Visual Studio, můžete začít kurz:

Důležité koncepty

Následující části obsahují základní informace o některých klíčových konceptech probíraných v tomto kurzu. Pokud už tyto koncepty znáte, můžete tuto část přeskočit.

Univerzální platforma Windows (UPW)

Ve Windows 8 společnost Microsoft zavedla novou sadu rozhraní API jako součást prostředí Windows Runtime (WinRT). Na rozdíl od rozhraní .NET Framework je WinRT nativní vrstvou rozhraní API, která jsou vystavená přímo aplikacím. WinRT také zavedl jazykové projekce, které jsou vrstvy přidané nad modul runtime, aby s nimi vývojáři mohli pracovat pomocí jazyků, jako jsou C# a JavaScript, kromě jazyka C++. Projekce umožňují vývojářům vytvářet aplikace nad WinRT, které využívají stejné znalosti jazyka C# a XAML, které získali při vytváření aplikací pomocí rozhraní .NET Framework.

Ve Windows 10 společnost Microsoft uvedla Univerzální platformu Windows (UWP), vystavěnou na WinRT. Nejdůležitější funkcí UPW je, že nabízí společnou sadu rozhraní API pro každou platformu zařízení: bez ohledu na to, jestli je aplikace spuštěná na stolním počítači, na Xboxu One nebo na HoloLensu, můžete používat stejná rozhraní API.

V budoucnu se většina nových funkcí Windows zveřejňují prostřednictvím rozhraní API WinRT, včetně funkcí, jako je časová osa, Project Rome a Windows Hello.

Balení MSIX

MSIX je moderní model balení pro aplikace pro Windows. MSIX podporuje aplikace pro UPW i vytváření desktopových aplikací pomocí technologií, jako jsou Win32, WPF, Windows Forms, Java, Elektron a další. Když zabalíte desktopovou aplikaci do balíčku MSIX, můžete ji publikovat do Microsoft Storu. Vaše desktopová aplikace také získá identitu balíčku, když je nainstalovaná, což vaší desktopové aplikaci umožní používat širší sadu rozhraní API WinRT.

Další informace najdete v těchto článcích:

Ostrovy XAML

Počínaje Windows 10, verze 1903, můžete hostovat ovládací prvky UWP v desktopových aplikacích, které nejsou UWP, pomocí funkce nazývané XAML Islands. Tato funkce umožňuje vylepšit vzhled, chování a funkce stávajících desktopových aplikací pomocí nejnovějších funkcí uživatelského rozhraní Windows, které jsou dostupné jenom prostřednictvím ovládacích prvků UPW. To znamená, že můžete používat funkce UPW, jako jsou Windows Ink a ovládací prvky, které podporují fluent Design System ve stávajících aplikacích WPF, Windows Forms a C++ Win32.

Další informace najdete v tématu Ovládací prvky UPW v desktopových aplikacích (ostrovy XAML). Tento kurz vás provede procesem použití dvou různých typů ovládacích prvků XAML Island:

  • InkCanvas a MapControl v sadě Windows Community Toolkit. Tyto ovládací prvky WPF zabalí rozhraní a funkce odpovídajících ovládacích prvků UPW a lze je použít jako jakýkoli jiný ovládací prvek WPF v návrháři sady Visual Studio.

  • Ovládací prvek Calendar view UWP . Toto je standardní ovládací prvek UPW, který budete hostovat pomocí WindowsXamlHost ovládací prvek v sadě Windows Community Toolkit.

.NET Core 3

.NET Core je opensourcová architektura, která implementuje multiplatformní, odlehčenou a snadno rozšiřitelnou verzi plného rozhraní .NET Framework. V porovnání s úplným rozhraním .NET Framework je doba spouštění .NET Core mnohem rychlejší a řada rozhraní API byla optimalizována.

V prvních několika verzích bylo zaměření .NET Core na podporu webových nebo back-endových aplikací. S .NET Core můžete snadno vytvářet škálovatelné webové aplikace nebo rozhraní API, které je možné hostovat ve Windows, Linuxu nebo v architekturách mikroslužeb, jako jsou kontejnery Dockeru.

.NET Core 3 je nejnovější vydaná verze .NET Core. Zvýrazněním této verze je podpora desktopových aplikací pro Windows, včetně aplikací Windows Forms a WPF. V .NET Core 3 můžete spouštět nové a existující desktopové aplikace pro Windows a využívat všechny výhody, které nabízí .NET Core. Ovládací prvky UPW hostované na ostrůvcích XAML se dají použít také v aplikacích Windows Forms a WPF, které cílí na .NET Core 3.

Poznámka:

WPF a Windows Forms se nedají používat pro různé platformy a nemůžete spustit WPF ani Windows Forms v Linuxu a MacOS. Součásti uživatelského rozhraní WPF a Windows Forms jsou stále závislé na vykreslovacím systému Windows.

Další informace najdete v tématu Co je nového v .NET Core 3.0.