Trabalhando com recursos da Web em ASP.NET 2.0

Traduções deste artigo Traduções deste artigo
ID do artigo: 910442 - Exibir os produtos aos quais esse artigo se aplica.
Coluna de voz de suporte do ASP.NET

Trabalhando com recursos da Web em ASP.NET 2.0

Para personalizar esta coluna às suas necessidades, queremos convidá-lo para enviar suas idéias sobre tópicos que interessam a você e problemas que você deseja ver abordados em futuros artigos do Knowledge Base e colunas de voz de suporte. Você pode enviar suas idéias e comentários usando o Peça para ele formulário. Há também um link para o formulário na parte inferior desta coluna.
Expandir tudo | Recolher tudo

Neste artigo

Introdução

Olá! Meu nome é Praveen Yerneni e sou um trabalho técnico-chefe com o grupo de suporte do ASP.NET da Microsoft. Na coluna deste mês, vou me para discutir os recursos da Web e como implementá-los em seu aplicativo.

Se você for um desenvolvedor que trabalha extensivamente com controles, você pode achar este artigo útil no endereçamento de alguns dos principais problemas que podem enfrentar ao desenvolvimento de controles. Anteriormente, no Microsoft O ASP.NET 1.1, se você quiser implantar arquivos estáticos, como arquivos. HTML,. CSS arquivos, arquivos de imagem e arquivos de script usando um controle COM, você tinha que criar um instalador e um pacote de controlam esses arquivos junto com o COM. Embora Isso funcionou, ele apresentado muitos problemas ao implantar o controle. Para exemplo, você pode ter tido problemas com conflitos de versão, com certificando-se arquivos como imagens foram implantados no mesmo local ou com corrompido ou excluídos arquivos estáticos que podem causar o falha do controle.

Web Recursos no Microsoft ASP.NET 2.0 soluciona esses problemas, permitindo que o desenvolvedor incorporar esses recursos no assembly como. Resources. Para acessá-los recursos estáticos, você pode simplesmente chamar um método no controle do código.

Como funcionam os recursos da Web

Recursos da Web dependem de um manipulador especial que é chamado. WebResource, que é projetado para recuperar recursos de assembly e servir -los para o navegador da Web. O tipo de manipulador WebResource é AssemblyResourceLoader.

Quando chegar uma solicitação do cliente para WebResource, o manipulador de procura o identificador de recurso da Web no método QueryString do objeto Request . Com base no valor do identificador do recurso da Web, o manipulador, em seguida, tenta carregar o assembly que contém esse recurso. Se este operação for bem-sucedida, o manipulador, em seguida, procure o atributo de assembly e carregar o fluxo de recursos do assembly. Finalmente, o manipulador irá capturar fluxo de dados do recurso e enviá-lo para o cliente juntamente com o tipo de conteúdo que você especificar o atributo de assembly.

A URL para WebResource é semelhante ao seguinte:
WebResource.axd?d=SbXSD3uTnhYsK4gMD8fL84_mHPC5jJ7lfdnr1_WtsftZiUOZ6IXYG8QCXW86UizF0&t=632768953157700078
O formato da URL é WebResource.axd?d=criptografados Identificador& t =valor de carimbo de data / hora. O "d" significa para o recurso da Web solicitado. O "t" é o carimbo de hora para o assembly solicitado, que pode ajudar a determinar se houve qualquer alterações para o recurso.

Examinando o código

No meu exemplo, eu tenha desenvolvido um controle COM que é consumido por um aplicativo da Web do ASP.NET para demonstrar esse novo recurso.

Controle de COM para o recurso da Web

Para criar e incorporar um recurso da Web, que desenvolvi uma COM controle (SIMPLESCONTROLE). Ele possui os seguintes recursos incorporados:
  • Dois arquivos são nomeados smallFail.gif de imagem e Esses arquivos de imagem são usados para efeitos de sobreposição em smallSuccess.gif. o controle e são consumidos dentro do código de controle.
  • Um arquivo HTML que é chamado Help.htm. Este arquivo não conter a quantidade de texto e é apenas para demonstração.
  • Um arquivo JavaScript que é chamado Myscript. js. Este arquivo contém algum código JavaScript que também demonstra o recurso de substituição Para obter uma referência a outro recurso incorporado dentro do mesmo assembly.
  • Um arquivo. CSS é chamado mystylesheet. Este estilo planilha, em seguida, é consumida diretamente do aplicativo da Web do ASP.NET.
