Web Sitesi , IIS gibi bir ASP.NET web sunucusuna dağıttığınız şeydir. Sadece bir grup dosya ve klasör. Web Sitesinde sizi Visual Studio'ya bağlayan hiçbir şey yoktur (proje dosyası yoktur). Web sayfalarının kod üretimi ve derlenmesi (.aspx, .ascx, .master gibi) çalışma zamanında dinamik olarak yapılır ve bu dosyalarda yapılan değişiklikler çerçeve tarafından algılanır ve otomatik olarak yeniden derlenir. Paylaşmak istediğiniz kodu özel App_Code klasöründeki sayfalar arasına koyabilir veya önceden derleyebilir ve montajı Bin klasörüne koyabilirsiniz.
Web Uygulaması özel bir Visual Studio projesidir. Web Siteleri ile temel fark, projeyi oluşturduğunuzda tüm kod dosyalarının bin dizinine yerleştirilen tek bir derlemede derlenmesidir. Kod dosyalarını web sunucusuna dağıtmazsınız. Paylaşılan kod dosyaları için özel bir klasöre sahip olmak yerine, bunları sınıf kitaplığında yaptığınız gibi istediğiniz yere koyabilirsiniz. Web Uygulamaları, proje ve kod dosyaları gibi konuşlandırılması gerekmeyen dosyalar içerdiğinden , Visual Studio'da bir Web Sitesini belirtilen bir konuma çıktılamak için Yayımla komutu vardır.
App_Code ve Çöp Kutusu
Paylaşılan kod dosyalarını dağıtmak genellikle kötü bir fikirdir, ancak bu Web Uygulamasını seçmeniz gerektiği anlamına gelmez. Web sitesinin tüm kodunu barındıran bir sınıf kitaplığı projesine başvuran bir Web Siteniz olabilir. Web Uygulamaları bunu yapmanın kolay bir yoludur.
CodeBehind
Bu konu .aspx ve .ascx dosyalarına özeldir. Bu konu, kod arkası dosyaları kullanmayan ASP.NET MVC ve ASP.NET Web Sayfaları gibi yeni uygulama çerçevelerinde giderek daha az ilgilidir.
.Aspx sayfaları ve .ascx denetimlerinin kod arkası dosyaları da dahil olmak üzere tüm kod dosyalarının tek bir derlemede derlenmesini sağlayarak , Web Uygulamalarında her küçük değişiklik için yeniden derlemeniz gerekir ve canlı değişiklikler yapamazsınız. Web Sitelerinde değişiklikler çalışma zamanı tarafından algılanırken ve sayfalar / denetimler otomatik olarak yeniden derlenirken, bu değişiklikleri geliştirme sırasında gerçek bir acı olabilir.
Sayfaların / denetimlerin benzersiz adlar vermesi veya farklı ad alanlarına yerleştirilmesi konusunda endişelenmenize gerek olmadığından, çalışma zamanının kod arkası montajlarını yönetmesi sizin için daha az işe yarar.
Kod dosyalarını dağıtmanın her zaman iyi bir fikir olduğunu söylemiyorum (özellikle paylaşılan kod dosyaları durumunda değil), ancak codebehind dosyaları yalnızca kullanıcı arabirimine özgü görevleri yerine getiren kodları içermelidir. önemli kod her zaman Bin klasörüne bitecek şekilde katmanlı. Bu durumda codebehind dosyalarını dağıtmanın zararlı olduğu düşünülmemelidir.
Web Uygulamalarının bir başka sınırlaması da sadece projenin dilini kullanabilmenizdir. Web Sitelerinde bazı sayfalar C #, bazıları VB, vb. Olabilir. Özel Visual Studio desteğine gerek yoktur. Yapı sağlayıcısının genişletilebilirliğinin güzelliği budur.
Ayrıca, Derleyici çalışma zamanında derlenen biçimlendirme kodunu değil (MVC'de bunu MvcBuildViews seçeneğini kullanarak düzeltebilirsiniz), Web Uygulamalarında sayfalarda / denetimlerde hata algılama almazsınız.
Görsel stüdyo
Web Uygulamaları Visual Studio projeleri olduğundan, Web Sitelerinde bulunmayan bazı özellikler elde edersiniz. Örneğin, Javascript dosyalarını küçültmek ve / veya birleştirmek gibi çeşitli görevleri gerçekleştirmek için derleme olaylarını kullanabilirsiniz.
Visual Studio 2010'da tanıtılan bir diğer hoş özellik de Web.config dönüşümüdür .Bu, Web Sitelerinde de mevcut değildir. Şimdi VS 2013'te Web Siteleri ile çalışır.
Bir Web Uygulaması oluşturmak, özellikle büyük siteler için bir Web Sitesi oluşturmaktan daha hızlıdır. Bunun nedeni, Web Uygulamalarının biçimlendirme kodunu derlememesidir. MVC'de MvcBuildViews değerini true olarak ayarlarsanız, biçimlendirme kodunu derler ve çok yararlı olan hata algılama alırsınız. Aşağı tarafı, çözümü her oluşturduğunuzda, özellikle siteyi düzenlemiyorsanız, yavaş ve verimsiz olabilecek tüm siteyi oluşturmasıdır. Kendimi MvcBuildViews açma ve kapatma (bir proje kaldırma gerektiren) bulmak. Öte yandan, Web Siteleri ile siteyi çözümün bir parçası olarak oluşturmak isteyip istemediğinizi seçebilirsiniz. Yapmamayı seçerseniz, çözümü oluşturmak çok hızlıdır ve her zaman Web Sitesi düğümüne tıklayabilir ve değişiklik yaptıysanız Oluştur'u seçebilirsiniz.
Bir MVC Web Uygulaması projesinde, 'Görünüm Ekle', 'Görünüme Git', 'Denetleyici Ekle' vb. Gibi ortak görevler için ekstra komutlar ve iletişim kutuları vardır. Bunlar bir MVC Web Sitesinde mevcut değildir.
IIS Express'i geliştirme sunucusu olarak kullanıyorsanız, Web Siteleri'nde sanal dizinler ekleyebilirsiniz. Bu seçenek Web Uygulamalarında kullanılamaz.
NuGet Paket Geri Yükleme Web Sitelerinde çalışmaz, Packages.config üzerinde listelenen paketleri manuel olarak yüklemeniz gerekirPaket Geri Yükleme artık NuGet 2.7 ile başlayan Web Siteleri ile çalışmaktadır