WPF XAML Tarayıcı Uygulamalarına Genel Bakış

XAML browser applications (XBAPs)Web uygulamaları ve zengin istemci uygulamaların özelliklerini birleştirir. Web uygulamaları gibi XBAP bir Web sunucusu dağıtılacağı ve Internet Explorer veya Firefox başladı. Zengin istemci uygulamaları gibi XBAP yeteneklerini yararlanabilirsiniz WPF. XBAP geliştirmek de zengin istemci geliştirme benzer. Bu konuda xbap geliştirme için basit, üst düzey bir giriş sağlar ve standart zengin istemci geliştirme xbap geliştirme yeri farklıdır açıklar.

This topic contains the following sections:

  • Yeni bir xaml Tarayıcı uygulama (xbap) oluşturma

  • Deploying an XBAP

  • Ana bilgisayar Web sayfası ile iletişim kurma

  • xbap güvenlik konuları

  • xbap başlangıç saati performans değerlendirmeleri

Yeni bir xaml Tarayıcı uygulama (xbap) oluşturma

xbap yeni bir proje oluşturmak için en kolay yolu olan Microsoft Visual Studio 2010. Yeni bir proje oluştururken, wpf tarayıcı uygulama şablonlar listesinden. For more information, see Nasıl Yapılır: Yeni bir WPF Tarayıcı Uygulaması proje oluşturmak.

xbap proje çalıştırdığınızda, tek başına bir pencere yerine bir tarayıcı penceresi açılır. xbap dan debug ne zaman Microsoft Visual Studio, uygulama Internet bölgesi izni ile çalışır ve bu nedenle, güvenlik özel durumlar bu izinleri aşılırsa yaratacak. Daha fazla bilgi için Güvenlik (WPF) ve WPF Kısmi Güven Güvenliği.

NotNot

Sizin ile değil geliştiriyorsanız Microsoft Visual Studio ya da proje dosyaları hakkında daha fazla bilgi edinmek için bkz: istediğiniz WPF Uygulaması Oluşturma (WPF).

Deploying an XBAP

Bir xbap oluştururken, aşağıdaki üç dosya çıktı içerir:

File

Description

Yürütülebilir (.exe)

Bu derlenmiş kodu içerir ve .exe uzantısına sahiptir.

Uygulama bildirimi (.manifest)

Bu uygulamayla ilişkili meta verileri içerir ve bir çalışma uzantısına sahiptir.

Dağıtım listesi (.xbap)

Bu dosya bilgileri içerir, ClickOnce uygulamayı dağıtmak için kullanır ve var. .xbap uzantısı

XBAP Web sunucusuna, örneğin dağıttığınız Microsoft Internet Information Services (IIS) 5.0 veya sonraki sürümleri. Yüklemek gerekmez .NET Framework Web sunucusu, ancak sahip kaydetmek WPF Multipurpose Internet Mail Extensions (MIME) türlerini ve dosya adı uzantıları. For more information, see Nasıl Yapılır: WPF Uygulamalarını Dağıtmak için IIS 5.0 ve IIS 6.0'yı Yapılandırma.

Sizin xbap dağıtım için hazırlamak üzere, .exe ve ilişkili bildirimlerin Web sunucusuna kopyalayın. .Xbap uzantılı dosya dağıtım listesi açmak için köprü içeren bir html sayfası oluşturun. Kullanıcıyı .xbap dosyasına bağlantıyı tıklattığında ClickOnce otomatik olarak karşıdan yükleme ve başlatma mekanizması'ı yönetiruygulaması. Aşağıdaki kod örneği, bir xbap işaret eden bir köprü içeren bir html sayfasını gösterir.

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

Ayrıca, Web sayfasının çerçevesinde bir xbap barındırabilir. Bir veya daha fazla kare ile bir Web sayfası oluşturun. Dağıtım bildirim dosyası çerçeve source özelliğini ayarlayın. Yerleşik bir mekanizma barındırma Web sayfası xbap arasında iletişim kurmak için kullanmak isterseniz, uygulama bir çerçeve içinde barındırması gerekir. Aşağıdaki kod örneği, ikinci çerçevenin kaynağını bir xbap ayarlamak iki çerçeve içeren bir html sayfası gösterir.

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

Temizleme XBAP önbelleğe alınmış

Yeniden inşa etmek ve kendi xbap başlatma sonrasında bazı durumlarda xbap önceki bir sürümünde açıldığında bulabilirsiniz. Örneğin, bu davranış xbap derleme sürüm numaranızı statiktir ve xbap komut satırından başlatmak oluşabilir. Bu durumda, sürüm numarası (daha önce başlatılan sürüm) önbelleğe alınan sürüm ve yeni sürümü arasında aynı kaldığından xbap yeni sürümüne yüklenmez. Bunun yerine, önbelleğe alınan sürüm yüklenir.

Bu gibi durumlarda, önbelleğe alınan sürümünü kullanarak kaldırabilirsiniz Mage komutu (Visual Studio ile yüklü veya Windows SDK) komut istemi. Aşağıdaki komut, uygulama önbelleği temizler.

Mage.exe -cc

Bu komut, en son sürümünü bilgisayarınıza xbap başlatıldığını garanti eder. Uygulamanızda hata ne zaman Visual Studio, en son sürümünü bilgisayarınıza xbap başlatılmalıdır. Genel olarak, dağıtım sürümünüzün her yapı. ile numara güncelleştirmeniz gerekir Esim hakkında daha fazla bilgi için bkz: Mage.exe (bildirim oluşturma ve Düzenlemek araç).

Ana bilgisayar Web sayfası ile iletişim kurma

Uygulama bir html çerçeve içinde barındırılıyorsa, xbap içeren Web sayfası ile iletişim kurabilirsiniz. Alarak bunu HostScript özelliği BrowserInteropHelper. Bu özellik, html pencereyi temsil eden bir komut nesnesi döndürür. Temel özellikleri, yöntemleri ve olayları daha sonra erişebilirsiniz window nesnesini normal nokta sözdizimini kullanarak. Komut dosyası yöntemleri ve global değişkenler de erişebilirsiniz. Aşağıdaki örnek komut dosyası nesne almak ve tarayıcının kapatmak gösterilmiştir.

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
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();
}

HostScript kullanan XBAP hata ayıklama

Sizin xbap kullanıyorsa, HostScript iletişim kurmak için html penceresiyle belirtmeniz gereken iki ayar vardır nesnesi çalıştırmak ve uygulamada hata ayıklamak için Visual Studio. Uygulama kaynağı, kendi sitesine erişiminiz olmalıdır ve uygulama xbap içeren html sayfası ile başlamalıdır. Aşağıdaki adımlarda, bu iki ayarlarını denetlemek anlatılmaktadır:

  1. Visual Studio Proje Özellikleri'ni açın.

  2. On the Security tab, click Advanced.

    Gelişmiş Güvenlik Ayarları iletişim kutusu görüntülenir.

  3. Emin olun Grant kendi sitesi özgün uygulama erişimi onay kutusu seçiliyse ve i Tamam.

  4. Üzerinde Debug sekmesini seçin Başlat url tarayıcıyla seçeneğini ve xbap içeren html sayfası URL'sini belirtin.

  5. Internet Explorer'ı araçları düğmesini tıklatın ve sonra seçin Internet Seçenekleri.

    Internet Seçenekleri iletişim kutusu görüntülenir.

  6. Click the Advanced tab.

  7. De ayarları altında liste Güvenlik, kontrol etkin içeriğin Bilgisayarım üzerindeki dosyalarda çalışmasına izin ver onay kutusunu.

  8. Click OK.

    Değişiklikler Internet Explorer yeniden başlatıldıktan sonra etkinleşir.

Uyarı notuUyarı

Internet Explorer'ın etkin içeriği etkinleştirme bilgisayarınızı riske atabilir.Daha fazla bilgi için bkz: Güvenlik ve gizlilik özellikleri Internet Explorer'da.Internet Explorer güvenlik ayarlarını değiştirmek istemiyorsanız, bir sunucudan html sayfasını başlatın ve ekleme Visual Studio hata ayıklama işlemi.

xbap güvenlik konuları

XBAP genellikle Internet bölgesi izin kümesi için kısıtlı bir kısmi güven güvenlik sanal alanında çalıştırın. Sonuç olarak, uygulamanız alt kümesini desteklemesi gerekir WPF öğelerini Internet bölgesi ya da, desteklenen gerekir yükseltmesine izinleri uygulama. For more information, see Güvenlik (WPF).

Kullandığınızda bir WebBrowser denetimi uygulamanızda wpf dahili olarak başlattığı doğal WebBrowser ActiveX denetimi. Internet Explorer'da bir kısmi güven xbap uygulamanız olduğunda, ActiveX denetiminin bir ayrılmış Internet Explorer işleminin temasında. Bu nedenle, aşağıdaki kısıtlamalar geçerlidir:

  • WebBrowser Denetim ana tarayıcısı dahil olmak üzere benzer davranışı sağlamakgüvenlik kısıtlamaları. Bu güvenlik kısıtlamaları bazıları Internet Explorer güvenlik ayarları denetlenebilir. For more information, see Güvenlik (WPF).

  • Bir xbap yüklenen etki alanları arası bir html sayfası olduğunda bir istisnası atılır.

  • Giriş olan WPF'dan ayrı bir iş parçacığı üzerinde WebBrowser, klavye girişi yapamazsınız kesilmesini ve IME durumu paylaştırılmamış olacak.

  • Zamanlama veya gezinme sırasını başka bir iş parçacığı üzerinde çalışan ActiveX denetimi yüzünden farklı olabilir. Örneğin, bir sayfaya gezinme her zaman başka bir gezinti isteği başlatarak iptal edilmedi.

  • wpf uygulamayı ayrı bir iş parçacığı çalışıyor bu yana özel bir ActiveX denetimi iletişimde sorun yaşayabilirsiniz.

  • MessageHookçünkü ortaya değil HwndHost olamaz alt pencere çalıştıran başka bir iş parçacığı veya işlem.

Tam güven xbap oluşturma

Sizin xbap tam güven gerektiriyorsa, bu izni etkinleştirmek için projenizi değiştirebilirsiniz. Aşağıdaki adımlarda, tam güven etkinleştirme anlatılmaktadır:

  1. Visual Studio Proje Özellikleri'ni açın.

  2. Üzerinde Güvenlik sekmesini seçin tam güven uygulama budur seçeneği.

Bu ayar aşağıdaki değişiklikleri yapar:

  • Proje dosyasında <TargetZone> öğe değeri değişti Custom.

  • Uygulama listesi (app.manifest), bir Unrestricted="true" özniteliği eklenir PermissionSet öğesi.

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

Tam güven xbap dağıtma

ClickOnce güvenilir dağıtım modeli uymaz bir tam güven xbap dağıttığınızda, kullanıcı uygulamayı çalıştırdığında davranış güvenlik bölgesine bağlı olacaktır. Yüklemeye çalıştığınızda, bazı durumlarda, kullanıcı bir uyarı alırsınız. Kullanıcı, devam veya yüklemeyi iptal etmeyi seçebilirsiniz. Aşağıdaki tabloda, her güvenlik bölgesi ve uygulamanın tam güven almak için yapmanız gereken uygulama davranışını açıklar.

Security Zone

Behavior

Tam güven alma

Yerel bilgisayar

Otomatik tam güven

Hiçbir eylem gerekli değildir.

İntranet ve güvenilen siteler

Tam güven istemi

Kullanıcı istemi kaynağında görebilmesi için xbap bir sertifikayla imzalamak.

Internet

"Güven değil verilen" ile başarısız oluyor

xbap bir sertifikayla imzalamak.

NotNot

Önceki tabloda açıklanan ClickOnce güvenilir dağıtım modelini izlemeyin tam güven XBAP için davranıştır.

Tam güven xbap dağıtmak için güvenilen ClickOnce dağıtım modelini kullanmanız önerilir. Böylece kullanıcı istenmez sizin xbap tam güven güvenlik bölgesi bakılmaksızın otomatik olarak verilebilmesi bu modeli sağlar. Bu model bir parçası olarak, uygulamanızla birlikte sertifika güvenilen bir yayımcıya imzalamanız gerekir. Daha fazla bilgi için Güvenilir Uygulama Dağıtımına Genel Bakış ve kod imzalama giriş.

xbap başlangıç saati performans değerlendirmeleri

xbap performansı önemli bir bölümünü kendi başlangıç zamanı geldi. Bir xbap yüklemek için ilk wpf uygulaması ise soğuk başlangıç zaman on saniye veya daha fazla olabilir. Bunun nedeni, işlem sayfası wpf tarafından oluşturulur ve clr ve wpf soğuk-uygulama görüntülemek için başlatılması gerekir çünkü.

Başlangıç .NET Framework 3.5 SP1, xbap soğuk başlangıç saati etkisinin erken dağıtım döngüsünde bir yönetilmeyen ilerlemesi sayfası görüntüleyerek. İlerleme durumu sayfası hemen görünür sonra uygulama tarafından doğal barındırma kodu görüntüleniyor olduğundan, başladı ve işlenmiş html. 

Buna ek olarak, eşzamanlılık, geliştirilmiş ClickOnce yükleme sırası artırır başlangıç zamanına göre en fazla on yüzde. Sonra ClickOnce yükler ve doğrulama bildirimlerin, uygulama yükleme başlar ve ilerleme çubuğu başladıktan güncelleştirme.

Ayrıca bkz.

Kavramlar

Nasıl Yapılır: Web Hizmeti Çağırmak üzere XAML Tarayıcı Uygulamasında Hata Ayıklamak için Visual Studio'yu Yapılandırın

Bir WPF Uygulamasının Dağıtılması (WPF)