Nasazení databáze (C#)
Nasazení webové aplikace ASP.NET zahrnuje získání potřebných souborů a prostředků z vývojového prostředí do produkčního prostředí. U webových aplikací řízených daty to zahrnuje schéma databáze a data. Tento kurz je první z řady, která zkoumá kroky potřebné k úspěšnému nasazení databáze z vývojového prostředí do produkčního prostředí.
Úvod
Nasazení webové aplikace ASP.NET zahrnuje získání potřebných souborů a prostředků z vývojového prostředí do produkčního prostředí. V průběhu posledních šesti kurzů jsme se podívali na nasazení jednoduché webové aplikace Book Reviews. Tento ukázkový web se skládal z řady prostředků na straně serveru – ASP.NET stránek, konfiguračních souborů, Web.sitemap
souborů atd. – a z prostředků na straně klienta, jako jsou obrázky a soubory CSS. Ale co webové aplikace řízené daty? Jaké další kroky je potřeba provést k nasazení webové aplikace, která používá databázi?
V dalších několika kurzech se budeme zabývat kroky potřebnými k nasazení webové aplikace řízené daty. Tento kurz začíná tím, že prozkoumáte, jak získat schéma a obsah databáze z vývojového prostředí do produkčního prostředí, zatímco následující kurz se podívá na potřebné změny konfigurace. Potom prozkoumáme výzvy spojené s nasazením databáze, která používá aplikační služby (členství, role, profil atd.).
Zkoumání aktualizované webové aplikace Pro recenze knih
Abychom si ukázali nasazení webové aplikace řízené daty, aktualizovali jsme webovou aplikaci Book Reviews z jednoduchého statického webu na web řízený daty. Stejně jako dříve existují dvě verze aplikace v tomto kurzu ke stažení: jedna, která používá model projektu webové aplikace, a druhá, která používá model projektu webu.
Aktualizovaná webová aplikace Book Reviews používá databázi SQL Server 2008 Express Edition, která je uložena ve složce site s App_Data
(~/App_Data/Reviews.mdf
). Pokud máte v počítači nainstalovanou verzi SQL Server 2008, měla by ukázka běžet bez chyby. Pokud máte starší verzi SQL Server můžete buď nainstalovat bezplatnou verzi SQL Server 2008 Express Edition, nebo můžete databázi vytvořit sami pomocí databázových skriptů dostupných v tomto kurzu ke stažení.
Databáze Reviews.mdf
obsahuje čtyři tabulky:
Genres
– obsahuje záznam pro každý žánr, jako jsou Technologie, Beletrie a Business.Books
– obsahuje záznam pro každou recenzi, včetně sloupců, jako jsouTitle
,ReviewDate
GenreId
aReview
.Authors
- obsahuje informace o každém autorovi, který přispěl do recenzované knihy.BooksAuthors
- tabulka spojení M:N, která určuje, co autoři napsali, jaké knihy.
Obrázek 1 znázorňuje diagram ER těchto čtyř tabulek.
Obrázek 1: Databáze webových aplikací pro recenze knih se skládá ze čtyř tabulek (kliknutím zobrazíte obrázek v plné velikosti)
Předchozí verze webu Recenze knih měla pro každou knihu samostatnou ASP.NET stránku. Například tam byla stránka s názvem ~/Tech/TYASP35.aspx
, která obsahovala recenzi na Učte se sami ASP.NET 3,5 za 24 hodin. Tato nová verze webu řízená daty má recenze uložené v databázi a jednu ASP.NET stránku Review.aspx?ID=bookId, která zobrazuje recenzi pro zadanou knihu. Podobně existuje stránka Genre.aspx?ID=genreId , která obsahuje seznam zkontrolovaných knih v zadaném žánru.
Na obrázcích 2 a 3 jsou Genre.aspx
stránky a Review.aspx
v akci. Poznamenejte si adresu URL na panelu Adresa pro každou stránku. Na obrázku 2 je to Genre.aspx?ID=85d164ba-1123-4c47-82a0-c8ec75de7e0e. Vzhledem k tomu, že 85d164ba-1123-4c47-82a0-c8ec75de7e0e je GenreId
hodnota pro žánr Technologie, nadpis stránky přečte "Recenze technologie" a seznam s odrážkami uvádí ty recenze na webu, který spadá do tohoto žánru.
Obrázek 2: Stránka žánru technologie (kliknutím zobrazíte obrázek v plné velikosti)
Obrázek 3: Recenze pro Naučit se ASP.NET 3,5 za 24 hodin (kliknutím zobrazíte obrázek v plné velikosti)
Webová aplikace Recenze knih obsahuje také část pro správu, ve které můžou správci přidávat, upravovat a odstraňovat žánry, recenze a informace o autorech. V současné době má každý návštěvník přístup k části správy. V dalším kurzu přidáme podporu uživatelských účtů a povolíme na stránky správy jenom autorizované uživatele.
Pokud si stáhnete aplikaci Recenze knih, mějte na paměti, že jejím účelem je předvést nasazení aplikace řízené daty. Pokud jde o návrh aplikací, neprovádí osvědčené postupy. Například neexistuje samostatná vrstva přístupu k datům (DAL); ASP.NET stránky komunikují přímo s databází prostřednictvím ovládacího prvku SqlDataSource nebo ADO.NET kódu ve svých třídách kódu na pozadí. Podrobnější přehled o vytváření aplikací řízených daty pomocí vrstvené architektury najdete v mých kurzech Práce s daty.
Databáze ve vývoji a v produkčním prostředí
Při zahájení vývoje webové aplikace řízené daty musíte zadat databázi připojovací řetězec, která poskytuje podrobnosti o tom, jak se k databázi připojit. Tato připojovací řetězec určuje mimo jiné databázový server, název databáze a informace o zabezpečení. Databáze používaná aplikací během vývoje se nejčastěji liší od databáze používané v produkčním prostředí. Použití různých databází pro vývoj oproti produkčnímu prostředí má mnoho výhod. Pokud máte ve vývoji jinou databázi, nemusíte se obávat, že byste omylem upravili nebo odstranili živá data. Umožňuje také vložit fiktivní testovací data nebo provést zásadní změny datového modelu, aniž byste se museli starat o dopad na aplikaci v produkčním prostředí. Nevýhodou jiné databáze ve vývojovém a produkčním prostředí je, že při nasazení aplikace musí být nasazena také databáze a všechny související změny schématu nebo dat databáze.
Před prvním nasazením existuje pouze jedna instance databáze a tato instance je ve vývojovém prostředí. Při prvním nasazení aplikace do produkčního prostředí musíme nejen zkopírovat potřebné soubory na straně serveru a klienta, ale také zkopírovat databázi z vývojového prostředí do produkčního prostředí. Na tomto místě se právě teď nacházíme s webovou aplikací Book Reviews – databáze se nachází ve App_Data
složce v našem vývojovém prostředí, ale ještě nebyla vložena do produkčního prostředí.
Po nasazení aplikace existují dvě kopie databáze. S tím, jak aplikace zraje, se můžou přidávat nové funkce, které můžou stačit ke změně datového modelu (například přidání nových sloupců do existujících tabulek, provádění změn v existujících sloupcích, přidání nových tabulek atd.). Při dalším nasazení webové aplikace se změny použité v databázi ve vývojovém prostředí od posledního nasazení musí aplikovat na produkční databázi. Některé strategie pro správu tohoto procesu jsou popsány v budoucím kurzu. Tento kurz se zaměřuje na nasazení celé databáze z vývojového prostředí do produkčního prostředí.
Nasazení databáze do produkčního prostředí
Zbývající část tohoto kurzu se zabývá tím, jak nasadit databázi z vývojového prostředí do produkčního prostředí. Pokud postupujete podle pokynů, musíte se ujistit, že váš účet u poskytovatele webového hostitele zahrnuje podporu databáze Microsoft SQL Server. Budete také muset mít po ruce některé informace, konkrétně název databázového serveru, název databáze a uživatelské jméno a heslo použité pro připojení k databázi.
Jak bylo uvedeno dříve v tomto kurzu, databáze webu Book Reviews je databáze SQL Server 2008 Express Edition uložená App_Data
ve složce. Nasazení takové databáze by bylo stejně jednoduché jako zkopírování App_Data
složky z vývojového prostředí do produkčního prostředí. Většina poskytovatelů webových hostitelů však z bezpečnostních důvodů nepodporuje hostování databází ve App_Data
složce. Místo toho weboví hostitelé poskytují účet na databázovém serveru SQL Server v rámci svého prostředí. Nasazení databáze z vývojového prostředí do produkčního prostředí vyžaduje registraci databáze na databázovém serveru hostitele webu.
Jak tedy dostanete databázi z vývojového prostředí do produkčního prostředí? Existuje několik způsobů, jak toho dosáhnout v závislosti na tom, jaké služby váš webový hostitel nabízí. U některých hostitelů, například DiscountASP.NET, můžete na svůj web ftp vytvořit zálohu databáze nebo vlastního .mdf
souboru a pak z Ovládací panely obnovit záložní soubor nebo soubor připojit .mdf
k databázovému serveru SQL Server. S těmito nástroji je nasazení databáze stejně jednoduché, jako je zkopírování App_Data
složky do produkčního prostředí a následné připojení prostřednictvím Ovládací panely. To je možná nejjednodušší a nejrychlejší způsob, jak poprvé publikovat databázi.
Dalším přístupem je použití Průvodce publikováním databáze. Průvodce publikováním databáze je desktopová aplikace systému Windows, která vygeneruje příkazy SQL pro vytvoření schématu databáze – tabulky, uložené procedury, zobrazení, uživatelem definované funkce a tak dále – a volitelně i data v jejích tabulkách. Pak se můžete připojit k databázovému serveru poskytovatele webového hostitele prostřednictvím SQL Server Management Studio a pak spustit tento skript, který duplikuje databázi v produkčním prostředí. A ještě lepší je, že pokud váš poskytovatel webového hostitele podporuje Službu publikování databází společnosti Microsoft, můžete nechat skript vygenerovaný Průvodcem publikováním databáze automaticky spustit na databázovém serveru vaším jménem. Průvodce publikováním databáze vygeneruje skript, který vytvoří schéma a data databáze, a proto bude fungovat bez ohledu na to, jestli poskytovatel webového hostitele nabízí funkce, jako je připojení nahraného .mdf
souboru.
Generování příkazů SQL pro vytvoření schématu a dat databáze pomocí Průvodce publikováním databáze
Pojďme si projít průvodce publikováním databáze k nasazení databáze kontroly knih do produkčního prostředí. Pokud používáte Visual Studio 2008 nebo novější, průvodce publikováním databáze je již nainstalován.
Otevřete Visual Studio a přejděte do Reviews.mdf
databáze. Pokud používáte Visual Web Developer, přejděte do Průzkumníka databází. Pokud používáte Sadu Visual Studio, použijte Průzkumníka serveru. Obrázek 4 znázorňuje Reviews.mdf
databázi v Průzkumníku databází v nástroji Visual Web Developer. Jak ukazuje obrázek 4, Reviews.mdf
databáze se skládá ze čtyř tabulek, tří uložených procedur a uživatelem definované funkce.
Obrázek 4: Vyhledání databáze v Průzkumníku databází nebo Průzkumníku serveru (kliknutím zobrazíte obrázek v plné velikosti)
Klikněte pravým tlačítkem na název databáze a v místní nabídce zvolte možnost Publikovat do poskytovatele. Tím se spustí Průvodce publikováním databáze (viz obrázek 5). Kliknutím na Další přejděte za úvodní obrazovku.
Obrázek 5: Úvodní obrazovka Průvodce publikováním databáze (kliknutím zobrazíte obrázek v plné velikosti)
Na druhé obrazovce průvodce jsou uvedeny databáze přístupné Průvodci publikováním databáze a umožňuje zvolit, jestli se mají skriptovat všechny objekty ve vybrané databázi, nebo vybrat, které objekty se mají skriptovat. Vyberte příslušnou databázi a ponechte zaškrtnutou možnost Skriptovat všechny objekty ve vybrané databázi.
Poznámka
Pokud se při kliknutí na další na obrazovce zobrazené na obrázku 6 zobrazí chyba "V databázi database DatabaseName nejsou žádné objekty typu scriptable by this wizard" (V databázi databasename nejsou žádné objekty) Zjistilo se, že k této chybě může dojít, pokud je cesta k souboru databáze příliš dlouhá.
Obrázek 6: Úvodní obrazovka Průvodce publikováním databáze (kliknutím zobrazíte obrázek v plné velikosti)
Na další obrazovce můžete vygenerovat soubor skriptu, nebo pokud ho váš webový hostitel podporuje, publikovat databázi přímo na databázový server poskytovatele webového hostitele. Jak ukazuje obrázek 7, mám skript zapsaný do souboru C:\REVIEWS.MDF.sql
.
Obrázek 7: Skriptování databáze do souboru nebo jeho publikování přímo u poskytovatele webového hostitele (kliknutím zobrazíte obrázek v plné velikosti)
Následující obrazovka vás vyzve k zadání různých možností skriptování. Můžete určit, zda má skript obsahovat příkazy drop pro odebrání těchto existujících objektů. Výchozí hodnota je Pravda, což je při prvním nasazení databáze v pořádku. Můžete také určit, jestli je cílová databáze SQL Server 2000, SQL Server 2005 nebo SQL Server 2008. Nakonec můžete určit, jestli se má skriptovat schéma a data, jenom data nebo jenom schéma. Schéma je kolekce databázových objektů, tabulek, uložených procedur, zobrazení atd. Data jsou informace, které se nachází v tabulkách.
Jak znázorňuje obrázek 8, průvodce je nakonfigurovaný tak, aby vyřadil existující databázové objekty, vygeneroval skript pro databázi SQL Server 2008 a publikoval schéma i data.
Obrázek 8: Určení možností publikování (kliknutím zobrazíte obrázek v plné velikosti)
Poslední dvě obrazovky shrnují akce, které se mají provést, a pak zobrazí stav skriptování. Čistým výsledkem spuštění průvodce je, že máme soubor skriptu, který obsahuje příkazy SQL potřebné k vytvoření databáze v produkčním prostředí a naplnění stejnými daty jako při vývoji.
Spouštění příkazů SQL v databázi produkčního prostředí
Teď, když máme skript, který obsahuje příkazy SQL pro vytvoření databáze a jejích dat, zbývá jen spustit skript v produkční databázi. Někteří poskytovatelé webových hostitelů nabízejí ve svých Ovládací panely textové pole, do kterého můžete zadat příkazy SQL, které se mají spouštět v databázi. Pokud máte velmi velký soubor skriptu, nemusí tato možnost fungovat ( REVIEWS.MDF.sql
například soubor skriptu je větší než 425 kB).
Lepším přístupem je připojit se přímo k produkčnímu databázovému serveru pomocí SQL Server Management Studio (SSMS). Pokud máte v počítači nainstalovanou SQL Server jiné než Express Edition, pravděpodobně už máte nainstalovanou sadu SSMS. V opačném případě si můžete stáhnout a nainstalovat bezplatnou kopii SQL Server Management Studio Express Edition.
Spusťte SSMS a připojte se k databázovému serveru webového hostitele s pomocí informací poskytnutých poskytovatelem webového hostitele.
Obrázek 9: Připojení k databázovému serveru poskytovatele webového hostitele (kliknutím zobrazíte obrázek v plné velikosti)
Rozbalte kartu Databáze a vyhledejte databázi. Klikněte na tlačítko Nový dotaz v levém horním rohu panelu nástrojů, vložte příkazy SQL ze souboru skriptu vytvořeného Průvodcem publikováním databáze a kliknutím na tlačítko Spustit spusťte tyto příkazy na produkčním databázovém serveru. Pokud je soubor skriptu obzvláště velký, může spuštění příkazů trvat několik minut.
Obrázek 10: Připojení k databázovému serveru poskytovatele webového hostitele (kliknutím zobrazíte obrázek v plné velikosti)
To je vše, co k tomu patří! V tomto okamžiku byla vývojová databáze duplikována do produkčního prostředí. Pokud aktualizujete databázi v SSMS, měli byste vidět nové databázové objekty. Obrázek 11 znázorňuje tabulky produkční databáze, uložené procedury a uživatelem definované funkce, které zrcadlí tabulky ve vývojové databázi. A protože jsme zadali Průvodci publikováním databáze pokyn, aby data publikoval, mají tabulky produkční databáze stejná data jako tabulky s vývojových databází v době spuštění průvodce. Obrázek 12 znázorňuje data v Books
tabulce v produkční databázi.
Obrázek 11: Objekty databáze byly duplikovány v produkční databázi (kliknutím zobrazíte obrázek v plné velikosti)
Obrázek 12: Produkční databáze obsahuje stejná data jako ve vývojové databázi (kliknutím zobrazíte obrázek v plné velikosti)
V tomto okamžiku jsme do produkčního prostředí nasadili pouze vývojovou databázi. Zatím jsme se nepodívali na nasazení samotné webové aplikace nebo jsme nezkoumali, jaké změny konfigurace jsou potřeba k tomu, aby aplikace v produkčním prostředí používala produkční databázi. Těmto problémům se budeme věnovat v dalším kurzu.
Souhrn
Nasazení webové aplikace řízené daty vyžaduje zkopírování databáze použité během vývoje do produkčního prostředí. Mnoho poskytovatelů webových hostitelů nabízí nástroje pro zjednodušení procesu nasazení databáze. Pomocí DiscountASP.NET můžete například soubor databáze .mdf
ftp (nebo zálohu) a pak databázi připojit k databázovému serveru z Ovládací panely. Další možností, která funguje bez ohledu na to, jaké funkce nabízí váš poskytovatel webového hostitele, je nástroj Průvodce publikováním databáze společnosti Microsoft, který vygeneruje skript příkazů SQL pro vytvoření schématu a dat vývojové databáze. Po vygenerování tohoto skriptu ho můžete spustit v produkční databázi.
Teď, když je databáze webové aplikace Book Reviews v produkčním prostředí, můžeme aplikaci nasadit. Informace o konfiguraci webové aplikace však určují připojovací řetězec k databázi a tato připojovací řetězec odkazuje na vývojovou databázi. Při nasazování lokality do produkčního prostředí potřebujeme tyto připojovací řetězec informace aktualizovat. V dalším kurzu se podíváme na tyto rozdíly v konfiguraci a provede kroky potřebné k publikování webu kontrol knih řízeného daty do produkčního prostředí.
Šťastné programování!
Další čtení
Další informace o tématech probíraných v tomto kurzu najdete v následujícím zdroji informací: