Utilizzo delle risorse Web in ASP.NET 2.0

Traduzione articoli Traduzione articoli
Identificativo articolo: 910442 - Visualizza i prodotti a cui si riferisce l?articolo.
Supporto di ASP.NET

Utilizzo delle risorse Web in ASP.NET 2.0

Per personalizzare questa colonna in base alle esigenze, desideriamo invitati a inviare le proprie idee sugli argomenti di interesse e sui problemi che si desiderano visualizzare la soluzione nei futuri articoli della Knowledge Base e Support Voice. ╚ possibile inviare idee e commenti e suggerimenti tramite il Richiesti modulo. ╚ inoltre disponibile un collegamento al modulo nella parte inferiore della colonna.
Espandi tutto | Chiudi tutto

In questa pagina

Introduzione

Ciao! Il mio nome Ŕ Praveen Yerneni e io sono un lavoro Technical Lead con il gruppo di supporto ASP.NET in Microsoft. In articolo questo, illustrer˛ per discutere di risorse Web e come implementarli nel applicazione.

Se siete uno sviluppatore che lavora spesso con COM controlli, utili in questo articolo nell'affrontare alcuni dei principali problemi che potrebbero verificarsi durante lo sviluppo di controlli. In precedenza, in Microsoft ASP.NET 1.1, se si desidera distribuire i file statici come i file HTML, CSS file, file di immagini e file di script utilizzando un controllo COM, Ŕ necessario creare un programma di installazione e bundle controllano questi file con il modello COM. Anche se Ci˛ funzionava, esso presentati molti dei problemi durante la distribuzione del controllo. Per esempio, si possono avere avuto problemi con conflitti di versione con assicurandosi file, ad esempio le immagini sono stati distribuiti nella stessa posizione o con danneggiati o eliminati i file statici che possono causare un errore del controllo.

Web Risorse in Microsoft ASP.NET 2.0 risolve questi problemi, consentendo la sviluppatore incorporare queste risorse nell'assembly come Resources. Per accedere alle seguenti risorse statiche, Ŕ possibile chiamare semplicemente un metodo del controllo codice.

Funzionamento delle risorse Web

Risorse Web si basano su un gestore speciale denominato WebResource. axd, che consente di recuperare le risorse di assembly e servire tali informazioni al browser Web. Il tipo di gestore per WebResource. axd Ŕ AssemblyResourceLoader.

Quando arriva una richiesta dal client per Il gestore WebResource. axd, Cerca l'identificatore di risorsa Web nel metodo QueryString dell'oggetto Request . In base al valore dell'identificatore di risorsa Web, il gestore tenta quindi di caricare l'assembly che contiene la risorsa. Se questo operazione ha esito positivo, il gestore cercherÓ quindi l'attributo di assembly e caricare il flusso della risorsa dall'assembly. Infine, il gestore verrÓ afferrare flusso di dati dalla risorsa e inviarlo al client con il tipo di contenuto specificato nell'attributo dell'assembly.

L'URL per WebResource. axd Ŕ simile al seguente:
WebResource.axd?d=SbXSD3uTnhYsK4gMD8fL84_mHPC5jJ7lfdnr1_WtsftZiUOZ6IXYG8QCXW86UizF0&t=632768953157700078
Il formato dell'URL Ŕ WebResource.axd?d=crittografato Identificatore& t =valore di timestamp. Il "d" rappresenta la risorsa Web richiesta. "t" Ŕ il timestamp per il assembly richiesto, che pu˛ contribuire a stabilire se sono state apportate eventuali modifiche alla risorsa.

Approfondire il codice

Nel mio esempio ho sviluppato un controllo COM utilizzata da un'applicazione Web ASP.NET per illustrare questa nuova funzionalitÓ.

Controllo COM per la risorsa Web

Per la creazione e l'incorporamento di una risorsa Web, ho sviluppato una COM controllo (SimpleControl). Presenta le seguenti risorse incorporate:
  • Due file denominati smallFail.gif di immagine e smallSuccess.gif. questi file di immagine vengono utilizzati per gli effetti di rollover nel controllo e sono utilizzati all'interno del codice di controllo.
  • Un file HTML denominato Help. htm. Questo file inesistente. contengono molto testo ed Ŕ solo per la dimostrazione.
  • Un file JavaScript denominato Myscript. js. Questo file contiene il codice JavaScript che dimostra inoltre la funzionalitÓ di sostituzione Per ottenere un riferimento a un'altra risorsa incorporata all'interno dello stesso assembly.
  • Un file CSS denominato myStyleSheet. Questo stile foglio viene utilizzato direttamente dall'applicazione Web ASP.NET.
In questo articolo verranno descritte le parti che sono necessarie per Risorse Web.
Incorporare le risorse Web
╚ innanzitutto necessario accertarsi che tutti i file statici sono aggiunto al progetto in Microsoft Visual Studio 2005 sono la libreria di controlli Web risorse incorporate. Per incorporare le risorse, tutto ci˛ che occorre fare Ŕ aggiungere Questi file di Visual Studio e quindi modificare le proprietÓ di questi file in modo che l'operazione di compilazione sia impostata su Incorporato Risorsa.

Una volta eseguita questa operazione, inoltre necessario rendere Verificare che queste risorse sono stato fatto riferimento dall'attributo di assembly WebResource nel file AssemblyInfo. cs come illustrato di seguito.
[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)]

L'attributo di assembly di risorse Web dispone di tre parametri come segue:
  • Risorsa Web: il nome della risorsa incorporata nell'assembly
  • ContentType: tipo di MIME del file per la risorsa
  • PerformSubstitution: un valore booleano che determina se gli URL delle altre risorse Web che viene fatto riferimento in questa risorsa vengono analizzati e sostituiti con il percorso completo della risorsa
Il recupero di risorse Web
Per ottenere la risorsa Web, ho utilizzato il metodo GetWebResourceUrl , che Ŕ un metodo della classe ClientScriptManager che viene in genere utilizzato per gestire gli script sul lato client. Questo metodo restituisce un riferimento URL a una risorsa lato server incorporato in un assembly. Il metodo GetWebResourceUrl accetta due parametri seguenti:
  • Tipo: il tipo della risorsa lato server
  • Nome della risorsa: nome della risorsa lato server
Per utilizzare questo metodo, si dispone creare un'istanza della classe ClientScriptManager e ottenere il tipo della classe, come illustrato di seguito.
ClientScriptManager cs = Page.ClientScript;
            Type rsType = this.GetType();

Quando si dispone di un'istanza di questa classe, quindi Ŕ necessario chiamare questo metodo metodo e passare i parametri appropriati come illustrato qui di seguito, in cui si crea un pulsante di collegamento ipertestuale e impostare il metodo NavigateURL in modo che punti a una risorsa HTML incorporata.
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);

Lo stesso codice elencati sopra, ho anche creato un pulsante immagine e l'attributo ImageUrl riceve il valore da un'altra immagine GIF incorporato risorsa.
Utilizzando la funzionalitÓ di sostituzione
Un'altra utile funzionalitÓ di utilizzo delle risorse Web Ŕ la proprietÓ PerformSubstitution dell'attributo WebResource come illustrato nella sezione "L'incorporamento di risorse Web" di sopra. Questa funzionalitÓ consente di ottenere effettivamente risorse Web all'interno di altro incorporato risorsa. Se questa proprietÓ Ŕ attivata, il gestore WebResource analizzerÓ la risorsa incorporata e sostituire la sintassi per l'attributo di assembly di risorse Web con risorse effettive prima di rendere disponibile il pagina.

