Hangi Dosyaların Dağıtılması Gerektiğini Belirleme (VB)

tarafından Scott Mitchell

PDF’yi İndir

Geliştirme ortamından üretim ortamına dağıtılması gereken dosyalar, kısmen ASP.NET uygulamasının Web Sitesi Modeli veya Web Uygulaması Modeli kullanılarak oluşturulup oluşturulmadığına bağlıdır. Bu iki proje modeli ve proje modelinin dağıtımı nasıl etkilediği hakkında daha fazla bilgi edinin.

Giriş

bir ASP.NET web uygulaması dağıtmak için geliştirme ortamından üretim ortamına ASP.NET ilgili dosyaların kopyalanması gerekir. ASP.NET ile ilgili dosyalar ASP.NET web sayfası işaretleme ve kod ile istemci ve sunucu tarafı destek dosyalarını içerir. İstemci tarafı destek dosyaları, web sayfalarınız tarafından başvuruda bulunan ve doğrudan tarayıcıya gönderilen dosyalardır. Örneğin görüntüler, CSS dosyaları ve JavaScript dosyaları. Sunucu tarafı destek dosyaları, sunucu tarafında bir isteği işlemek için kullanılan dosyaları içerir. Buna yapılandırma dosyaları, web hizmetleri, sınıf dosyaları, Yazılan Veri Kümeleri ve LINQ to SQL dosyaları dahildir.

Genel olarak, tüm istemci tarafı destek dosyaları geliştirme ortamından üretim ortamına kopyalanmalıdır, ancak hangi sunucu tarafı destek dosyalarının kopyalanması sunucu tarafı kodunu bir derlemeye (dosya .dll ) açıkça derleyip derlemediğinize veya bu derlemelerin otomatik olarak oluşturulup oluşturulmadığına bağlıdır. Bu öğretici, kodu bir derlemeye açıkça derlerken ve bu derleme adımının otomatik olarak gerçekleşmesine karşı hangi dosyaların dağıtılması gerektiğini vurgular.

Açık Derleme ve Otomatik Derleme Karşılaştırması

ASP.NET web sayfaları bildirim temelli işaretleme ve kaynak koduna ayrılır. Bildirim temelli işaretleme bölümü HTML, Web denetimleri ve veri bağlama söz dizimini içerir; kod bölümü, Visual Basic veya C# kodunda yazılmış olay işleyicilerini içerir. İşaretlemesi ve kod bölümleri genellikle farklı dosyalara ayrılır: WebPage.aspx kodu barındırırken WebPage.aspx.vb bildirim temelli işaretlemeyi içerir.

Text özelliği sayfanın yüklendiğinde geçerli tarih ve saat olarak ayarlandığı Etiket denetimini içeren adlı Clock.aspx bir ASP.NET sayfasını düşünün. Bildirim temelli işaretleme bölümü (içinde Clock.aspx) bir Etiket Web denetimi için işaretlemeyi içerirken <asp:Label runat="server" id="TimeLabel" /> , kod bölümü (içinde Clock.aspx.vb) aşağıdaki koda sahip bir Page_Load olay işleyicisine sahip olur:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As  System.EventArgs) Handles Me.Load
    TimeLabel.Text =  "The time at the beep is: " & DateTime.Now.ToString()
End Sub

ASP.NET altyapısının bu sayfaya yönelik bir isteğe hizmet verebilmesi için önce sayfanın kod bölümünün ( WebPage.aspx.vb dosya) derlenmesi gerekir. Bu derleme açıkça veya otomatik olarak gerçekleşebilir.

Derleme açıkça gerçekleşirse, uygulamanın kaynak kodunun tamamı uygulamanın Bin dizininde bulunan bir veya daha fazla derlemede (.dlldosya) derlenmiş olur. Derleme otomatik olarak gerçekleşirse, sonuçta elde edilen otomatik olarak oluşturulan derleme varsayılan olarak konumunda bulunabilen %WINDOWS%\Microsoft.NET\Framework\<version>klasörüne yerleştirilirTemporary ASP.NET Files, ancak bu konum içindeki Web.configderleme> öğesi aracılığıyla< yapılandırılabilir. Açık derlemede, ASP.NET uygulamasının kodunu derlemek için bazı eylemler gerçekleştirmeniz gerekir ve bu adım dağıtımdan önce gerçekleşir. Otomatik derleme ile derleme işlemi kaynağa ilk kez erişildiğinde web sunucusunda gerçekleşir.

Hangi derleme modelini kullanırsanız kullanın, tüm ASP.NET sayfalarının ( WebPage.aspx dosyalar) işaretleme bölümünün üretim ortamına kopyalanması gerekir. Açık derleme ile klasördeki Bin derlemeleri kopyalamanız gerekir, ancak ASP.NET sayfaların kod bölümlerini ( WebPage.aspx.vb dosyalar) kopyalamanız gerekmez. Otomatik derleme ile kodun mevcut olması ve sayfa ziyaret edildiğinde otomatik olarak derlenmesi için kod bölümü dosyalarını kopyalamanız gerekir. Her ASP.NET web sayfasının işaretleme bölümü, sayfanın ilişkili kodunun zaten açıkça derlenip derlenmediğini veya otomatik olarak derlenmesi gerekip gerekmediğini belirten özniteliklere sahip bir @Page yönerge içerir. Sonuç olarak, üretim ortamı derleme modeliyle sorunsuz bir şekilde çalışabilir ve açık veya otomatik derlemenin kullanıldığını belirtmek için herhangi bir özel yapılandırma ayarı uygulamanız gerekmez.

Tablo 1, açık derleme ve otomatik derleme kullanılırken dağıtılacak farklı dosyaları özetler. Kullanılan derleme modeline bakılmaksızın, klasör varsa derlemeleri Bin her zaman klasöre dağıtmanız gerektiğini unutmayın. Bin klasörü, açık derleme modeli kullanılırken derlenen kaynak kodunu içeren web uygulamasına özgü derlemeleri içerir. Dizin Bin ayrıca diğer projelerden derlemeler ve kullanıyor olabileceğiniz açık kaynak veya üçüncü taraf derlemeleri içerir ve bunların üretim sunucusunda olması gerekir. Bu nedenle, genel bir kural olarak, dağıtırken klasörü üretim ortamına kopyalayın Bin . (Otomatik derleme modelini kullanıyorsanız ve herhangi bir dış derleme kullanmıyorsanız, bir Bin dizininiz olmaz; sorun değil!)

Derleme Modeli İşaretlemeyi Bölüm Dosyası Dağıtılasın mı? Kaynak Kod Dosyası dağıtılasın mı? Derlemeler Dizinde Dağıtılasın Bin mı?
Açık Derleme Yes Hayır Yes
Otomatik Derleme Yes Yes Evet (varsa)

Tablo 1: Hangi dosyaları dağıttığınız, kullanılan derleme modeline bağlıdır.

Bellek Şeridinde Aşağı Yolculuk

Hangi derleme yaklaşımının kullanıldığı, kısmen ASP.NET uygulamasının Visual Studio'da nasıl yönetildiğini temel alır. Beri. NET'in 2000 yılındaki başlangıcı visual studio'nun dört farklı sürümü olmuştur: Visual Studio .NET 2002, Visual Studio .NET 2003, Visual Studio 2005 ve Visual Studio 2008. Web Uygulaması Projesi modelini kullanan Visual Studio .NET 2002 ve 2003 yönetilen ASP.NET uygulamaları. Web Uygulaması Projesi modelinin temel özellikleri şunlardır:

  • Projeyi oluşturan dosyalar tek bir proje dosyasında tanımlanır. Proje dosyasında tanımlanmayan dosyalar Visual Studio tarafından web uygulamasının bir parçası olarak kabul edilmez.
  • Açık derleme kullanır. Projenin oluşturulması, proje içindeki kod dosyalarını klasöre yerleştirilen tek bir derlemede Bin derler.

Microsoft, Visual Studio 2005'i yayımladığında Web Uygulaması Projesi modeli desteğini bıraktı ve web sitesi projesi modeliyle değiştirdi. Web Sitesi Projesi modeli, kendisini Web Uygulaması Projesi modelinden aşağıdaki yollarla ayırt etti:

  • Projenin dosyalarını heceleyen tek bir proje dosyası yerine dosya sistemi kullanılır. Kısacası, web uygulaması klasöründeki (veya alt klasörlerdeki) tüm dosyalar projenin bir parçası olarak kabul edilir.
  • Visual Studio'da proje oluşturmak dizinde Bin bir derleme oluşturmaz. Bunun yerine, bir Web Sitesi Projesi oluşturmak derleme zamanı hatalarını bildirir.
  • Otomatik derleme desteği. Web Sitesi Projeleri genellikle işaretleme ve kaynak kodu üretim ortamına kopyalanarak dağıtılır, ancak kod önceden derlenebilir (açık derleme).

Microsoft, Visual Studio 2005 Service Pack 1'i yayımladığında Web Uygulaması Projesi modelini yeniden canlandırdı. Ancak, Visual Web Developer yalnızca Web Sitesi Projesi modelini desteklemeye devam etti. İyi haber, bu sınırlamaNın Visual Web Developer 2008 Service Pack 1'de bırakılmasıdır. Bugün, Web Uygulaması Projesi modelini veya Web Sitesi Projesi modelini kullanarak Visual Studio'da (ve Visual Web Geliştiricisi) ASP.NET uygulamalar oluşturabilirsiniz. Her iki modelin de artıları ve eksileri vardır. İki modelin karşılaştırması ve sizin durumunuz için en uygun proje modelini belirlemeye yardımcı olmak için Web Uygulaması Projelerine Giriş: Web Sitesi Projelerini ve Web Uygulaması Projelerini Karşılaştırma konusuna bakın.

Örnek Web Uygulamasını Keşfetme

Bu öğreticiye yönelik indirme, Kitap İncelemeleri adlı bir ASP.NET uygulaması içerir. Web sitesi, birinin kitap incelemelerini çevrimiçi toplulukla paylaşmak için oluşturabileceği bir hobi web sitesini taklit ediyor. Bu ASP.NET web uygulaması çok basittir ve aşağıdaki kaynaklardan oluşur:

  • Web.config, uygulamanın yapılandırma dosyası.

  • Ana sayfa (Site.master).

  • Yedi farklı ASP.NET sayfası:

    • ~/Default.aspx - sitenin giriş sayfası.

    • ~/About.aspx - "Site Hakkında" sayfası.

    • ~/Fiction/Default.aspx - gözden geçirilmiş kurgu kitaplarının listelendiği bir sayfa.

      • ~/Fiction/Blaze.aspx - Richard Bachman romanı Blaze'in bir gözden geçirmesi.
    • ~/Tech/Default.aspx - gözden geçirilmiş teknoloji kitaplarının listelendiği bir sayfa.

      • ~/Tech/CYOW.aspx - Kendi Web Sitenizi Oluşturun'un gözden geçirilmesi.
      • ~/Tech/TYASP35.aspx - 24 Saat içinde 3.5 ASP.NET Kendinize Öğretin incelemesi.
  • Klasörde üç farklı CSS dosyası Styles .

  • Dört resim dosyası - tümü klasörde bulunan Images üç gözden geçirilmiş kitabın kapaklarının ASP.NET logosu ve resimleri ile güçlendirildi.

  • Web.sitemap Site haritasını tanımlayan ve kök dizin ve FictionTech klasörlerdeki sayfalarda Default.aspx menüleri görüntülemek için kullanılan bir dosya.

  • Bir temel Page sınıfı tanımlayan adlı BasePage.vb sınıf dosyası. Bu sınıf, özelliği sayfanın site haritasındaki Page konumuna göre otomatik olarak ayarlayarak Title sınıfın işlevselliğini genişletir. Özetle, genişleten BasePage herhangi bir ASP.NET arka planda kod sınıfı (yerine System.Web.UI.Page) başlığı, site haritasındaki konumuna bağlı olarak bir değere ayarlanır. Örneğin, ~/Tech/CYOW.aspx sayfasını görüntülerken başlık "Giriş : Teknoloji : Kendi Web Sitenizi Oluşturun" olarak ayarlanır.

Şekil 1'de, bir tarayıcı üzerinden görüntülendiğinde Kitap İncelemeleri web sitesinin ekran görüntüsü gösterilir. Burada ~/Tech/TYASP35.aspx sayfasını görürsünüz. Bu sayfa, 24 Saat içinde Kendinize 3.5 ASP.NET Öğretin kitabını inceler. Sayfanın en üstüne yayılan içerik haritası ve sol sütundaki menü, içinde Web.sitemaptanımlanan site haritası yapısını temel alır. Sağ üst köşedeki resim, klasörde bulunan Images kitap kapağı resimlerinden biridir. Web sitesinin genel görünümü, klasördeki Styles CSS dosyaları tarafından yazılmış art arda stil sayfası kurallarıyla tanımlanırken, üst dizili sayfa düzeni ana sayfada Site.mastertanımlanır.

Kitap İncelemeleri web sitesi çeşitli başlıklar üzerinde incelemeler sunar

Şekil 1: Kitap İncelemeleri web sitesi çeşitli başlıklarla ilgili incelemeler sunar (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Bu uygulama veritabanı kullanmaz; her gözden geçirme, uygulamada ayrı bir web sayfası olarak uygulanır. Bu öğreticide (ve sonraki birkaç öğreticide) veritabanı olmayan bir web uygulamasını dağıtma adımları gösterilir. Ancak, gelecek bir öğreticide bu uygulamayı veritabanındaki incelemeleri, okuyucu yorumlarını ve diğer bilgileri depolamak için geliştirecek ve veri temelli bir web uygulamasını doğru şekilde dağıtmak için hangi adımların uygulanması gerektiğini keşfedeceğiz.

Not

Bu öğreticiler, ASP.NET uygulamalarını bir web barındırma sağlayıcısıyla barındırmaya odaklanır ve ASP gibi yardımcı konuları keşfetmez. NET'in site haritası sistemi veya temel bir Page sınıfı kullanma. Bu teknolojiler hakkında daha fazla bilgi edinmek ve öğreticinin tamamında ele alınan diğer konularla ilgili daha fazla bilgi için, her öğreticinin sonundaki Daha Fazla Okuma bölümüne bakın.

Bu öğreticinin indirmesinde, her biri farklı bir Visual Studio proje türü olarak uygulanan web uygulamasının iki kopyası vardır: BookReviewsWAP, Bir Web Uygulaması Projesi ve Bir Web Sitesi Projesi olan BookReviewsWSP. Her iki proje de Visual Web Developer 2008 SP1 ile oluşturulmuş ve ASP.NET 3.5 SP1 kullanmıştır. Bu projelerle çalışmak için, içeriği Masaüstünüzde sıkıştırmasını açarak başlayın. Web Uygulaması Projesi'ni (BookReviewsWAP) açmak için klasörüne BookReviewsWAP gidin ve Çözüm dosyasına BookReviewsWAP.slnçift tıklayın. Web Sitesi Projesi'ni (BookReviewsWSP) açmak için Visual Studio'yu başlatın ve Dosya menüsünden Web Sitesini Aç seçeneğini belirleyin, Masaüstünüzdeki klasöre BookReviewsWSP gidin ve Tamam'a tıklayın.

Bu öğreticinin kalan iki bölümünde, uygulamayı dağıtırken üretim ortamına kopyalamanız gereken dosyalara bakılır. Sonraki iki öğretici : Sitenizi FTP Kullanarak Dağıtma ve Visual Studio Kullanarak Sitenizi Dağıtma - bu dosyaları bir web barındırma sağlayıcısına kopyalamanın farklı yollarını gösterir.

Web Uygulaması Projesi için Dağıtılacak Dosyaları Belirleme

Web Uygulaması Projesi modeli açık derleme kullanır. Uygulamayı her derlediğinizde projenin kaynak kodu tek bir derlemede derlenmiş olur. Bu derleme, ASP.NET sayfalarının arka planda kod dosyalarını (~/, ~/Default.aspx.vbAbout.aspx.vb, vb.) ve sınıfını BasePage.vb içerir. Sonuçta elde edilen derleme adlandırılır BookReviewsWAP.dll ve uygulamanın Bin dizininde bulunur.

Şekil 2'de Kitap İncelemeleri Web Uygulaması Projesi'ni oluşturan dosyalar gösterilmektedir.

Çözüm Gezgini, Web Uygulaması Projesi'ni oluşturan dosyaları listeler.

Şekil 2: Çözüm Gezgini, Web Uygulaması Projesi'ni oluşturan dosyaları listeler

Not

Şekil 2'de gösterildiği gibi, ASP.NET sayfalarının arka planda kod dosyaları Visual Basic Web Uygulaması Projesi için Çözüm Gezgini görüntülenmez. Bir sayfanın arka planda kod sınıfını görüntülemek için, Çözüm Gezgini'da sayfaya sağ tıklayın ve Kodu Görüntüle'yi seçin.

Web Uygulaması Projesi modeli kullanılarak geliştirilen bir ASP.NET uygulamasını dağıtmak için, en son kaynak kodu bir derlemeye açıkça derlemek için uygulamayı oluşturarak başlayın. Ardından, aşağıdaki dosyaları üretim ortamına kopyalayın:

  • ~/, ~About.aspx/Default.aspx gibi her ASP.NET sayfası için bildirim temelli işaretleme içeren dosyalar. Ayrıca, tüm ana sayfalar ve Kullanıcı Denetimleri için bildirim temelli işaretlemeyi kopyalayın.
  • Klasördeki Bin derlemeler (.dlldosyalar). Program veritabanı dosyalarını (.pdb) veya dizinde Bin bulabileceğiniz XML dosyalarını kopyalamanız gerekmez.

ASP.NET sayfalarının kaynak kod dosyalarını üretim ortamına kopyalamanız veya sınıf dosyasını kopyalamanız BasePage.vb gerekmez.

Not

Şekil 2'de gösterildiği gibi, BasePage sınıfı projede adlı klasöre HelperClassesyerleştirilen bir sınıf dosyası olarak uygulanır. Proje derlendiğinde dosyasındaki BasePage.vb kod, ASP.NET sayfaların arka planda kod sınıfları ile birlikte tek derlemede derlenmiş olur BookReviewsWAP.dll. ASP.NET, Web Sitesi Projeleri için sınıf dosyalarını barındıracak şekilde tasarlanmış adlı App_Code özel bir klasöre sahiptir. Klasördeki App_Code kod otomatik olarak derlenmiş ve bu nedenle Web Uygulaması Projeleri ile kullanılmamalıdır. Bunun yerine, uygulamanızın sınıf dosyalarını adlı HelperClassesnormal bir klasöre veya veya Classesbenzer bir klasöre yerleştirmeniz gerekir. Alternatif olarak, sınıf dosyalarını ayrı bir Sınıf Kitaplığı projesine yerleştirebilirsiniz.

klasördeki ASP.NET ilgili işaretleme dosyalarını ve derlemeyi Bin kopyalamaya ek olarak, istemci tarafı destek dosyalarını (görüntüler ve CSS dosyaları) ve diğer sunucu tarafı destek dosyalarını Web.config ve Web.sitemapkopyalamanız gerekir. Bu istemci ve sunucu tarafı destek dosyalarının, açık veya otomatik derleme kullanmanızdan bağımsız olarak üretim ortamına kopyalanması gerekir.

Web Sitesi Proje Dosyaları için Dağıtılacak Dosyaları Belirleme

Web Sitesi Projesi modeli, Web Uygulaması Projesi modeli kullanılırken kullanılamayan bir özellik olan otomatik derlemeyi destekler. Açık derleme ile projenizin kaynak kodunu bir derlemeye derlemeniz ve bu derlemeyi üretim ortamına kopyalamanız gerekir. Öte yandan, otomatik derleme ile kaynak kodu üretim ortamına kopyalamanız yeterlidir ve gerektiğinde çalışma zamanı tarafından isteğe bağlı olarak derlenmiş olur.

Visual Studio'daki Oluştur menü seçeneği hem Web Uygulaması Projelerinde hem de Web Sitesi Projelerinde bulunur. Web Uygulaması Projeleri derlemek, projenin kaynak kodunu dizinde bulunan tek bir derlemede Bin derler; Web Sitesi Projesi oluşturmak derleme zamanı hatalarını denetler, ancak derleme oluşturmaz. Web Sitesi Projesi modeli kullanılarak geliştirilen bir ASP.NET uygulamasını dağıtmak için tek yapmanız gereken uygun dosyaları üretim ortamına kopyalamaktır, ancak derleme zamanı hatası olmadığından emin olmak için önce projeyi derlemenizi tavsiye ederim.

Şekil 3'de Kitap İncelemeleri Web Sitesi Projesi'ni oluşturan dosyalar gösterilmektedir.

Çözüm Gezgini, Web Sitesi Projesi'ni oluşturan dosyaları listeler.

Şekil 3: Çözüm Gezgini, Web Sitesi Projesi'ni oluşturan dosyaları listeler

Bir Web Sitesi Projesinin dağıtılması, ASP.NET ile ilgili tüm dosyaların üretim ortamına kopyalanmasını içerir; bunlar ASP.NET sayfaların, ana sayfaların ve Kullanıcı Denetimlerinin işaretleme sayfalarını ve bunların kod dosyalarını içerir. Ayrıca gibi BasePage.vbtüm sınıf dosyalarını da kopyalamanız gerekir. BasePage.vb Dosyanın, sınıf dosyaları için Web Sitesi Projelerinde App_Code kullanılan özel bir ASP.NET klasörü olan klasörde bulunduğunu unutmayın. Özel klasörün üretimde oluşturulması ve geliştirme ortamındaki klasördeki App_Code sınıf dosyalarının üretimdeki klasöre App_Code kopyalanması gerekir.

ASP.NET işaretleme ve kaynak kodu dosyalarını kopyalamanın yanı sıra, istemci tarafı destek dosyalarını da (görüntüler ve CSS dosyaları) ve diğer sunucu tarafı destek dosyalarını Web.config ve Web.sitemapkopyalamanız gerekir.

Not

Web Sitesi Projeleri açık derleme de kullanabilir. Gelecekteki bir öğreticide, bir Web Sitesi Projesinin nasıl açıkça derlendiği incelenecektir.

Özet

bir ASP.NET uygulaması dağıtmak için gerekli dosyaların geliştirme ortamından üretim ortamına kopyalanması gerekir. Eşitlenmesi gereken kesin dosya kümesi, ASP.NET uygulamasının kodunun açıkça mı yoksa otomatik olarak mı derlendiğine bağlıdır. Kullanılan derleme stratejisi, Visual Studio'un Web Uygulaması Projesi modelini veya Web Sitesi Projesi modelini kullanarak ASP.NET uygulamasını yönetecek şekilde yapılandırılmış olup olmamasından etkilenir.

Web Uygulaması Projesi modeli, açık derleme kullanır ve projenin kodunu klasördeki tek bir derlemede Bin derler. Uygulamayı dağıtırken, ASP.NET sayfalarının işaretleme kısmı ve klasörün içeriği Bin üretim ortamına gönderilmelidir; uygulamadaki kaynak kodun (örneğin kod dosyaları ve arka planda kod sınıfları) üretim ortamına kopyalanması gerekmez.

Web Sitesi Projesi modeli, gelecek öğreticilerde göreceğimiz gibi bir Web Sitesi Projesi'ni açıkça derlemek mümkün olsa da, varsayılan olarak otomatik derlemeyi kullanır. Otomatik derleme kullanan bir ASP.NET uygulaması dağıtmak için işaretleme bölümünün ve kaynak kodunun üretim ortamına kopyalanması gerekir. Kod, ilk kez istendiğinde üretim ortamında otomatik olarak derlenmiş olur.

Geliştirme ve üretim ortamları arasında hangi dosyaların eşitlenmesi gerektiğini incelediğimize göre, Kitap İncelemeleri uygulamasını bir web barındırma sağlayıcısına dağıtmaya hazırız.

Mutlu Programlama!

Daha Fazla Bilgi

Bu öğreticide ele alınan konular hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: