Bagikan melalui


Gambaran Umum Aplikasi Browser WPF XAML

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 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.

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.

Catatan

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:

File 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.
Manifes penyebaran (.xbap) File ini berisi informasi yang digunakan ClickOnce untuk menyebarkan aplikasi dan memiliki ekstensi .xbap.

Anda menyebarkan XBAP ke server Web, misalnya Microsoft Layanan Informasi Internet (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. Atur properti sumber bingkai ke file manifes penyebaran. 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 XBAP Singgahan

Dalam beberapa situasi setelah membangun kembali dan memulai XBAP, Anda mungkin menemukan bahwa versi XBAP yang lebih lama dibuka. 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 harus dimulai. Secara umum, Anda harus memperbarui nomor versi penyebaran dengan setiap build. Untuk informasi selengkapnya tentang Mage, lihat Mage.exe (Pembuatan Manifes dan Alat Pengeditan).

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:

  1. Di Visual Studio, buka properti proyek.

  2. Pada tab Keamanan , klik Tingkat Lanjut.

    Kotak dialog Pengaturan Keamanan Tingkat Lanjut muncul.

  3. Pastikan bahwa kotak centang Berikan akses aplikasi ke situs asalnya dicentang lalu klik OK.

  4. Pada tab Debug , pilih opsi Mulai browser dengan URL dan tentukan URL untuk halaman HTML yang berisi XBAP.

  5. Di Internet Explorer, klik tombol Alat lalu pilih Opsi Internet.

    Kotak dialog Opsi Internet muncul.

  6. Klik tab Tingkat Lanjut.

  7. Di daftar Pengaturan di bawah Keamanan, centang kotak centang Izinkan konten aktif dijalankan dalam file di Komputer Saya.

  8. 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 kepercayaan parsial yang dibatasi untuk 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 WebBrowser kontrol dalam aplikasi Anda, WPF secara internal membuat instans kontrol WebBrowser ActiveX asli. Saat aplikasi Anda adalah XBAP kepercayaan parsial yang berjalan di Internet Explorer, kontrol ActiveX berjalan dalam utas khusus 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 dilemparkan 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, menavigasi ke halaman tidak selalu dibatalkan dengan 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 XBAP Kepercayaan Penuh

Jika XBAP Anda memerlukan kepercayaan penuh, Anda dapat mengubah proyek Anda untuk mengaktifkan izin ini. Langkah-langkah berikut menjelaskan cara mengaktifkan kepercayaan penuh:

  1. Di Visual Studio, buka properti proyek.

  2. Pada tab Keamanan , pilih opsi Ini adalah aplikasi kepercayaan penuh.

Pengaturan ini membuat perubahan berikut:

  • Dalam file proyek, <TargetZone> nilai elemen diubah menjadi Custom.

  • 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 XBAP Kepercayaan Penuh

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.

Catatan

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 Performa Waktu Mulai 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 kemajuan dirender oleh WPF, dan CLR dan WPF harus mulai dingin untuk menampilkan aplikasi.

Mulai dari .NET Framework 3.5 SP1, waktu mulai dingin XBAP dimitigasi dengan menampilkan halaman kemajuan yang tidak dikelola di awal siklus penyebaran. Halaman kemajuan muncul segera setelah aplikasi dimulai, karena ditampilkan oleh kode hosting asli dan dirender dalam HTML.

Selain itu, peningkatan konkurensi urutan unduhan ClickOnce meningkatkan waktu mulai hingga sepuluh persen. Setelah ClickOnce mengunduh dan memvalidasi manifes, unduhan aplikasi dimulai, dan bilah kemajuan mulai diperbarui.

Lihat juga