Přehled aplikací Prohlížeče WPF XAML

Aplikace prohlížeče XAML (XBAPs) kombinuje funkce webových aplikací i aplikací s bohatým klientem. Podobně jako u webových aplikací lze XBAPs nasadit na webový server a spustit ho z Internet Exploreru nebo Firefoxu ve Windows. Stejně jako bohaté klientské aplikace můžou XBAPs využívat možnosti WPF. Vývoj XBAPs je také podobný bohatému vývoji klientů. Toto téma obsahuje jednoduchý základní úvod do vývoje XBAP a popisuje, kde se vývoj XBAP liší od standardního bohatého vývoje klientů.

Upozorňující

ProtokolY XBAPs vyžadují, aby fungovaly starší verze prohlížečů, jako je Internet Explorer a Firefox. Tyto starší verze prohlížeče jsou obvykle nepodporované ve Windows 10 a Windows 11. Moderní prohlížeče už kvůli rizikům zabezpečení nepodporují technologii potřebnou pro aplikace XBAP. Moduly plug-in, které umožňují XBAPs, se už nepodporují.

Toto téma obsahuje následující části:

Vytvoření nové aplikace prohlížeče XAML (XBAP)

Nejjednodušší způsob, jak vytvořit nový projekt XBAP, je se sadou Visual Studio. Při vytváření nového projektu vyberte ze seznamu šablon aplikaci prohlížeče WPF. Další informace naleznete v tématu Postupy: Vytvoření nového projektu aplikace prohlížeče WPF.

Když spustíte projekt XBAP, otevře se v okně prohlížeče místo samostatného okna. Při ladění XBAP ze sady Visual Studio aplikace běží s oprávněním k internetové zóně, a proto vyvolá výjimky zabezpečení, pokud jsou tato oprávnění překročena. Další informace najdete v tématu Zabezpečení a částečné zabezpečení důvěryhodnosti WPF.

Poznámka:

Pokud nepracujete pomocí sady Visual Studio nebo chcete získat další informace o souborech projektu, přečtěte si téma Vytváření aplikace WPF.

Nasazení XBAP

Při sestavování XBAP výstup obsahuje následující tři soubory:

Soubor Popis
Spustitelný soubor (.exe) Obsahuje zkompilovaný kód a má rozšíření .exe.
Manifest aplikace (.manifest) Obsahuje metadata přidružená k aplikaci a má příponu .manifest.
Manifest nasazení (.xbap) Tento soubor obsahuje informace, které ClickOnce používá k nasazení aplikace a má příponu .xbap.

XBAPs nasadíte na webový server, například Microsoft Internetová informační služba (IIS) 5.0 nebo novější verze. Na webový server nemusíte instalovat rozhraní .NET Framework, ale musíte zaregistrovat typy a přípony názvů souborů WPF Multipurpose Internet Mail Extensions (MIME). Další informace naleznete v tématu Konfigurace služby IIS 5.0 a IIS 6.0 pro nasazení aplikací WPF.

Pokud chcete připravit XBAP na nasazení, zkopírujte .exe a přidružené manifesty na webový server. Vytvořte stránku HTML, která obsahuje hypertextový odkaz pro otevření manifestu nasazení, což je soubor s příponou .xbap. Když uživatel klikne na odkaz na soubor .xbap, ClickOnce automaticky zpracuje mechanismus stahování a spuštění aplikace. Následující ukázkový kód ukazuje stránku HTML, která obsahuje hypertextový odkaz odkazující na XBAP.

<html>
    <head></head>
    <body>
        <a href="XbapEx.xbap">Click this link to launch the application</a>
    </body>
</html>

V rámci webové stránky můžete také hostovat XBAP. Vytvořte webovou stránku s jedním nebo více snímky. Nastavte zdrojovou vlastnost rámce na soubor manifestu nasazení. Pokud chcete použít integrovaný mechanismus pro komunikaci mezi hostitelskou webovou stránkou a XBAP, musíte hostovat aplikaci v rámci. Následující příklad kódu ukazuje stránku HTML se dvěma snímky, zdroj druhého rámce je nastaven na XBAP.

<html>
    <head>
        <title>A page with frames</title>
    </head>
    <frameset cols="50%,50%">
        <frame src="introduction.htm">
        <frame src="XbapEx.xbap">
    </frameset>
</html>

Vymazání XBAPs uložených v mezipaměti

V některých situacích po opětovném sestavení a spuštění XBAP můžete zjistit, že se otevřela starší verze XBAP. Toto chování může nastat například v případě, že je číslo verze sestavení XBAP statické a spustíte XBAP z příkazového řádku. V tomto případě, protože číslo verze mezi verzí uloženou v mezipaměti (verze, která byla dříve spuštěna) a nová verze zůstane stejná, nová verze XBAP se nestáhnou. Místo toho se načte verze uložená v mezipaměti.

V těchto situacích můžete verzi uložené v mezipaměti odebrat pomocí příkazu Mage (nainstalovaného pomocí sady Visual Studio nebo sady Windows SDK) na příkazovém řádku. Následující příkaz vymaže mezipaměť aplikace.

Mage.exe -cc

Tento příkaz zaručuje, že se spustí nejnovější verze vašeho XBAP. Při ladění aplikace v sadě Visual Studio by se měla spustit nejnovější verze XBAP. Obecně platí, že byste měli aktualizovat číslo verze nasazení s každým sestavením. Další informace o mage naleznete v tématu Mage.exe (generování manifestu a nástroj pro úpravy).

Komunikace s webovou stránkou hostitele

Když je aplikace hostovaná v rámci HTML, můžete komunikovat s webovou stránkou, která obsahuje XBAP. Provedete to načtením HostScript vlastnosti BrowserInteropHelper. Tato vlastnost vrátí objekt skriptu, který představuje okno HTML. K vlastnostem, metodám a událostem v objektu okna pak můžete přistupovat pomocí běžné syntaxe tečky. Můžete také přistupovat k metodám skriptů a globálním proměnným. Následující příklad ukazuje, jak načíst objekt skriptu a zavřít prohlížeč.

private void Button_Click(object sender, RoutedEventArgs e)
{
    // Retrieve the script object. The XBAP must be hosted in a frame or
    // the HostScript object will be null.
    var scriptObject = BrowserInteropHelper.HostScript;

    // Call close to close the browser window.
    scriptObject.Close();
}
Private Sub Button_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
    ' Retrieve the script object  The XBAP must be hosted in a frame or
    ' the HostScript object will be null.
    Dim scriptObject = BrowserInteropHelper.HostScript

    ' Call close to close the browser window.
    scriptObject.Close()
End Sub

Ladění XBAPs, které používají HostScript

Pokud váš XBAP používá HostScript objekt ke komunikaci s oknem HTML, existují dvě nastavení, která musíte zadat ke spuštění a ladění aplikace v sadě Visual Studio. Aplikace musí mít přístup ke své lokalitě původu a musíte spustit aplikaci se stránkou HTML, která obsahuje XBAP. Následující kroky popisují, jak zkontrolovat tato dvě nastavení:

  1. V sadě Visual Studio otevřete vlastnosti projektu.

  2. Na kartě Zabezpečení klepněte na tlačítko Upřesnit.

    Zobrazí se dialog Upřesnit nastavení zabezpečení.

  3. Ujistěte se, že je zaškrtnuté políčko Udělit aplikaci přístup k jeho lokalitě původu a potom klepněte na tlačítko OK.

  4. Na kartě Ladění vyberte prohlížeč Start s adresou URL a zadejte adresu URL pro stránku HTML, která obsahuje XBAP.

  5. V Internet Exploreru klikněte na tlačítko Nástroje a pak vyberte Možnosti internetu.

    Zobrazí se dialogové okno Možnosti internetu.

  6. Klikněte na kartu Upřesnit .

  7. V seznamu Nastavení v části Zabezpečení zaškrtněte políčko Povolit spuštění aktivního obsahu v souborech na mém počítači.

  8. Klikněte na OK.

    Změny se projeví po restartování aplikace Internet Explorer.

Upozornění

Povolení aktivního obsahu v Internet Exploreru může ohrozit počítač. Pokud nechcete změnit nastavení zabezpečení Internet Exploreru, můžete spustit stránku HTML ze serveru a připojit k procesu ladicí program sady Visual Studio.

Aspekty zabezpečení XBAP

XBAPs se obvykle spouští v izolovaném prostoru zabezpečení s částečným vztahem důvěryhodnosti, který je omezen na sadu oprávnění zóny Internetu. Proto vaše implementace musí podporovat podmnožinu prvků WPF, které jsou podporovány v zóně Internetu, nebo musíte zvýšit oprávnění vaší aplikace. Další informace najdete v tématu Zabezpečení.

Když v aplikaci použijete WebBrowser ovládací prvek, WPF interně vytvoří instanci nativního ovládacího prvku WebBrowser technologie ActiveX. Pokud je aplikace částečně důvěryhodnýM programem XBAP spuštěným v Internet Exploreru, spustí se ovládací prvek technologie ActiveX ve vyhrazeném vlákně procesu Internet Exploreru. Proto platí následující omezení:

  • Ovládací WebBrowser prvek by měl poskytovat chování podobné hostitelskému prohlížeči, včetně omezení zabezpečení. Některá z těchto omezení zabezpečení je možné ovládat pomocí nastavení zabezpečení aplikace Internet Explorer. Další informace najdete v tématu Zabezpečení.

  • Při načtení XBAP mezi doménou na stránce HTML se vyvolá výjimka.

  • Vstup je na samostatném vlákně od WPF WebBrowser, takže vstup klávesnice nelze zachytit a stav editoru IME není sdílený.

  • Načasování nebo pořadí navigace se může lišit z důvodu technologie ActiveX ovládacího prvku spuštěného v jiném vlákně. Například přechod na stránku není vždy zrušen spuštěním jiného navigačního požadavku.

  • Vlastní ovládací prvek technologie ActiveX může mít potíže s komunikací, protože aplikace WPF běží v samostatném vlákně.

  • MessageHook není vyvolána, protože HwndHost nelze podtřídu okna spuštěného v jiném vlákně nebo procesu.

Vytvoření plně důvěryhodného XBAP

Pokud váš XBAP vyžaduje úplný vztah důvěryhodnosti, můžete změnit projekt tak, aby toto oprávnění povolil. Následující kroky popisují, jak povolit úplný vztah důvěryhodnosti:

  1. V sadě Visual Studio otevřete vlastnosti projektu.

  2. Na kartě Zabezpečení vyberte možnost Toto je úplná důvěryhodná aplikace.

Toto nastavení provede následující změny:

  • V souboru <TargetZone> projektu se hodnota prvku změní na Custom.

  • V manifestu aplikace (app.manifest) Unrestricted="true" se do elementu 'PermissionSet přidá atribut.

    <PermissionSet class="System.Security.PermissionSet"
                   version="1"
                   ID="Custom"
                   SameSite="site"
                   Unrestricted="true" />
    

Nasazení plně důvěryhodného XBAP

Když nasadíte plně důvěryhodný program XBAP, který neodpovídá modelu důvěryhodného nasazení ClickOnce, chování při spuštění aplikace bude záviset na zóně zabezpečení. V některých případech se uživateli při pokusu o instalaci zobrazí upozornění. Uživatel může pokračovat nebo zrušit instalaci. Následující tabulka popisuje chování aplikace pro každou zónu zabezpečení a to, co musíte udělat, aby aplikace získala úplný vztah důvěryhodnosti.

Zóna zabezpečení Chování Získání úplného vztahu důvěryhodnosti
Místní počítač Automatický úplný vztah důvěryhodnosti Nevyžaduje se žádná akce.
Intranetové a důvěryhodné weby Výzva k úplnému důvěryhodnosti Podepište XBAP certifikátem, aby se uživateli zobrazil zdroj na příkazovém řádku.
Internet Selhání s chybou "Vztah důvěryhodnosti není udělen" Podepište XBAP certifikátem.

Poznámka:

Chování popsané v předchozí tabulce je určené pro plně důvěryhodné XBAPs, které nedodržují model důvěryhodného nasazení ClickOnce.

Doporučujeme použít model důvěryhodného nasazení ClickOnce pro nasazení plně důvěryhodného XBAP. Tento model umožňuje automatické udělení úplného vztahu důvěryhodnosti vašeho XBAP bez ohledu na zónu zabezpečení, aby se uživateli nezobsadila výzva. V rámci tohoto modelu musíte aplikaci podepsat certifikátem od důvěryhodného vydavatele. Další informace naleznete v tématu Přehled nasazení důvěryhodné aplikace a Úvod do podepisování kódu.

Aspekty výkonu při spuštění XBAP

Důležitým aspektem výkonu XBAP je čas spuštění. Pokud je XBAP první aplikací WPF, která se má načíst, může být čas studeného spuštění deset sekund nebo více. Důvodem je to, že wpf vykresluje stránku průběhu a clr i WPF musí být spuštěny studeně, aby se zobrazila aplikace.

Počínaje rozhraním .NET Framework 3.5 SP1 je čas studeného spuštění XBAP zmírnit zobrazením nespravované stránky průběhu v rané fázi cyklu nasazení. Stránka průběhu se zobrazí téměř okamžitě po spuštění aplikace, protože je zobrazena nativním hostitelským kódem a vykreslena v HTML.

Kromě toho lepší souběžnost sekvence stahování ClickOnce zlepšuje čas zahájení až o deset procent. Po stažení a ověření manifestů ClickOnce se spustí stahování aplikace a indikátor průběhu se začne aktualizovat.

Viz také