Trabalhar com recursos da Web no ASP.NET 2.0

Traduções de Artigos Traduções de Artigos
Artigo: 910442 - Ver produtos para os quais este artigo se aplica.
Coluna de voz de suporte do ASP.NET

Trabalhar com recursos da Web no ASP.NET 2.0

Para personalizar esta coluna às suas necessidades, pretendemos convidá-lo para submeter as suas ideias sobre tópicos que interessam problemas que pretende ver e corrigida no futuro artigos da Base de dados de conhecimento e de colunas de voz de suporte. Pode submeter ideias e comentários utilizando a Pedir formulário. Existe também uma hiperligação para o formulário na parte inferior desta coluna.
Expandir tudo | Reduzir tudo

Nesta página

Introdução

Hi! O meu nome estiver Yerneni de Praveen e sou um trabalho técnico de chumbo com o grupo de suporte do ASP.NET na Microsoft. Na coluna deste mês, vou para discutir a recursos da Web e como implementá-los no seu aplicação.

Se for um programador que trabalha COM extensivamente controlos, poderá ser útil deste artigo no endereçamento algumas da chave problemas que poderá enfrentar durante o desenvolvimento de controlos. Anteriormente, no Microsoft O ASP.NET 1.1, se pretender implementar ficheiros estáticos, tais como ficheiros. HTML,. css ficheiros, ficheiros de imagem e ficheiros de script, utilizando um controlo COM, tinha de criar um pacote de instalação e controlam estes ficheiros juntamente com o COM. Apesar de Isto funcionava, ele apresentados muitos problemas ao implementar o controlo. Para exemplo, poderá ter problemas com conflitos de versão, certificando-se com o ficheiros como imagens foram implementados na mesma localização ou com danificado ou eliminados ficheiros estáticos, que poderiam fazer com que o controlo falhe.

Web Recursos no Microsoft ASP.NET 2.0 aborda estas questões, permitindo a Programador incorporar estes recursos na assemblagem como. resources. Para aceder a estes recursos estáticos, pode chamar apenas um método do controlo código.

Como funcionam os recursos da Web

Recursos Web dependem de uma rotina de tratamento especial denominado WebResource, destinado a obter recursos da assemblagem e servir -los para o Web browser. O tipo de processador para WebResource é AssemblyResourceLoader.

Quando chega uma solicitação de cliente para WebResource, o processador de procura para o identificador de recurso Web no método QueryString do objecto pedido . Com base no valor de identificador de recurso Web, o rotina de tratamento, em seguida, tenta carregar a assemblagem que contenha este recurso. Se este a operação é efectuada com êxito, a rotina de tratamento, em seguida, irá procurar o atributo de assemblagem e carregar a sequência de recursos a partir da assemblagem. Finalmente, a rotina de tratamento será agarrar os dados do recurso transmitir em sequência e enviá-lo para o cliente em conjunto com o tipo de conteúdo que especificar no atributo de assemblagem.

O URL para WebResource tem o seguinte aspecto:
WebResource.axd?d=SbXSD3uTnhYsK4gMD8fL84_mHPC5jJ7lfdnr1_WtsftZiUOZ6IXYG8QCXW86UizF0&t=632768953157700078
O formato deste URL é WebResource.axd?d=encriptado Identificador& t =valor de carimbo de data / hora. O "d" significa o recurso Web pedido. O "t" é o carimbo de data/hora para o assemblagem pedida, o que pode ajudar a determinar se tiver havido qualquer alterações ao recurso.

Entrarmos o código

No exemplo, posso desenvolveram um controlo COM consumida pelos uma aplicação ASP.NET Web para demonstrar esta nova funcionalidade.

Controlo COM para o recurso Web

Para criar e incorporar um recurso Web, posso desenvolveram um COM controlo (SimpleControl). Tem os seguintes recursos incorporados:
  • Dois ficheiros denominados smallFail.gif de imagem e Estes ficheiros de imagem são utilizados para efeitos de rollover de smallSuccess.gif. o controlo e são consumidos no código de controlo.
  • Um ficheiro HTML com o nome Help.htm. Este ficheiro não conter a quantidade de texto e é apenas para demonstração.
  • Um ficheiro JavaScript denominado MyScript.js. Este ficheiro contém algum código JavaScript que também demonstra a funcionalidade de substituição Para obter uma referência a outro recurso incorporado no mesmo assemblagem.
  • Um ficheiro. css denominado MyStyleSheet.css. Este estilo folha, em seguida, é consumida directamente a partir da aplicação ASP.NET Web.
Neste artigo, vou falar das partes que são necessárias para Recursos da Web.
Incorporar os recursos da Web
Primeiro tem de certificar-se de que todos os ficheiros estáticos que são adicionados à biblioteca de controlo da Web são de projecto no Microsoft Visual Studio 2005 recursos incorporados. Para incorporar estes recursos, tudo o que tem a fazer é adicionar Estes ficheiros para o Visual Studio e, em seguida, modificar as propriedades destes ficheiros, que a acção de compilação está definida como Incorporado Recurso.

Depois de ter efectuado este, também tem de fazer -se que estes recursos foram referenciados pelo atributo de assemblagem WebResource no ficheiro AssemblyInfo.cs tal como abaixo indicado.
[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 assemblagem de WebResource tem três parâmetros do seguinte modo:
  • Recurso Web: O nome do recurso que está incorporado na assemblagem
  • ContentType: MIME o tipo de ficheiro para o recurso
  • PerformSubstitution: um valor booleano que determina se outros URLs de recurso Web que são referenciados neste recurso é analisado e substituído com o caminho completo do recurso
A obter os recursos da Web
Para obter o recurso Web, utilizei o método de GetWebResourceUrl , que é um método da classe ClientScriptManager que é normalmente utilizado para gerir scripts do lado do cliente. Este método devolve uma referência de URL para o recurso do lado do servidor que é incorporado numa assemblagem. O método GetWebResourceUrl aceita os dois parâmetros seguintes:
  • Tipo: O tipo de recurso do lado do servidor
  • Nome do recurso: O nome do recurso do lado do servidor
Para utilizar este método, primeiro tem de criar uma instância da classe ClientScriptManager e obter o tipo de classe conforme é ilustrado abaixo.
ClientScriptManager cs = Page.ClientScript;
            Type rsType = this.GetType();

Quando tiver uma instância desta classe, em seguida, tem de chamar este método e passar os parâmetros adequados tal como mostrado abaixo, onde posso criar um botão de hiperligação e definir o método NavigateURL para apontar para um recurso HTML incorporado.
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, criou um botão de imagem e o atributo ImageUrl é obter o respectivo valor de outra imagem. gif incorporado recurso.
Utilizando a funcionalidade de substituição
Outra funcionalidade útil da utilização de recursos da Web é a propriedade PerformSubstitution do atributo WebResource como é mostrado na secção "Incorporar a recursos da Web" acima. Esta funcionalidade permite-lhe efectivamente obter recursos da Web no interior de outro incorporado recurso. Se esta propriedade estiver activada, o processador WebResource irá analisar o recurso incorporado e substituir a sintaxe para o atributo de assemblagem de WebResource com recursos reais antes que servem o página.

No código que se segue, irá reparar que o controlo de hiperligação tem um evento do lado do cliente com o nome ChangeImage. Esta função ChangeImage . exe está localizada num ficheiro de script. Segue-se o código para este 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 ficheiro de script denominado MyScript.js também é um recurso incorporado no mesmo controlo de COM. E repare que estou a utilizar o método de WebResource para fazer referência a outro recurso incorporado no script ficheiro.

Além disso, certifique-se de que este ficheiro JavaScript é registado na a página, utilizar o método de RegisterClientScriptInclude da classe ClientScriptManager tal como abaixo indicado.
cs.RegisterClientScriptInclude("MyScript", cs.GetWebResourceUrl(rsType, "SimpleControl.MyScript.js"));

Consumir o controlo no ASP.NET

Depois de ter criado o controlo COM êxito, é necessário consumir este controlo num projecto do cliente do ASP.NET. Para tal, tem apenas de Adicione o controlo à caixa de ferramentas no ASP.NET. Em seguida, pode adicionar o controlo a qualquer No estruturador de formulário da Web.

Quando adiciona o controlo para caixa de ferramentas, o controlo é registado automaticamente e o código seguinte é adicionado quando observar a sintaxe HTML.
<cc1:MSButton ID="MSButton1" runat="server" strText="Problems?"></cc1:MSButton>
No controlo COM, é também incorporou um ficheiro de folha de estilo, o que posso será estar a utilizar na minha aplicação ASP.NET. Para aceder a esta folha de estilos, tem de adicionar uma hiperligação HtmlControl na página HTML e defina a propriedade runat ao servidor , tal como mostrado abaixo.
<link rel="Stylesheet"  id="lnkStyle" runat="server"  />
Depois, pode definir programaticamente o atributo Href deste controlo para apontar para o atributo de assemblagem de WebResource no evento Page_Load , tal como abaixo indicado.
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 executar o código, verá um controlo que se assemelhe a seguinte:
Reduzir esta imagemExpandir esta imagem
 pequenas falhas
E, no rato sobre o controlo será o seguinte aspecto:
Reduzir esta imagemExpandir esta imagem
 êxito pequeno
Quando clicar nesta hiperligação, ele o conduzirá à página de ajuda, que está incorporado no ficheiro de assemblagem de controlo de COM.

Conclusão

Recursos da Web é uma nova funcionalidade útil no ASP.NET 2.0. Pode utilizar Esta funcionalidade vantagens se utilizar com sensatez. Muitas técnicas de colocação em cache foram utilizados para se certificar de que os recursos da Web não afectam o desempenho do a aplicação.

No ASP.NET 2.0, WebResource é utilizado internamente pelo o Microsoft .NET Framework para obter recursos incorporados. Por exemplo, o .NET framework utiliza WebResource Para obter o script WebUIValidation.js ficheiro que é utilizado para controlos de validação e para obter o ficheiro de script de Menu.js para controlos de Menu .

Referências

Para mais informações, visite os seguintes Web sites da Microsoft:
Método de 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

Ligados vs. incorporados recursos
http://msdn2.microsoft.com/en-us/library/ht9h2dk8.aspx
Como sempre, não hesite em submeter ideias sobre os tópicos que pretende os destinatários nas colunas futuras ou na Knowledge Base utilizando o Pedir formulário.

Propriedades

Artigo: 910442 - Última revisão: 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 por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 910442
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

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