Sdílet prostřednictvím


ASP.NET MVC 4 – filtr vlastních akcí

Autor: Web Camp Team

Stáhnout Web Camp Training Kit

ASP.NET MVC poskytuje filtry akcí pro provádění logiky filtrování před nebo po volání metody akce. Filtry akcí jsou vlastní atributy, které poskytují deklarativní prostředky pro přidání chování akce před akcí a následné akce kontroleru.

V tomto praktickém cvičení vytvoříte do řešení MvcMusicStore atribut vlastního filtru akcí, který zachytí požadavky kontroleru a zapíše aktivitu lokality do databázové tabulky. Filtr protokolování můžete přidat injektáží do jakéhokoli kontroleru nebo akce. Nakonec uvidíte zobrazení protokolu, které zobrazuje seznam návštěvníků.

V tomto praktickém cvičení se předpokládá, že máte základní znalosti ASP.NET MVC. Pokud jste předtím nepoužívali ASP.NET MVC, doporučujeme vám projít si praktické cvičení ASP.NET MVC 4.

Poznámka:

Všechny ukázkové kódy a fragmenty kódu jsou součástí sady Web Camp Training Kit, která je k dispozici na stránkách Microsoft-Web/WebCampTrainingKit Release. Projekt specifický pro toto cvičení je k dispozici v ASP.NET vlastních filtrech akcí MVC 4.

Cíle

V tomto praktickém cvičení se naučíte:

  • Vytvoření atributu filtru vlastních akcí pro rozšíření možností filtrování
  • Použití atributu vlastního filtru injektáží na konkrétní úroveň
  • Globální registrace filtrů vlastních akcí

Požadavky

K dokončení tohoto cvičení musíte mít následující položky:

Nastavení

Instalace fragmentů kódu

Pro usnadnění práce je většina kódu, který budete spravovat v tomto cvičení, k dispozici jako fragmenty kódu sady Visual Studio. Chcete-li nainstalovat fragmenty kódu, spusťte soubor .\Source\Setup\CodeSnippets.vsi .

Pokud nemáte zkušenosti s fragmenty kódu sady Visual Studio Code a chcete se naučit, jak je používat, můžete odkazovat na dodatek z tohoto dokumentu "Příloha C: Použití fragmentů kódu".


Cvičení

Toto praktické cvičení se skládá z následujících cvičení:

  1. Cvičení 1: Akce protokolování
  2. Cvičení 2: Správa více filtrů akcí

Odhadovaná doba dokončení tohoto cvičení: 30 minut.

Poznámka:

Každé cvičení je doprovázeno koncovou složkou obsahující výsledné řešení, které byste měli získat po dokončení cvičení. Toto řešení můžete použít jako vodítko, pokud potřebujete další pomoc s prací ve cvičeních.

Cvičení 1: Akce protokolování

V tomto cvičení se dozvíte, jak vytvořit vlastní filtr protokolu akcí pomocí ASP.NET Zprostředkovatelů filtru MVC 4. Pro tento účel použijete filtr protokolování na web MusicStore, který bude zaznamenávat všechny aktivity ve vybraných řadičích.

Filtr rozšíří ActionFilterAttributeClass a přepíše Metodu OnActionExecuting , aby zachytával jednotlivé požadavky a pak provedl akce protokolování. Kontextové informace o požadavcích HTTP, provádění metod, výsledky a parametry budou poskytovány ASP.NET MVC ActionExecutingContext třídy .

Poznámka:

ASP.NET MVC 4 má také výchozí poskytovatele filtrů, které můžete použít bez vytvoření vlastního filtru. ASP.NET MVC 4 poskytuje následující typy filtrů:

  • Filtr autorizace , který provádí bezpečnostní rozhodnutí o tom, jestli se má provést metoda akce, jako je například ověřování nebo ověřování vlastností požadavku.
  • Filtr akcí , který zabalí provádění metody akce. Tento filtr může provádět další zpracování, jako je poskytnutí dodatečných dat metodě akce, kontrola návratové hodnoty nebo zrušení provádění metody akce.
  • Filtr výsledků , který zabalí provádění ActionResult objektu. Tento filtr může provést další zpracování výsledku, například úpravu odpovědi HTTP.
  • Filtr výjimek , který se spustí, pokud je v metodě akce vyvolán neošetřená výjimka, počínaje autorizačními filtry a končící spuštěním výsledku. Filtry výjimek je možné použít pro úlohy, jako je protokolování nebo zobrazení chybové stránky.

Další informace o poskytovateli filtrů naleznete na tomto odkazu MSDN: (https://msdn.microsoft.com/library/dd410209.aspx) .

Informace o funkci protokolování aplikace MVC Music Store

Toto řešení služby Music Store obsahuje novou tabulku datového modelu pro protokolování webu, ActionLog s následujícími poli: Název kontroleru, který přijal požadavek, označovanou akci, IP adresu klienta a časové razítko.

Datový model. Tabulka ActionLog

Datový model – tabulka ActionLog

Řešení poskytuje zobrazení ASP.NET MVC pro protokol akcí, který najdete v MvcMusicStores/Views/ActionLog:

Zobrazení protokolu akcí

Zobrazení protokolu akcí

S touto strukturou se veškerá práce zaměří na přerušení žádosti kontroleru a provádění protokolování pomocí vlastního filtrování.

Úkol 1 – Vytvoření vlastního filtru pro zachycení požadavku kontroleru

V této úloze vytvoříte vlastní třídu atributů filtru, která bude obsahovat logiku protokolování. Pro tento účel rozšíříte ASP.NET MVC ActionFilterAttribute Třída a implementujete rozhraní IActionFilter.

Poznámka:

ActionFilterAttribute je základní třída pro všechny filtry atributů. Poskytuje následující metody pro spuštění konkrétní logiky po a před provedením akce kontroleru:

  • OnActionExecuting(ActionExecutingContext filterContext): Těsně před zavoláním metody akce.
  • OnActionExecuted(ActionExecutedContext filterContext): Po zavolání metody akce a před provedením výsledku (před vykreslením zobrazení).
  • OnResultExecuting(ResultExecutingContext filterContext): Těsně před provedením výsledku (před vykreslením zobrazení).
  • OnResultExecuted(ResultExecutedContext filterContext): Po provedení výsledku (po vykreslení zobrazení).

Přepsáním některé z těchto metod do odvozené třídy můžete spustit vlastní kód filtrování.

  1. Otevřete řešení Begin umístěné ve složce \Source\Ex01-LoggingActions\Begin.

    1. Než budete pokračovat, budete si muset stáhnout některé chybějící balíčky NuGet. Uděláte to tak, že kliknete na nabídku Projekt a vyberete Spravovat balíčky NuGet.

    2. V dialogovém okně Spravovat balíčky NuGet klikněte na Obnovit , aby se stáhly chybějící balíčky.

    3. Nakonec řešení sestavíte kliknutím na Sestavit | řešení.

      Poznámka:

      Jednou z výhod použití NuGetu je, že nemusíte dodávat všechny knihovny v projektu, což snižuje velikost projektu. Pomocí Nástrojů NuGet Power Tools zadáte verze balíčků v souboru Packages.config, budete moci stáhnout všechny požadované knihovny při prvním spuštění projektu. Proto budete muset tyto kroky spustit po otevření existujícího řešení z tohoto testovacího prostředí.

      Další informace najdete v tomto článku: https://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages.

  2. Do složky Filters přidejte novou třídu jazyka C# a pojmenujte ji CustomActionFilter.cs. Tato složka uloží všechny vlastní filtry.

  3. Otevřete CustomActionFilter.cs a přidejte odkaz na obory názvů System.Web.Mvc a MvcMusicStore.Models :

    (Fragment kódu – ASP.NET vlastní filtry akcí MVC 4 – Ex1-CustomActionFilterNamespaces)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using MvcMusicStore.Models;
    
  4. Zdědí CustomActionFilter třídy z ActionFilterAttribute a pak customActionFilter třída implementuje IActionFilter rozhraní.

    //...
    namespace MvcMusicStore.Filters
    {
        public class CustomActionFilter : ActionFilterAttribute, IActionFilter
        {
            //...
        }
    }
    
  5. Nastavit CustomActionFilter třídy přepsat metodu OnActionExecuting a přidat potřebnou logiku pro protokolování spuštění filtru. Uděláte to tak, že do třídy CustomActionFilter přidáte následující zvýrazněný kód.

    (Fragment kódu – ASP.NET vlastní filtry akcí MVC 4 – Ex1-LoggingActions)

    public class CustomActionFilter : ActionFilterAttribute, IActionFilter
    {
        void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {
            // TODO: Add your action filter's tasks here
    
            // Log Action Filter call
            using (MusicStoreEntities storeDb = new MusicStoreEntities())
            {
                ActionLog log = new ActionLog()
                {
                    Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
                    Action = string.Concat(filterContext.ActionDescriptor.ActionName, " (Logged By: Custom Action Filter)"),
                    IP = filterContext.HttpContext.Request.UserHostAddress,
                    DateTime = filterContext.HttpContext.Timestamp
                };
                storeDb.ActionLogs.Add(log);
                storeDb.SaveChanges();
                OnActionExecuting(filterContext);
            }
        }
    }
    

    Poznámka:

    Metoda OnActionExecuting používá Entity Framework k přidání nového registru ActionLog. Vytvoří a vyplní novou instanci entity kontextovými informacemi z filterContext.

    Další informace o třídě ControllerContext najdete na webu msdn.

Úkol 2 – vložení zachytávání kódu do třídy kontroleru úložiště

V této úloze přidáte vlastní filtr vložením do všech tříd kontroleru a akcí kontroleru, které budou protokolovány. Pro účely tohoto cvičení bude třída Store Controller obsahovat protokol.

Metoda OnActionExecuting z ActionLogFilterAttribute vlastní filtr se spustí při vyvolání vloženého elementu.

Je také možné zachytit konkrétní metodu kontroleru.

  1. Otevřete StoreController v MvcMusicStore\Controllers a přidejte odkaz na obor názvů Filtrů:

    using System.Linq;
    using System.Web.Mvc;
    using MvcMusicStore.Models;
    using MvcMusicStore.Filters;
    
  2. Vložte vlastní filtr CustomActionFilter do Třídy StoreController přidáním atributu [CustomActionFilter] před deklaraci třídy.

    ...
    [CustomActionFilter]
    public class StoreController : Controller
    {
        ...
    }
    

    Poznámka:

    Při vložení filtru do třídy kontroleru se také vloží všechny jeho akce. Pokud chcete použít filtr pouze pro sadu akcí, musíte do každého z nich vložit [CustomActionFilter] :

    [CustomActionFilter]
    public ActionResult Index()
    {
      ...
    }
    
    [CustomActionFilter]
    public ActionResult Browse(string genre)
    {
      ...
    }
    

Úkol 3 – spuštění aplikace

V této úloze otestujete, že filtr protokolování funguje. Spustíte aplikaci a navštívíte obchod a pak zkontrolujete protokolované aktivity.

  1. Stisknutím klávesy F5 spusťte aplikaci.

  2. Přejděte na /ActionLog a zobrazte počáteční stav zobrazení protokolu:

    Snímek obrazovky znázorňující stav protokolu akcí před aktivitou stránky

    Stav sledování protokolů před aktivitou stránky

    Poznámka:

    Ve výchozím nastavení se vždy zobrazí jedna položka, která se vygeneruje při načítání existujících žánrů nabídky.

    Pro zjednodušení provádíme čištění tabulky ActionLog při každém spuštění aplikace, aby se zobrazily pouze protokoly ověření jednotlivých konkrétních úloh.

    Možná budete muset z metody Session_Start (ve třídě Global.asax) odebrat následující kód, aby se uložil historický protokol pro všechny akce provedené v rámci kontroleru úložiště.

    // Clean up Logs Table
    MusicStoreEntities storeDB = new MusicStoreEntities();
    foreach (var log in 
    
    storeDB.ActionLogs.ToList())
    {
       storeDB.ActionLogs.Remove(log);
    }
    
    storeDB.SaveChanges();
    
  3. V nabídce klikněte na některý z žánrů a proveďte některé akce, jako je procházení dostupného alba.

  4. Přejděte na /ActionLog a pokud je protokol prázdný, aktualizujte stránku stisknutím klávesy F5 . Zkontrolujte, jestli byly vaše návštěvy sledovány:

    Snímek obrazovky ukazuje protokol akcí, kde můžete ověřit své návštěvy.

    Protokol akcí s protokolovanou aktivitou

Cvičení 2: Správa více filtrů akcí

V tomto cvičení přidáte druhý filtr vlastních akcí do třídy StoreController a definujete konkrétní pořadí, ve kterém budou provedeny oba filtry. Pak kód aktualizujete tak, aby se filtr zaregistroval globálně.

Při definování pořadí provádění filtrů existují různé možnosti. Například vlastnost Order (Objednávka) a obor Filters (Filtry):

Můžete definovat obor pro každý filtr, například můžete nastavit obor všech filtrů akcí, které se mají spustit v rámci oboru kontroleru, a všechny autorizační filtry, které se mají spustit v globálním oboru. Obory mají definované pořadí provádění.

Kromě toho má každý filtr akcí vlastnost Order, která se používá k určení pořadí provádění v oboru filtru.

Další informace o pořadí provádění filtry vlastních akcí najdete v tomto článku MSDN: (https://msdn.microsoft.com/library/dd381609(v=vs.98).aspx).

Úkol 1: Vytvoření nového vlastního filtru akcí

V této úloze vytvoříte nový vlastní filtr akcí, který se vloží do třídy StoreController a naučíte se spravovat pořadí provádění filtrů.

  1. Otevřete řešení Begin umístěné ve složce \Source\Ex02-ManagingMultipleActionFilters\Begin. Jinak můžete pokračovat v používání koncového řešení získaného dokončením předchozího cvičení.

    1. Pokud jste otevřeli poskytnuté řešení Begin , budete si muset před pokračováním stáhnout některé chybějící balíčky NuGet. Uděláte to tak, že kliknete na nabídku Projekt a vyberete Spravovat balíčky NuGet.

    2. V dialogovém okně Spravovat balíčky NuGet klikněte na Obnovit , aby se stáhly chybějící balíčky.

    3. Nakonec řešení sestavíte kliknutím na Sestavit | řešení.

      Poznámka:

      Jednou z výhod použití NuGetu je, že nemusíte dodávat všechny knihovny v projektu, což snižuje velikost projektu. Pomocí Nástrojů NuGet Power Tools zadáte verze balíčků v souboru Packages.config, budete moci stáhnout všechny požadované knihovny při prvním spuštění projektu. Proto budete muset tyto kroky spustit po otevření existujícího řešení z tohoto testovacího prostředí.

      Další informace najdete v tomto článku: https://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages.

  2. Přidejte do složky Filters novou třídu jazyka C# a pojmenujte ji MyNewCustomActionFilter.cs

  3. Otevřete MyNewCustomActionFilter.cs a přidejte odkaz na obor názvů System.Web.Mvc a MvcMusicStore.Models :

    (Fragment kódu – ASP.NET vlastní filtry akcí MVC 4 – Ex2-MyNewCustomActionFilterNamespaces)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using MvcMusicStore.Models;
    
  4. Nahraďte výchozí deklaraci třídy následujícím kódem.

    (Fragment kódu – ASP.NET vlastní filtry akcí MVC 4 – Ex2-MyNewCustomActionFilterClass)

    public class MyNewCustomActionFilter : ActionFilterAttribute, IActionFilter
    {
      void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
    
      {
            // TODO: Add your acction filter's tasks here
    
            // Log Action Filter Call
            MusicStoreEntities storeDB = new MusicStoreEntities();
    
            ActionLog log = new ActionLog()
            {
                 Controller = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
                 Action = filterContext.ActionDescriptor.ActionName + " (Logged By: 
    
    MyNewCustomActionFilter)",
                 IP = filterContext.HttpContext.Request.UserHostAddress,
                 DateTime = filterContext.HttpContext.Timestamp
            };
    
            storeDB.ActionLogs.Add(log);
            storeDB.SaveChanges();
    
            this.OnActionExecuting(filterContext);
      }
    }
    

    Poznámka:

    Tento filtr vlastních akcí je skoro stejný jako ten, který jste vytvořili v předchozím cvičení. Hlavním rozdílem je, že má aktualizovaný atribut "Logged By" s názvem této nové třídy, aby identifikoval, který filtr zaregistroval protokol.

Úkol 2: Vložení nového průsečíku kódu do třídy StoreController

V této úloze přidáte do třídy StoreController nový vlastní filtr a spustíte řešení, abyste ověřili, jak oba filtry spolupracují.

  1. Otevřete třídu StoreController umístěnou v MvcMusicStore\Controllers a vložte nový vlastní filtr MyNewCustomActionFilter do třídy StoreController, jak je znázorněno v následujícím kódu.

    [MyNewCustomActionFilter]
    [CustomActionFilter]
    public class StoreController : Controller
    {
    ...
    }
    
  2. Teď spusťte aplikaci, abyste viděli, jak tyto dva filtry vlastních akcí fungují. Uděláte to tak, že stisknete klávesu F5 a počkáte, až se aplikace spustí.

  3. Přejděte na /ActionLog a zobrazte počáteční stav zobrazení protokolu.

    Snímek obrazovky zobrazuje stav sledování protokolu akcí v počátečním stavu.

    Stav sledování protokolů před aktivitou stránky

  4. V nabídce klikněte na některý z žánrů a proveďte některé akce, jako je procházení dostupného alba.

  5. Zkontrolujte, že tentokrát; Vaše návštěvy byly sledovány dvakrát: jednou pro každý z vlastních filtrů akcí, které jste přidali do třídy StorageController .

    Snímek obrazovky ukazuje protokol akcí se sledováním vašich návštěv dvakrát.

    Protokol akcí s protokolovanou aktivitou

  6. Zavřete prohlížeč.

Úkol 3: Správa řazení filtrů

V této úloze se dozvíte, jak spravovat pořadí provádění filtrů pomocí vlastnosti Order.

  1. Otevřete třídu StoreController umístěnou v MvcMusicStore\Controllers a zadejte Order vlastnost v obou filtrech, jak je znázorněno níže.

    [MyNewCustomActionFilter(Order = 2)]
    [CustomActionFilter(Order = 1)]
    public class StoreController : Controller
    {
    ...
    }
    
  2. Teď ověřte, jak se filtry spouštějí v závislosti na hodnotě vlastnosti Order. Zjistíte, že filtr s nejmenší hodnotou Order (CustomActionFilter) je první, který se spustí. Stiskněte klávesu F5 a počkejte, až se aplikace spustí.

  3. Přejděte na /ActionLog a zobrazte počáteční stav zobrazení protokolu.

    Snímek obrazovky ukazuje protokol akcí před aktivitou stránky.

    Stav sledování protokolů před aktivitou stránky

  4. V nabídce klikněte na některý z žánrů a proveďte některé akce, jako je procházení dostupného alba.

  5. Zkontrolujte, že tentokrát byly vaše návštěvy sledovány podle hodnoty Objednávky filtrů: Protokoly CustomActionFilter jako první.

    Snímek obrazovky ukazuje protokol akcí s aktivitou seřazenou podle CustomActionFilteru.

    Protokol akcí s protokolovanou aktivitou

  6. Teď aktualizujete hodnotu objednávky filtrů a ověříte, jak se pořadí protokolování mění. Ve třídě StoreController aktualizujte hodnotu Order filters, jak je znázorněno níže.

    [MyNewCustomActionFilter(Order = 1)]
    [CustomActionFilter(Order = 2)]
    public class StoreController : Controller
    {
    ...
    }
    
  7. Spusťte aplikaci znovu stisknutím klávesy F5.

  8. V nabídce klikněte na některý z žánrů a proveďte některé akce, jako je procházení dostupného alba.

  9. Zkontrolujte, že tentokrát se nejprve zobrazí protokoly vytvořené filtrem MyNewCustomActionFilter .

    Snímek obrazovky ukazuje protokol akcí s protokoly vytvořenými zadaným filtrem.

    Protokol akcí s protokolovanou aktivitou

Úkol 4: Globální registrace filtrů

V této úloze aktualizujete řešení tak, aby registroval nový filtr (MyNewCustomActionFilter) jako globální filtr. Tímto způsobem se aktivují všechny akce prováděné v aplikaci, nejen v úložišti StoreController, stejně jako v předchozí úloze.

  1. Ve třídě StoreController odeberte atribut [MyNewCustomActionFilter] a vlastnost order z [CustomActionFilter]. Mělo by to vypadat následovně:

    [CustomActionFilter]
    public class StoreController : Controller
    {
    ...
    }
    
  2. Otevřete soubor Global.asax a vyhledejte metodu Application_Start . Všimněte si, že pokaždé, když aplikace spustí, registruje globální filtry voláním RegisterGlobalFilters metoda ve třídě FilterConfig .

    Registrace globálních filtrů v Global.asax

    Registrace globálních filtrů v Global.asax

  3. Otevřete soubor FilterConfig.cs ve složce App_Start .

  4. Přidání odkazu na použití System.Web.Mvc; pomocí MvcMusicStore.Filters; Namespace.

    using System.Web.Mvc;
    using MvcMusicStore.Filters;
    
  5. Aktualizujte metodu RegisterGlobalFilters přidáním vlastního filtru. Uděláte to tak, že přidáte zvýrazněný kód:

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new MyNewCustomActionFilter());
    }
    
  6. Spusťte aplikaci stisknutím klávesy F5.

  7. V nabídce klikněte na některý z žánrů a proveďte některé akce, jako je procházení dostupného alba.

  8. Zkontrolujte, jestli se teď [MyNewCustomActionFilter] vkládala do ovládacích prvků HomeController a ActionLogController.

    Snímek obrazovky ukazuje protokol akcí, kde můžete zkontrolovat nový vlastní filtr.

    Protokol akcí se zaprotokolovanou globální aktivitou

Poznámka:

Kromě toho můžete tuto aplikaci nasadit na weby Windows Azure podle dodatku B: Publikování aplikace ASP.NET MVC 4 pomocí nasazení webu.


Shrnutí

Dokončením tohoto praktického cvičení jste se naučili rozšířit filtr akcí pro provádění vlastních akcí. Dozvěděli jste se také, jak do kontrolerů stránek vložit jakýkoli filtr. Byly použity následující koncepty:

  • Vytvoření filtrů vlastních akcí pomocí třídy ASP.NET MVC ActionFilterAttribute
  • Jak vkládat filtry do kontrolerů MVC ASP.NET
  • Správa řazení filtrů pomocí vlastnosti Order
  • Jak registrovat filtry globálně

Příloha A: Instalace sady Visual Studio Express 2012 pro web

Microsoft Visual Studio Express 2012 pro web nebo jinou verzi Expressu můžete nainstalovat pomocí instalačního programu Webová platforma Microsoft. Následující pokyny vás provedou postupem potřebným k instalaci sady Visual Studio Express 2012 pro web pomocí instalačního programu Webová platforma Microsoft.

  1. Přejděte na /iis/extensions/introduction-to-iis-express/iis-express-overview?linkid=9810169. Pokud už máte nainstalovaný instalační program webové platformy, můžete ho také otevřít a vyhledat produkt Visual Studio Express 2012 pro web se sadou Windows Azure SDK.

  2. Klikněte na Nainstalovat. Pokud nemáte instalační program webové platformy, budete přesměrováni na jeho první stažení a instalaci.

  3. Po otevření instalačního programu webové platformy spusťte instalaci kliknutím na nainstalovat .

    Instalace sady Visual Studio Express

    Instalace sady Visual Studio Express

  4. Přečtěte si všechny licence a podmínky produktů a pokračujte kliknutím na Přijmout .

    Přijetí licenčních podmínek

    Přijetí licenčních podmínek

  5. Počkejte, až se proces stahování a instalace dokončí.

    Průběh instalace:

    Průběh instalace

  6. Po dokončení instalace klepněte na tlačítko Dokončit.

    Instalace byla dokončena.

    Instalace byla dokončena.

  7. Kliknutím na tlačítko Ukončit zavřete instalační program webové platformy.

  8. Pokud chcete otevřít Visual Studio Express pro web, přejděte na úvodní obrazovku a začněte psát "VS Express" a potom klikněte na dlaždici VS Express pro web.

    Dlaždice VS Express pro web

    Dlaždice VS Express pro web

Příloha B: Publikování aplikace ASP.NET MVC 4 pomocí nasazení webu

V tomto dodatku se dozvíte, jak vytvořit nový web z portálu pro správu Windows Azure a publikovat aplikaci, kterou jste získali v testovacím prostředí, a využít tak funkci publikování nasazení webu, kterou poskytuje Windows Azure.

Úkol 1 – Vytvoření nového webu z webu Windows Azure Portal

  1. Přejděte na portál pro správu Windows Azure a přihlaste se pomocí přihlašovacích údajů Microsoftu přidružených k vašemu předplatnému.

    Poznámka:

    S Windows Azure můžete zdarma hostovat 10 ASP.NET weby a pak škálovat s rostoucím provozem. Tady se můžete zaregistrovat.

    Přihlášení k webu Windows Azure Portal

    Přihlášení k portálu pro správu Windows Azure

  2. Na panelu příkazů klikněte na Nový .

    Vytvoření nového webu

    Vytvoření nového webu

  3. Klikněte na výpočetní | web. Pak vyberte možnost Rychlé vytvoření . Zadejte dostupnou adresu URL nového webu a klikněte na vytvořit web.

    Poznámka:

    Web Windows Azure je hostitelem webové aplikace běžící v cloudu, kterou můžete řídit a spravovat. Možnost Rychlé vytvoření umožňuje nasadit dokončenou webovou aplikaci na web Windows Azure mimo portál. Nezahrnuje kroky pro nastavení databáze.

    Vytvoření nového webu pomocí rychlého vytvoření

    Vytvoření nového webu pomocí rychlého vytvoření

  4. Počkejte na vytvoření nového webu .

  5. Po vytvoření webu klikněte na odkaz pod sloupcem ADRESY URL . Zkontrolujte, jestli nový web funguje.

    Přechod na nový web

    Přechod na nový web

    Spuštěný web

    Spuštěný web

  6. Vraťte se na portál a kliknutím na název webu ve sloupci Název zobrazte stránky pro správu.

    Otevření stránek pro správu webu

    Otevření stránek pro správu webu

  7. Na stránce Řídicí panel v části Rychlý přehled klikněte na odkaz Stáhnout profil publikování.

    Poznámka:

    Profil publikování obsahuje všechny informace potřebné k publikování webové aplikace na web Windows Azure pro každou povolenou metodu publikování. Profil publikování obsahuje adresy URL, přihlašovací údaje uživatele a databázové řetězce potřebné pro připojení ke každému koncovému bodu, pro který je povolená metoda publikování. Microsoft WebMatrix 2, Microsoft Visual Studio Express pro web a Microsoft Visual Studio 2012 podporují profily publikování pro čtení pro automatizaci konfigurace těchto programů pro publikování webových aplikací na weby Windows Azure.

    Stažení profilu publikování webu

    Stažení profilu publikování webu

  8. Stáhněte soubor profilu publikování do známého umístění. Dále v tomto cvičení se dozvíte, jak pomocí tohoto souboru publikovat webovou aplikaci na weby Windows Azure ze sady Visual Studio.

    Uložení souboru profilu publikování

    Uložení souboru profilu publikování

Úloha 2 – Konfigurace databázového serveru

Pokud vaše aplikace využívá databáze SQL Serveru, budete muset vytvořit server služby SQL Database. Pokud chcete nasadit jednoduchou aplikaci, která nepoužívá SQL Server, můžete tuto úlohu přeskočit.

  1. K uložení aplikační databáze budete potřebovat server služby SQL Database. Servery SLUŽBY SQL Database můžete zobrazit z vašeho předplatného na portálu pro správu Windows Azure na řídicím panelu serveru sql Databases | Servers | . Pokud server nemáte vytvořený, můžete ho vytvořit pomocí tlačítka Přidat na panelu příkazů. Poznamenejte si název serveru a adresu URL, přihlašovací jméno a heslo správce, protože je budete používat v dalších úlohách. Databázi ještě nevytvořte, protože bude vytvořena v pozdější fázi.

    Řídicí panel serveru SLUŽBY SQL Database

    Řídicí panel serveru SLUŽBY SQL Database

  2. V další úloze otestujete připojení k databázi ze sady Visual Studio, z tohoto důvodu musíte do seznamu povolených IP adres serveru zahrnout svou místní IP adresu. Uděláte to tak, že kliknete na Konfigurovat, vyberete IP adresu z aktuální IP adresy klienta a vložíte ji do textových polí Počáteční IP adresa a Koncová IP adresa a kliknete na add-client-ip-address-ok-button tlačítko.

    Přidání IP adresy klienta

    Přidání IP adresy klienta

  3. Po přidání IP adresy klienta do seznamu povolených IP adres klikněte na Uložit a potvrďte změny.

    Potvrdit změny

    Potvrdit změny

Úloha 3 – Publikování aplikace ASP.NET MVC 4 pomocí nasazení webu

  1. Vraťte se k řešení ASP.NET MVC 4. V Průzkumník řešení klikněte pravým tlačítkem myši na projekt webu a vyberte Publikovat.

    Publikování aplikace

    Publikování webu

  2. Importujte profil publikování, který jste uložili v prvním úkolu.

    Import profilu publikování

    Import profilu publikování

  3. Klikněte na Ověřit připojení. Po dokončení ověření klikněte na tlačítko Další.

    Poznámka:

    Ověření se dokončí, jakmile se vedle tlačítka Ověřit připojení zobrazí zelené zaškrtnutí.

    Ověřování připojení

    Ověřování připojení

  4. Na stránce Nastavení klikněte v části Databáze na tlačítko vedle textového pole připojení k databázi (tj. DefaultConnection).

    Konfigurace nasazení webu

    Konfigurace nasazení webu

  5. Připojení k databázi nakonfigurujte následujícím způsobem:

    • Do pole Název serveru zadejte adresu URL serveru služby SQL Database pomocí předpony tcp:

    • Do pole Uživatelské jméno zadejte přihlašovací jméno správce serveru.

    • Do pole Heslo zadejte přihlašovací heslo správce serveru.

    • Zadejte nový název databáze.

      Konfigurace cílového připojovací řetězec

      Konfigurace cílového připojovací řetězec

  6. Pak klikněte na OK. Po zobrazení výzvy k vytvoření databáze klepněte na tlačítko Ano.

    Vytvoření databáze

    Vytvoření databáze

  7. Připojovací řetězec, které použijete pro připojení ke službě SQL Database ve Windows Azure, se zobrazí v textovém poli Výchozí připojení. Pak klikněte na tlačítko Další.

    Připojovací řetězec odkazující na SLUŽBU SQL Database

    Připojovací řetězec odkazující na SLUŽBU SQL Database

  8. Na stránce Náhled klikněte na Publikovat.

    Publikování webové aplikace

    Publikování webové aplikace

  9. Po dokončení procesu publikování se ve výchozím prohlížeči otevře publikovaný web.

