Sdílet prostřednictvím


Nasazení webové aplikace ASP.NET s SQL Server Compact pomocí sady Visual Studio nebo Visual Web Developer: Nasazení aktualizace databáze – 9 z 12

Tom Dykstra

Stažení úvodního projektu

V této sérii kurzů se dozvíte, jak nasadit (publikovat) projekt ASP.NET webové aplikace, který obsahuje databázi SQL Server Compact, pomocí sady Visual Studio 2012 RC nebo Visual Studio Express 2012 RC pro web. Visual Studio 2010 můžete použít také při instalaci aktualizace publikování webu. Úvod do této řady najdete v prvním kurzu této série.

Kurz, který ukazuje funkce nasazení zavedené po verzi RC sady Visual Studio 2012, ukazuje, jak nasadit SQL Server edice jiné než SQL Server Compact a jak nasadit do Azure App Service Web Apps, najdete v tématu ASP.NET Nasazení webu pomocí sady Visual Studio.

Přehled

V tomto kurzu provedete změnu databáze a související změny kódu, otestujete změny v sadě Visual Studio a pak nasadíte aktualizaci do testovacího i produkčního prostředí.

Připomenutí: Pokud se vám při procházení kurzu zobrazí chybová zpráva nebo něco nefunguje, nezapomeňte se podívat na stránku pro řešení potíží.

Přidání nového sloupce do tabulky

V této části přidáte sloupec s datem narození do Person základní třídy pro Student entity a Instructor . Pak aktualizujete stránku, která zobrazuje data instruktora, aby se zobrazil nový sloupec.

V projektu ContosoUniversity.DAL otevřete soubor Person.cs a na konec Person třídy přidejte následující vlastnost (za ní by měly být dvě složené závorky):

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

Dále aktualizujte metodu Seed tak, aby poskytovala hodnotu pro nový sloupec. Otevřete soubor Migrations\Configuration.cs a nahraďte blok kódu, který začíná var instructors = new List<Instructor> následujícím blokem kódu, který obsahuje informace o datu narození:

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") }
};

V projektu ContosoUniversity otevřete Instructors.aspx a přidejte nové pole šablony, které zobrazí datum narození. Přidejte ho mezi přiřazení k datu nástupu a kanceláři:

<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>

(Pokud se odsazení kódu nesynchronizuje, můžete stisknutím kláves CTRL+K a potom CTRL-D soubor automaticky přeformátovat.)

Sestavte řešení a otevřete okno konzoly Správce balíčků . Ujistěte se, že je contosoUniversity.DAL stále vybraný jako výchozí projekt.

V okně konzoly Správce balíčků vyberte jako Výchozí projektContosoUniversity.DAL a zadejte následující příkaz:

add-migration AddBirthDate

Po dokončení tohoto příkazu visual studio otevře soubor třídy, který definuje novou DbMigration třídu, a v Up metodě uvidíte kód, který vytvoří nový sloupec.

AddBirthDate_migration_code

Sestavte řešení a v okně konzoly Správce balíčků zadejte následující příkaz (ujistěte se, že je stále vybraný projekt ContosoUniversity.DAL):

update-database

Po dokončení příkazu spusťte aplikaci a vyberte stránku Instruktoři. Když se stránka načte, uvidíte, že obsahuje nové pole s datem narození.

Instructors_page_with_birth_date

Nasazení aktualizace databáze do testovacího prostředí

V Průzkumník řešení vyberte projekt ContosoUniversity.

Na panelu nástrojů Publikovat na webu jedním kliknutím vyberte profil testovacího publikování a pak klikněte na Publikovat web. (Pokud je panel nástrojů zakázaný, vyberte projekt ContosoUniversity v Průzkumník řešení.)

Visual Studio nasadí aktualizovanou aplikaci a prohlížeč se otevře na domovské stránce. Spuštěním stránky Instruktoři ověřte, že se aktualizace úspěšně nasadila. Když se aplikace pokusí o přístup k databázi pro tuto stránku, Code First aktualizuje schéma databáze a spustí metodu Seed . Po zobrazení stránky uvidíte očekávaný sloupec Datum narození s kalendářními daty.

Instructors_page_with_birth_date_Test

Nasazení aktualizace databáze do produkčního prostředí

Teď můžete nasadit do produkčního prostředí. Jediným rozdílem je, že app_offline.htm použijete k tomu, abyste uživatelům zabránili v přístupu k webu a aktualizaci databáze během nasazování změn. V případě produkčního nasazení proveďte následující kroky:

  • Nahrajte souborapp_offline.htm na produkční web.
  • V sadě Visual Studio zvolte na panelu nástrojů Publikování webu profil Production (Produkční prostředí) a klikněte na Publish Web (Publikovat web).
  • Odstraňte souborapp_offline.htm z produkčního webu.

Poznámka

Zatímco se vaše aplikace používá v produkčním prostředí, měli byste implementovat plán zálohování. To znamená, že byste měli pravidelně kopírovat soubory School-Prod.sdf a aspnet-Prod.sdf z produkční lokality do zabezpečeného úložiště a měli byste uchovávat několik generací takových záloh. Při aktualizaci databáze byste měli vytvořit záložní kopii bezprostředně před změnou. Pokud pak uděláte chybu a nezjišťujete ji, dokud ji nenasadíte do produkčního prostředí, budete moct databázi obnovit do stavu, ve kterém byla před poškozením.

Když Visual Studio otevře adresu URL domovské stránky v prohlížeči, zobrazí se app_offline.htm stránka. Po odstranění app_offline.htm souboru můžete znovu přejít na domovskou stránku a ověřit, jestli se aktualizace úspěšně nasadila.

Instructors_page_with_birth_date_Prod

Teď jste nasadili aktualizaci aplikace, která zahrnovala změnu databáze na testovací i produkční. V dalším kurzu se dozvíte, jak migrovat databázi z SQL Server Compact do SQL Server Express a SQL Server.