Niestandardowy szablon MVC

Autor : Jacques Eloff

Wersja aktualizacji NARZĘDZI MVC 3 dla programu Visual Studio 2010 wprowadziła oddzielnego kreatora projektu dla projektów MVC. Zmiana była napędzana przez dwa czynniki. Po pierwsze wprowadzenie nowych szablonów w programie MVC 3 i obsługa dodatkowych aparatów widoków, takich jak Razor, prowadzą do przepełnienia okna dialogowego Nowy projekt w programie Visual Studio. Po drugie, klienci prosili o punkty rozszerzalności, a nowy kreator projektu MVC pozwoli nam na możliwość reagowania na te żądania.

Dodawanie szablonów niestandardowych było żmudnym procesem, który polegał na używaniu rejestru do tworzenia nowych szablonów widocznych w kreatorze projektu MVC. Autor nowego szablonu musiał owinąć go wewnątrz tożsamości usługi zarządzanej, aby upewnić się, że niezbędne wpisy rejestru zostaną utworzone w czasie instalacji. Alternatywą było udostępnienie pliku ZIP zawierającego szablon i ręczne utworzenie wymaganych wpisów rejestru przez użytkownika końcowego.

Żadna z wyżej wymienionych metod nie jest idealna, dlatego postanowiliśmy wykorzystać część istniejącej infrastruktury dostarczonej przez rozszerzenia VSIX , aby ułatwić tworzenie, dystrybuowanie i instalowanie niestandardowych szablonów MVC począwszy od MVC 4 dla programu Visual Studio 2012. Oto niektóre korzyści wynikające z tego podejścia:

  • Rozszerzenie VSIX może zawierać wiele szablonów obsługujących różne języki (C# i Visual Basic) oraz wiele aparatów widoków (ASPX i Razor).
  • Rozszerzenie VSIX może dotyczyć wielu jednostek SKU programu Visual Studio, w tym jednostek SKU Express.
  • Galeria programu Visual Studio ułatwia dystrybucję rozszerzenia do szerokiej grupy odbiorców.
  • Rozszerzenia VSIX można uaktualnić, co ułatwia tworzenie poprawek i aktualizacji szablonów niestandardowych.

Wymagania wstępne

  • Użytkownicy muszą znać szablony projektów tworzenia, w tym wymagane znaczniki dla plików vstemplate itp.
  • Użytkownicy będą musieli mieć zainstalowane Visual Studio Professional i nowsze. Jednostki SKU platformy Express nie obsługują tworzenia projektów VSIX.
  • Zainstalowany zestaw VISUAL Studio 2012 SDK.

Przykład

Pierwszym krokiem jest utworzenie nowego projektu VSIX przy użyciu języka C# lub Visual Basic. Wybierz pozycję Plik > nowy projekt, a następnie kliknij pozycję Rozszerzalność w okienku po lewej stronie i wybierz projekt VSIX.

Nowy projekt

Po utworzeniu projektu zostanie otwarty projektant VSIX.

Metadane Projektant projektu

Projektant może służyć do edytowania niektórych ogólnych właściwości rozszerzenia, które będą wyświetlane użytkownikom podczas instalowania rozszerzenia lub przeglądania zainstalowanych rozszerzeń w programie Visual Studio (rozszerzenia narzędzi > i Aktualizacje). Po zakończeniu ogólnych informacji kliknij kartę Zainstaluj elementy docelowe.

Zrzut ekranu przedstawiający kartę Instalowanie obiektów docelowych w Projektant projektu.

Ta karta służy do określania jednostek SKU i wersji programu Visual Studio obsługiwanych przez rozszerzenie. Zaznacz pole wyboru Dla tego vsIX jest instalowane dla wszystkich użytkowników , aby włączyć instalacje dla poszczególnych maszyn VSIX. Kliknij przycisk Nowy po prawej stronie, aby dodać dodatkowe jednostki SKU, takie jak Web Developer Express (VWD).

Dodaj nowy element docelowy instalacji

Jeśli zamierzasz obsługiwać wszystkie jednostki SKU Professional i wyższe (Professional, Premium i Ultimate), musisz wybrać minimalną jednostkę SKU w rodzinie, Microsoft.VisualStudio.Pro. Pamiętaj, aby zapisać wszystkie zmiany po zakończeniu instalacji obiektów docelowych.

Zrzut ekranu przedstawiający kartę Instalowanie obiektów docelowych w programie Project Projektant z określonymi identyfikatorami i zakresami wersji.

Karta Zasoby służy do dodawania wszystkich plików zawartości do pliku VSIX. Ponieważ mvC wymaga niestandardowych metadanych, edytujesz pierwotny kod XML pliku manifestu VSIX zamiast używać karty Zasoby w celu dodania zawartości. Zacznij od dodania zawartości szablonu do projektu VSIX. Ważne jest, aby struktura folderu i zawartość odzwierciedlały układ projektu. Poniższy przykład zawiera cztery szablony projektów, które zostały uzyskane z szablonu projektu PODSTAWOWEGO MVC. Upewnij się, że wszystkie pliki składające się na szablon projektu (wszystko poniżej folderu ProjectTemplates) są dodawane do grupy elementów zawartości w pliku projektu VSIX i że każdy element zawiera zestaw metadanych CopyToOutputDirectory i IncludeInVsix , jak pokazano w poniższym przykładzie.

<Content Include="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx\BasicWeb.config">

<CopyToOutputDirectory>Always</CopyToOutputDirectory>

<IncludeInVSIX>true</IncludeInVSIX>

</Zawartości>

Jeśli nie, środowisko IDE spróbuje skompilować zawartość szablonu podczas kompilowania pliku VSIX i prawdopodobnie zostanie wyświetlony błąd. Pliki kodu w szablonach często zawierają specjalne parametry szablonu używane przez program Visual Studio podczas tworzenia wystąpienia szablonu projektu i dlatego nie można ich skompilować w środowisku IDE.

Eksplorator rozwiązań

Zamknij projektanta VSIX, a następnie kliknij prawym przyciskiem myszy plik source.extension.manifest w Eksplorator rozwiązań i wybierz polecenie Otwórz za pomocą, a następnie wybierz opcję Edytor XML (tekst).

Otwórz za pomocą okna dialogowego

<Utwórz element Assets> i dodaj <element asset> dla każdego pliku, który musi być uwzględniony w vsIX. Atrybut Type każdego <elementu zawartości> musi być ustawiony na Wartość Microsoft.VisualStudio.Mvc.Template. Jest to niestandardowa przestrzeń nazw, którą rozumie tylko kreator projektu MVC. Aby uzyskać dodatkowe informacje na temat struktury i układu pliku manifestu, zapoznaj się z dokumentacją schematu VSIX 2.0.

Wystarczy dodać pliki do vsIX, aby zarejestrować szablony za pomocą kreatora MVC. Musisz podać informacje, takie jak nazwa szablonu, opis, obsługiwane aparaty widoku i język programowania kreatora MVC. Te informacje są przenoszone w atrybutach niestandardowych skojarzonych z elementem <elementu zawartości> dla każdego pliku vstemplate .

<Zasób d:VsixSubPath="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx"

Type="Microsoft.VisualStudio.Mvc.Template"

d:Source="File"

Path="ProjectTemplates\MyMvcWebApplicationProjectTemplate.csaspx\BasicMvcWebApplicationProjectTemplate.11.csaspx.vstemplate"

ProjectType="MVC"

Language="C#"

ViewEngine="Aspx"

TemplateId="MyMvcApplication"

Title="Niestandardowa podstawowa aplikacja internetowa"

Description="Szablon niestandardowy pochodzący z podstawowej aplikacji internetowej MVC (Razor)"

Version="4.0"/>

Poniżej przedstawiono wyjaśnienie atrybutów niestandardowych, które muszą być obecne:

  • Typ projektu musi być ustawiony na MVC.
  • Język określa język programowania obsługiwany przez szablon. Prawidłowe wartości to C# lub VB.
  • Narzędzie ViewEngine wyznacza aparat widoku obsługiwany przez szablon, taki jak Aspx lub Razor. Możesz określić wartość niestandardową dla tego pola.
  • TemplateId służy do grupowania szablonów. Jeśli wartość jest zgodna z istniejącym identyfikatorem szablonu, zostaną zastąpione szablony wcześniej zarejestrowane w kreatorze MVC.
  • Tytuł określa krótki opis wyświetlany w kreatorze MVC pod każdym szablonem projektu.
  • Opis określa bardziej pełny opis szablonu.

Po dodaniu wszystkich plików do manifestu i zapisaniu go zauważysz, że karta Zasoby w projektancie wyświetli wszystkie pliki, ale nie atrybuty niestandardowe dodane do <elementów elementu zawartości> dla plików vstemplate .

Zasoby Projektant projektu

Wszystko, co pozostaje teraz, to skompilować projekt VSIX i zainstalować go.

Upewnij się, że wszystkie wystąpienia programu Visual Studio są zamknięte na maszynie, na której zamierzasz przetestować rozszerzenie VSIX. Program Visual Studio skanuje nowe rozszerzenia podczas uruchamiania, więc jeśli środowisko IDE jest otwarte podczas instalowania vsIX, konieczne będzie ponowne uruchomienie programu Visual Studio. W Eksploratorze kliknij dwukrotnie plik VSIX, aby uruchomić Instalatora VSIX, kliknij przycisk Zainstaluj , a następnie uruchom program Visual Studio.

Instalator VSIX

Z menu wybierz pozycję Rozszerzenia narzędzi > i Aktualizacje, aby potwierdzić, że rozszerzenie zostało zainstalowane. Jeśli Instalator VSIX zgłosił jakiekolwiek błędy podczas instalacji rozszerzenia, możesz wyświetlić dziennik instalatora VSIX, aby uzyskać więcej informacji. Dziennik jest zwykle tworzony w folderze %temp% użytkownika, który zainstalował rozszerzenie, na przykład C:\Users\Bob\AppData\Local\Temp.

Rozszerzenia i Aktualizacje

Po zamknięciu okna można utworzyć projekt MVC 4, aby sprawdzić, czy nowe szablony są wyświetlane w kreatorze MVC.

Nowy projekt ASP.NET MVC 4

Ograniczenia

  1. Kreator MVC nie obsługuje zlokalizowanych szablonów niestandardowych.
  2. Kreator nie zgłosi żadnych błędów, jeśli nie będzie można zlokalizować szablonów niestandardowych. Jeśli którykolwiek z wymaganych atrybutów niestandardowych jest nieobecny, szablon zostanie po prostu wykluczony z Kreatora.