Neste artigo, falarei sobre as partes que são necessárias para Recursos da Web.
Incorporar os recursos da Web
Primeiro, você deve certificar-se de que todos os arquivos estáticos que são adicionado à biblioteca de controle da Web são de projeto no Microsoft Visual Studio 2005 recursos incorporados. Para incorporar esses recursos, tudo o que você precisa fazer é adicionar Esses arquivos para o Visual Studio e, em seguida, modifique as propriedades desses arquivos para que a ação de compilação é definida como Incorporado Recurso.

Após você ter feito isso, você também deve fazer Verifique se que esses recursos foram referenciados pelo atributo WebResource assembly no arquivo AssemblyInfo CS como mostrado abaixo.
[assembly: WebResource("SimpleControl.Help.htm", "text/html")]
[assembly: WebResource("SimpleControl.MyStyleSheet.css", "text/css")]
[assembly: WebResource("SimpleControl.smallFail.gif", "image/gif")]
[assembly: WebResource("SimpleControl.smallSuccess.gif", "image/gif")]
[assembly: WebResource("SimpleControl.MyScript.js", "text/javascript", PerformSubstitution = true)]

O atributo de assembly WebResource tem três parâmetros da seguinte maneira:
  • Recurso da Web: O nome do recurso que está incorporado no assembly
  • ContentType: tipo de arquivo MIME a para o recurso
  • PerformSubstitution: um valor booleano que determina se outras URLs de recursos da Web que são referenciadas neste recurso são analisados e substituídos com o caminho completo do recurso
Buscando os recursos da Web
Para obter o recurso da Web, usei o método GetWebResourceUrl , que é um método da classe ClientScriptManager que é normalmente usado para gerenciar scripts do lado do cliente. Esse método retorna uma referência URL para o recurso do lado do servidor é incorporado em um assembly. O método GetWebResourceUrl aceita dois parâmetros a seguir:
  • Tipo: O tipo de recurso do lado do servidor
  • Nome do recurso: O nome do recurso do servidor
Para usar esse método, primeiro você tem que criar uma instância da classe ClientScriptManager e obter o tipo da classe, conforme mostrado abaixo.
ClientScriptManager cs = Page.ClientScript;
            Type rsType = this.GetType();

Quando você tiver uma instância dessa classe, em seguida, você precisa chamá-lo método e passar os parâmetros apropriados conforme mostrado abaixo, onde posso criar um botão de HyperLink e definir o método NavigateURL para apontar para um recurso incorporado de HTML.
HyperLink hlHelpFile = new HyperLink();
            hlHelpFile.NavigateUrl = cs.GetWebResourceUrl(rsType, "SimpleControl.Help.htm");
            hlHelpFile.Attributes.Add("onmouseover", "ChangeImage('image1','Red')");
            hlHelpFile.Attributes.Add("onmouseout", "RollbackImage('image1','Green')");
            
            this.Controls.Add(hlHelpFile);

            Image imgTest = new Image();
            imgTest.ImageUrl = cs.GetWebResourceUrl(rsType, "SimpleControl.smallFail.gif");
            imgTest.ID = "image1";
            hlHelpFile.Controls.Add(imgTest);

Também no mesmo código de listagem acima, criei um botão de imagem e o atributo ImageUrl está recebendo o valor de outra imagem. gif incorporado recurso.
Usando o recurso de substituição
Outro recurso útil do uso de recursos da Web é a propriedade PerformSubstitution do atributo WebResource como mostrado na seção "Incorporar os recursos da Web" acima. Esse recurso permite que você realmente obter recursos da Web dentro de outro incorporado recurso. Se esta propriedade estiver habilitada, o manipulador WebResource irá analisar o recurso incorporado e substitua a sintaxe para o atributo de assembly WebResource por recursos reais antes servindo a página.

No código acima, você irá notar que o controle HyperLink tem um evento de cliente que é denominado ChangeImage. Esta função ChangeImage está localizada em um arquivo de script. A seguir está o código para esse script.
function ChangeImage(imgControl,varcolor){
   document.getElementById(imgControl).src = '<%= WebResource("SimpleControl.smallSuccess.gif")%>';
    document.getElementById('Label1').style.color = varcolor;
}

function RollbackImage(imgControl, varcolor){
   document.getElementById(imgControl).src = '<%= WebResource("SimpleControl.smallFail.gif")%>';
   document.getElementById('Label1').style.color = varcolor;
}
Este arquivo de script chamado Myscript. js também é um recurso incorporado no mesmo controle COM. E observe que estou usando o método WebResource para fazer referência a outro recurso incorporado no script arquivo.

Além disso, para certificar-se de que esse arquivo JavaScript é registrado no a página, eu uso o método RegisterClientScriptInclude da classe ClientScriptManager como mostrado abaixo.
cs.RegisterClientScriptInclude("MyScript", cs.GetWebResourceUrl(rsType, "SimpleControl.MyScript.js"));

Consumindo o controle no ASP.NET

Após você ter criado o controle COM êxito, você precisa consuma esse controle em um projeto do ASP.NET cliente. Para fazer isso, você só precisa Adicione o controle à caixa de ferramentas no ASP.NET. Em seguida, você pode adicionar o controle a qualquer Formulário da Web no designer.

Quando você adicionar o controle à caixa de ferramentas, o o controle está registrado para você e o código a seguir é adicionado quando você examinar a sintaxe HTML.
<cc1:MSButton ID="MSButton1" runat="server" strText="Problems?"></cc1:MSButton>
No meu controle COM, eu também têm incorporado um arquivo de folha de estilos será ser usando em meu aplicativo ASP.NET. Para acessar esta folha de estilos, você deve adicionar um link HtmlControl na página HTML e defina a propriedade runatservidor como mostrado abaixo.
<link rel="Stylesheet"  id="lnkStyle" runat="server"  />
Depois disso, você pode definir programaticamente o atributo Href deste controle para apontar para o atributo de assembly WebResource no evento Page_Load , como mostrado abaixo.
protected void Page_Load(object sender, EventArgs e)
    {
        //Get the name of the Web Resource.
        String rsname = "SimpleControl.MyStyleSheet.css";
        
        //Get the type of the class.
        Type rstype = typeof(SimpleControl.MSButton);

        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;
        lnkStyle.Href = cs.GetWebResourceUrl(rstype, rsname);
     }

Quando você executa o código, você verá um controle que é semelhante a a seguir:
Recolher esta imagemExpandir esta imagem
 pequenas falhas
E no mouse-over, o controle será a seguinte aparência:
Recolher esta imagemExpandir esta imagem
 sucesso pequeno
Quando você clicar nesse link, ela levará você para a página de Ajuda, que é incorporado no arquivo de assembly do controle COM.

Conclusão

Recursos da Web é um novo recurso útil no ASP.NET 2.0. Você pode usar Esse recurso em seu benefício se você usá-lo com sabedoria. Muitas técnicas de cache foram usados para certificar-se de que os recursos da Web não afetam o desempenho de o aplicativo.

No ASP.NET 2.0, WebResource é usado internamente pelo o.NET Framework do Microsoft para recuperar recursos incorporados. Por exemplo, o .NET Framework usa WebResource para recuperar o script WebUIValidation.js arquivo que é usado para controles de validação e para recuperar o arquivo de script Menu.js para controles de Menu .

Referências

Para obter mais informações, visite os seguintes sites da Microsoft:
Método ClientScriptManager.GetWebResourceUrl
http://msdn2.microsoft.com/en-us/library(d=robot) /system.web.ui.clientscriptmanager.getwebresourceurl.aspx

Classe WebResourceAttribute
http://msdn2.microsoft.com/en-us/library(d=robot) /system.web.ui.webresourceattribute.aspx

Recursos vinculados versus incorporados
http://msdn2.microsoft.com/en-us/library/ht9h2dk8.aspx
Como sempre, fique à vontade para enviar idéias sobre tópicos que você deseja abordado em colunas futuras ou na Base de dados de conhecimento usando o Peça para ele formulário.

Propriedades

ID do artigo: 910442 - Última revisão: terça-feira, 30 de abril de 2013 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 2.0
Palavras-chave: 
kbhowto kbasp kbmt KB910442 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
Clique aqui para ver a versão em Inglês deste artigo: 910442
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com