VS 2010 SDK.Шаблоны - PullRequest
       33

VS 2010 SDK.Шаблоны

3 голосов
/ 18 августа 2011

Если вы попытаетесь создать проект MVC3, вы увидите, что у вас есть возможность добавить Controller или View с rc. И контекстное меню, которое вы получаете в папке Controller с помощью rc, волшебным образом предложит добавить контроллер, а в представлении вам будет предложено добавить View.

Как я понимаю, для достижения этого мне нужно как-то связать 4 вещи. Шаблон проекта, шаблон элемента, шаблоны T4 (используемые для создания класса Contoller или представления) и мастер, лежащий между T4 и шаблоном Intem (в разделе WizardExtension в шаблоне элемента).

Как получить все эти товары в проекте MVC3 для пользовательского шаблона? Я не мог понять, как связать эти 4 вещи. Возможно, где-то в msdn есть статья, которую я пропустил (я посмотрел на « Шаблоны Visual Studio », но это не сильно помогло в понимании того, как добраться до моей цели). Или, может быть, у кого-то был хороший опыт делать что-то подобное.

P.s. Я использую экспериментальный экземпляр VS 2010 SDK SP1

1 Ответ

2 голосов
/ 18 августа 2011

Функциональность, которую вы видите в проектах MVC 3, реализована следующим образом:

Проекты MVC 3 специально помечены с использованием GUID типа проекта MVC 3 (вы можете увидеть его в файле csproj проекта). Наличие этого GUID запускает Visual Studio для загрузки MVC Tools VSPackage. VSPackage отвечает за добавление команд и других элементов пользовательского интерфейса (например, кнопки «Добавить представление»), которые становятся активными в зависимости от того, что вы выбрали в своем проекте. Эти команды вызывают диалоги для сбора пользовательского ввода, который затем используется для создания экземпляра хоста шаблона T4 и запуска шаблона.

Шаблоны элементов VS и мастера шаблонов вступают в игру только при попытке добавить представление с помощью диалогового окна Добавить новый элемент.

В целом создание VSPackage - довольно сложная тема. Хорошее место для начала здесь: http://msdn.microsoft.com/en-us/vstudio/ff677564.

...