Sitenizi Visual Studio Kullanarak Dağıtma (C#)
tarafından Scott Mitchell
Visual Studio, web sitesi dağıtmaya yönelik araçlar içerir. Bu öğreticide bu araçlar hakkında daha fazla bilgi edinin.
Giriş
Önceki öğreticide, basit bir ASP.NET web uygulamasının bir web ana bilgisayar sağlayıcısına nasıl dağıtılacağı anlatılır. Özellikle öğreticide, gerekli dosyaları geliştirme ortamından üretim ortamına aktarmak için FileZilla gibi bir FTP istemcisinin nasıl kullanılacağı gösterildi. Visual Studio ayrıca bir web konağı sağlayıcısına dağıtımı kolaylaştırmak için yerleşik araçlar da sunar. Bu öğreticide şu araçlardan ikisi incelenmiştir: FTP veya FrontPage Server Extensions kullanarak dosyaları uzak bir web sunucusuna veya sunucudan taşıyabileceğiniz Web Sitesini Kopyalama aracı; ve web sitesinin tamamını belirtilen bir konuma kopyalayan Yayımla aracını seçin.
Not
Visual Studio tarafından sunulan dağıtımla ilgili bir diğer araç da Web Kurulum Projeleri Eklentisidir. Web Kurulum Projeleri, bir web sitesinin içeriğini ve yapılandırma bilgilerini tek bir MSI dosyasında paketler. Bu seçenek en çok intranet içinde dağıtılan web siteleri veya müşterilerin kendi web sunucularına yükledikleri önceden paketlenmiş bir web uygulaması satan şirketler için kullanışlıdır. Web Dağıtım Projeleri Add-In, geliştirme ortamları ve üretim ortamları için derlemeler arasında yapılandırma farklılıkları belirtmeyi kolaylaştıran bir Visual Studio Add-In. Web Kurulum Projeleri bu öğretici serisinde ele alınmaz; Web Dağıtım Projeleri, Geliştirme ve Üretim Arasındaki Ortak Yapılandırma Farklılıkları öğreticisinde özetlenir.
Web Sitesini Kopyalama Aracını Kullanarak Sitenizi Dağıtma
Visual Studio'nun Web Sitesini Kopyalama aracı, tek başına FTP istemcisine benzer bir işleve sahiptir. Özetle, Web Sitesini Kopyala aracı FTP veya FrontPage Sunucu Uzantıları aracılığıyla uzak bir web sitesine bağlanmanızı sağlar. FileZilla'nın kullanıcı arabirimine benzer şekilde, Web Sitesini Kopyala kullanıcı arabirimi iki bölmeden oluşur: sol bölme yerel dosyaları listelerken, sağ bölme bu dosyaları hedef sunucuda listeler.
Not
Web Sitesini Kopyala aracı yalnızca Web Sitesi Projeleri için kullanılabilir. Bir Web Uygulaması Projesi ile çalışırken Visual Studio bu aracı sunar.
Kitap İncelemesi uygulamasını üretim ortamında yayımlamak için Web Sitesini Kopyala aracını kullanma bölümüne göz atalım. Web Sitesini Kopyala aracı yalnızca Web Sitesi Projesi modelini kullanan projelerle çalıştığından, bu aracı yalnızca BookReviewsWSP projesiyle kullanarak inceleyebiliriz. O projeyi açın.
Çözüm Gezgini Web Sitesini Kopyala simgesine tıklayarak Web Sitesini Kopyala araç projesini başlatın (bu simge Şekil 1'de daire içine alınıyor); alternatif olarak, Web Sitesi menüsünden Web Sitesini Kopyala seçeneğini belirleyebilirsiniz. Her iki yaklaşım da Şekil 1'de gösterilen Web Sitesini Kopyala kullanıcı arabirimini başlatır; Uzak sunucuya henüz bağlanmadığımız için yalnızca Şekil 1'deki sol bölme doldurulur.
Şekil 1: Web Sitesi Kopyalama Aracının Kullanıcı Arabirimi İki Bölmeye Ayrılmıştır (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Sitemizi dağıtmak için önce web barındırma sağlayıcısına bağlanmamız gerekir. Web Sitesini Kopyala kullanıcı arabiriminin üst kısmındaki Bağlan düğmesine tıklayın. Bu, Şekil 2'de gösterilen Web Sitesini Aç iletişim kutusunu görüntüler.
Soldaki dört seçenekten birini belirleyerek hedef web sitesine bağlanabilirsiniz:
- Dosya Sistemi - Sitenizi bilgisayarınızdan erişilebilen bir klasöre veya ağ paylaşımına dağıtmak için bunu seçin.
- Yerel IIS - Siteyi bilgisayarınızda yüklü IIS web sunucusuna dağıtmak için bu seçeneği kullanın.
- FTP Sitesi - FTP kullanarak uzak bir web sitesine bağlanın.
- Uzak Site - FrontPage Sunucu Uzantıları'nı kullanarak uzak bir web sitesine bağlanın.
Çoğu web barındırma sağlayıcısı FTP'yi destekler, ancak daha azı FrontPage Sunucu Uzantısı desteği sunar. Bu nedenle, FTP Sitesi seçeneğini belirledim ve şekil 2'de gösterildiği gibi bağlantı bilgilerini girdim.
Şekil 2: Hedef Web Sitesini Belirtme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Bağlandıktan sonra, Web Sitesini Kopyala aracı, sağ bölmedeki uzak sitedeki dosyaları yükler ve her dosyanın durumunu gösterir: Yeni, Silinmiş, Değiştirildi veya Değişmedi. Bir dosyayı yerel siteden uzak siteye kopyalayabilirsiniz veya tam tersi de geçerlidir.
Şimdi BookReviewsWSP projesine yeni bir sayfa ekleyelim ve web sitesini kopyala aracının nasıl çalıştığını görebilmek için dağıtalım. Visual Studio'da kök dizininde adlı Privacy.aspx
yeni bir ASP.NET sayfası oluşturun. Sayfanın ana sayfayı Site.master
kullanmasını ve sitenizin gizlilik ilkesini bu sayfaya eklemesini sağlayın. Şekil 3'te bu sayfa oluşturulduktan sonra Visual Studio gösterilmektedir.
Şekil 3: Web Sitesinin Kök Klasörüne Adlı Privacy.aspx
Yeni Bir Sayfa Ekleme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Ardından, Web Sitesini Kopyala kullanıcı arabirimine dönün. Şekil 4'te gösterildiği gibi, sol bölme artık yeni ve dosyalarını Policy.aspx
Policy.aspx.cs
içerir. Dahası, bu dosyalar bir ok simgesi ve Yeni Durumu ile işaretlenir, bu da yerel sitede var olduklarını ancak uzak sitede bulunmadıklarını gösterir.
Şekil 4: Web Sitesini Kopyalama Aracı Yeni Sayfayı Privacy.aspx
Sol Bölmesinde Içerir (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Yeni dosyaları dağıtmak için bunları seçin ve sonra ok simgesine tıklayarak uzak siteye aktarın. Aktarım tamamlandıktan Policy.aspx
sonra ve Policy.aspx.cs
dosyaları hem yerel hem de uzak sitelerde Değişmedi durumunda bulunur.
Yeni dosyaları listelemenin yanı sıra, Web Sitesini Kopyala aracı yerel ve uzak siteler arasında farklılık gösteren tüm dosyaları vurgular. Bunu uygulamada görmek için sayfaya Privacy.aspx
dönün ve gizlilik ilkesine birkaç sözcük daha ekleyin. Sayfayı kaydedin ve ardından Web Sitesini Kopyala aracına dönün. Şekil 5'te gösterildiği gibi, Privacy.aspx
sol bölmedeki sayfa, uzak siteyle eşitlenmediğini belirten Değiştirildi durumuna sahiptir.
Şekil 5: Web Sitesini Kopyalama Aracı Sayfanın Değiştirildiğini Gösterir Privacy.aspx
(Tam boyutlu görüntüyü görüntülemek için tıklayın)
Web Sitesini Kopyala aracı, son kopyalama işleminden sonra bir dosyanın silinip silinmediğini de belirtir. Privacy.aspx
öğesini yerel projeden silin ve Web Sitesini Kopyala aracını yenileyin. Privacy.aspx
ve Privacy.aspx.cs
dosyaları sol bölmede listelenir, ancak son kopyalama işleminden sonra kaldırıldıklarını belirten Bir Silinmiş durumuna sahiptir.
Web Uygulaması Yayımlama
Web uygulamanızı Visual Studio'nun içinden dağıtmanın bir diğer yolu da Oluştur menüsü aracılığıyla erişilebilen Yayımla seçeneğini kullanmaktır. Yayımla seçeneği uygulamayı açıkça derler ve ardından gerekli tüm dosyaları belirtilen uzak siteye kopyalar. Kısa bir süre sonra göreceğimiz gibi Yayımla seçeneği, Web Sitesini Kopyala aracından daha açık. Web Sitesini Kopyala aracı yerel ve uzak sitelerdeki dosyaları incelemenize ve gerektiğinde tek tek dosyaları karşıya yüklemenize veya indirmenize izin verirken Yayımla seçeneği tüm web uygulamasını dağıtır.
Gerekli tüm dosyaları belirtilen uzak siteye kopyalamanın yanı sıra Yayımla seçeneği de uygulamayı açıkça derler. Web Uygulaması Projelerinin açıkça derlenmesi gerektiğinden, Yayımla seçeneğinin Web Uygulaması Projeleri için kullanılabilir olması şaşırtıcı değildir. Web Sitesi Projeleri için Yayımla seçeneğinin de kullanılabilir olması biraz şaşırtıcı olabilir. Hangi Dosyaların Dağıtılması Gerektiğini Belirleme öğreticisinde belirtildiği gibi, Web Sitesi Projeleri ön derleme olarak adlandırılan bir işlem aracılığıyla açıkça derlenebilir. Bu öğretici, Web Uygulaması Projeleri ile Yayımla seçeneğinin kullanılmasına odaklanır; Gelecekteki bir öğreticide ön derleme keşfedilecektir. Bu noktada Web Sitesi Projeleri ile Yayımla seçeneğini kullanmaya başlayacağız.
Not
Yayımla seçeneği Hem Web Sitesi Projeleri hem de Web Uygulaması Projeleri için Visual Studio'da kullanılabilir olsa da, Visual Web Developer yalnızca Web Uygulaması Projeleri için Yayımla seçeneğini sunar.
Yayımla seçeneğini kullanarak Kitap İncelemeleri uygulamasını dağıtmaya bakalım. Visual Studio'da BookReviewsWAP'ı (Web Uygulaması Projesi) açarak başlayın. Yayımla menüsünden Kitap OluşturReviewsWAP projesini seçin. Bu, diğer yapılandırma seçeneklerinin arasında hedef konumu soran bir iletişim kutusu getirir (bkz. Şekil 6). Web Sitesini Kopyala aracında olduğu gibi, yerel bir klasöre, IIS'de yerel bir web sitesine, FrontPage Server Extensions'ı destekleyen uzak bir web sitesine veya ftp sunucu adresine işaret eden bir konum girebilirsiniz. Uzak web sunucusundaki dosyaları dağıtılan dosyalarla değiştirmeyi veya yayımlamadan önce uzak sitedeki tüm içeriği silmeyi seçebilirsiniz. Aşağıdakilerin kopyalanıp kopyalanmayacağını da belirtebilirsiniz:
- Yalnızca projedeki dosyalar, gerekli olmayan kaynak kodunu ve projeyle ilgili dosyaları atlayarak uygulamayı çalıştırmak için gereklidir.
- Kaynak kod dosyalarını ve Çözüm dosyası gibi Visual Studio proje dosyalarını içeren tüm proje dosyaları.
- Kaynak proje klasöründeki tüm dosyalar, projeye dahil olup olmadıklarına bakılmaksızın kaynak proje klasöründeki tüm dosyaları kopyalar.
Klasörün içeriğini App_Data
karşıya yükleme seçeneği de vardır.
Şekil 6: Hedef Web Sitesini Belirtme (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Book Review uygulaması için uzak site, Web Sitesini Kopyala aracı aracılığıyla BookReviewsWSP projesini kopyalarken dağıtılan dosyaları içerir. Bu nedenle, Yayımla seçeneğinin tüm mevcut içeriği silerek başlamasını sağlayın. Ayrıca, gerekmeyen kaynak kodu ve proje dosyalarıyla üretim ortamını karmaşık hale getirmek yerine yalnızca gerekli dosyaları kopyalayalım. Bu seçenekleri belirttikten sonra Yayımla düğmesine tıklayın. Sonraki birkaç saniye içinde Visual Studio gerekli dosyaları hedef siteye dağıtacak ve ilerleme durumunu Çıkış penceresinde görüntüleyecektir.
Şekil 7'de, Yayımlama işlemi tamamlandıktan sonra FTP sitesindeki dosyalar gösterilmektedir. Yalnızca işaretleme sayfalarının ve gerekli sunucu ve istemci tarafı destek dosyalarının karşıya yüklendiğini unutmayın.
Şekil 7: Yalnızca Gerekli Dosyalar Üretim Ortamında Yayımlandı (Tam boyutlu görüntüyü görüntülemek için tıklayın)
Yayımla seçeneği, Web Sitesini Kopyala aracından daha az incelikli bir araçtır. Web Sitesini Kopyala aracı yerel ve uzak sitelerdeki dosyaları incelemenize ve bunların nasıl farklılık gösterdiğini görmenize olanak tanırken Yayımla seçeneği böyle bir arabirim sağlamaz. Ayrıca, Web Sitesini Kopyala aracı tek tek dosya yükleyerek veya silerek tek seferlik değişiklikler yapmanızı sağlar. Yayımla seçeneği bu tür ayrıntılı denetime izin vermez; bunun yerine uygulamanın tamamını yayımlar. Bu davranışın artıları ve dezavantajları vardır. Artı tarafında, Yayımla seçeneğini kullanırken önemli bir dosyayı karşıya yüklemeyi unutmayabileceğinizi bilirsiniz. Ancak çok büyük bir web sitesinde küçük bir değişiklik yaptıysanız ne olacağını göz önünde bulundurun. Yayımla seçeneğiyle değiştirilmiş olan sayfayı veya iki sayfayı güncelleştiremezsiniz, bunun yerine Visual Studio sitenin tamamını dağıtırken beklemeniz gerekir.
İçeriği üretim ve geliştirme ortamları arasında farklılık gösteren belirli dosyaların olması yaygın bir durum değildir. Önemli bir örnek, uygulamanın yapılandırma dosyasıdır. Web.config
Yayımla seçeneği web uygulaması dosyalarını körü körüne kopyaladığı için üretim ortamının özelleştirilmiş yapılandırma dosyalarının üzerine geliştirme ortamındaki sürümle yazar. Sonraki öğretici bu konuyu daha ayrıntılı olarak inceler ve bu tür farklılıklar olduğunda bir web uygulaması dağıtmaya yönelik ipuçları sunar.
Özet
Bir web sitesinin dağıtılması için gerekli dosyaların geliştirme ortamından üretim ortamına kopyalanması gerekir. Önceki öğreticide FileZilla gibi bir FTP istemcisi kullanarak dosya aktarma işlemi gösterildi. Bu öğreticide Visual Studio'daki iki dağıtım aracı incelendi: Web Sitesini Kopyala aracı ve Yayımla seçeneği. Web Sitesini Kopyala aracı, yerel bilgisayardaki dosyaları listeleyen iki kaydırmalı bir arabirime ve iki bilgisayar arasında dosyaları karşıya yüklemeyi veya indirmeyi kolaylaştıran belirli bir uzak bilgisayara sahip olması nedeniyle bir FTP istemcisine benzer. Yayımla seçeneği, projeyi açıkça derleyen ve ardından uygulamanın tamamını belirtilen hedefe dağıtan daha kaba bir araçtır.
Mutlu Programlama!
Daha Fazla Bilgi
Bu öğreticide ele alınan konular hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın: