Vlastní šablona MVC
Vydání aktualizace nástrojů MVC 3 pro Visual Studio 2010 zavedlo samostatného průvodce projektem pro projekty MVC. Změna byla ovlivněna dvěma faktory. Zaprvé, zavedení nových šablon v MVC 3 a podpora dalších modulů zobrazení, jako je Razor, vede k přeplnění dialogového okna Nový projekt v sadě Visual Studio. Zadruhé, zákazníci žádali o body rozšiřitelnosti a průvodce novým projektem MVC nám umožnil reagovat na tyto požadavky.
Přidání vlastních šablon byl namáhavý proces, který se spoléhal na použití registru, aby byly nové šablony viditelné v průvodci projektem MVC. Autor nové šablony ji musel zabalit do MSI, aby se zajistilo, že se při instalaci vytvoří potřebné položky registru. Alternativou bylo zpřístupnit soubor ZIP obsahující šablonu a nechat koncového uživatele vytvořit požadované položky registru ručně.
Žádný z výše uvedených přístupů není ideální, a proto jsme se rozhodli využít část stávající infrastruktury poskytované rozšířeními VSIX , abychom usnadnili vytváření, distribuci a instalaci vlastních šablon MVC počínaje verzí MVC 4 pro Visual Studio 2012. Mezi výhody, které tento přístup přináší, patří:
- Rozšíření VSIX může obsahovat více šablon, které podporují různé jazyky (C# a Visual Basic) a více modulů zobrazení (ASPX a Razor).
- Rozšíření VSIX může cílit na více skladových položek sady Visual Studio, včetně skladových položek expressu.
- Galerie sady Visual Studio usnadňuje distribuci rozšíření široké cílové skupině.
- Rozšíření VSIX je možné upgradovat, což usnadňuje vytváření oprav a aktualizací vlastních šablon.
Požadavky
- Uživatelé musí být obeznámeni s vytvářením šablon projektů, včetně požadovaných značek pro soubory vstemplate atd.
- Uživatelé budou muset mít nainstalované Visual Studio Professional a vyšší. Skladové položky Express nepodporují vytváření projektů VSIX.
- Sada Visual Studio 2012 SDK je nainstalovaná.
Příklad
Prvním krokem je vytvoření nového projektu VSIX pomocí jazyka C# nebo Visual Basicu. Vyberte Soubor > nový projekt, pak v levém podokně klikněte na Rozšiřitelnost a vyberte projekt VSIX.
Po vytvoření projektu se otevře návrhář VSIX.
Návrháře lze použít k úpravě některých obecných vlastností rozšíření, které se zobrazí uživatelům při instalaci rozšíření nebo procházení nainstalovaných rozšíření v sadě Visual Studio (rozšíření nástrojů > a Aktualizace). Po dokončení obecných informací klikněte na kartu Instalovat cíle.
Tato karta slouží k určení skladových položek a verzí sady Visual Studio, které vaše rozšíření podporuje. Pokud chcete povolit instalace VSIX pro jednotlivé počítače, zaškrtněte políčko Tento VSIX je nainstalovaný pro všechny uživatele . Kliknutím na tlačítko Nový na pravé straně přidejte další skladové položky, například Web Developer Express (VWD).
Pokud chcete podporovat všechny skladové položky Professional a vyšší (Professional, Premium a Ultimate), stačí vybrat pouze minimální skladovou položku v rodině Microsoft.VisualStudio.Pro. Po dokončení instalace cílů nezapomeňte uložit všechny změny.
Karta Prostředky slouží k přidání všech souborů obsahu do VSIX. Vzhledem k tomu, že MVC vyžaduje vlastní metadata, budete upravovat nezpracovaný XML souboru manifestu VSIX místo použití karty Prostředky k přidání obsahu. Začněte přidáním obsahu šablony do projektu VSIX. Je důležité, aby struktura složky a obsahu odrážely rozložení projektu. Následující příklad obsahuje čtyři šablony projektu, které byly odvozeny ze šablony projektu Basic MVC. Ujistěte se, že všechny soubory, které tvoří šablonu projektu (vše pod složkou ProjectTemplates), jsou přidány do skupiny položek obsahu v souboru projektu VSIX a že každá položka obsahuje sadu metadat CopyToOutputDirectory a IncludeInVsix , jak je znázorněno v následujícím příkladu.
<Content Include="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx\BasicWeb.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<IncludeInVSIX>true</IncludeInVSIX>
</Obsah>
Pokud ne, integrované vývojové prostředí se pokusí zkompilovat obsah šablony při sestavování VSIX a pravděpodobně se zobrazí chyba. Soubory kódu v šablonách často obsahují speciální parametry šablony používané sadou Visual Studio při vytvoření instance šablony projektu, a proto je nelze zkompilovat v integrovaném vývojovém prostředí (IDE).
Zavřete návrhářE VSIX, klikněte pravým tlačítkem na soubor source.extension.manifest v Průzkumník řešení, vyberte Otevřít v nástroji a zvolte možnost Editor XML (Text).
<Vytvořte element Assets> a přidejte <element Assets> pro každý soubor, který musí být součástí VSIX. Atribut Type každého <elementu Asset> musí být nastaven na Microsoft.VisualStudio.Mvc.Template. Toto je vlastní obor názvů, kterému rozumí pouze průvodce projektem MVC. Další informace o struktuře a rozložení souboru manifestu najdete v dokumentaci schématu VSIX 2.0.
Pouhé přidání souborů do VSIX nestačí k registraci šablon v průvodci MVC. Do průvodce MVC musíte zadat informace, jako je název šablony, popis, podporované moduly zobrazení a programovací jazyk. Tyto informace se přenášejí ve vlastních atributech přidružených k elementu <Asset> pro každý soubor vstemplate .
<Asset d:VsixSubPath="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx"
Type="Microsoft.VisualStudio.Mvc.Template"
d:Source="Soubor"
Path="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx\BasicMvcWebApplicationProjectTemplate.11.csaspx.vstemplate"
ProjectType="MVC"
Language="C#"
ViewEngine="Aspx"
TemplateId="MyMvcApplication"
Title="Vlastní základní webová aplikace"
Description="Vlastní šablona odvozená z webové aplikace Basic MVC (Razor)"
Version="4.0"/>
Níže najdete vysvětlení vlastních atributů, které musí existovat:
- ProjectType musí být nastavený na MVC.
- Jazyk určuje vývojový jazyk podporovaný šablonou. Platné hodnoty jsou C# nebo VB.
- ViewEngine určuje modul zobrazení podporovaný šablonou, například Aspx nebo Razor. Pro toto pole můžete zadat vlastní hodnotu.
- TemplateId slouží k seskupování šablon. Pokud hodnota odpovídá existujícímu ID šablony, přepíše se šablony dříve zaregistrované v průvodci MVC.
- Název určuje krátký popis zobrazený v průvodci MVC pod každou šablonou projektu.
- Popis určuje podrobnější popis šablony.
Po přidání všech souborů do manifestu a jeho uložení si všimnete, že na kartě Prostředky v návrháři se zobrazí všechny soubory, ale ne vlastní atributy, které jste přidali do <elementů Asset> pro soubory vstemplate .
Teď už zbývá jen zkompilovat projekt VSIX a nainstalovat ho.
Ujistěte se, že jsou všechny instance sady Visual Studio zavřené na počítači, na kterém chcete rozšíření VSIX otestovat. Visual Studio vyhledá nová rozšíření během spouštění, takže pokud je integrované vývojové prostředí otevřené při instalaci VSIX, budete muset restartovat Visual Studio. V Průzkumníkovi poklikáním na soubor VSIX spusťte instalační program VSIX, klikněte na Nainstalovat a spusťte Visual Studio.
V nabídce vyberte Rozšíření nástroje > a Aktualizace potvrďte, že se vaše rozšíření nainstalovalo. Pokud instalační program VSIX ohlásil během instalace rozšíření nějaké chyby, můžete zobrazit protokol instalačního programu VSIX, kde najdete další informace. Protokol se obvykle vytvoří ve složce %temp% uživatele, který rozšíření nainstaloval, například C:\Users\Bob\AppData\Local\Temp.
Po zavření okna můžete vytvořit projekt MVC 4 a zjistit, jestli se nové šablony zobrazují v průvodci MVC.
Omezení
- Průvodce MVC nepodporuje lokalizované vlastní šablony.
- Pokud se mu nepodaří najít vlastní šablony, průvodce neohlásí žádné chyby. Pokud některý z požadovaných vlastních atributů chybí, šablona bude jednoduše vyloučena z Průvodce.