Al momento sei offline in attesa che la connessione Internet venga ristabilita

Utilizzo delle risorse Web in ASP.NET 2.0

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
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.
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.

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:
 piccoli errori
E sul passaggio del mouse, il controllo risulterà simile al seguente:
 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:
Come sempre, non esitate a inviare idee sugli argomenti desiderati risolto in future colonne o nella Knowledge Base utilizzando il Richiesti modulo.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 910442 - Ultima revisione: 04/30/2013 05:45:00 - Revisione: 3.0

Microsoft ASP.NET 2.0

  • kbhowto kbasp kbmt KB910442 KbMtit
Feedback