Nel codice sopra riportato, si noterÓ che il controllo collegamento ipertestuale Ŕ un evento del lato client Ŕ denominato ChangeImage. Questa funzione di ChangeImage si trova in un file di script. Di seguito Ŕ riportato il codice Per questo 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;
}
Questo file script denominato Myscript. js Ŕ anche una risorsa incorporata nello stesso controllo COM. E notare che si sta utilizzando il metodo WebResource per fare riferimento a un'altra risorsa incorporata nello script file.

Inoltre, per assicurarsi che il file JavaScript sia registrato la pagina, utilizzare il metodo RegisterClientScriptInclude della classe ClientScriptManager come illustrato di seguito.
cs.RegisterClientScriptInclude("MyScript", cs.GetWebResourceUrl(rsType, "SimpleControl.MyScript.js"));

Utilizzo del controllo in ASP.NET

Dopo aver creato il controllo COM correttamente, Ŕ necessario Utilizzare questo controllo in un progetto client di ASP.NET. A tale scopo, Ŕ sufficiente aggiungere il controllo alla casella degli strumenti in ASP.NET. Quindi aggiungere il controllo a qualsiasi Web form nella finestra di progettazione.

Quando si aggiunge il controllo alla casella degli strumenti, il controllo viene registrato automaticamente e il codice riportato di seguito viene aggiunto quando si esaminano la sintassi HTML.
<cc1:MSButton ID="MSButton1" runat="server" strText="Problems?"></cc1:MSButton>
Nel controllo COM, ho inoltre incorporato un file del foglio di stile, come utilizzare nell'applicazione ASP.NET. Per accedere a questo foglio di stile, Ŕ necessario aggiungere collegamento HtmlControl nella pagina HTML e impostare la proprietÓ runat su server , come illustrato qui di seguito.
<link rel="Stylesheet"  id="lnkStyle" runat="server"  />
Successivamente, Ŕ possibile impostare a livello di codice l'attributo Href di questo controllo per fare riferimento all'attributo di assembly WebResource nell'evento Page_Load , come illustrato di seguito.
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 si esegue il codice, verrÓ visualizzato un controllo simile al successivo:
Riduci l'immagineEspandi l'immagine
 piccoli errori
E sul passaggio del mouse, il controllo risulterÓ simile al seguente:
Riduci l'immagineEspandi l'immagine
 successo di piccole dimensioni
Quando si fa clic su questo collegamento, si passerÓ alla pagina della Guida che Ŕ incorporato nel file di assembly del controllo COM.

Conclusione

Risorse Web Ŕ una nuova funzionalitÓ utili in ASP.NET 2.0. ╚ possibile utilizzare Questa funzionalitÓ a proprio vantaggio se si utilizza in modo appropriato. Numerose tecniche di memorizzazione nella cache sono stati utilizzati per assicurarsi che le risorse Web non influenzano le prestazioni di l'applicazione.

In ASP.NET 2.0, WebResource. axd viene utilizzata internamente da di.NET Framework Microsoft per recuperare le risorse incorporate. Ad esempio, il .NET Framework utilizza anche WebResource per recuperare lo script WebUIValidation.js file utilizzato per i controlli di convalida e per recuperare il file di script Menu.js per i controlli Menu .

Riferimenti

Per ulteriori informazioni, visitare i seguenti siti Web Microsoft:
Metodo 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

Risorse incorporate e collegate
http://msdn2.microsoft.com/en-us/library/ht9h2dk8.aspx
Come sempre, non esitate a inviare idee sugli argomenti desiderati risolto in future colonne o nella Knowledge Base utilizzando il Richiesti modulo.

ProprietÓ

Identificativo articolo: 910442 - Ultima modifica: martedý 30 aprile 2013 - Revisione: 3.0
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 2.0
Chiavi:á
kbhowto kbasp kbmt KB910442 KbMtit
Traduzione automatica articoli
IMPORTANTE: il presente articolo Ŕ stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l?obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre Ŕ perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilitÓ per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualitÓ della traduzione.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 910442
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

Invia suggerimenti

 

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