Aracılığıyla paylaş


Visual Studio veya Visual Web Developer kullanarak SQL Server Compact ile ASP.NET Web Uygulaması Dağıtma: Veritabanı Güncelleştirmesi Dağıtma - 9 /12

tarafından Tom Dykstra

Başlangıç Projelerini İndir

Bu öğretici serisi, Visual Studio 2012 RC veya Web için Visual Studio Express 2012 RC kullanarak SQL Server Compact veritabanı içeren bir ASP.NET web uygulaması projesi dağıtmayı (yayımlamayı) gösterir. Web Yayımlama Güncelleştirmesi'ni yüklerseniz Visual Studio 2010'u da kullanabilirsiniz. Seriye giriş için serideki ilk öğreticiye bakın.

Visual Studio 2012'nin RC sürümünden sonra sunulan dağıtım özelliklerini gösteren, SQL Server Compact dışındaki SQL Server sürümleri dağıtmayı ve Azure App Service Web Apps'a dağıtmayı gösteren bir öğretici için bkz. Visual Studio kullanarak Web Dağıtımı'nı ASP.NET.

Genel Bakış

Bu öğreticide bir veritabanı değişikliği ve ilgili kod değişiklikleri yapacak, Visual Studio'da değişiklikleri test edip güncelleştirmeyi hem test hem de üretim ortamlarına dağıtacaksınız.

Anımsatıcı: Öğreticide ilerlerken bir hata iletisi alırsanız veya bir şey çalışmıyorsa sorun giderme sayfasını kontrol edin.

Tabloya Yeni Sütun Ekleme

Bu bölümde, ve Instructor varlıkları için Student temel sınıfa Person bir doğum tarihi sütunu ekleyebilirsiniz. Ardından eğitmen verilerini görüntüleyen sayfayı yeni sütunu görüntüleyebilecek şekilde güncelleştirirsiniz.

ContosoUniversity.DAL projesinde Person.cs dosyasını açın ve sınıfın Person sonuna aşağıdaki özelliği ekleyin (bunu izleyen iki kapanış küme ayracı olmalıdır):

[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[Display(Name = "Birth Date")]
public DateTime? BirthDate { get; set; }

Ardından Seed yöntemini yeni sütun için bir değer sağlayacak şekilde güncelleştirin. Migrations\Configuration.cs dosyasını açın ve doğum tarihi bilgilerini içeren aşağıdaki kod bloğuyla başlayan var instructors = new List<Instructor> kod bloğunu değiştirin:

var instructors = new List<Instructor>
{
    new Instructor { FirstMidName = "Kim",     LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), BirthDate = DateTime.Parse("1918-08-12"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
    new Instructor { FirstMidName = "Fadi",    LastName = "Fakhouri",    HireDate = DateTime.Parse("2002-07-06"), BirthDate = DateTime.Parse("1960-03-15"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
    new Instructor { FirstMidName = "Roger",   LastName = "Harui",       HireDate = DateTime.Parse("1998-07-01"), BirthDate = DateTime.Parse("1970-01-11"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
    new Instructor { FirstMidName = "Candace", LastName = "Kapoor",      HireDate = DateTime.Parse("2001-01-15"), BirthDate = DateTime.Parse("1975-04-11") },
    new Instructor { FirstMidName = "Roger",   LastName = "Zheng",       HireDate = DateTime.Parse("2004-02-12"), BirthDate = DateTime.Parse("1957-10-12") }
};

ContosoUniversity projesinde Instructors.aspx dosyasını açın ve doğum tarihini görüntülemek için yeni bir şablon alanı ekleyin. İşe alma tarihi ve ofis ataması için olanlar arasına ekleyin:

<asp:TemplateField HeaderText="Birth Date" SortExpression="BirthDate">
    <ItemTemplate>
        <asp:Label ID="InstructorBirthDateLabel" runat="server" Text='<%# Eval("BirthDate", "{0:d}") %>'></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
        <asp:TextBox ID="InstructorBirthDateTextBox" runat="server" Text='<%# Bind("BirthDate", "{0:d}") %>'
            Width="7em"></asp:TextBox>
    </EditItemTemplate>
</asp:TemplateField>

(Kod girintisi eşitlenmemişse, dosyayı otomatik olarak yeniden biçimlendirmek için CTRL-K ve sonra CTRL-D tuşlarına basabilirsiniz.)

Çözümü derleyin ve ardından Paket Yöneticisi Konsolu penceresini açın. ContosoUniversity.DAL dosyasının Hala Varsayılan proje olarak seçili olduğundan emin olun.

Paket Yöneticisi Konsolu penceresinde, Varsayılan proje olarak ContosoUniversity.DAL öğesini seçin ve aşağıdaki komutu girin:

add-migration AddBirthDate

Bu komut tamamlandığında, Visual Studio yeni DbMigration sınıfı tanımlayan sınıf dosyasını açar ve yönteminde Up yeni sütunu oluşturan kodu görebilirsiniz.

AddBirthDate_migration_code

Çözümü derleyin ve paket yöneticisi konsolu penceresine aşağıdaki komutu girin (ContosoUniversity.DAL projesinin hala seçili olduğundan emin olun):

update-database

Komut tamamlandığında uygulamayı çalıştırın ve Eğitmenler sayfasını seçin. Sayfa yüklendiğinde, yeni doğum tarihi alanına sahip olduğunu görürsünüz.

Instructors_page_with_birth_date

Veritabanı Güncelleştirmesini Test Ortamına Dağıtma

Çözüm Gezgini ContosoUniversity projesini seçin.

Web One Yayımla araç çubuğunda Yayımla'ya tıklayın, Yayımlama profilini test et'i seçin ve ardından Web'i Yayımla'ya tıklayın. (Araç çubuğu devre dışı bırakılırsa, Çözüm Gezgini'da ContosoUniversity projesini seçin.)

Visual Studio güncelleştirilmiş uygulamayı dağıtır ve tarayıcı giriş sayfasında açılır. Güncelleştirmenin başarıyla dağıtıldığını doğrulamak için Eğitmenler sayfasını çalıştırın. Uygulama bu sayfanın veritabanına erişmeye çalıştığında Code First veritabanı şemasını güncelleştirir ve yöntemini çalıştırır Seed . Sayfa görüntülendiğinde, içinde tarihlerin olduğu beklenen Doğum Tarihi sütununu görürsünüz.

Instructors_page_with_birth_date_Test

Veritabanı Güncelleştirmesini Üretim Ortamına Dağıtma

Artık üretime dağıtabilirsiniz. Tek fark, kullanıcıların siteye erişmesini engellemek ve böylece değişiklikleri dağıtırken veritabanını güncelleştirmek için app_offline.htm kullanmanızdır. Üretim dağıtımı için aşağıdaki adımları gerçekleştirin:

  • app_offline.htm dosyasını üretim sitesine yükleyin.
  • Visual Studio'da , Web'de Üretim profilini seçin Tek TıklamaYla Yayımla araç çubuğunda Web'i Yayımla'ya tıklayın.
  • app_offline.htm dosyasını üretim sitesinden silin.

Not

Uygulamanız üretim ortamında kullanımdayken bir yedekleme planı uygulamanız gerekir. Yani, düzenli aralıklarla School-Prod.sdf ve aspnet-Prod.sdf dosyalarını üretim sitesinden güvenli bir depolama konumuna kopyalamanız ve bu tür yedeklemelerin birkaç neslini tutmanız gerekir. Veritabanını güncelleştirdiğinizde, değişiklikten hemen önce bir yedek kopya oluşturmanız gerekir. Ardından, bir hata yaparsanız ve üretime dağıtılana kadar bu hatayı bulamazsanız, veritabanını bozulmadan önceki durumuna kurtarabilirsiniz.

Visual Studio tarayıcıda giriş sayfası URL'sini açtığında ,app_offline.htm sayfası görüntülenir. app_offline.htm dosyasını sildikten sonra, güncelleştirmenin başarıyla dağıtıldığını doğrulamak için giriş sayfanıza yeniden göz atabilirsiniz.

Instructors_page_with_birth_date_Prod

Şimdi hem test hem de üretimde veritabanı değişikliği içeren bir uygulama güncelleştirmesi dağıttınız. Sonraki öğreticide veritabanınızı SQL Server Compact'den SQL Server Express ve SQL Server'e nasıl geçirebilirsiniz gösterilmektedir.