Příloha C: Použití fragmentů kódu

S fragmenty kódu máte veškerý kód, který potřebujete na dosah ruky. Dokument testovacího prostředí vám přesně řekne, kdy je můžete použít, jak je znázorněno na následujícím obrázku.

Použití fragmentů kódu sady Visual Studio k vložení kódu do projektu

Použití fragmentů kódu sady Visual Studio k vložení kódu do projektu

Přidání fragmentu kódu pomocí klávesnice (jenom C#)

  1. Umístěte kurzor na místo, kam chcete vložit kód.
  2. Začněte psát název fragmentu kódu (bez mezer nebo pomlček).
  3. Sledujte, jak IntelliSense zobrazuje odpovídající názvy fragmentů kódu.
  4. Vyberte správný fragment kódu (nebo pokračujte v psaní, dokud nebude vybrán název celého fragmentu kódu).
  5. Dvojím stisknutím klávesy Tab vložte fragment kódu do umístění kurzoru.

Začněte psát název fragmentu kódu.

Začněte psát název fragmentu kódu.

Stisknutím klávesy Tab vyberte zvýrazněný fragment kódu.

Stisknutím klávesy Tab vyberte zvýrazněný fragment kódu.

Znovu stiskněte klávesu Tab a fragment kódu se rozbalí.

Znovu stiskněte klávesu Tab a fragment kódu se rozbalí.

Pokud chcete přidat fragment kódu pomocí myši (C#, Visual Basic a XML) 1. Klikněte pravým tlačítkem na místo, kam chcete vložit fragment kódu.

  1. Vyberte Vložit fragment kódu následovaný mými fragmenty kódu.
  2. Kliknutím na něj vyberte příslušný fragment kódu ze seznamu.

Klikněte pravým tlačítkem na místo, kam chcete vložit fragment kódu, a vyberte Vložit fragment kódu.

Klikněte pravým tlačítkem na místo, kam chcete vložit fragment kódu, a vyberte Vložit fragment kódu.

Výběr relevantního fragmentu ze seznamu kliknutím na něj

Výběr relevantního fragmentu ze seznamu kliknutím na něj