Visão geral sobre Windows Presentation Foundation XAML Browser Applications
aplicativos de navegador XAML (XBAPs) combinam recursos de aplicativos da Web e de aplicativos cliente atrativos. Aplicativos da Web, como XBAPs podem ser publicados em um servidor Web e iniciados pelo Internet Explorer. Como aplicativos cliente atrativos, XBAPs podem aproveitar os recursos do WPF. Desenvolver XBAPs também é semelhante ao desenvolvimento de aplicativos clientes. Este tópico fornece uma introdução simples e de alto nível ao desenvolvimento de aplicativos do tipo XBAP e ressalta onde o desenvolvimento de uma XBAP é diferente do desenvolvimento padrão de aplicativos cliente atrativos.
Este tópico contém as seguintes seções.
- Implementando um aplicativo XAML de navegador (XBAP)
- Implantando um aplicativo XAML de navegador
- Considerações sobre segurança em XBAPs
- Considerações de desempenho de time de início XBAP
Implementando um aplicativo XAML de navegador (XBAP)
A maneira mais simples para se criar um novo projeto XBAP é usar o Microsoft Visual Studio:
No menu File, aponte para New e clique em Project.
Na caixa de diálogo New Project, no painel Project types, escolha Visual Basic ou Visual C#. No painel Templates, clique em WPF Browser Application.
Atribua um nome de projeto e clique em OK para criar o novo projeto.
O modelo de projeto para aplicativos WPF de navegador cria um projeto de aplicativo XBAP que inclui o seguinte:
Uma definição de aplicativo, Application.xaml.
Uma página, Page1.xaml.
Você pode adicionar a esses elementos conforme necessário.
Se você preferir desenvolver com ferramentas que exigem a compilação em linha de comando, consulte Building a WPF Application (WPF).
Quando você executa uma XBAP, ela é iniciada em uma janela do navegador ao invés de uma janela autônoma. Quando você depura uma XBAP no Visual Studio, o aplicativo é executado com permissão de zona da Internet e consequentemente irá gerar exceções de segurança se essas permissões forem excedidas. Para obter mais informações, consulte Building a WPF Application (WPF).
Implantando um aplicativo XAML de navegador
Quando você cria uma XBAP, o Mecanismo de compilação Microsoft (MSBuild) produz os três arquivos a seguir (no mínimo):
Um arquivo executável. Este arquivo contém o código compilado e tem uma extensão .exe.
Um manifesto de aplicativo. Este arquivo contém os metadados associados ao aplicativo e possui uma extensão .manifest.
Um manifesto de implantação. Esse arquivo contém as informações que o ClickOnce usa para implantar o aplicativo e tem uma extensão .xbap.
Você publica XBAPs para um servidor Web (Serviços de Informações da Internet da Microsoft (IIS) ou posterior). Você não precisa instalar o .NET Framework no servidor Web, mas é necessário registrar os tipos e extensões de arquivo Multipurpose Internet Mail Extensions (MIME) do WPF. Para obter detalhes, consulte:Como: Configurar o IIS 5.0 e IIS 6.0 para implantar aplicativos WPF
Para preparar a XBAP para implantação, copie o .exe e os manifestos associados para o servidor Web. Crie um hyperlink em um página da Web para acessar o manifesto de implantação. Quando o usuário clica no link e navega até o arquivo .xbap, o ClickOnce automaticamente trata a mecânica de download e inicialização do aplicativo.
Limpando XBAPs na cache
Em algumas situações depois da recompilação e inicialização da sua XBAP, você talvez perceba que uma versão anterior da XBAP foi iniciada. Isso pode acontecer, por exemplo, quando número de versão do conjunto de módulos (assembly) da sua XBAP é estático e você inicia a XBAP a partir de linha de comando. Nesse caso, como o número de versão entre a versão na cache (a versão que foi anteriormente iniciada) e a nova versão permanece o mesmo, não é feito download da nova versão da XBAP; em vez disso, a versão na cache é carregada.
Nessas situações, você pode remover a versão na cache, usando o comando Mage (instalado com o Windows SDK) a partir do prompt de comando:
Mage.exe -cc
Isso garante que a versão mais recente da sua XBAP é iniciada, pois uma versão na cache não pode ser encontrada. Se você depurar usando o Visual Studio 2005 e pressionando F5, a versão mais recente da sua XBAP deve ser iniciada.
Em geral, você deve atualizar o número de versão do conjunto de módulos (assembly) a cada versão.
Considerações sobre segurança em XBAPs
XBAPs devem ser executadas em um modo de proteção de segurança com confiança parcial restrito ao conjunto de permissões da zona da Internet. Consequentemente, a implementação deve suportar o subconjunto de elementos do WPF que são suportados na zona da Internet (consulte Windows Presentation Foundation Security).
Quando você hospedar o controle ActiveX do WebBrowser (WebOC) do processo do navegador Internet Explorer, as seguintes limitações de segurança se aplicam.
O Internet Explorer bloqueia as caixas de diálogo restritas do DHTML alert função e controles ActiveX hospedados em HTML. Internet Explorer Suprime caixas de diálogo que se originam de segmentos diferentes de thread da guia ativo.
Hospedando o controle WebOC gerará uma exceção quando um XBAP é carregado domínio cruzado em uma página HTML.
Considerações de desempenho de time de início XBAP
Um aspecto importante de XBAP o desempenho é a time de início. Se um XBAP é o primeiro aplicativo do WPF para carregar, o início frio time pode ser dez segundos ou mais. Isso ocorre porque a página de progresso é processado pelo WPF e o CLR e o WPF devem ser frio-iniciado para exibi-la.
A partir de Visual Studio 2008 SP1, XBAP time de início a frio é atenuada exibindo uma página de progresso não gerenciado no início do ciclo de implantação. A página de progresso aparece quase que imediatamente depois que o aplicativo é iniciado, porque ele é exibido pelo código nativo de hospedagem e processado em HTML.
Além disso, melhorou a simultaneidade do ClickOnce sequência de baixar melhora a time de início, até dez por cento. Depois de ClickOnce Downloads e valida manifestos de aplicativo baixar inicia e começa a BAR de progresso atualizar.
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Seção adicional no desempenho em time de início XBAP. |
Alteração de recurso do SP1. |