Makale numarası: 910442 - Son Gözden Geçirme: 15 Ocak 2007 Pazartesi - Gözden geçirme: 1.3

' De, ASP.NET 2.0 Web kaynakları ile çalışma

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
ASP.NET Destek Sesi Sütunu

' De, ASP.NET 2.0 Web kaynakları ile çalışma

Bu sütun için kendi gereksinimlerinize göre özelleştirmenin sizi ilgilendiren konular hakkındaki fikirlerinizi göndermeye davet etmek isteriz ve gelecekte Knowledge Base makaleleri ve Destek Sesi sütunu görmek istediğiniz sorunlar giderilmiştir. Kendi fikirleri ve Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) formunu kullanarak geri besleme gönderebilirsiniz. Formun alt kısmındaki bu sütunun. bağlantı da orada

Bu Sayfada

Hepsini aç | Hepsini kapa

Giriş

Yüksek! Adımı Praveen Yerneni, teknik Microsoft ASP.NET destek grubuyla çalışma neden yazdırıyorum. Bu ayın sütununda MIYIM Web kaynaklarını ve nasıl uygulanacaklarının, uygulamanızda tartışın gitme.

Bir geliştirici iseniz, kimin bolca COM çalıştığı denetler, bu makalenin bazı önemli sorunların, denetimleri geliştirirken yüz adresleme kullanışlı olabilir. Bir COM denetimi kullanarak bir .html dosyaları, .css dosya, resim dosyaları ve komut dosyaları gibi statik dosyalara dağıtmak isterseniz, daha önce Microsoft ASP.NET 1. 1'de, yükleyici oluşturmak ve bir COM denetimi ile birlikte bu dosyaları paketlemenize gerekiyordu. Bu çalıştı, ancak birçok sorunu denetimi dağıtımı sırasında gösterilir. Örneğin, sürüm çakışmaları, resim gibi dosyaları aynı konuma dağıtmış emin olun veya denetimi başarısız olmasına neden olabilecek bozulmuş veya silinmiş statik dosyaları yaşadı.

Web kaynakları, Microsoft ASP.NET 2.0 .resources olarak derlemesinde bu kaynakları katıştırmak geliştirici vererek bu sorunları giderir. Bu statik kaynaklara erişmek için <a0></a0>, yalnızca denetimin kodda bir yöntemini ça??rabilirsiniz.

Bu makaledeki örnek kod, Microsoft Yükleme Merkezi'nden yükleyebilirsiniz.

Aşağıdaki dosyalar Microsoft Yükleme Merkezi'nden yüklenebilir:
Bu resmi kapatBu resmi aç
Download
Download the ConsumeControl.exe package now. (http://download.microsoft.com/download/a/6/c/a6cb843e-7eda-42fb-ade5-1f77d893c1e3/consumecontrol.exe)
Bu resmi kapatBu resmi aç
Download
Download the SimpleControl.exe package now. (http://download.microsoft.com/download/a/6/c/a6cb843e-7eda-42fb-ade5-1f77d893c1e3/simplecontrol.exe)
Microsoft Destek dosyalarını karşıdan yükleme hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591  (http://support.microsoft.com/kb/119591/ ) Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır.

Web kaynaklarını nasıl çalışır?

Web kaynakları derleme kaynakları almak ve bunları Web tarayıcısına hizmet için tasarlanmış olan WebResource.axd adlı özel bir işleyici yararlanır. Için WebResource.axd işleyicisinin AssemblyResourceLoader türüdür.

Bir istek için WebResource.axd istemciden geldiğinde, işleyici <a0>Request</a0> nesnesinin <a1>QueryString</a1> yönteminde Web Kaynak tanıtıcısı arar. Web Kaynak tanıtıcısı değeri temel alarak, işleyicinin sonra bu kaynağı içeren Derleme yüklenemedi çalışır. Bu işlem başarılı olursa, işleyici derleme özniteliği için arayın ve kaynak akışı Derleme yüklenemedi. Son olarak, işleyicinin kaynak akış verileri alın ve istemciye derleme özniteliği belirttiğiniz içerik türü ile birlikte gönderin.

URL için WebResource.axd görünümler, aşağıdakine benzer:
WebResource.axd?d=SbXSD3uTnhYsK4gMD8fL84_mHPC5jJ7lfdnr1_WtsftZiUOZ6IXYG8QCXW86UizF0&t=632768953157700078
Bu URL'nin WebResource.axd?d= encrypted identifier & t biçimidir =time stamp value. "d" istenen Web kaynağı için anlamına gelir. "t" istenen derlemeyi edilmiştir, kaynak için herhangi bir değişiklik belirlemede yardımcı olmak için zaman damgası ' dir.

Kodu delving

Kullandığım bir örnekte, bu yeni özellik göstermek için bir ASP.NET Web uygulaması tarafından tüketilen bir COM denetimi MIYIM geliştirilen.

Web kaynağı için bir COM denetimi

Oluşturma ve bir Web kaynak katıştırma için BANA bir COM geliştirilen <a1>denetimi</a1> (SimpleControl). Bu, katıştırılmış aşağıdaki kaynaklar şunlardır:
  • Iki smallFail.gif ve smallSuccess.gif adlı dosyaları görüntü. Bu resim dosyalarını çevirme efektlerini denetiminde kullanılan ve denetim kodu içinde tüketilir.
  • Help.htm adlı bir HTML dosyası. Bu dosya metin içermeyen ve yalnızca gösteri için.
  • MyScript.js adlı bir JavaScript dosya. Bu dosya da aynı derlemenin içinde başka bir katıştırılmış kaynak için bir başvuru almak için değiştirme özelliğini gösterir bazı JavaScript kodunu içerir.
  • MyStyleSheet.css adlı bir .css dosyasında. Bu stil sayfası, ASP.NET Web uygulamasından sonra tüketilen.
Bu makalede, Web kaynakları için gerekli olan bölümleri ı tartışılacaktır.
Web kaynakları katıştırma
Önce Visual Studio 2005'te Web denetim kitaplığı projeye eklenen statik dosyaları katıştırılmış kaynak olduğundan emin olması. Bu kaynaklar katıştırmak için <a0></a0>, tüm yapmanız gereken, bu dosyalar Visual Studio'ya ekleme ve oluşturma eylemi için Katıştırılmış kaynak ayarlanmışsa bu dosyaların özelliklerini değiştirin.

Bunu yaptıktan sonra Ayrıca bu kaynakları AssemblyInfo.cs dosyasındaki WebResource derleme özniteliği tarafından aşağıdaki gibi başvuru olduğunu emin olmalısınız.
[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)]

WebResource derleme özniteliği üç şekilde sahiptir:
  • Web kaynak: derlemede katıştırılmış kaynak adı
  • ContentType: MIME dosyası kaynak türü
  • PerformSubstitution: Bu kaynak başvurulan diğer Web Kaynak URL ayrıştırılır ve kaynağın tam yolu ile değiştirilir olup olmadığını belirleyen BIR Boolean değeri
Web kaynakları getiriliyor
Web kaynağı almak için ClientScriptManager sınıfının yönetme istemci tarafında çalışan komut dosyaları için genel olarak kullanılan bir yöntemdir GetWebResourceUrl yöntemi kullandınız. Bu yöntem, bir derlemede katıştırılmış olan bir sunucu tarafı Kaynak URL başvurusu döndürür. GetWebResourceUrl yöntemi aşağıdaki iki parametre kabul eder:
  • Türü: sunucu tarafındaki kaynak türü
  • Kaynak adı: sunucu tarafındaki kaynak adı
To use this method, first you have to create an instance of the ClientScriptManager class and get the type of the class as shown below.
ClientScriptManager cs = Page.ClientScript;
            Type rsType = this.GetType();

When you have an instance of this class, you then have to call this method and pass the appropriate parameters as shown below, where I create a HyperLink button, and set the NavigateURL method to point to an embedded HTML resource.
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);

Also in the same code listing above, I have created an Image button and the ImageUrl attribute is getting its value from another embedded .gif image resource.
Değiştirme özelliğini kullanma
Web kaynakları'nı kullanarak başka bir kullanışlı özelliği PerformSubstitutionWebResource özniteliği yukarıdaki "Web kaynaklarını katıştırma" bölümünde gösterilen özelliğidir. Bu özellik gerçekte Web kaynakları, içinde başka bir katıştırılmış kaynak edinmenize olanak verir. Bu özellik etkinleştirilirse, WebResource işleyicisi katıştırılmış kaynak çözümleme ve WebResource derleme özniteliği sözdizimi, sayfanın hizmet veren önce fiili kaynaklarla değiştirin.

Yukarıdaki kod Köprü denetimini ChangeImage adlı bir istemci tarafı olay olduğunu görürsünüz. Bu ChangeImage işlevi, bir komut dosyasında bulunur. Aşağıdaki u (Yürüt) tıklatıp komut bu dosyasını
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;
}
MyScript.js adlı bu komut dosyası da bir katıştırılmış aynı COM denetiminde kaynaktır. Ve WebResource yöntemi başka bir katıştırılmış komut dosyası kaynağı için kullanıyorum, dikkat edin.

Ayrıca, sayfa bu JavaScript dosyası kayıtlı olduğundan emin olmak için ClientScriptManager sınıfının RegisterClientScriptInclude yöntemi aşağıda gösterildiği gibi kullanıyorum.
cs.RegisterClientScriptInclude("MyScript", cs.GetWebResourceUrl(rsType, "SimpleControl.MyScript.js"));

ASP.NET denetimi kullanma

COM denetimi başarıyla yerleşik sonra bu denetim, istemci bir ASP.NET projesinde kullanmak gerekir. Bunu yapmak için <a0></a0>, yalnızca Denetim Araç kutusu ASP.NET'te eklemeniz gerekir. Sonra herhangi bir Web form tasarımcısında denetimi ekleyebilirsiniz.

Denetim araç kutusuna eklediğiniz denetim için kaydedilir ve HTML sözdizimi baktığınızda, aşağıdaki kodu eklenir.
<cc1:MSButton ID="MSButton1" runat="server" strText="Problems?"></cc1:MSButton>
Kullandığım bir COM denetimi içinde TıKLATTıĞıMDA de ı ASP.NET Uygulamam kullanarak bir stil sayfası dosyasını katıştırılmış. Bu stil sayfasına erişmek için <a0></a0>, bağlantı HtmlControl HTML sayfası ekleyin ve aşağıda gösterildiği gibi sunucurunat özelliğini ayarlamanız gerekir.
<link rel="Stylesheet"  id="lnkStyle" runat="server"  />
Bundan sonra program aracılığıyla Page_Load</a0> olayına WebResource derleme özniteliği aşağıda gösterildiği gibi işaret etmek için bu denetimin Href niteliğini ayarlayabilirsiniz.
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);
     }

kodunu çalıştırdığınızda, görünümler, aşağıdakine benzer bir denetimin görürsünüz:
Bu resmi kapatBu resmi aç
 small fail
Ve fare üzerinde denetimi aşağıdaki gibi arar:
Bu resmi kapatBu resmi aç
 small success
Bu bağlantıyı tıklattığınızda, bu sizi COM denetimi derleme dosyasında Katıştırılmış Yardım sayfaya götürür.

Sonuç

Web kaynakları ASP.NET 2. 0'daki yeni bir kullanışlı özelliği ise. Akıllıca kullanıyorsanız, bu özellik, kendi avantajı için kullanabilirsiniz. Birçok önbelleğe alma teknikleri, Web kaynakları, uygulamanın performansını etkilemez emin olmak için kullanılmış.

ASP.NET 2. 0'da, WebResource.axd Microsoft .NET Framework'ün katıştırılmış kaynak almak için dahili olarak kullanılır. Örneğin, .NET Framework, doğrulama denetimleri için kullanılan WebUIValidation.js komut dosyasını almaya ve Menu.js menü denetimleri için komut dosyasını almak için WebResource.axd kullanır.

Başvurular

Daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
ClientScriptManager.GetWebResourceUrl yöntemi
http://msdn2.microsoft.com/en-us/library(d=robot)/system.web.ui.clientscriptmanager.getwebresourceurl.aspx (http://msdn2.microsoft.com/en-us/library(d=robot)/system.web.ui.clientscriptmanager.getwebresourceurl.aspx)

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

Katıştırılmış kaynakları ile bağlantılı
http://msdn2.microsoft.com/en-us/library/ht9h2dk8.aspx (http://msdn2.microsoft.com/en-us/library/ht9h2dk8.aspx)
Web kaynakları hakkında daha fazla bilgi için aşağıdaki Web günlükleri'Nikhil Kothari tarafından bakın:
System.Web.UI.WebResourceAttribute ile nedir?
http://www.nikhilk.net/WebResourceAttribute.aspx (http://www.nikhilk.net/WebResourceAttribute.aspx)

Web kaynakları ile hizmet reddi saldırıları için Azaltıcı
http://www.nikhilk.net/WebResourcesDenialOfServiceAttack.aspx (http://www.nikhilk.net/WebResourcesDenialOfServiceAttack.aspx)
Her zaman olarak, gelecekte sütunları adreslenmiş istediğiniz konuları veya bilgi bankasının Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) formunu kullanarak fikir gönderme bildirmekten çekinmeyin.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 2.0
Anahtar Kelimeler: 
kbmt kbhowto kbasp KB910442 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:910442  (http://support.microsoft.com/kb/910442/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.