Visual Studio kullanarak Web Dağıtımı ASP.NET: Giriş
tarafından Tom Dykstra
Bu öğretici serisi, .NET için Azure SDK ile Visual Studio 2012 kullanarak ASP.NET bir web uygulamasını Azure App Service Web Apps veya üçüncü taraf barındırma sağlayıcısına dağıtmayı (yayımlamayı) gösterir. Yordamların çoğu Visual Studio 2013 için benzerdir.
Web uygulamasını İnternet üzerinden kişilerin kullanımına sunmak için geliştirirsiniz. Ancak web programlama öğreticileri genellikle geliştirme bilgisayarınızda çalışan bir şeyin nasıl alınacağını gösterdikten hemen 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'sine de uygulanır.
Bu öğreticilerde, Visual Studio'da ASP.NET nasıl çalışacağınızı bildiğiniz varsayılır. Aksi takdirde, başlangıç için iyi bir yer temel bir 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ı 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 dağıtacaksınız. Visual Studio tek tıklamayla yayımlama kullanarak dağıtmayı ve komut satırını kullanarak dağıtmayı göreceksiniz.
Öğreticilerin sayısı dağıtım işleminin göz korkutucu görünmesine neden olabilir. Aslında, temel yordamlar basittir. Ancak, gerçek dünyada 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.
Öğreticiler sırayla çalışacak şekilde tasarlanmıştır ve her bölüm önceki bölümde oluşturulur. Durumunuzla ilgili olmayan bölümleri atlayabilirsiniz, ancak sonraki öğreticilerde yordamları ayarlamanız gerekebilir.
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:
- Sürekli Tümleştirme ve Sürekli Teslim (Windows Azure ile Real-World Cloud Apps Oluşturma)
- Azure App Service'de web uygulaması dağıtma
- Kurumsal Senaryolarda Web Uygulamaları Dağıtma (Visual Studio 2010 için yazılmış ve yine de kurumsal ortamlar için yararlı bilgiler içeren eski bir öğretici kümesi.)
Üçü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'da Web Apps 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 neler bekleyebileceğinizi ö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 ASP.NET Web Forms bir projedir, 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 yalnızca başka bir biçimidir. Tek fark, MVC veya hedef sürümünüz ASP.NET 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 bir SQL Server veritabanı dağıtmanın üç yolu vardır:
- Entity Framework Code First Migrations
- 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'dan SQL Server'a geçiş gibi bazı belirli senaryolar dışında artık önerilmez.
Bu öğreticide gösterilen yöntemler SQL Server Compact 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 Eşlemesi'nde veritabanını web uygulaması dağıtımından ayrı dağıtma konusuna bakın.
Entity Framework Code First Migrations
Entity Framework sürüm 4.3'te Microsoft, Code First Migrations'ı kullanıma sunm Code First Migrations Code First Migrations, veri modelinde artımlı değişiklikler yapma ve bu değişiklikleri veritabanına yayma sürecini otomatikleştirir. Code First'in önceki sürümlerinde, veri modelini her değiştirdiğinizde genellikle Entity Framework'ün veritabanını bırakmasına ve yeniden oluşturmasına izin verirsiniz. Test verileri kolayca yeniden oluşturulabileceğinden bu geliştirme aşamasında sorun oluşturmaz, ancak üretimde genellikle veritabanını bırakmadan veritabanı şemasını güncelleştirmek istersiniz. Geçişler özelliği, Code First'ın 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 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, Yürütme Code First Migrations etiketli bir onay kutusu seçersiniz (uygulama başlangıcında çalışır). Bu ayar, dağıtım işleminin hedef sunucudaki uygulama Web.config dosyasını Code First'un 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, veritabanı oluşturulduktan veya şema güncelleştirildikten sonra yöntem ç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 SQL Server veritabanı için yayımlama profilini yapılandırırken Veritabanını güncelleştir etiketli bir onay kutusu seçebilirsiniz. İlk dağıtım sırasında dbDacFx sağlayıcısı, hedef veritabanındaki tabloları ve diğer veritabanı nesnelerini kaynak veritabanıyla eşleşecek şekilde 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 olabilecek şema değişikliklerini otomatik olarak yapmaktır.
Bu öğreticide, ASP.NET üyelik veritabanını dağıtmak için dbDacFx sağlayıcısını kullanacaksınız.
Bu öğretici sırasında sorun giderme
Dağıtım sırasında bir hata oluştuğunda veya dağıtılan site düzgün çalışmazsa, 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ı sağlanır. Öğreticileri incelerken bir hata iletisi alırsanız veya bir şey çalışmıyorsa sorun giderme sayfasını kontrol edin.
Yorumlar hoş geldiniz
Öğreticilerle ilgili açıklamalar kabul edilir ve öğretici güncelleştirildiğinde, öğretici yorumlarında sağlanan düzeltmeleri veya iyileştirme önerilerini dikkate almak için her çaba gösterilecektir.
Önkoşullar
Bu öğretici aşağıdaki ürünler için yazılmıştır:
- Windows 8 veya Windows 7.
- En son güncelleştirmeyle Birlikte Visual Studio 2012 veya Web için Visual Studio 2012 Express.
- Visual Studio 2012 için Azure SDK
Visual Studio 2010 SP1 veya Visual Studio 2013 kullanarak öğreticiyi izleyebilirsiniz, ancak bazı ekran görüntüleri farklı olacak ve bazı özellikler farklı olacaktır.
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 bulunan 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 SDK'sını Azure yerine üçüncü taraf barındırma sağlayıcısına yayımlamayı planlıyor olsanız bile gereklidir.
Not
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 yayınlanmıştır. Öğreticiler, bu özelliklerden bahsedecek ve bunlar hakkında daha fazla bilgi içeren kaynaklara bağlanacak şekilde güncelleştirilmiştir.
Yönergeler ve ekran görüntüleri Windows 8 temel alır, ancak öğreticilerde Windows 7'nin farklılıkları açıklanır.
Öğreticiyi tamamlamak için başka bir yazılım gereklidir, ancak bunu henüz yüklemeniz gerekmez. Öğ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 University uygulamasını temel alan basitleştirilmiş bir üniversite web sitesi 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ını uygulamak için C# klasöründe bulunan projeyle başlayın. Öğreticilerin 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:
C# klasöründeki ContosoUniversity çözüm dosyalarını Visual Studio projeleriyle çalışırken kullandığınız klasöre ContosoUniversity adlı 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ünün kök dizininde
C
bulunur.)Visual Studio'yu başlatın ve projeyi açın.
Çözüm Gezgini'da çözüme sağ tıklayın ve EnableNuGet Package Restore'e tıklayın.
Çözümü derleyin.
Derleme hataları alırsanız NuGet paketlerini el ile geri yükleyin:
- Çözüm Gezgini'da çözüme sağ tıklayın ve ardından Çözüm için NuGet Paketlerini Yönet'e tıklayın.
- 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.
- Çözümü yeniden derleyin.
Uygulamayı çalıştırmak için CTRL-F5 tuşlarına basın.
Uygulama Contoso Üniversitesi giriş sayfasında açılır.
(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üleyin ve düzenleyin.
- Bölümleri görüntüleme ve düzenleme.
Aşağıda birkaç temsili sayfanın ekran görüntüleri yer alır.
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, serideki aşağıdaki öğreticilerde daha ayrıntılı olarak açıklanmıştır.
- Contoso Üniversitesi, öğ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ğıtım yaptığınızda test verilerini hariç tutmanı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 dağıtılması gereken bir derlemede 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ıştırılan hesabın bu klasör üzerinde yazma izni olduğundan emin olmanız ve bu klasörü dağıtım dışında tutmanız gerekir. (Aksi takdirde, test ortamındaki hata günlüğü verileri üretim ortamına 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 Yayın) 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. Diğerleriyle el ile ilgilenirsiniz.