Настройка шаблонов ASP.NET MVC 5 Scaffolding в Visual Studio 2013


Наверное уже многие успели оценить удобство создания веб-приложений используя технологию скаффолдинга появившуюся еще в ASP.NET MVC 3. Прошло время, и вот, уже вышли Visual Studio 2013 и ASP.NET MVC 5. Возможности скаффолдинга стали больше: появилась поддержка bootstrap. асинхронных методов и многого другого.В этой статье, я хочу рассказать о том, как можно расширить возможности этого замечательного инструмента.

Как известно, скаффолдинг в ASP.NET позволяет вам автоматически генерировать код в веб приложениях. Это позволяет проще и быстрее создавать рабочие прототипы приложений и экономит время, позволяя сосредоточится на основных задачах и не тратя его на рутинные операции.

Шаблоны

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

Что же такое Т4?

Text Template Transformation Toolkit, более известные как Т4 представляют собой наборы шаблонов поставляемых с Visual Studio. Исходные Т4-файлы обычно хранятся с расширением.ТТ Шаблоны Т4 используется как инструментарий для автоматизации создания текстовых файлов с различными параметрами. Этими текстовыми файлами может быть по сути что угодно — разметка, набор стилей, блок кода и т.д. (XML, HTML, XAML, etc.) Т4 использует специальный формат шаблона, который может содержать .NET код и строковые литералы. После подготовки шаблоны анализируются специальной утилитой и компилируются в .NET код. В результате исполнения этого кода генерируются текстовые файлы.

Шаблоны Т4 применяются не только в ASP.NET MVC, но и в ADO.NET Entity Framework и других технологиях, где необходима автоматизация процесса генерации кода.

Настройка существующих шаблонов.

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

Обычно, после установки Visual studio 2013 стандартные шаблоны находятся в директории

C:Program Files (x86)Microsoft Visual Studio 12.0Common7IDEExtensionsMicrosoftWebMvcScaffoldingTemplates

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

После этого, инструмент генерации форм будет использовать уже измененные шаблоны.

X.Scaffolding Templates

Не так давно я писал о проекте X.Scaffolding, который расширяет возможности веб приложени созданного на основе генерации страниц.

Сегодня я хочу предложить вниманию читателей дополнение к этому проекту — набор шаблонов X.Scaffolding.Templates, который доступен также через репозитории NuGet. Вы можете установить этот пакет, создать все необходимые формы, и безболезненно удалить его из проекта.

В чем отличие шаблонов из этого пакета?

  • Поддержка пейджинга (на основе библиотеки IPageList)
  • Измененные шаблоны с более плотной интеграцией с Bootstrap
  • Атрибут Authorize(true) для контроллеров по умолчанию

 

Присоединяйтесь!

Все желающие могут как ознакомится с шаблонами, так и предложить свои изменения.

GitHub

Проект доступен на GitHub.

 

NuGet

Установить пакет можно из репозитория NuGet:

Install-Package xscaffolding.templates

После создания всех необходимых форм, пакет можно удалить.

Полезная информация

По материалам Customizing ASP.NET MVC 5/Web API 2 Scaffolding Templates in Visual Studio 2013

Pin It

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.