В Visual Studio 2017 где и как добавить новый шаблон t4 в диалог Add Scaffold? - PullRequest
0 голосов
/ 30 мая 2019

Посмотрев несколько сообщений на эту тему ( post1 , post2 ), я не увидел ответ, который я ищу, и даже вопросы для этих сообщений не кажется, не было ответа. Кроме того, некоторые ссылки довольно старые.

В проекте MVC, если следовать по пути контекстного меню, щелкните правой кнопкой мыши Controllers > Add > Controller..., и мы получим диалог Add Scaffold, как показано ниже:

enter image description here

Я понимаю, что мы можем создать папку CodeTemplates, добавить измененные шаблоны для строительных лесов, и они будут использоваться при выполнении диалога Add Scaffold, показанного выше.

У меня вопрос: где мне добавить новую запись в диалог Add Scaffold, показанный выше?

Например, у меня может быть стандартный способ, которым я хочу расширить роли или пользователей MVC и хотел бы иметь возможность использовать Scaffold. Я не могу по-настоящему настроить один из существующих каркасов, потому что тогда он больше не будет доступен, в дополнение к этому было бы непонятно иметь старое имя, когда каркасы предназначены для другой цели.

Я действительно хочу добавить новую запись в диалог, показанный выше, такой как:

MVC 5 RolesController

Где и как мне это сделать?

Добавлено после исходного сообщения: Поскольку я продолжаю размышлять над заданным вопросом, мне приходит в голову, что я пытаюсь понять тонкие различия между использованием шаблонов, библиотек или пакетов NuGet и, как в этом вопросе, строительные леса.

В моем примере выше я предложил добавить что-то вроде RolesController. Это обычное требование для обработки пользовательских ролей каким-либо образом, но это не просто добавление библиотеки; это также требует поддержки взглядов. Существует также общая потребность в более надежной обработке ошибок, UserController для углубленного управления профилями, расширенной справочной системой и многими другими функциями, которые можно отнести к стандартным строительным блокам, не все из которых требуются в каждом проекте, но если было бы полезно иметь возможность легко интегрировать их один за другим, а не иметь какой-то массивный монолитный шаблон проекта.

Просто кажется, что возможность добавлять эти вещи с помощью скаффолдинга оказалась полезной, но, может быть, как я упоминал выше, я не вижу нюансов между шаблонами, скаффолдингами, библиотеками и NuGet. Я вижу, как каждый из этих инструментов охватывает спектр от общего до конкретного, но было бы неплохо иметь структуру, в которой можно понять, когда использовать данный инструмент.

Когда я смотрю на эту проблему, есть как минимум две широкие динамики, может быть, больше; general-specific и simple-complex. Контроллер лесов CRUD очень general, но также complex, потому что он требует класса и представлений. Контроллер ролей more specific и also complex требует представления, но, как правило, очень повторяется, и мы бы хотели не повторяться. С другой стороны, библиотеки очень specific и могут быть очень simple, если все, что требуется, - это одна библиотека.

Надеюсь, я дал немного больше информации о том, с чем я борюсь, чтобы кто-нибудь помог мне направить меня в правильном направлении, когда использовать каждый из этих инструментов, чтобы сделать разработку более эффективной. Возможно, в конце концов, тему моего вопроса нужно будет изменить, чтобы помочь другим, борющимся с той же проблемой.

...