ASP.NET Web Dağıtımı: Visual Studio Kullanarak Veritabanı Dağıtımına Hazırlık

Başlangıç Projesini İndir

Bu öğretici serisi, Visual Studio 2012 veya Visual Studio 2010 kullanarak bir ASP.NET 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. Seri hakkında bilgi için serinin ilk öğreticisine bakın.

Genel bakış

Bu öğreticide projenin veritabanı dağıtımına nasıl hazır olduğu gösterilmektedir. Veritabanı yapısı ve uygulamanın iki veritabanındaki verilerin bazıları (tümü değil) test, hazırlama ve üretim ortamlarına dağıtılmalıdır.

Genellikle, bir uygulama geliştirirken, canlı bir siteye dağıtmak istemediğiniz bir veritabanına test verileri girersiniz. Ancak, dağıtmak istediğiniz bazı üretim verileriniz de olabilir. Bu öğreticide Contoso University projesini yapılandıracak ve dağıttığınızda doğru verilerin dahil olması için SQL betiklerini hazırlayacaksınız.

Hatırlatma: Bir hata iletisi alırsanız veya eğitici rehber boyunca bir şey çalışmıyorsa, sorun giderme sayfasını kontrol ettiğinizden emin olun.

SQL Server Express LocalDB (Yerel Veritabanı Motoru)

Örnek uygulama SQL Server Express LocalDB kullanır. SQL Server Express, SQL Server'ın ücretsiz sürümüdür. Sql Server'ın tam sürümleriyle aynı veritabanı altyapısını temel alarak geliştirme sırasında yaygın olarak kullanılır. SQL Server Express ile test edebilir ve SQL Server Sürümleri arasında farklılık gösteren özellikler için birkaç özel durum dışında uygulamanın üretimde aynı şekilde davranacağına emin olabilirsiniz.

LocalDB, veritabanlarıyla .mdf dosyaları olarak çalışmanızı sağlayan özel bir SQL Server Express yürütme modudur. Genellikle, LocalDB veritabanı dosyaları bir web projesinin App_Data klasöründe tutulur. SQL Server Express'teki kullanıcı örneği özelliği, .mdf dosyalarla çalışmanızı da sağlar, ancak kullanıcı örneği özelliği kullanım dışıdır; bu nedenle, .mdf dosyalarıyla çalışmak için LocalDB önerilir.

Sql Server Express genellikle üretim web uygulamaları için kullanılmaz. LocalDB özellikle bir web uygulamasıyla üretim kullanımı için önerilmez çünkü IIS ile çalışacak şekilde tasarlanmamıştır.

Visual Studio 2012'de LocalDB varsayılan olarak Visual Studio ile yüklenir. Visual Studio 2010 ve önceki sürümlerde SQL Server Express (LocalDB olmadan) varsayılan olarak Visual Studio ile yüklenir; bu nedenle bu serinin ilk öğreticisinde önkoşullardan biri olarak yüklemişsinizdir.

LocalDB de dahil olmak üzere SQL Server sürümleri hakkında daha fazla bilgi için aşağıdaki SQL Server Veritabanlarıyla Çalışma kaynaklarına bakın.

Entity Framework ve Evrensel Sağlayıcılar

Veritabanı erişimi için Contoso University uygulaması, .NET Framework'e dahil olmadığından uygulamayla dağıtılması gereken aşağıdaki yazılımları gerektirir:

Bu yazılım NuGet paketlerine eklendiğinden, gerekli derlemelerin projeyle dağıtılacağı şekilde proje zaten ayarlanmıştır. (Bağlantılar bu paketlerin geçerli sürümlerine işaret ederek bu öğretici için indirdiğiniz başlangıç projesinde yüklü olandan daha yeni olabilir.)

Azure yerine bir üçüncü taraf barındırma sağlayıcısına dağıtım yapıyorsanız Entity Framework 5.0 veya sonraki bir sürümünü kullandığınızdan emin olun. Code First Migrations'ın önceki sürümleri Tam Güven gerektirir ve çoğu barındırma sağlayıcısı uygulamanızı Orta Güven'de çalıştırır. Orta Güven hakkında daha fazla bilgi için IIS'ye Test Ortamı Olarak Dağıtma kılavuzuna bakın.

Uygulama veritabanı dağıtımı için Code First Migrations'ı yapılandırma

Contoso University uygulama veritabanı Code First tarafından yönetilir ve bunu Code First Migrations kullanarak dağıtacaksınız. Code First Migrations kullanarak veritabanı dağıtımına genel bakış için bu serinin ilk öğreticisine bakın.

Bir uygulama veritabanını dağıttığınızda, içindeki verilerin büyük bir kısmı muhtemelen yalnızca test amacıyla bulunduğundan, geliştirme veritabanınızı yalnızca içindeki tüm verileri üretime dağıtmazsınız. Örneğin, bir test veritabanındaki öğrenci adları kurgusaldır. Öte yandan, genellikle içinde hiç veri olmadan yalnızca veritabanı yapısını dağıtamazsınız. Test veritabanınızdaki verilerden bazıları gerçek veriler olabilir ve kullanıcılar uygulamayı kullanmaya başladığında orada olmalıdır. Örneğin, veritabanınızda geçerli not değerleri veya gerçek bölüm adları içeren bir tablo olabilir.

Bu yaygın senaryonun benzetimini yapmak için, veritabanına yalnızca üretimde olmasını istediğiniz verileri ekleyen bir Code First Migrations Seed yöntemi yapılandıracaksınız. Code First veritabanını üretimde oluşturduğunda üretimde çalıştırılacağından bu Seed yöntem test verileri eklememelidir.

Geçişler yayımlanmadan önce, Code First'in önceki sürümlerinde, her model değişikliği sırasında veritabanının tamamen silinip baştan oluşturulması gerektiğinden, Seed yöntemlerinin test verileri eklemek için de kullanılması yaygındı. Code First Migrations ile, test verileri veritabanı değiştikten sonra korunur, bu nedenle yönteme Seed test verileri dahil edilmesi gerekmez. İndirdiğiniz proje, başlatıcı sınıfının yöntemine Seed tüm verileri ekleme yöntemini kullanır. Bu öğreticide bu başlatıcı sınıfını devre dışı bırakacak ve Geçişleri etkinleştireceksiniz. Ardından, Migrations yapılandırma sınıfındaki Seed yöntemini, yalnızca üretime eklemek istediğiniz verileri ekleyecek şekilde güncelleyeceksiniz.

Aşağıdaki diyagramda uygulama veritabanının şeması gösterilmektedir:

Okul_veritabanı_diyagramı

Bu öğreticiler için, site ilk dağıtıldığında Student ve Enrollment tablolarının boş olması gerektiğini varsayacaksınız. Diğer tablolar, uygulama canlı yayına geçtiğinde önceden yüklenmesi gereken veriler içerir.

Başlatıcıyı devre dışı bırakma

Code First Migrations'ı kullanacağınız için Code First başlatıcısını DropCreateDatabaseIfModelChanges kullanmanız gerekmez. Bu başlatıcının kodu ContosoUniversity.DAL projesindeki SchoolInitializer.cs dosyasındadır. appSettings dosyasının öğesindeki bir ayar, uygulama veritabanına ilk kez erişmeye çalıştığında bu başlatıcının çalışmasına neden olur:

<appSettings>
  <add key="Environment" value="Dev" />
  <add key="DatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL" value="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity.DAL" />
</appSettings>

Uygulama Web.config dosyasını açın ve Code First başlatıcı sınıfını belirten öğeyi add kaldırın veya yoruma alın. appSettings öğesi şimdi şöyle görünür:

<appSettings>
  <add key="Environment" value="Dev" />
</appSettings>

Uyarı

Başlatıcı sınıfını belirtmenin bir diğer yolu, Global.asax dosyasındaki Application_Start yönteminden Database.SetInitializer çağrısı yapmaktır. Başlatıcıyı belirtmek için bu yöntemi kullanan bir projede Geçişleri etkinleştiriyorsanız, bu kod satırını kaldırın.

Uyarı

Visual Studio 2013 kullanıyorsanız, 2. ve 3. adımlar arasına aşağıdaki adımları ekleyin: (a) PMC'de EF'nin geçerli sürümünü almak için "update-package entityframework -version 6.1.1" girin. Ardından (b) derleme hatalarının listesini almak ve bunları düzeltmek için projeyi derleyin. Artık mevcut olmayan ad alanları için using deyimlerini silin, eksik using deyimlerini eklemek için sağ tıklayın ve Çözümle'ye tıklayın, ve System.Data.EntityState'in geçtiği yerleri System.Data.Entity.EntityState olarak değiştirin.

İlk Kod Geçişlerini Etkinleştirme

  1. ContosoUniversity projesinin (ContosoUniversity.DAL değil) başlangıç projesi olarak ayarlandığından emin olun. Çözüm Gezgini'nde ContosoUniversity projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarla'yı seçin. Code First Migrations, veritabanı bağlantı dizesini bulmak için başlangıç projesine bakar.

  2. Araçlar menüsünde NuGet Paket Yöneticisi Paket Yöneticisi>Konsolu'nu seçin.

    Paket Yöneticisi Konsolunu Seçme

  3. Paket Yöneticisi Konsolu penceresinin üst kısmında, varsayılan proje olarak ContosoUniversity.DAL öğesini seçin ve ardından PM> istemde "enable-migrations" yazın.

    enable-migrations komutu

    ( Enable-migrations komutunun tanınmadığını belirten bir hata alırsanız update-package EntityFramework -Reinstall komutunu girin ve yeniden deneyin.)

    Bu komut ContosoUniversity.DAL projesinde bir Migrations klasörü oluşturur ve bu klasöre iki dosya ekler: Geçişleri yapılandırmak için kullanabileceğiniz bir Configuration.cs dosyası ve veritabanını oluşturan ilk geçiş için InitialCreate.cs dosyası.

    Geçişler klasörü

    Komutun Code First bağlam sınıfını içeren projede yürütülmesi gerektiğinden, DAL projesini Paket Yöneticisi Konsolu'nunenable-migrations açılan listesinden seçtiniz. Bu sınıf bir sınıf kitaplığı projesinde olduğunda, Code First Migrations çözüm için başlangıç projesindeki veritabanı bağlantı dizesini arar. ContosoUniversity çözümünde, web projesi başlangıç projesi olarak ayarlanmıştır. Bağlantı dizesine sahip projeyi Visual Studio'daki başlangıç projesi olarak belirlemek istemiyorsanız, başlangıç projesini PowerShell komutunda belirtebilirsiniz. Komut söz dizimini görmek için komutunu get-help enable-migrationsgirin.

    enable-migrations Veritabanı zaten mevcut olduğundan, komut ilk geçişi otomatik olarak oluşturmuştur. Alternatif olarak, veritabanını Migrations'ın oluşturması gerekir. Bunu yapmak için, Geçişleri etkinleştirmeden önce ContosoUniversity veritabanını silmek için Sunucu Gezgini'ni veya SQL Server Nesne Gezgini'ni kullanın. Geçişleri etkinleştirdikten sonra, "add-migration InitialCreate" komutunu girerek ilk geçişi el ile oluşturun. Daha sonra "update-database" komutunu girerek veritabanını oluşturabilirsiniz.

Seed yöntemini ayarlama

Bu öğreticide Code First Migrations Seed sınıfının yöntemine Configuration kod ekleyerek sabit veriler ekleyeceksiniz. Code First Migrations, her geçiş sonrasında Seed yöntemini çağırır.

Yöntem her geçiş sonrasında çalıştığından Seed , ilk geçiş sonrasında tablolarda zaten veriler vardır. Bu durumu işlemek için AddOrUpdate Yöntemini kullanarak, önceden eklenmiş olan satırları güncelleyecek veya henüz eklenmemişse ekleyeceksiniz. Yöntemi, AddOrUpdate senaryonuz için en iyi seçenek olmayabilir. Daha fazla bilgi için Julie Lerman'ın blogunda EF 4.3 AddOrUpdate Yöntemi ile ilgilenme bölümüne bakın.

  1. Configuration.cs dosyasını açın ve yöntemindeki Seed açıklamaları aşağıdaki kodla değiştirin:

    var instructors = new List<Instructor>
    {   
        new Instructor { FirstMidName = "Kim",     LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
        new Instructor { FirstMidName = "Fadi",    LastName = "Fakhouri",    HireDate = DateTime.Parse("2002-07-06"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
        new Instructor { FirstMidName = "Roger",   LastName = "Harui",       HireDate = DateTime.Parse("1998-07-01"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
        new Instructor { FirstMidName = "Candace", LastName = "Kapoor",      HireDate = DateTime.Parse("2001-01-15") },
        new Instructor { FirstMidName = "Roger",   LastName = "Zheng",       HireDate = DateTime.Parse("2004-02-12") }
    };
    instructors.ForEach(s => context.Instructors.AddOrUpdate(i => i.LastName, s));
    context.SaveChanges();
    
    var departments = new List<Department>
    {
        new Department { Name = "English",     Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 1 },
        new Department { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 2 },
        new Department { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 3 },
        new Department { Name = "Economics",   Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 4 }
    };
    departments.ForEach(s => context.Departments.AddOrUpdate(d => d.Name, s));
    context.SaveChanges();
    
    var courses = new List<Course>
    {
        new Course { CourseID = 1050, Title = "Chemistry",      Credits = 3, DepartmentID = 3 },
        new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = 4 },
        new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = 4 },
        new Course { CourseID = 1045, Title = "Calculus",       Credits = 4, DepartmentID = 2 },
        new Course { CourseID = 3141, Title = "Trigonometry",   Credits = 4, DepartmentID = 2 },
        new Course { CourseID = 2021, Title = "Composition",    Credits = 3, DepartmentID = 1 },
        new Course { CourseID = 2042, Title = "Literature",     Credits = 4, DepartmentID = 1 }
    };
    courses.ForEach(s => context.Courses.AddOrUpdate(s));
    context.SaveChanges();
    
    courses[0].Instructors.Add(instructors[0]);
    courses[0].Instructors.Add(instructors[1]);
    courses[1].Instructors.Add(instructors[2]);
    courses[2].Instructors.Add(instructors[2]);
    courses[3].Instructors.Add(instructors[3]);
    courses[4].Instructors.Add(instructors[3]);
    courses[5].Instructors.Add(instructors[3]);
    courses[6].Instructors.Add(instructors[3]);
    context.SaveChanges();
    
  2. Ad alanı için henüz bir using deyiminiz olmadığı için List başvurularının altında kırmızı dalgalı çizgiler bulunmaktadır. örneklerinden List birine sağ tıklayın ve Çözümle'ye tıklayın ve ardından System.Collections.Generic'ı kullanarak öğesine tıklayın.

    using deyimiyle çözümle

    Bu menü seçimi, dosyanın üst kısmındaki using deyimlere aşağıdaki kodu ekler.

    using System.Collections.Generic;
    
  3. Projeyi oluşturmak için CTRL-SHIFT-B tuşlarına basın.

Proje artık ContosoUniversity veritabanını dağıtmaya hazırdır. Uygulamayı dağıttığınızda, uygulamayı ilk kez çalıştırdığınızda ve veritabanına erişen bir sayfaya giderseniz, Code First veritabanını oluşturur ve bu Seed yöntemi çalıştırır.

Uyarı

yöntemine Seed kod eklemek, veritabanına sabit veri eklemenin birçok yoludur. Alternatif olarak, her geçiş sınıfının Up ve Down yöntemlerine kod ekleyebilirsiniz. Up ve Down yöntemleri, veritabanı değişikliklerini uygulayan kod içerir. Veritabanı Güncelleştirmesi Dağıtma öğreticisinde bunların örneklerini görürsünüz.

Yöntemini kullanarak Sql SQL deyimlerini yürüten kod da yazabilirsiniz. Örneğin, Department tablosuna bir Bütçe sütunu ekliyor ve geçişin bir parçası olarak tüm departman bütçelerini 1.000,00 TL'ye başlatmak istiyorsanız, bu geçişin Up yöntemine aşağıdaki kod satırını ekleyebilirsiniz:

Sql("UPDATE Department SET Budget = 1000");

Üyelik veritabanı dağıtımı için betikler oluşturma

Contoso University uygulaması, kullanıcıların kimliğini doğrulamak ve yetkilendirmek için ASP.NET üyelik sistemini kullanır ve kimlik doğrulamasını oluşturur. Kredileri Güncelleştir sayfasına yalnızca Yönetici rolündeki kullanıcılar erişebilir.

Uygulamayı çalıştırın, Kurslar'a ve ardından Kredileri Güncelleştir'e tıklayın.

Kredileri Güncelleştir'e tıklayın

Kredileri Güncelleştir sayfası yönetici ayrıcalıkları gerektirdiğinden Oturum aç sayfası görüntülenir.

Kullanıcı adı olarak admin ve parola olarak devpwd girin ve Oturum aç'a tıklayın.

Oturum açma sayfası

Kredileri Güncelleştir sayfası görüntülenir.

Kredileri Güncelleştir sayfası

Kullanıcı ve rol bilgileri, Web.config dosyasındaki DefaultConnection bağlantı dizesi tarafından belirtilen aspnet-ContosoUniversity veritabanındadır.

Bu veritabanı Entity Framework Code First tarafından yönetilmediğinden, geçişleri kullanarak dağıtamazsınız. Veritabanı şemasını dağıtmak için dbDacFx sağlayıcısını kullanacaksınız ve yayımlama profilini veritabanı tablolarına ilk verileri ekleyecek bir betik çalıştıracak şekilde yapılandıracaksınız.

Uyarı

Visual Studio 2013 ile yeni bir ASP.NET üyelik sistemi (şimdi ASP.NET Identity olarak adlandırılmıştır) kullanıma sunulmuştur. Yeni sistem hem uygulama hem de üyelik tablolarını aynı veritabanında tutmanızı sağlar ve her ikisini de dağıtmak için Code First Migrations'ı kullanabilirsiniz. Örnek uygulama, önceki ASP.NET üyelik sistemini kullanır ve bu sistem Kod İlk Geçişleri kullanılarak dağıtılamaz. Bu üyelik veritabanını dağıtma yordamları, uygulamanızın Entity Framework Code First tarafından oluşturulmayan bir SQL Server veritabanını dağıtması gereken diğer tüm senaryolar için de geçerlidir.

Burada da genellikle üretimde geliştirme aşamasında sahip olduğunuz verilerin aynısını istemezsiniz. Bir siteyi ilk kez dağıttığınızda, test için oluşturduğunuz kullanıcı hesaplarının çoğunu veya tümünü dışlamak yaygın bir durumdur. Bu nedenle, indirilen projenin iki üyelik veritabanı vardır: geliştirme kullanıcıları ile aspnet-ContosoUniversity.mdf ve üretim kullanıcıları ile aspnet-ContosoUniversity-Prod.mdf . Bu öğreticide kullanıcı adları her iki veritabanında da aynıdır: admin ve nonadmin. Her iki kullanıcı da geliştirme veritabanında devpwd ve üretim veritabanında prodpwd parolasına sahiptir.

Geliştirme kullanıcılarını test ortamına, üretim kullanıcılarını hazırlama ve üretime dağıtacaksınız. Bunu yapmak için bu öğreticide biri geliştirme, diğeri üretim için olmak üzere iki SQL betiği oluşturacak ve sonraki öğreticilerde yayımlama işlemini bunları çalıştıracak şekilde yapılandıracaksınız.

Uyarı

Üyelik veritabanı hesap parolalarının karması depolar. Hesapları bir makineden diğerine dağıtmak için, karma yordamlarının hedef sunucuda kaynak bilgisayardakinden farklı karmalar oluşturmadığından emin olmanız gerekir. Varsayılan algoritmayı değiştirmediğiniz sürece ASP.NET Evrensel Sağlayıcıları kullandığınızda aynı karmaları oluştururlar. Varsayılan algoritma HMACSHA256 ve Web.config dosyasındaki machineKey öğesinin doğrulama özniteliğinde belirtilir.

SQL Server Management Studio (SSMS) veya üçüncü taraf bir araç kullanarak veri dağıtım betiklerini el ile oluşturabilirsiniz. Bu öğreticinin geri kalanında bunu SSMS'de nasıl yapabileceğiniz gösterilir, ancak SSMS'yi yüklemek ve kullanmak istemiyorsanız, projenin tamamlanmış sürümünden betikleri alabilir ve çözüm klasöründe depoladığınız bölüme atlayabilirsiniz.

SSMS'yi yüklemek için enu\x64\SQLManagementStudio_x64_ENU.exeveya ENU\x86\SQLManagementStudio_x86_ENU.exe öğesine tıklayarak İndirme Merkezi: Microsoft SQL Server 2012 Express'ten yükleyin . Sisteminiz için yanlış olanı seçerseniz yükleme başarısız olur ve diğerini deneyebilirsiniz.

(Bunun 600 megabaytlık bir indirme olduğunu unutmayın. Yüklenmesi uzun sürebilir ve bilgisayarınızın yeniden başlatılmasını gerektirir.)

SQL Server Yükleme Merkezi'nin ilk sayfasında , Yeni SQL Server tek başına yükleme'ye tıklayın veya var olan bir yüklemeye özellikler ekleyin ve yönergeleri izleyerek varsayılan seçenekleri kabul edin.

Geliştirme veritabanı betiğini oluşturma

  1. SSMS'i çalıştırın.

  2. Sunucuya Bağlan iletişim kutusunda, Sunucu adı olarak (localdb)\v11.0 yazın, Kimlik Doğrulaması'nıWindows Kimlik Doğrulaması olarak bırakın ve bağlan'a tıklayın.

    SSMS Sunucuya Bağlan

  3. Nesne Gezgini penceresinde Veritabanları'nı genişletin, aspnet-ContosoUniversity öğesine sağ tıklayın, Görevler'e tıklayın ve ardından Betik Oluştur'a tıklayın.

    SSMS BetikLer Oluşturma

  4. Betik Oluştur ve Yayımla iletişim kutusunda Betik Seçeneklerini Ayarla'ya tıklayın.

    Varsayılan değer Tüm veritabanını ve tüm veritabanı nesnelerini betikle olduğundan ve bu sizin istediğiniz olduğundan, Nesneleri Seç adımını atlayabilirsiniz.

  5. Gelişmiş'i tıklatın.

    SSMS Betik Seçenekleri

  6. Gelişmiş Betik Seçenekleri iletişim kutusunda, aşağı kaydırarak Betik yazacak veri türleri'ne gelin ve açılan listede Yalnızca veri seçeneğine tıklayın.

  7. Script USE DATABASE ifadesini False olarak değiştirin. USE deyimleri Azure SQL Veritabanı için geçerli değildir ve test ortamında SQL Server Express'e dağıtım için gerekli değildir.

    Yalnızca SSMS Betik Verileri, USE deyimi yok

  8. Tamam'a tıklayın.

  9. Betik Oluştur ve Yayımla iletişim kutusunda, Dosya adı kutusu betiğin nerede oluşturulacağını belirtir. Çözüm klasörünüzün yolunu (ContosoUniversity.sln dosyanızın olduğu klasör) ve dosya adını aspnet-data-dev.sql olarak değiştirin.

  10. Özet sekmesine gitmek için İleri'ye tıklayın ve ardından betiği oluşturmak için yeniden İleri'ye tıklayın.

    SSMS Betiği Oluşturuldu

  11. Finish (Son) düğmesine tıklayın.

Üretim veritabanı betiğini oluşturma

Projeyi üretim veritabanıyla çalıştırmadığınız için henüz LocalDB örneğine eklenmemiştir. Bu nedenle önce veritabanını eklemeniz gerekir.

  1. SSMS Nesne Gezgini'ndeVeritabanları'na sağ tıklayın ve Ekle'ye tıklayın.

    SSMS Ekleme

  2. Veritabanı Ekle iletişim kutusunda Ekle'ye tıklayın ve App_Data klasöründeki aspnet-ContosoUniversity-Prod.mdf dosyasına gidin.

    SSMS'e .mdf dosyası ekle

  3. Tamam'a tıklayın.

  4. Üretim dosyası için betik oluşturmak için daha önce kullandığınız yordamı izleyin. Betik dosyasını aspnet-data-prod.sql olarak adlandırın.

Özet

Her iki veritabanı da artık dağıtılmaya hazır ve çözüm klasörünüzde iki veri dağıtım betikleri var.

Veri dağıtım betikleri

Aşağıdaki öğreticide dağıtımı etkileyen proje ayarlarını yapılandıracak ve dağıtılan uygulamada farklı olması gereken ayarlar için otomatik Web.config dosya dönüştürmeleri ayarlamış olursunuz.

Daha Fazla Bilgi

NuGet hakkında daha fazla bilgi için bkz. NuGet ile Proje Kitaplıklarını Yönetme ve NuGet Belgeleri. NuGet kullanmak istemiyorsanız NuGet paketinin yüklendiğinde ne yaptığını belirlemek için nasıl çözümleneceğini öğrenmeniz gerekir. (Örneğin, Web.config dönüştürmeleri yapılandırabilir, PowerShell betiklerini derleme zamanında çalışacak şekilde yapılandırabilir vb.) NuGet'in nasıl çalıştığı hakkında daha fazla bilgi edinmek için bkz. Paket veYapılandırma Dosyası ve Kaynak Kodu Dönüştürmeleri Oluşturma ve Yayımlama.