Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Aplikasi browser XAML (XBAP) menggabungkan fitur aplikasi Web dan aplikasi klien kaya. Seperti aplikasi Web, XBAP dapat disebarkan ke server Web dan dimulai dari Internet Explorer atau Firefox di Windows. Seperti aplikasi klien kaya, XBAP dapat memanfaatkan kemampuan WPF. Mengembangkan XBAP juga mirip dengan pengembangan klien kaya. Topik ini menyediakan pengenalan tingkat tinggi yang sederhana untuk pengembangan XBAP dan menjelaskan di mana pengembangan XBAP berbeda dari pengembangan klien kaya standar.
Peringatan
XBAP memerlukan browser warisan untuk beroperasi, seperti Internet Explorer dan firefox versi lama. Browser lama ini biasanya tidak didukung pada Windows 10 dan Windows 11. Browser modern tidak lagi mendukung teknologi yang diperlukan untuk aplikasi XBAP karena risiko keamanan. Plugin yang mengaktifkan XBAP tidak lagi didukung. Untuk informasi selengkapnya, lihat Tanya jawab umum tentang aplikasi yang dihosting browser WPF (XBAP).
Topik ini berisi bagian berikut:
Membuat Aplikasi Browser XAML Baru (XBAP)
Cara paling sederhana untuk membuat proyek XBAP baru adalah dengan Visual Studio. Saat membuat proyek baru, pilih Aplikasi Browser WPF dari daftar templat. Untuk informasi selengkapnya, lihat Cara: Membuat Proyek Aplikasi Browser WPF Baru.
Saat Anda menjalankan proyek XBAP, proyek tersebut terbuka di jendela browser alih-alih jendela yang berdiri sendiri. Saat Anda men-debug XBAP dari Visual Studio, aplikasi berjalan dengan izin zona Internet dan oleh karena itu akan memberikan pengecualian keamanan jika izin tersebut terlampaui. Untuk informasi selengkapnya, lihat Keamanan dan Keamanan Kepercayaan Parsial WPF.
Nota
Jika Anda tidak mengembangkan dengan Visual Studio atau ingin mempelajari selengkapnya tentang file proyek, lihat Membangun Aplikasi WPF.
Menyebarkan XBAP
Saat Anda membuat XBAP, output menyertakan tiga file berikut:
Arsip | Deskripsi |
---|---|
Dapat dieksekusi (.exe) | Ini berisi kode yang dikompilasi dan memiliki ekstensi .exe. |
Manifes aplikasi (.manifest) | Ini berisi metadata yang terkait dengan aplikasi dan memiliki ekstensi .manifest. |
Manifest penyebaran (.xbap) | File ini berisi informasi yang digunakan ClickOnce untuk menyebarkan aplikasi dan memiliki ekstensi .xbap. |
Anda menyebarkan XBAP ke server Web, misalnya Microsoft Internet Information Services (IIS) 5.0 atau versi yang lebih baru. Anda tidak perlu menginstal .NET Framework di server Web, tetapi Anda harus mendaftarkan jenis WPF Multipurpose Internet Mail Extensions (MIME) dan ekstensi nama file. Untuk informasi selengkapnya, lihat Mengonfigurasi IIS 5.0 dan IIS 6.0 untuk Menyebarkan Aplikasi WPF.
Untuk menyiapkan XBAP Anda untuk penyebaran, salin .exe dan manifes terkait ke server Web. Buat halaman HTML yang berisi hyperlink untuk membuka manifes penyebaran, yang merupakan file yang memiliki ekstensi .xbap. Ketika pengguna mengklik tautan ke file .xbap, ClickOnce secara otomatis menangani mekanisme pengunduhan dan memulai aplikasi. Contoh kode berikut memperlihatkan halaman HTML yang berisi hyperlink yang menunjuk ke XBAP.
<html>
<head></head>
<body>
<a href="XbapEx.xbap">Click this link to launch the application</a>
</body>
</html>
Anda juga dapat menghosting XBAP dalam bingkai halaman Web. Buat halaman Web dengan satu atau beberapa bingkai. Tetapkan properti kerangka sumber ke file manifes penggelaran. Jika Anda ingin menggunakan mekanisme bawaan untuk berkomunikasi antara halaman Web hosting dan XBAP, Anda harus menghosting aplikasi dalam bingkai. Contoh kode berikut menunjukkan halaman HTML dengan dua bingkai, sumber untuk bingkai kedua diatur ke XBAP.
<html>
<head>
<title>A page with frames</title>
</head>
<frameset cols="50%,50%">
<frame src="introduction.htm">
<frame src="XbapEx.xbap">
</frameset>
</html>
Menghapus Singgahan XBAP
Dalam beberapa situasi setelah merebuild dan memulai aplikasi XBAP Anda, Anda mungkin menemukan bahwa versi XBAP yang lebih lama terbuka. Misalnya, perilaku ini dapat terjadi ketika nomor versi rakitan XBAP Anda statis dan Anda memulai XBAP dari baris perintah. Dalam hal ini, karena nomor versi antara versi yang di-cache (versi yang sebelumnya dimulai) dan versi baru tetap sama, versi baru XBAP tidak diunduh. Sebagai gantinya, versi cache dimuat.
Dalam situasi ini, Anda dapat menghapus versi cache dengan menggunakan perintah Mage (diinstal dengan Visual Studio atau Windows SDK) pada prompt perintah. Perintah berikut menghapus cache aplikasi.
Mage.exe -cc
Perintah ini menjamin bahwa versi terbaru XBAP Anda dimulai. Saat Anda men-debug aplikasi di Visual Studio, versi terbaru XBAP Anda akan dijalankan. Secara umum, Anda harus memperbarui nomor versi penyebaran dengan setiap kompilasi. Untuk informasi selengkapnya tentang Mage, lihat Mage.exe (Alat Pemroduksi dan Pengedit Manifes).
Berkomunikasi dengan Halaman Web Host
Ketika aplikasi dihosting dalam bingkai HTML, Anda dapat berkomunikasi dengan halaman Web yang berisi XBAP. Anda melakukan ini dengan mengambil HostScript properti dari BrowserInteropHelper. Properti ini mengembalikan objek skrip yang mewakili jendela HTML. Anda kemudian dapat mengakses properti, metode, dan peristiwa pada objek jendela dengan menggunakan sintaks titik biasa. Anda juga dapat mengakses metode skrip dan variabel global. Contoh berikut menunjukkan cara mengambil objek skrip dan menutup browser.
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
Men-debug XBAP yang Menggunakan HostScript
Jika XBAP Anda menggunakan HostScript objek untuk berkomunikasi dengan jendela HTML, ada dua pengaturan yang harus Anda tentukan untuk menjalankan dan men-debug aplikasi di Visual Studio. Aplikasi harus memiliki akses ke situs asalnya dan Anda harus memulai aplikasi dengan halaman HTML yang berisi XBAP. Langkah-langkah berikut menjelaskan cara memeriksa dua pengaturan ini:
Di Visual Studio, buka properti proyek.
Pada tab Keamanan , klik Tingkat Lanjut.
Kotak dialog Pengaturan Keamanan Tingkat Lanjut muncul.
Pastikan bahwa kotak centang Berikan akses aplikasi ke situs asalnya dicentang lalu klik OK.
Pada tab Debug , pilih opsi Mulai browser dengan URL dan tentukan URL untuk halaman HTML yang berisi XBAP.
Di Internet Explorer, klik tombol Alat lalu pilih Opsi Internet.
Kotak dialog Opsi Internet muncul.
Klik tab Tingkat Lanjut.
Di daftar Pengaturan di bawah Keamanan, centang kotak centang Perbolehkan konten aktif dijalankan dalam file di Komputer Saya .
Klik OK.
Perubahan akan berlaku setelah Anda memulai ulang Internet Explorer.
Perhatian
Memfungsikan isi aktif di Internet Explorer bisa membuat komputer Anda berisiko. Jika Anda tidak ingin mengubah pengaturan keamanan Internet Explorer, Anda dapat meluncurkan halaman HTML dari server dan melampirkan debugger Visual Studio ke proses.
Pertimbangan Keamanan XBAP
XBAP biasanya dijalankan dalam kotak pasir keamanan dengan tingkat kepercayaan parsial yang dibatasi oleh kumpulan izin zona Internet. Akibatnya, implementasi Anda harus mendukung subset elemen WPF yang didukung di zona Internet atau Anda harus meningkatkan izin aplikasi Anda. Untuk informasi selengkapnya, lihat Keamanan .
Saat Anda menggunakan sebuah WebBrowser kontrol dalam aplikasi Anda, WPF secara internal menginisialisasi kontrol WebBrowser ActiveX asli. Saat aplikasi Anda adalah XBAP dengan kepercayaan parsial yang berjalan di Internet Explorer, kontrol ActiveX dijalankan dalam utas yang didedikasikan untuk proses Internet Explorer. Oleh karena itu, batasan berikut berlaku:
Kontrol WebBrowser harus memberikan perilaku yang mirip dengan browser host, termasuk pembatasan keamanan. Beberapa batasan keamanan ini dapat dikontrol melalui setelan keamanan Internet Explorer. Untuk informasi selengkapnya, lihat Keamanan .
Pengecualian terjadi ketika XBAP dimuat lintas domain di halaman HTML.
Input berada pada utas terpisah dari WPF WebBrowser, sehingga input keyboard tidak dapat dicegat dan status IME tidak dibagikan.
Waktu atau urutan navigasi mungkin berbeda karena kontrol ActiveX yang berjalan pada utas lain. Misalnya, membuka halaman tidak selalu dibatalkan ketika memulai permintaan navigasi lain.
Kontrol ActiveX kustom mungkin mengalami masalah dengan komunikasi karena aplikasi WPF berjalan di utas terpisah.
MessageHook tidak dinaikkan karena HwndHost tidak dapat mensubkelas jendela yang berjalan di utas atau proses lain.
Membuat Full-Trust XBAP
Jika XBAP Anda memerlukan kepercayaan penuh, Anda dapat mengubah proyek Anda untuk mengaktifkan izin ini. Langkah-langkah berikut menjelaskan cara mengaktifkan kepercayaan penuh:
Di Visual Studio, buka properti proyek.
Pada tab Keamanan , pilih opsi Ini adalah aplikasi kepercayaan penuh .
Pengaturan ini membuat perubahan berikut:
Dalam file proyek,
<TargetZone>
nilai elemen diubah menjadiCustom
.Dalam manifes aplikasi (app.manifest),
Unrestricted="true"
atribut ditambahkan ke elemen 'PermissionSet .<PermissionSet class="System.Security.PermissionSet" version="1" ID="Custom" SameSite="site" Unrestricted="true" />
Menyebarkan Full-Trust XBAP
Saat Anda menyebarkan XBAP kepercayaan penuh yang tidak mengikuti model Penyebaran Tepercaya ClickOnce, perilaku saat pengguna menjalankan aplikasi akan bergantung pada zona keamanan. Dalam beberapa kasus, pengguna akan menerima peringatan ketika mereka mencoba menginstalnya. Pengguna dapat memilih untuk melanjutkan atau membatalkan penginstalan. Tabel berikut menjelaskan perilaku aplikasi untuk setiap zona keamanan dan apa yang harus Anda lakukan agar aplikasi menerima kepercayaan penuh.
Zona Keamanan | Perilaku | Mendapatkan Kepercayaan Penuh |
---|---|---|
Komputer lokal | Kepercayaan penuh otomatis | Tidak ada tindakan yang diperlukan. |
Intranet dan situs tepercaya | Meminta kepercayaan penuh | Tanda tangani XBAP dengan sertifikat sehingga pengguna melihat sumber dalam perintah. |
Internet | Gagal dengan "Kepercayaan Tidak Diberikan" | Tanda tangani XBAP dengan sertifikat. |
Nota
Perilaku yang dijelaskan dalam tabel sebelumnya adalah untuk XBAP kepercayaan penuh yang tidak mengikuti model Penyebaran Tepercaya ClickOnce.
Disarankan agar Anda menggunakan model Penyebaran Tepercaya ClickOnce untuk menyebarkan XBAP kepercayaan penuh. Model ini memungkinkan XBAP Anda untuk diberikan kepercayaan penuh secara otomatis, terlepas dari zona keamanan, sehingga pengguna tidak diminta. Sebagai bagian dari model ini, Anda harus menandatangani aplikasi Anda dengan sertifikat dari penerbit tepercaya. Untuk informasi selengkapnya, lihat Gambaran Umum Penyebaran Aplikasi Tepercaya dan Pengenalan Penandatanganan Kode.
Pertimbangan Kinerja Saat Memulai XBAP
Aspek penting dari performa XBAP adalah waktu mulainya. Jika XBAP adalah aplikasi WPF pertama yang dimuat, waktu mulai dingin bisa sepuluh detik atau lebih. Ini karena halaman status progres dirender oleh WPF, dan untuk menampilkan aplikasi, proses CLR dan WPF harus dimulai dari awal.
Sejak .NET Framework 3.5 SP1, waktu mulai pertama kali XBAP dikurangi dengan menampilkan halaman progres yang tidak dikelola pada tahap awal siklus penyebaran. Halaman kemajuan muncul segera setelah aplikasi dimulai, karena ditampilkan oleh kode hosting asli dan dirender dalam HTML.
Selain itu, peningkatan kesamaan urutan unduhan ClickOnce meningkatkan waktu mulai hingga sepuluh persen lebih cepat. Setelah ClickOnce mengunduh dan memvalidasi manifes, unduhan aplikasi dimulai, dan bilah kemajuan mulai diperbarui.
Lihat juga
.NET Desktop feedback