Web Sitenizi Önceden Derleme (C#)
tarafından Scott Mitchell
Visual Studio, ASP.NET geliştiricilere iki tür proje sunar: Web Uygulaması Projeleri (WAP' ler) ve Web Sitesi Projeleri (WSP'ler). İki proje türü arasındaki temel farklardan biri, WAP'lerin kodu dağıtımdan önce açıkça derlenmiş olması, WSP'deki kodun ise web sunucusunda otomatik olarak derlenebilmesidir. Ancak, dağıtımdan önce bir WSP'yi önceden derlemek mümkündür. Bu öğreticide, ön derlemenin avantajları incelenmiş ve Visual Studio'nun içinden ve komut satırından bir web sitesinin nasıl önceden derlenmiş olduğu gösterilmektedir.
Giriş
Visual Studio, ASP.NET geliştiricilere iki farklı proje türü sunar: Web Uygulaması Projeleri (WAP) ve Web Sitesi Projeleri (WSP). Bu proje türleri arasındaki temel farklardan biri, WAP'lerin açık derleme gerektirmesi, WSP'lerin ise varsayılan olarak otomatik derleme kullanmasıdır. WAP'ler ile web uygulamasının kodunu web sitesinin Bin
klasöründe oluşturulan tek bir derlemede derlersiniz. Dağıtım, projedeki işaretleme içeriğinin ( .aspx.ascx
, ve .master
dosyaları) klasördeki Bin
derlemeyle birlikte kopyalanmasını gerektirir; arka planda kod içeren sınıf dosyalarının dağıtılması gerekmez. Öte yandan, hem işaretleme sayfalarını hem de karşılık gelen kod arkası sınıflarını üretim ortamına kopyalayarak WSP'leri dağıtırsınız. Arka planda kod sınıfları web sunucusunda isteğe bağlı olarak derlenir.
Not
Proje modelleri arasındaki farklar, açık ve otomatik derleme ve derleme modelinin dağıtımı nasıl etkilediği hakkında daha fazla arka plan için Hangi Dosyaların Dağıtılması Gerektiğini Belirleme öğreticisindeki "Açık Derleme ve Otomatik Derleme" bölümüne geri bakın.
Otomatik derleme seçeneğinin kullanımı kolaydır. Açık derleme adımı yoktur ve yalnızca değiştirilmiş dosyaların dağıtılması gerekirken, açık derleme değiştirilen işaretleme sayfalarının ve yeni derlenmiş derlemenin dağıtılması gerekir. Ancak otomatik dağıtımın iki olası dezavantajı vardır:
- Sayfalar ilk ziyaret edildiğinde otomatik olarak derlenmeleri gerektiğinden, dağıtıldıktan sonra ilk kez bir ASP.NET sayfası istendiğinde kısa ama fark edilebilir bir gecikme olabilir.
- Otomatik derleme, hem bildirim temelli işaretlemenin hem de kaynak kodunun web sunucusunda mevcut olmasını gerektirir. Bu, web uygulamasını web sunucularına yükleyecek müşterilere satmayı planlıyorsanız çekici olmayan bir seçenek olabilir.
Yukarıdaki iki eksiklik arasında anlaşma ayırıcılar varsa WAP modeline geçebilir veya dağıtımdan önce WSP'yi önceden derleyebilirsiniz . Bu öğretici, barındırılan bir web sitesi için en uygun ön derleme seçeneklerini inceler ve önceden derlenmiş bir web sitesinin ön derleme işleminde ve dağıtımında yol gösterir.
ASP.NET Kod Oluşturma ve Derlemeye Genel Bakış
Kullanılabilir ön derleme seçeneklerine bakmadan önce, bir ASP.NET sayfası oluşturulduğundan veya son güncelleştirildiğinden bu yana ilk kez istendiğinde oluşan kod oluşturma ve derleme hakkında konuşalım. Bildiğiniz gibi, ASP.NET sayfalar iki kısımdan oluşur: dosyada .aspx
bildirim temelli işaretleme ve genellikle ayrı bir arka kod arkası sınıf dosyasında (.aspx.cs
) bir kaynak kod bölümü. bir ASP.NET sayfası istendiğinde çalışma zamanı tarafından gerçekleştirilen adımlar uygulamanın derleme modeline bağlıdır.
WAP'ler ile, sayfaların kaynak kodu dağıtılmadan önce açıkça tek bir derlemede derlenmelidir. Dağıtım sırasında bu derleme ve çeşitli işaretleme sayfaları üretim ortamına kopyalanır. bir ASP.NET sayfası için web sunucusuna bir istek ulaştığında, çalışma zamanı sayfanın arka planda kod sınıfının bir örneğini oluşturur ve yöntemini çağırır ProcessRequest
; bu da sayfa yaşam döngüsünü başlatır ve sonuçta istek sahibine döndürülen sayfanın içeriğini oluşturur. Arka planda kod sınıfı dağıtımdan önce bir derlemede derlendiğinden çalışma zamanı ASP.NET sayfasının arka kod sınıfıyla çalışabilir.
WSP'ler ve otomatik derleme ile dağıtımdan önce açık derleme adımı yoktur. Bunun yerine, dağıtım hem bildirim temelli hem de kaynak kod içeriğinin üretim ortamına kopyalanmasını içerir. Sayfa oluşturulduktan veya son güncelleştirildiğinden bu yana bir ASP.NET sayfası için web sunucusuna bir istek ulaştığında, çalışma zamanının önce arka planda kod sınıfını derlemesi gerekir. Bu derlenmiş derleme klasörüne %WINDIR%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
kaydedilir, ancak bu klasörün konumu genellikle içinde Web.config
öğesi <system.web>
aracılığıyla <compilation tempDirectory="" />
özelleştirilebilir. Derleme diske kaydedildiğinden, aynı sayfaya yapılan sonraki isteklerde yeniden derlenmiş olması gerekmez.
Not
Beklediğiniz gibi, sunucunun sayfanın kodunu derlemesi ve sonuçta elde edilen derlemeyi diske kaydetmesi biraz zaman aldığından otomatik derleme kullanan bir sitede sayfayı ilk kez isterken (veya değiştirildikten sonra ilk kez) küçük bir gecikme olur.
Kısacası, açık derleme ile dağıtımdan önce web sitesinin kaynak kodunu derlemeniz ve çalışma zamanını bu adımı gerçekleştirmek zorunda kalmadan kaydetmeniz gerekir. Otomatik derleme ile çalışma zamanı sayfaların kaynak kodunun derlenmesini işler, ancak oluşturulduğundan veya son güncelleştirildiğinden bu yana sayfaya yapılan ilk ziyaret için küçük bir başlatma maliyetiyle.
Peki ASP.NET sayfaların bildirim temelli bölümü ( .aspx
dosya) ne olacak? Bildirim temelli işaretlemede tanımlanan Web denetimlerine koddan erişilebildiği için dosyalar ve kod arkası sınıflarındaki kod arasında .aspx
bir ilişki olduğu açıktır. Dosyalardaki .aspx
içeriğin sayfa tarafından oluşturulan işlenmiş işaretlemeyi büyük ölçüde etkilediği de açıktır. Peki çalışma zamanı, istenen sayfanın işlenmiş içeriğini oluşturmak için dosyada .aspx
tanımlanan metin, HTML ve Web denetimi söz dizimi ile nasıl çalışır?
WAP'ler ve WSP'ler arasında farklılık gösteren alt düzey uygulama ayrıntılarında çok fazla izleme yapmak istemiyorum, ancak özetle çalışma zamanı çeşitli Web denetimlerini korumalı üyeler ve yöntemler olarak içeren bir sınıf dosyasını otomatik olarak oluşturur. Oluşturulan bu dosya, karşılık gelen arka kod sınıfına kısmi sınıf olarak uygulanır. (Kısmi sınıflar , tek bir sınıfın içeriğinin birden çok dosyaya yayılmasını sağlar.) Bu nedenle, arka planda kod sınıfı iki yerde tanımlanır: oluşturduğunuz dosyada .aspx.cs
ve çalışma zamanı tarafından oluşturulan bu otomatik oluşturulan sınıfta. Otomatik olarak oluşturulan bu sınıf klasörde depolanır %WINDIR%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
.
Burada önemli olan, bir ASP.NET sayfasının çalışma zamanı tarafından işlenmesi için hem bildirim temelli hem de kaynak kod bölümlerinin bir derlemede derlenmiş olmasıdır. WAP'ler ile, kaynak kod dağıtım öncesinde açıkça bir derlemeye derlenmiştir, ancak bildirim temelli işaretlemenin yine de koda dönüştürülmesi ve web sunucusundaki çalışma zamanı tarafından derlenmiş olması gerekir. Otomatik derleme kullanan WSP'ler ile hem kaynak kodun hem de bildirim temelli işaretlemenin web sunucusu tarafından derlenmesi gerekir.
WSP modeliyle açık derleme kullanmak mümkündür. WAP modeliyle olduğu gibi kaynak kodu bölümünü açıkça derleyebilirsiniz. Dahası, bildirim temelli işaretlemeyi de derleyebilirsiniz.
Ön Derleme Seçenekleri
.NET Framework, WSP modeli kullanılarak oluşturulan bir ASP.NET uygulamasının kaynak kodunu (ve hatta içeriğini) derlemenizi sağlayan bir ASP.NET derleme aracıaspnet_compiler.exe
() ile birlikte gönderilir. Bu araç .NET Framework sürüm 2.0 ile yayımlandı ve klasörde bulunur%WINDIR%\Microsoft.NET\Framework\v2.0.50727
; komut satırından kullanılabilir veya Derleme menüsünün Web Sitesini Yayımla seçeneği aracılığıyla Visual Studio'nun içinden başlatılabilir.
Derleme aracı iki genel derleme biçimi sağlar: yerinde ön derleme ve dağıtım için ön derleme. Yerinde ön derleme ile aracı komut satırından çalıştırır aspnet_compiler.exe
ve bilgisayarınızda bulunan bir web sitesinin sanal dizininin veya fiziksel yolunu belirtirsiniz. Derleme aracı daha sonra projedeki her ASP.NET sayfasını derler ve derlenmiş sürümü, sayfaların %WINDIR%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
ilk kez bir tarayıcıdan ziyaret edilmiş olduğu gibi klasörde depolar. Yerinde ön derleme, çalışma zamanının bu adımı gerçekleştirme gereksinimini ortadan kaldırdığı için sitenizdeki yeni dağıtılan ASP.NET sayfalarına yapılan ilk isteği hızlandırabilir. Ancak, web sunucusunun komut satırından program çalıştırabilmenizi gerektirdiğinden, barındırılan web sitelerinin çoğu için yerinde ön derleme kullanışlı değildir. Paylaşılan barındırma ortamlarında bu erişim düzeyine izin verilmez.
Not
Yerinde ön derleme hakkında daha fazla bilgi için Bkz. Nasıl Yapılır: web sitelerini ASP.NETön derleme ve ASP.NET 2.0'da ön derleme.
Web sitesindeki sayfaları klasöre derlemek Temporary ASP.NET Files
yerine, dağıtım için ön derleme sayfaları seçtiğiniz bir dizine ve üretim ortamına dağıtılabilir bir biçimde derler.
Bu öğreticide incelediğimiz dağıtım için iki tür ön derleme vardır: güncelleştirilebilir kullanıcı arabirimiyle ön derleme ve güncelleştirilemeyen kullanıcı arabirimiyle ön derleme. Güncelleştirilebilir kullanıcı arabirimiyle önceden derleme, , .ascx
ve dosyalarındaki .aspx
bildirim temelli işaretlemeyi bırakır ve .master
böylece bir geliştiricinin üretim sunucusunda bildirim temelli işaretlemeyi görüntülemesine ve değiştirmesine olanak tanır. Güncelleştirilemeyen bir kullanıcı arabirimiyle önceden derleme, herhangi bir içeriğin geçersiz olduğu sayfalar oluşturur .aspx
ve dosyaları kaldırır .ascx
, .master
böylece bildirim temelli işaretlemeyi gizler ve bir geliştiricinin üretim ortamından değiştirmesini engeller.
Güncelleştirilebilir Kullanıcı Arabirimi ile Dağıtım için Önceden Derleme
Dağıtım için ön derlemeyi anlamanın en iyi yolu, bir örneği uygulamada görmektir. Şimdi güncelleştirilebilir bir kullanıcı arabirimi kullanarak dağıtım için Kitap İncelemeleri WSP'sini önceden derleyelim. ASP.NET derleme aracı Visual Studio'nun Derleme menüsünden veya komut satırından çağrılabilir. Bu bölümde Visual Studio'dan aracın kullanımı incelendiğinde; "Komut Satırından Önceden Derleme" bölümünde, komut satırından derleyici aracını çalıştırmaya bakılır.
Visual Studio'da Kitap Gözden Geçirme WSP'sini açın, Oluştur menüsüne gidin ve Web Sitesini Yayımla menü seçeneğini belirleyin. Bu, önceden derlenmiş sitenin kullanıcı arabiriminin güncelleştirilebilir olup olmadığını ve diğer derleyici aracı seçeneklerini belirtebileceğiniz, hedef konumu belirtebileceğiniz Web Sitesi Yayımla iletişim kutusunu (bkz . Şekil 1) başlatır. Hedef konum bir uzak web sunucusu veya FTP sunucusu olabilir, ancak şimdilik bilgisayarınızın sabit sürücüsünde bir klasör seçin. Siteyi güncelleştirilebilir bir kullanıcı arabirimiyle önceden derlemek istediğimizden, "Bu önceden derlenmiş sitenin güncelleştirilebilir olmasını sağlayın" onay kutusunu işaretli bırakın ve Tamam'a tıklayın.
Şekil 1: ASP.NET Derleme Aracı Web Sitenizi Belirtilen Hedef Konuma Önceden Derleyecektir
(Tam boyutlu görüntüyü görüntülemek için tıklayın)
Not
Oluştur menüsündeki Web Sitesini Yayımla seçeneği Visual Web Developer'da kullanılamaz. Visual Web Developer kullanıyorsanız, "Komut Satırından Önceden Derleme" bölümünde ele alınan ASP.NET derleme aracının komut satırı sürümünü kullanmanız gerekir.
Web sitesini önceden derledikten sonra, Web Sitesini Yayımla iletişim kutusunda girdiğiniz hedef konuma gidin. Bu klasörün içeriğini web sitenizin içeriğiyle karşılaştırmak için biraz zaman ayırın. Şekil 2'de Kitap İncelemeleri web sitesi klasörü gösterilmektedir. hem hem de .aspx
.aspx.cs
dosyaları içerdiğini unutmayın. Ayrıca, dizinin bir önceki öğreticide eklediğimiz tek bir dosya Elmah.dll
içerdiğini unutmayınBin
.
Şekil 2: Proje Dizini İçerir .aspx
ve .aspx.cs
Dosyalar; Bin
Klasör Yalnızca Elmah.dll
(Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 3'de , içeriği ASP.NET derleme aracı tarafından oluşturulan hedef konum klasörü gösterilmektedir. Bu klasör arka planda kod dosyası içermiyor. Ayrıca, bu klasörün Bin
dizini derlemeye Elmah.dll
ek olarak birkaç derleme ve iki .compiled
dosya içerir.
Şekil 3: Hedef Konum Klasörü Dağıtım dosyalarını içerir
(Tam boyutlu görüntüyü görüntülemek için tıklayın)
WAP'lerdeki açık derlemeden farklı olarak, dağıtım işlemi için ön derleme sitenin tamamı için tek bir derleme oluşturmaz. Bunun yerine, her derlemede birkaç sayfayı bir araya toplar. Ayrıca dosyayı (varsa) kendi derlemesinde ve klasördeki tüm sınıflarda App_Code
derlerGlobal.asax
. ASP.NET web sayfaları, Kullanıcı Denetimleri ve ana sayfalar (.aspx
sırasıyla , .ascx
ve .master
dosyaları) için bildirim temelli işaretlemeyi tutan dosyalar hedef konum dizinine olduğu gibi kopyalanır. Benzer şekilde dosya Web.config
, görüntüler, CSS sınıfları ve PDF dosyaları gibi statik dosyalar ile birlikte doğrudan kopyalanır. Derleme aracının çeşitli dosya türlerini nasıl işlediğine ilişkin daha resmi bir açıklama için bkz. ASP.NET Ön Derleme Sırasında Dosya İşleme.
Not
Web Sitesini Yayımla iletişim kutusundaki "Sabit adlandırma ve tek sayfa derlemeleri kullanıldı" onay kutusunu işaretleyerek derleme aracına her ASP.NET sayfası, Kullanıcı Denetimi veya ana sayfa için bir derleme oluşturmasını belirtebilirsiniz. Her ASP.NET sayfasının kendi derlemesinde derlenmiş olması, dağıtım üzerinde daha ayrıntılı denetim sağlar. Örneğin, tek bir ASP.NET web sayfasını güncelleştirdiyseniz ve bu değişikliği dağıtmanız gerekiyorsa, yalnızca o sayfanın .aspx
dosyasını ve ilişkili derlemesini üretim ortamına dağıtmanız gerekir. Daha fazla bilgi için bkz. Nasıl Yapılır: ASP.NET Derleme Aracı ile Sabit Adlar Oluşturma .
Hedef konum dizini, önceden derlenmiş web projesinin parçası olmayan bir dosya da içerir.PrecompiledApp.config
Bu dosya, ASP.NET çalışma zamanına uygulamanın önceden derlendiğini ve güncelleştirilebilir veya güncelleştirilemeyen bir kullanıcı arabirimiyle önceden derlenip derlenmediğini bildirir.
Son olarak, Visual Studio'yu veya seçtiğiniz metin düzenleyiciyi .aspx
kullanarak hedef konumdaki dosyalardan birini açmak için biraz zaman ayırın. Güncelleştirilebilir bir kullanıcı arabirimiyle dağıtım için önceden derleme yaparken, hedef konum dizinindeki ASP.NET sayfaları web sitesindeki ilgili dosyalarla tam olarak aynı işaretlemeyi içerir.
Güncelleştirilemeyen Kullanıcı Arabirimi ile Dağıtım için Ön Derleme
ASP.NET derleyici aracı, güncelleştirilemeyen bir kullanıcı arabirimiyle dağıtım için bir siteyi önceden derlemek için de kullanılabilir. Siteyi güncelleştirilemeyen bir kullanıcı arabirimiyle önceden derlemek, güncelleştirilebilir kullanıcı arabirimiyle önceden derlemeye çok benzer; temel fark, hedef dizindeki ASP.NET sayfaların, Kullanıcı Denetimlerinin ve ana sayfaların işaretlemelerinin kaldırılmış olmasıdır. Bir web sitesini güncelleştirilemeyen bir kullanıcı arabirimiyle dağıtım için önceden derlemek için, Derleme menüsünden Web Sitesini Yayımla seçeneğini belirleyin, ancak "Bu önceden derlenmiş sitenin güncelleştirilebilir olmasına izin ver" seçeneğinin işaretini kaldırın (bkz . Şekil 4).
Şekil 4: "Önceden derlenmiş bu sitenin güncelleştirilebilir olmasına izin ver" Seçeneğinin, Güncelleştirilemeyen Bir Kullanıcı Arabirimiyle Önceden Derleme seçeneğinin işaretini kaldırın
(Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 5'de , güncelleştirilemeyen bir kullanıcı arabirimiyle önceden derledikten sonra hedef konum klasörü gösterilmektedir.
Şekil 5: Güncelleştirilebilir Olmayan Kullanıcı Arabirimiyle Dağıtım için Hedef Konum Klasörü
(Tam boyutlu görüntüyü görüntülemek için tıklayın)
Şekil 3 ile Şekil 5'i karşılaştırın. İki klasör aynı görünse de, güncelleştirilemeyen UI klasöründe ana sayfa Site.master
bulunmadığını unutmayın. Şekil 5'te çeşitli ASP.NET sayfaları olsa da, bu dosyaların içeriğini görüntülerseniz bildirim temelli işaretlemelerinin kaldırıldığını ve yer tutucu metinle değiştirildiğini görürsünüz: "Bu, ön derleme aracı tarafından oluşturulan bir işaretçi dosyasıdır ve silinmemelidir!"
Şekil 5: Bildirim Temelli İşaretlemeyi ASP.NET Sayfalardan Kaldırılmıştır
Bin
Şekil 3 ve 5'teki klasörler daha önemli ölçüde farklılık gösterir. Derlemelere ek olarak, Bin
Şekil 5'teki klasör her ASP.NET sayfası, Kullanıcı Denetimi ve ana sayfa için bir .compiled
dosya içerir.
Bir siteyi güncelleştirilemeyen bir kullanıcı arabirimiyle önceden derlemek, ASP.NET sayfalarının içeriğinin, web sitesini üretim ortamında yükleyen veya yöneten kişi veya şirket tarafından değiştirilmesini istemediğiniz durumlarda kullanışlıdır. Müşterilere kendi web sunucularına yüklemeleri için sattığınız bir ASP.NET web uygulaması oluşturursanız, doğrudan sevk ettiğiniz sayfaları düzenleyerek sitenizin görünümünü değiştirmediklerinden .aspx
emin olmak isteyebilirsiniz. Web sitenizi güncelleştirilemeyen bir kullanıcı arabirimiyle önceden derleyerek, yer tutucu .aspx
sayfaları yüklemenin bir parçası olarak gönderir ve böylece müşterilerinizin içeriklerini incelemesini veya değiştirmesini engellersiniz.
Komut Satırından önceden derleme
Arka planda, Visual Studio'nun Web Sitesi Yayımla iletişim kutusu web sitesini önceden derlemek için ASP.NET derleme aracını (aspnet_compiler.exe
) çağırır. Alternatif olarak, bu aracı komut satırından çağırabilirsiniz. Aslında, Visual Web Developer kullanıyorsanız, Visual Web Developer'ın Derleme menüsünde Web Sitesi Yayımla seçeneği olmadığından, derleyici aracını komut satırından çalıştırmanız gerekir.
Komut satırından derleyici aracını kullanmak için, komut satırına bırakarak ve çerçeve dizinine %WINDIR%\Microsoft.NET\Framework\v2.0.50727
giderek başlayın. Ardından komut satırına aşağıdaki deyimi girin:
aspnet_compiler -p "physical_path_to_app" -v / -f -u "target_location_folder"
Yukarıdaki komut, ASP.NET derleyici aracını (aspnet_compiler.exe
) başlatır ve anahtar aracılığıyla -p
, physical_path_to_app'da kök olarak oluşturulmuş web sitesini önceden derlemesini ister; bu değer gibi C:\MySites\BookReviews
bir değer olur ve tırnak işaretleri ile sınırlandırılmalıdır.
-v
anahtarı, sitenin sanal dizinini belirtir. Siteniz IIS metatabanında varsayılan web sitesi olarak kayıtlıysa anahtarı atlayabilir -p
ve uygulamanın sanal dizinini belirtebilirsiniz. Anahtarı kullanırsanız -p
, anahtara devam eden -v
değer web sitesinin kökünü gösterir ve uygulama kökü başvurularını çözümlemek için kullanılır. Örneğin, değerini -v /MySite
belirtirseniz, uygulamadaki ~/path/file
başvurular olarak ~/MySite/path/file
çözümlenir. Kitap İncelemeleri sitesi web barındırma şirketimin kök dizininde bulunduğundan anahtarını -v /
kullandım.
-f
Anahtarı varsa, derleme aracına zaten varsa target_location_folder dizininin üzerine yazmasını belirtir. Anahtarı atlarsanız -f
ve hedef konum klasörü zaten varsa, derleme aracı şu hatayla çıkar: "hata ASPRUNTIME: Hedef dizin boş değil. Lütfen el ile silin veya farklı bir hedef seçin."
Anahtar -u
varsa, aracı güncelleştirilebilir bir kullanıcı arabirimi oluşturması konusunda bilgilendirmektedir. Siteyi güncelleştirilemeyen bir kullanıcı arabirimiyle önceden derlemek için bu anahtarı atla.
Son olarak , target_location_folder hedef konum dizinine giden fiziksel yoldur; bu değer gibi C:\MySites\Output\BookReviews
bir değer olacaktır ve tırnak işaretleri ile sınırlandırılmalıdır.
Önceden Derlenmiş Web Sitesini Dağıtma
Bu noktada, hem güncelleştirilebilir hem de güncelleştirilemeyen kullanıcı arabirimi seçeneklerini kullanarak bir web sitesini önceden derlemek için ASP.NET derleme aracının nasıl kullanılacağını gördük. Ancak, şimdiye kadarki örneklerimiz web sitesini üretim ortamına değil yerel bir klasöre önceden derledi. İyi haber, önceden derlenmiş web sitesini dağıtmanın kolay olması ve Visual Studio veya tek başına FTP istemcisi gibi başka bir dosya kopyalama mekanizması aracılığıyla yapılabilmesidir.
Web Sitesini Yayımla iletişim kutusunda (ilk olarak Şekil 1'de gösterilmiştir) önceden derlenmiş web sitesi dosyalarının kopyalandığı yeri gösteren bir hedef konum seçeneği vardır. Bu konum bir uzak web sunucusu veya FTP sunucusu olabilir. Bu metin kutusuna uzak sunucu girildiğinde, web sitesi bir adımda önceden derlenip belirtilen sunucuya dağıtılır. Alternatif olarak, web sitesini yerel bir klasöre önceden derleyebilir ve ardından bu klasörün içeriğini FTP veya başka bir yaklaşım aracılığıyla üretim ortamına el ile kopyalayabilirsiniz.
Önceden derlenmiş web sitesinin Visual Studio'nun Web Sitesini Yayımla iletişim kutusu aracılığıyla otomatik olarak dağıtılmış olması, geliştirme ve üretim ortamları arasında yapılandırma farkları olmayan basit siteler için yararlıdır. Ancak, Geliştirme ve Üretim Arasındaki Ortak Yapılandırma Farkları öğreticisinde belirtildiği gibi, bu tür farklılıkların mevcut olması nadir değildir. Örneğin, Kitap İncelemeleri web uygulaması üretim ortamında geliştirme ortamından farklı bir veritabanı kullanır. Visual Studio web sitesini uzak bir sunucuda yayımladığında, geliştirme ortamındaki yapılandırma dosyası bilgilerini körü körüne kopyalar.
Geliştirme ve üretim ortamları arasında yapılandırma farklılıkları olan siteler için, siteyi yerel bir dizine önceden derlemek, üretime özgü yapılandırma dosyalarını kopyalamak ve ardından önceden derlenmiş çıkışın içeriğini üretime kopyalamak en iyi yöntem olabilir.
Geliştirme ortamından üretim ortamına dosya kopyalama konusunda yenileyici için , Web Sitenizi FTP İstemcisi Kullanarak Dağıtma ve Visual Studio Kullanarak Web Sitenizi Dağıtma öğreticilerine bakın.
Özet
ASP.NET iki derleme modunu destekler: otomatik ve açık. Önceki öğreticilerde açıklandığı gibi, Web Uygulaması Projeleri (WAP'ler) açık derlemeyi kullanırken, Web Sitesi Projeleri (WSP'ler) varsayılan olarak otomatik derleme kullanır. Ancak, ASP.NET derleme aracını kullanarak dağıtım öncesinde bir WSP'yi açıkça derlemek mümkündür.
Bu öğretici, derleme aracının Dağıtım için Ön Derleme desteğine odaklanmıştır. Dağıtım için önceden derleme yaparken, derleme aracı bir hedef konum klasörü oluşturur, belirtilen web uygulamasının kaynak kodunu derler ve bu derlenmiş derlemeleri ve içerik dosyalarını hedef konum klasörüne kopyalar. Derleme aracı güncelleştirilebilir veya güncelleştirilemez bir kullanıcı arabirimi oluşturacak şekilde yapılandırılabilir. Güncelleştirilemeyen bir kullanıcı arabirimi seçeneğiyle önceden derlendiğinde, içerik dosyalarındaki bildirim temelli işaretleme kaldırılır. Özetle, ön derleme herhangi bir kaynak kod dosyası eklemeden ve isterseniz bildirim temelli işaretleme kaldırılarak Web Sitesi Projesi tabanlı uygulamanızı dağıtmanıza izin verir.
Mutlu Programlama!
Daha Fazla Bilgi
Bu öğreticide ele alınan konular hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: