ASP.NET Web Dağıtımı Visual Studio Kullanarak: Giriş

tarafından Tom Dykstra

Başlangıç Projesini İndir

Bu öğretici serisi, .NET için Azure SDK ile Visual Studio 2012'yi kullanarak ASP.NET bir web uygulamasını Azure App Service Web Apps'e veya üçüncü taraf barındırma sağlayıcısına dağıtmayı (yayımlamayı) gösterir. İşlemlerin çoğu Visual Studio 2013 için benzerdir.

İnternet üzerinden kişilerin kullanımına sunmak için bir web uygulaması geliştirirsiniz. Ancak web programlama öğreticileri genellikle geliştirme bilgisayarınızda çalışacak bir şeyin nasıl yapılacağını gösterdikten sonra durur. Bu öğretici serisi, diğerlerinin bıraktığı yerden başlar: bir web uygulaması oluşturdunuz, test ettiniz ve kullanıma hazırsınız. Sırada ne var? Bu öğreticiler, test için önce yerel geliştirme bilgisayarınızdaki IIS'ye, ardından hazırlama ve üretim için Azure'a veya üçüncü taraf barındırma sağlayıcısına nasıl dağıtabileceğinizi gösterir. Dağıttığınız örnek uygulama Entity Framework, SQL Server ve ASP.NET üyelik sistemini kullanan bir web uygulaması projesidir. Örnek uygulama ASP.NET Web Forms kullanır, ancak gösterilen yordamlar ASP.NET MVC ve Web API'sinde de geçerlidir.

Bu öğreticilerde, Visual Studio'da ASP.NET ile nasıl çalışabileceğinizi bildiğiniz varsayılır. Aksi takdirde, başlangıç için iyi bir yer temel ASP.NET Web Forms Öğreticisi veya temel bir ASP.NET MVC Öğreticisi'dir.

Öğreticiyle doğrudan ilgili olmayan sorularınız varsa bunları ASP.NET Dağıtım forumu veya StackOverflow'a gönderebilirsiniz.

Genel bakış

Bu öğreticiler, SQL Server veritabanlarını içeren bir ASP.NET web uygulaması dağıtma işleminde size yol gösterir. Test için önce yerel geliştirme bilgisayarınızdaki IIS'ye, ardından hazırlama ve üretim için Azure App Service ve Azure SQL Veritabanı'nda Web Apps'e dağıtacaksınız. Visual Studio'nun tek tıklamayla yayımlama özelliğini kullanarak ve komut satırını kullanarak nasıl dağıtılabileceğini göreceksiniz.

Eğitim materyallerinin sayısı, kurulum sürecinin göz korkutucu görünmesine neden olabilir. Aslında, temel prosedürler basittir. Ancak, gerçek dünya koşullarında, genellikle hedef sunucuda klasör izinlerini ayarlama gibi ek dağıtım görevleri gerçekleştirmeniz gerekir. Öğreticilerin gerçek bir uygulamayı başarıyla dağıtmanızı engelleyebilecek bilgileri bırakmamasını umarak bu ek görevlerden bazılarını göstermiş olduk.

Eğitimler sırayla çalışacak şekilde tasarlanmıştır ve her bölüm bir önceki bölümün üzerine inşa edilmiştir. Durumunuzla ilgili olmayan bölümleri atlayabilirsiniz, ancak sonraki eğitimlerde prosedürleri ayarlamanız gerekebilir.

Hedeflenen hedef kitle

Öğreticiler, aşağıdaki ortamlarda çalışan ASP.NET geliştiricileri hedeflemektedir:

  • Üretim ortamı Azure App Service Web Apps veya üçüncü taraf barındırma sağlayıcısıdır.
  • Dağıtım, sürekli tümleştirme işlemiyle sınırlı değildir, ancak doğrudan Visual Studio'dan gerçekleştirilebilir.

Sürekli teslim işlemi kullanılarak kaynak denetiminden dağıtım, komut satırından dağıtmayı gösteren bir öğretici dışında bu öğreticilerde ele alınmaz. Sürekli teslim hakkında bilgi için aşağıdaki kaynaklara bakın:

Üçüncü taraf barındırma sağlayıcısı kullanma

Öğreticiler, bir Azure hesabı ayarlama ve uygulamayı hazırlama ve üretim için Azure App Service'teki Web Apps'e dağıtma işleminde size yol gösterir. Ancak, seçtiğiniz bir üçüncü taraf barındırma sağlayıcısına dağıtmak için aynı temel yordamları kullanabilirsiniz. Öğreticiler Azure'a özgü işlemlerin üzerinden geçtiğinde, bunu açıklar ve üçüncü taraf barındırma sağlayıcısında karşılaşabileceğiniz farkları önerir.

Web uygulaması projelerini dağıtma

Bu öğreticiler için indirdiğiniz ve dağıttığınız örnek uygulama bir Visual Studio web uygulaması projesidir. Ancak, Visual Studio için en son Web Yayımlama Güncelleştirmesini yüklerseniz, web uygulaması projeleri için aynı dağıtım yöntemlerini ve araçlarını kullanabilirsiniz.

ASP.NET MVC projelerini dağıtma

Örnek uygulama bir ASP.NET Web Forms projesidir, ancak nasıl yapılacağını öğrendiğiniz her şey ASP.NET MVC için de geçerlidir. Visual Studio MVC projesi, web uygulaması projesinin başka bir biçimidir. Tek fark, ASP.NET MVC'yi veya hedef sürümünüzü desteklemeyen bir barındırma sağlayıcısına dağıtım yapıyorsanız, projenize uygun (MVC 3, MVC 4 veya MVC5) NuGet paketini yüklediğinizden emin olmanız gerekir.

Programlama dili

Örnek uygulama C# kullanır, ancak öğreticiler C# bilgisi gerektirmez ve öğreticiler tarafından gösterilen dağıtım teknikleri dile özgü değildir.

Veritabanı dağıtım yöntemleri

Visual Studio'da web dağıtımıyla birlikte SQL Server veritabanı dağıtmanın üç yolu vardır:

  • Entity Framework Kod Önce Geçişleri
  • dbDacFx Web Dağıtımı sağlayıcısı
  • dbFullSql Web Dağıtımı sağlayıcısı

Bu öğreticide bu yöntemlerden ilk ikisini kullanacaksınız. dbFullSql Web Dağıtımı sağlayıcısı, SQL Server Compact'tan SQL Server'a geçiş gibi bazı belirli senaryolar dışında artık önerilmemiş eski bir yöntemdir.

Bu öğreticide gösterilen yöntemler SQL Server Compact için değil SQL Server veritabanlarına yöneliktir. SQL Server Compact veritabanını dağıtma hakkında bilgi için bkz. SQL Server Compact ile Visual Studio Web Dağıtımı.

Bu öğreticide gösterilen yöntemler, Web Dağıtımı yayımlama yöntemini kullanmanızı gerektirir. FTP, Dosya Sistemi veya FPSE gibi farklı bir yayımlama yöntemini tercih ediyorsanız Visual Studio ve ASP.NET için Web Dağıtımı İçerik Haritası'nda veritabanını web uygulaması dağıtımından ayrı olarak dağıtma konusuna bakın.

Entity Framework Kod Önce Geçişleri

Entity Framework sürüm 4.3'te Microsoft, Code First Migrations'ı tanıttı. Code First Migrations, veri modelinde artımlı değişiklikler yapma ve bu değişiklikleri veritabanına yayma işlemini otomatikleştirir. Code First'in önceki sürümlerinde, veri modelini her değiştirdiğinizde Entity Framework'ün veritabanını bırakmasına ve yeniden oluşturmasına izin verirsiniz. Test verileri kolayca yeniden oluşturulduğundan, geliştirme aşamasında bu sorun olmaz, ancak üretimde genellikle veritabanını bırakmadan veritabanı şemasını güncelleştirmek istersiniz. Geçişler özelliği, Code First'un veritabanını bırakmadan ve yeniden oluşturmadan güncelleştirmesini sağlar. Gerekli şema değişikliklerini nasıl yapacağınıza Code First'un otomatik olarak karar vermesine izin verebilir veya değişiklikleri özelleştiren kod yazabilirsiniz. Code First Migrations'a giriş için bkz. Code First Migrations.

Bir web projesi dağıtırken Visual Studio, Code First Migrations tarafından yönetilen bir veritabanını dağıtma işlemini otomatikleştirebilir. Yayımlama profilini oluşturduğunuzda, Kod İlk Geçişlerini Yürüt (uygulama başlangıcında çalıştırılır) etiketli bir onay kutusu seçersiniz. Bu ayar, dağıtım işleminin hedef sunucudaki uygulama Web.config dosyasını Code First'ın başlatıcı sınıfını kullanması için otomatik olarak yapılandırmasına MigrateDatabaseToLatestVersion neden olur.

Visual Studio, dağıtım işlemi sırasında veritabanıyla hiçbir şey yapmaz. Dağıtılan uygulama dağıtımdan sonra veritabanına ilk kez eriştiğinde, Code First veritabanını otomatik olarak oluşturur veya veritabanı şemasını en son sürüme güncelleştirir. Uygulama bir Migrations Seed yöntemi uygularsa, yöntem veritabanı oluşturulduktan veya şema güncelleştirildikten sonra çalışır.

Bu öğreticide, uygulama veritabanını dağıtmak için Code First Migrations kullanacaksınız.

dbDacFx Web Dağıtımı sağlayıcısı

Entity Framework Code First tarafından yönetilmiyor bir SQL Server veritabanı için yayımlama profilini yapılandırırken Veritabanını güncelleştir etiketli bir onay kutusunu seçebilirsiniz. İlk dağıtım sırasında dbDacFx sağlayıcısı, kaynak veritabanıyla eşleşecek şekilde hedef veritabanında tablolar ve diğer veritabanı nesneleri oluşturur. Sonraki dağıtımlarda, sağlayıcı kaynak ve hedef veritabanları arasındaki farkı belirler ve hedef veritabanının şemasını kaynak veritabanıyla eşleşecek şekilde güncelleştirir. Varsayılan olarak, sağlayıcı bir tablo veya sütunun bırakılması gibi veri kaybına neden olan hiçbir değişiklik yapmaz.

Bu yöntem, veritabanı tablolarında veri dağıtımını otomatikleştirmez, ancak bunu yapmak için betikler oluşturabilir ve Visual Studio'yu dağıtım sırasında bunları çalıştıracak şekilde yapılandırabilirsiniz. Dağıtım sırasında betik çalıştırmanın bir diğer nedeni de veri kaybına neden olacağından otomatik olarak yapılamayan şema değişiklikleri yapmaktır.

Bu öğreticide, ASP.NET üyelik veritabanını dağıtmak için dbDacFx sağlayıcısını kullanacaksınız.

Bu kılavuz sırasında sorunları giderme

Dağıtım sırasında bir hata oluştuğunda veya dağıtılan site düzgün çalışmıyorsa, hata iletileri her zaman belirgin bir çözüm sağlamaz. Bazı yaygın sorun senaryolarında size yardımcı olmak için bir sorun giderme başvuru sayfası mevcuttur. Eğitimleri geçerken bir hata iletisi alırsanız veya bir şey düzgün çalışmıyorsa, sorun giderme sayfasını kontrol edin.

Yorumlar hoş geldiniz

Eğitimlerle ilgili yorumlar memnuniyetle karşılanır ve eğitim güncellendiğinde, eğitim yorumlarında yapılan düzeltmeleri veya iyileştirme önerilerini dikkate almak için azami gayret gösterilecektir.

Önkoşullar

Bu öğretici aşağıdaki ürünler için yazılmıştır:

Visual Studio 2010 SP1 veya Visual Studio 2013 kullanarak öğreticiyi izleyebilirsiniz, ancak bazı ekran görüntüleri farklı olur ve bazı özellikler farklı olur.

Visual Studio 2013 kullanıyorsanız Visual Studio 2013 için Azure SDK'yı yükleyin.

Visual Studio 2010 SP1 kullanıyorsanız aşağıdaki yazılımı yükleyin:

Makinenizde zaten sahip olduğunuz SDK bağımlılıklarından kaç tanesine bağlı olarak, Azure SDK'nın yüklenmesi birkaç dakika ile yarım saat veya daha uzun sürebilir. SDK, Visual Studio web yayımlama özelliklerine yönelik en son güncelleştirmeleri içerdiğinden, Azure yerine üçüncü taraf bir barındırma sağlayıcısında yayımlamayı planlıyor olsanız bile Azure SDK'sına ihtiyacınız vardır.

Uyarı

Bu öğretici, Azure SDK'nın 1.8.1 sürümüyle yazılmıştır. O zamandan beri ek özelliklere sahip daha yeni sürümler piyasaya sürüldü. Öğreticiler, bu özelliklerden bahsedecek şekilde ve bunlar hakkında daha fazla bilgi içeren kaynaklara bağlantılar içerecek şekilde güncellenmiştir.

Yönergeler ve ekran görüntüleri Windows 8'i temel alır, ancak öğreticilerde Windows 7 için farklılıklar açıklanmaktadır.

Öğreticiyi tamamlamak için başka bir yazılım gereklidir, ancak henüz yüklemek zorunda değilsiniz. Öğretici, ihtiyacınız olduğunda yükleme adımlarını gösterir.

Örnek uygulamayı indirin:

Dağıttığınız uygulamanın adı Contoso University'dir ve sizin için zaten oluşturulmuştur. Bu, ASP.NET sitesindeki Entity Framework öğreticilerinde açıklanan Contoso Üniversitesi uygulamasını temel alan, üniversite web sitesinin basitleştirilmiş bir sürümüdür.

Önkoşulları yükledikten sonra Contoso University web uygulamasını indirin. .zip dosyası projenin birden çok sürümünü içerir. Öğreticinin adımları üzerinde çalışmak için C# klasöründe bulunan projeyle başlayın. Eğitimlerin sonunda projenin nasıl göründüğünü görmek için projeyi ContosoUniversity-End klasöründe açın.

Projeyi öğretici adımlarıyla çalışmaya hazırlamak için aşağıdaki adımları gerçekleştirin:

  1. C# klasöründeki ContosoUniversity çözüm dosyalarını, Visual Studio projeleriyle çalışırken kullandığınız klasöre ContosoUniversity adlı bir klasöre kaydedin.

    Varsayılan olarak bu, Visual Studio 2012 için aşağıdaki klasördür:

    C:\Users\<username>\Documents\Visual Studio 2012\Projects

    (Bu öğreticideki ekran görüntüleri için proje klasörü , sürücüsündeki kök dizinde Cbulunur.)

  2. Visual Studio'yu başlatın ve projeyi açın.

  3. Çözüm Gezgini'nde çözüme sağ tıklayın ve EtkinleştirNuGet Paket Geri Yükleme'ye tıklayın.

  4. Çözümü oluşturun.

  5. Derleme hataları alırsanız NuGet paketlerini el ile geri yükleyin:

    1. Çözüm Gezgini'nde çözüme sağ tıklayın ve ardından Çözüm için NuGet Paketlerini Yönet'e tıklayın.
    2. NuGet Paketlerini Yönet iletişim kutusunun üst kısmında bu çözümde bazı NuGet paketlerinin eksik olduğunu görürsünüz. Geri yüklemek için tıklayın.Geri Yükle düğmesine tıklayın.
    3. Çözümü yeniden oluşturun.
  6. Uygulamayı çalıştırmak için CTRL-F5 tuşuna basın.

    Uygulama Contoso Üniversitesi giriş sayfasında açılır.

    Giriş Sayfası Geliştirme

    (Visual Studio SQL Server Express LocalDB örneğini başlatırken bir bekleme süresi olabilir ve bu işlem çok uzun sürerse zaman aşımı hatası alabilirsiniz. Bu durumda projeyi yeniden başlatmanız gerekir.)

Web sitesi sayfalarına menü çubuğundan erişilebilir ve aşağıdaki işlevleri gerçekleştirmenizi sağlar:

  • Öğrenci istatistiklerini görüntüleme (Hakkında sayfası).
  • Öğrencileri görüntüleme, düzenleme, silme ve ekleme.
  • Kursları görüntüleme ve düzenleme.
  • Eğitmenleri görüntüleme ve düzenleme.
  • Bölümleri görüntüleme ve düzenleme.

Aşağıda birkaç temsili sayfanın ekran görüntüleri yer almaktadır.

Öğrenciler Sayfa Geliştirme

Öğrenci Ekle Sayfa Geliştirme

Dağıtımı etkileyen uygulama özelliklerini gözden geçirme

Uygulamanın aşağıdaki özellikleri, uygulamayı nasıl dağıttığınızı veya dağıtmak için yapmanız gerekenleri etkiler. Bunların her biri, serinin aşağıdaki eğitimlerinde daha ayrıntılı olarak açıklanmıştır.

  • Contoso University, öğrenci ve eğitmen adları gibi uygulama verilerini depolamak için bir SQL Server veritabanı kullanır. Veritabanı, test verileriyle üretim verilerinin bir karışımını içerir ve üretime dağıttığınızda test verilerini dışlamanız gerekir.
  • Uygulama, kullanıcı hesabı bilgilerini SQL Server veritabanında depolayan ASP.NET üyelik sistemini kullanır. Uygulama, bazı kısıtlı bilgilere erişimi olan bir yönetici kullanıcı tanımlar. Üyelik veritabanını test hesapları olmadan ancak yönetici hesabıyla dağıtmanız gerekir.
  • Uygulama bir üçüncü taraf hata günlüğü ve raporlama yardımcı programı kullanır. Bu yardımcı program, uygulamayla birlikte dağıtılması gereken bir bütünleştirilmiş kodda sağlanır.
  • Hata günlüğü yardımcı programı, XML dosyalarındaki hata bilgilerini bir dosya klasörüne yazar. Dağıtılan sitede ASP.NET altında çalışan hesabın bu klasöre yazma izni olduğundan emin olmanız ve bu klasörü dağıtımdan dışlamanız gerekir. (Aksi takdirde, test ortamındaki hata günlüğü verileri üretime dağıtılabilir ve/veya üretim hata günlüğü dosyaları silinebilir.)
  • Uygulama, hedef ortama (test, hazırlama veya üretim) bağlı olarak dağıtılan Web.config dosyasında değiştirilmesi gereken bazı ayarları ve derleme yapılandırmasına bağlı olarak değiştirilmesi gereken diğer ayarları (Hata Ayıklama veya Sürüm) içerir.
  • Visual Studio çözümü bir sınıf kitaplığı projesi içerir. Yalnızca bu projenin oluşturduğu derleme dağıtılmalıdır, projenin kendisi dağıtılmamalıdır.

Özet

Serideki bu ilk öğreticide örnek Visual Studio projesini indirdiniz ve uygulamayı dağıtma şeklinizi etkileyen site özelliklerini gözden geçirdiniz. Aşağıdaki öğreticilerde, bu işlemlerden bazılarını otomatik olarak işlenecek şekilde ayarlayarak dağıtıma hazırlanırsınız. Geriye kalanları elle yönetirsiniz.