[ASP.NET] Web Application Projesi ile Web Site Projesi arasındaki farklar

Visual Studio ile hem web application projesi hem de web site oluşturabilirsiniz.

  •  Yeni bir web application projesi oluşturmak için File -> New -> Project’i seçerek veya Ctrl+Shift+N e basarak yeni proje oluşturma sayfasını açabilirsiniz.

  • Açılan pencereden aşağıdaki şekilde olduğu gibi Asp.Net Web Application projesini seçebilir, gerekli ayarları aşağıdan yaparak projeyi oluşturabilirsiniz.

  • Yeni bir web site oluşturmak için ise File -> New -> Web Site’ı seçerek veya Shift+Alt+N e basarak yeni web site oluşturma penceresini açabilirsiniz.

  • Açılan yeni pencerede ASP.NET Empty Web Site’ı seçebilir ve projenin oluşturulacağı dosya yolunu belirterek Web Site’ı oluşturabilirsiniz.

Peki bu iki uygulama arasında ne gibi bir fark var ? Hangisi iyi , hangisi avantajlı bunları senaryolar aracılığı ile inceleyelim.

Web Application Projesinin seçilmesi gereken senaryolar :

  • Eğer Visual Studio’nun Edit and Continue(Düzenle ve Devam et) özelliğini kullanmak istiyorsanız,
  • Eğer unit test’leri Asp.Net sayfalarının code behind dosyaları içinde kullanmak istiyorsanız,
  • Eğer bağımsız sınıflardan kullanıcı kontrolleri ve sayfalar ile ilişkili sınıflara referans verebilmek istiyorsanız,
  • Eğer birden fazla web project’e bağımlılık vermek istiyorsanız,
  • Eğer bir bütün bir siteye tek bir assembly yaratmak istiyorsanız,
  • Eğer site için yaratılan assembly’i versiyonlamak veya assembly ismini yönetmek istiyorsanız,
  • Eğer projeyi derlemek için MSBuild veya TeamBuild kullanmak istiyorsanız. Örneğin, projeyi build etmeden önce  veya sonra build edilmesini istediğiniz başka bir proje var ise,
  • Eğer production(canlı) ortamına kaynak kodları eklemek istemiyorsanız

web application projesini seçebilirsiniz.

Web Site Projesinin seçilmesi gereken senaryolar :

  • Eğer bir web projesinde hem C # hem de Visual basic kodlarının kullanılması isteniyorsa,
  • Eğer projenizi FTP aracılığıyla gerçek zamanlı olarak Visual Studio’dan değiştirmek istiyorsanız,
  • Eğer aktarım için projenizi derlemek zorunda olmak istemiyorsanız. (Kodlarınız çalışma zamanında derlenir)
  • Eğer her kullanıcı kontrolü veya sayfa için ayrı assembly’ler oluşturmasını istiyorsanız, aktarımdan önce ön derleme yapabilirsiniz.
  • Eğer herhangibi dosyayı production(canlı) ortamında aktarım yapmadan güncellemek istiyorsanız,(ilgili dosyayı kopyala yapıştır yaparak)
  • Eğer kodlarınızın yedeğinin production ortamında da olmasını istiyorsanız (Production (canlı)ortamındaki kodları açarak karşılaştırma yapabilirsiniz.)

Web site projesini seçebilirsiniz.

Arasındaki farkların özeti

Area Web Application Projects Web Site Projects
Proje dosya yapısı Bir Visual Studio proje dosyası(csproj,vbproj) proje ile ilgili bilgileri saklar.(eklenen dosyaları, referans verilen dll’leri, eklenen projeleri) Bir proje dosyası yoktur. Klasör’e eklenen tüm dosyalar otomatik olarak site’ye eklenir.
Derleme Gerliştirme ortamında yapılan bir değişikliği görmek için derleme yapmak zorunludur. Kaynak kodlar ilk çağrı geldiğinde ASP.NET tarafından otomatik olarak derlenir.
Varsayılan olarak kod dosyaları tek bir assembly üretir. İsteğe bağlı olarak her sayfa kendi assembly’sini oluşturabilir.
İsim alanları Sayfalara,kontrollere ve sınıflara isim alanları otomatik olarak eklenir. İsim alanları otomatik olarak eklenmez ama siz ekleyebilirsiniz.
Aktarım Derleme zamanında oluşan assebly’i server’a kopyalayarak aktarım yapabilirsiniz. Uygulamanın kaynak kodlarını server’da IIS’in bulunduğu klasöre kopyalayarak aktarım yapabilirsiniz.
Visual Studio Web Deploy eklentisi ile otomatik aktarımı sağlayabilir. Eğer önderleme yaptıysanız, oluşan assembly’leri IIS’in bulunduğu klasöre kopyalayarak aktarım yapabilirsiniz.
Visual Studio otomatik aktarım için Web Deploy’u desteklemektedir.

One thought on “[ASP.NET] Web Application Projesi ile Web Site Projesi arasındaki farklar

  1. Ömer says:

    Website’ın ftp üzerinden anlık olarak değiştirilebiliyor olması güzelmiş. Önemsiz bir şey yapıyorsak aslında basit durumlarda hiç uğraşmadan direk productionda değiştirebilmek güzel bir rahatlık. Sevdim. 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir