Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
XAML böngészőalkalmazások (XBAPs) a webalkalmazások és a gazdag ügyfélalkalmazások funkcióit is egyesítik. A webalkalmazásokhoz hasonlóan az XBAP-k is üzembe helyezhetők egy webkiszolgálón, és windowsos Internet Explorerből vagy Firefoxból indíthatók el. A gazdag ügyfélalkalmazásokhoz hasonlóan az XBAP-k is kihasználhatják a WPF képességeit. Az XBAP-k fejlesztése szintén hasonló a rich-client fejlesztéshez. Ez a témakör egyszerű, magas szintű bevezetést nyújt az XBAP-fejlesztésbe, és ismerteti, hogy az XBAP-fejlesztés hol tér el a standard rich-client fejlesztéstől.
Figyelmeztetés
Az XBAP-k működéséhez régi böngészőkre van szükség, például az Internet Explorerre és a Firefox régi verzióira. Ezek a régebbi böngészők általában nem támogatottak a Windows 10-ben és a Windows 11-ben. A modern böngészők már nem támogatják az XBAP-alkalmazásokhoz szükséges technológiát a biztonsági kockázatok miatt. Az XBAP-ket engedélyező beépülő modulok már nem támogatottak. További információ: A WPF böngésző által üzemeltetett alkalmazásokkal (XBAP) kapcsolatos gyakori kérdések.
Ez a témakör a következő szakaszokat tartalmazza:
XBAP- üzembe helyezése
XBAP kezdési idejének teljesítményével kapcsolatos szempontok
Új XAML böngészőalkalmazás létrehozása (XBAP)
Az új XBAP-projekt létrehozásának legegyszerűbb módja a Visual Studio. Új projekt létrehozásakor válassza WPF böngészőalkalmazás a sablonok listájából. További információ: Útmutató: Új WPF böngészőalkalmazás-projekt létrehozása.
Az XBAP-projekt futtatásakor az önálló ablak helyett egy böngészőablakban nyílik meg. Az XBAP Visual Studióból való hibakeresésekor az alkalmazás internetes zóna engedéllyel fut, ezért biztonsági kivételeket fog kivenni, ha túllépi ezeket az engedélyeket. További információért tekintse meg a Biztonság és a WPF részleges megbízhatósági biztonságdokumentumokat.
Megjegyzés:
Ha nem a Visual Studióval fejleszt, vagy többet szeretne megtudni a projektfájlokról, tekintse meg WPF-alkalmazás létrehozásacímű témakört.
XBAP üzembe helyezése
XBAP létrehozásakor a kimenet a következő három fájlt tartalmazza:
Fájl | Leírás |
---|---|
Végrehajtható (.exe) | Ez tartalmazza a lefordított kódot, és .exe kiterjesztéssel rendelkezik. |
Alkalmazásmanifeszt (.manifest) | Ez az alkalmazáshoz társított metaadatokat tartalmaz, és .manifest kiterjesztéssel rendelkezik. |
Üzembehelyezési jegyzék (.xbap) | Ez a fájl tartalmazza azokat az információkat, amelyeket a ClickOnce az alkalmazás üzembe helyezéséhez használ, és .xbap kiterjesztéssel rendelkezik. |
XBAP-ket helyez üzembe egy webkiszolgálón, például a Microsoft Internet Information Services (IIS) 5.0-s vagy újabb verzióiban. A .NET-keretrendszert nem kell telepítenie a webkiszolgálóra, de regisztrálnia kell a WPF többcélú internetposta-bővítmények (MIME) típusait és fájlnévkiterjesztéseit. További információ: Az IIS 5.0 és az IIS 6.0 konfigurálása WPF-alkalmazások üzembe helyezéséhez.
Az XBAP telepítésre való előkészítéshez másolja a .exe és a kapcsolódó manifestumokat a webkiszolgálóra. Hozzon létre egy HTML-lapot, amely hivatkozást tartalmaz az üzembehelyezési jegyzék megnyitásához, amely az .xbap kiterjesztéssel rendelkező fájl. Amikor a felhasználó az .xbap fájlra mutató hivatkozásra kattint, a ClickOnce automatikusan kezeli az alkalmazás letöltésének és elindításának mechanizmusát. Az alábbi példakód egy XBAP-re mutató hivatkozást tartalmazó HTML-oldalt mutat.
<html>
<head></head>
<body>
<a href="XbapEx.xbap">Click this link to launch the application</a>
</body>
</html>
XBAP-t is üzemeltethet egy weblap keretében. Weblap létrehozása egy vagy több kerettel. Állítsa egy keret forrástulajdonságát az üzembehelyezési jegyzékfájlra. Ha a beépített mechanizmussal szeretne kommunikálni az üzemeltető weblap és az XBAP között, az alkalmazást keretben kell üzemeltetnie. Az alábbi példakód egy két képkockával rendelkező HTML-oldalt mutat be, a második keret forrását pedig XBAP-nek állítja be.
<html>
<head>
<title>A page with frames</title>
</head>
<frameset cols="50%,50%">
<frame src="introduction.htm">
<frame src="XbapEx.xbap">
</frameset>
</html>
Gyorsítótárazott XBAP-k törlése
Bizonyos esetekben az XBAP újraépítése és elindítása után előfordulhat, hogy az XBAP egy korábbi verziója meg van nyitva. Ez a viselkedés például akkor fordulhat elő, ha az XBAP-szerelvény verziószáma statikus, és a parancssorból indítja el az XBAP-t. Ebben az esetben, mivel a gyorsítótárazott verzió (a korábban elindított verzió) és az új verzió közötti verziószám változatlan marad, az XBAP új verziója nem lesz letöltve. Ehelyett a gyorsítótárazott verzió van betöltve.
Ilyen helyzetekben a gyorsítótárazott verziót a Mage paranccsal távolíthatja el (a Visual Studióval vagy a Windows SDK-val telepítve) a parancssorban. Az alábbi parancs törli az alkalmazás gyorsítótárát.
Mage.exe -cc
Ez a parancs garantálja az XBAP legújabb verziójának elindítását. Az alkalmazás Visual Studióban történő hibakeresésekor el kell indítani az XBAP legújabb verzióját. Általában minden build esetében frissítenie kell az üzembehelyezési verzió számát. További információ a Mage-ról: Mage.exe (Jegyzékgenerálási és szerkesztőeszköz).
Kommunikáció a kiszolgáló weboldalával
Ha az alkalmazást HTML-keretben üzemelteti, kommunikálhat az XBAP-t tartalmazó weblaptal. Ezt a HostScriptBrowserInteropHelper tulajdonságának beolvasásával teheti meg. Ez a tulajdonság egy HTML-ablakot jelképező szkriptobjektumot ad vissza. Ezután a ablakobjektum tulajdonságaihoz, metódusaihoz és eseményeihez normál pontszintaxissal férhet hozzá. A szkriptmetelyeket és a globális változókat is elérheti. Az alábbi példa bemutatja, hogyan kérhető le a szkriptobjektum, és hogyan zárhatja be a böngészőt.
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
HostScriptet használó XBAP-k hibakeresése
Ha az XBAP az HostScript objektummal kommunikál a HTML-ablakkal, két beállítást kell megadnia az alkalmazás Visual Studióban való futtatásához és hibakereséséhez. Az alkalmazásnak hozzáféréssel kell rendelkeznie a származási helyéhez, és az XBAP-t tartalmazó HTML-oldallal kell elindítania az alkalmazást. Az alábbi lépések bemutatják, hogyan ellenőrizheti ezt a két beállítást:
Nyissa meg a projekt tulajdonságait a Visual Studióban.
A Biztonsági lapon kattintson a Speciálisgombra.
Megjelenik a Speciális biztonsági beállítások párbeszédpanel.
Győződjön meg arról, hogy a Az alkalmazás hozzáférésének biztosítása a forráshelyhez jelölőnégyzet be van jelölve, majd kattintson OKgombra.
A Hibakeresés lapon válassza a Böngésző elindítása URL-címmel lehetőséget, és adja meg annak a HTML-oldalnak az URL-címét, amely az XBAP-et tartalmazza.
Az Internet Explorerben kattintson az Eszközök gombra, majd válassza Internetbeállításoklehetőséget.
Megjelenik az Internetbeállítások párbeszédpanel.
Kattintson a Speciális fülre.
A
Biztonsági listájában jelölje be aBeállítások Az aktív tartalom futtatásának engedélyezése fájlokban a Saját számítógépen jelölőnégyzetet.Kattintson az OK gombra.
A módosítások az Internet Explorer újraindítása után lépnek érvénybe.
Figyelmeztetés
Az Aktív tartalom engedélyezése az Internet Explorerben veszélyeztetheti a számítógépet. Ha nem szeretné módosítani az Internet Explorer biztonsági beállításait, elindíthatja a HTML-lapot egy kiszolgálóról, és csatolhatja a Visual Studio hibakeresőt a folyamathoz.
Az XBAP biztonsági szempontjai
Az XBAP-k általában részleges megbízhatóságú biztonsági tesztkörnyezetben futnak, amely az internetzóna engedélykészletére korlátozódik. Ezért a megvalósításnak támogatnia kell az internetzónában támogatott WPF-elemek részhalmazát, vagy emelnie kell az alkalmazás engedélyeit. További információkért lásd a Biztonságszakaszt.
Ha a WebBrowser vezérlőt használja az alkalmazásában, a WPF belsőleg példányosítja a natív ActiveX WebBrowser-vezérlőt. Ha az alkalmazás egy részleges megbízhatóságú XBAP, amely az Internet Explorerben fut, az ActiveX-vezérlő az Internet Explorer-folyamat dedikált szálán fut. Ezért a következő korlátozások érvényesek:
A WebBrowser vezérlőnek a gazdaböngészőhöz hasonló viselkedést kell biztosítania, beleértve a biztonsági korlátozásokat is. Ezen biztonsági korlátozások némelyike az Internet Explorer biztonsági beállításaival szabályozható. További információkért lásd a Biztonságszakaszt.
Kivétel keletkezik, amikor egy XBAP-ot tartományok között töltenek be egy HTML-oldalon.
A bemenet a WPF WebBrowserkülön szálon van, ezért a billentyűzet bemenetét nem lehet elfogni, és az IME állapota nem kerül megosztásra.
A navigáció időzítése vagy sorrendje eltérő lehet a másik szálon futó ActiveX-vezérlő miatt. A lapra való navigálás például nem mindig szűnik meg egy másik navigációs kérés elindításával.
Előfordulhat, hogy egy egyéni ActiveX-vezérlő nem tud kommunikálni, mivel a WPF-alkalmazás külön szálon fut.
MessageHook nem aktiválódik, mert HwndHost nem tud egy másik szálon vagy folyamatban futó ablakot alosztályba sorolni.
Full-Trust XBAP létrehozásának folyamata
Ha az XBAP teljes megbízhatóságot igényel, módosíthatja a projektet az engedély engedélyezéséhez. Az alábbi lépések a teljes megbízhatóság engedélyezését ismertetik:
Nyissa meg a projekt tulajdonságait a Visual Studióban.
A Biztonsági lapon válassza a Ez egy teljes megbízhatósági alkalmazás lehetőség.
Ez a beállítás a következő módosításokat hajtja végre:
A projektfájlban a
<TargetZone>
elem értékeCustom
értékre módosul.Az alkalmazásjegyzékben (app.manifest) a rendszer hozzáad egy
Unrestricted="true"
attribútumot a 'PermissionSet elemhez.<PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
Full-Trust XBAP üzembe helyezése
Ha olyan teljes megbízhatóságú XBAP-t helyez üzembe, amely nem követi a ClickOnce megbízható üzembehelyezési modelljét, a felhasználó által az alkalmazás futtatásának viselkedése a biztonsági zónától függ. Bizonyos esetekben a felhasználó figyelmeztetést kap, amikor megpróbálja telepíteni. A felhasználó dönthet úgy, hogy folytatja vagy megszakítja a telepítést. Az alábbi táblázat az alkalmazás viselkedését ismerteti az egyes biztonsági zónák esetében, és azt, hogy mit kell tennie ahhoz, hogy az alkalmazás teljes megbízhatóságot kapjon.
Biztonsági zóna | Magatartás | Teljes bizalom elnyerése |
---|---|---|
Helyi számítógép | Automatikus teljes megbízhatóság | Nincs szükség műveletre. |
Intranetes és megbízható webhelyek | Teljes megbízhatóság kérése | Írja alá az XBAP-t egy tanúsítvánnyal, hogy a felhasználó láthassa a forrást a parancssorban. |
Internet | A "Nem megadott megbízhatóság" hibával meghiúsul | Írja alá az XBAP-et egy tanúsítvánnyal. |
Megjegyzés:
Az előző táblázatban leírt viselkedés olyan teljes megbízhatóságú XBAP-k esetében történik, amelyek nem követik a ClickOnce megbízható üzembehelyezési modelljét.
Javasoljuk, hogy a ClickOnce megbízható üzembehelyezési modelljét használja teljes megbízhatóságú XBAP üzembe helyezéséhez. Ez a modell lehetővé teszi, hogy az XBAP automatikusan teljes megbízhatóságot kapjon a biztonsági zónától függetlenül, így a rendszer nem kéri a felhasználót. Ennek a modellnek a részeként egy megbízható kiadó hiteles tanúsítványával kell aláírnia az alkalmazását. További információ: A megbízható alkalmazástelepítés áttekintése és A kódaláírás bemutatása.
Az XBAP kezdési idejének teljesítményével kapcsolatos szempontok
Az XBAP-teljesítmény egyik fontos eleme a kezdési időpont. Ha az XBAP az első BETÖLTENDŐ WPF-alkalmazás, a hidegindítási idő akár tíz másodperc is lehet. Ennek az az oka, hogy az előrehaladási oldalt a WPF rendereli, és mind a CLR-t, mind a WPF-et hidegindítással kell elindítani az alkalmazás megjelenítéséhez.
A .NET-keretrendszer 3.5 SP1-es verziójától kezdődően az XBAP hidegindítási ideje az üzembe helyezési ciklus korai szakaszában egy nem felügyelt folyamatjelző lap megjelenítésével csökkenthető. A folyamatjelző oldal szinte azonnal megjelenik az alkalmazás elindítása után, mert a natív üzemeltetési kód jeleníti meg, és HTML-ben jeleníti meg.
Emellett a ClickOnce letöltési sorozatának továbbfejlesztett egyidejűsége akár tíz százalékkal is javítja a kezdési időt. Miután a ClickOnce letölti és ellenőrzi a jegyzékfájlokat, elindul az alkalmazás letöltése, és a folyamatjelző frissülni kezd.
Lásd még
.NET Desktop feedback