Visual Studio предлагает разработчикам программного обеспечения беспроблемный опыт создания множества программных проектов различных типов, таких как рабочий стол, Интернет, мобильные устройства, облако, тестирование и многие другие. Они используются для создания простых или самых сложных программных приложений.
На приведенном выше снимке показаны некоторые встроенные шаблоны проектов. В дополнение к этому разработчики программного обеспечения имеют возможность создавать свои собственные пользовательские шаблоны в соответствии со своими потребностями при создании программных приложений.
В этой статье я собираюсь проиллюстрировать создание пользовательского шаблона проекта для приложения веб-API dot net 6. Веб-приложение, созданное с использованием этого шаблона, будет содержать — веб-проект, библиотеку классов предметной области и тестовый проект Xunit (как показано на снимке ниже).
Создание пользовательского шаблона для нескольких проектов
Перед созданием шаблона проекта, который объединяет выше 3 отдельных проектов, сначала необходимо создать шаблон для каждого отдельного проекта.
Давайте сделаем это один за другим. В пункте меню «Проект» выберите параметр Экспорт шаблона, чтобы запустить Мастер экспорта шаблона.
Выберите имя веб-проекта из раскрывающегося меню и нажмите кнопку «Далее». Укажите подходящее имя и описание для шаблона и нажмите «Готово» (оставьте значения по умолчанию для флажков такими, какие они есть).
Шаблон экспортируется, и сжатый zip-файл шаблона можно найти в следующем месте:
%USERPROFILE%\Documents\Visual Studio 2022\Templates\ProjectTemplates.
Обратите внимание, что все экспортированные шаблоны (шаблоны элементов и проектов) доступны в указанной ниже папке в вашей системе.
«%USERPROFILE%\Documents\Visual Studio 2022\Мои экспортированные шаблоны».
Выполните описанный выше процесс для проектов Domain и Unit test. Обязательно выберите соответствующее название проекта в раскрывающемся списке при выборе типа шаблона.
Теперь у вас должно быть 3 zip-папки для каждого проекта решения.
Теперь создайте новую папку по предпочитаемому вами пути и подпапки внутри нее для каждого проекта. Извлеките содержимое каждого отдельного ZIP-файла проекта в соответствующую папку.
Например, я создал папку на рабочем столе и добавил подпапки, как показано на снимке ниже:
В базовом каталоге создайте файл XML с расширением .vstemplate. Он будет содержать метаданные для всего шаблона проекта.
Обновите файл шаблона данными XML ниже и сохраните его.
<VSTemplate Version="2.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> <TemplateData> <Name>CoreWebApiWithDomainAndTests</Name> <Description>Custom project template to create an ASP.NET Core Web Api application with Domain class library and a unit test project.</Description> <Icon>Icon.ico</Icon> <ProjectType>Web</ProjectType> <ProjectSubType>CSharp</ProjectSubType> </TemplateData> <TemplateContent> <ProjectCollection> <ProjectTemplateLink ProjectName="WebProj"> WebProj\MyTemplate.vstemplate </ProjectTemplateLink> <ProjectTemplateLink ProjectName="DomainProj"> DomainProj\MyTemplate.vstemplate </ProjectTemplateLink> <ProjectTemplateLink ProjectName="UnitTestsProj"> UnitTestsProj\MyTemplate.vstemplate </ProjectTemplateLink> </ProjectCollection> </TemplateContent> </VSTemplate>
Как видно из XML-кода выше, шаблон объединяет все отдельные шаблоны проектов. Обратите внимание, что тип проекта указан как «Web», поскольку это шаблон веб-проекта. Подтип проекта — CSharp.
Теперь в базовом каталоге выберите все элементы (3 папки и один файл .vstemplate) и сожмите их в одну ZIP-папку.
Скопируйте zip-файл в указанное ниже место:
%USERPROFILE%\Documents\Visual Studio 2022\Templates\ProjectTemplates.
Закройте все экземпляры Visual Studio, перезапустите его, попробуйте создать новый проект. Вы должны увидеть только что созданный шаблон проекта :-)
Вы также можете заметить, что каждый отдельный шаблон проекта также доступен в диалоге создания проекта. Это связано с наличием каждого отдельного zip-файла проекта в следующем месте:
%USERPROFILE%\Documents\Visual Studio 2022\Templates\ProjectTemplates.
Вы можете удалить их и оставить только основной файл шаблона проекта!
Разделение исходного кода и тестового кода
Предположим, вы хотите разделить исходный код и тестовый код в разные папки, где папка с исходным кодом содержит весь ваш код, а папка тестовый код содержит весь ваш модуль. тестовый код (может также содержать функциональный тестовый код). Как этого добиться? Очень просто! Измените код xml шаблона, как показано ниже:
<VSTemplate Version="2.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> <TemplateData> <Name>CoreWebApiWithDomainAndTests</Name> <Description>Custom project template to create an ASP.NET Core Web Api application with Domain class library and a unit test project.</Description> <Icon>Icon.ico</Icon> <ProjectType>Web</ProjectType> <ProjectSubType>CSharp</ProjectSubType> </TemplateData> <TemplateContent> <ProjectCollection> <SolutionFolder Name="Src"> <ProjectTemplateLink ProjectName="WebProj"> WebProj\MyTemplate.vstemplate </ProjectTemplateLink> <ProjectTemplateLink ProjectName="DomainProj"> DomainProj\MyTemplate.vstemplate </ProjectTemplateLink> </SolutionFolder> <SolutionFolder Name="Tests"> <ProjectTemplateLink ProjectName="UnitTestsProj"> UnitTestsProj\MyTemplate.vstemplate </ProjectTemplateLink> </SolutionFolder> </ProjectCollection> </TemplateContent> </VSTemplate>
ProjectTemplateLink имеет родительский элемент с именем SolutionFolder. Этот элемент используется для разделения кода по вашему желанию!
Обновите шаблон, создайте новый zip со всем содержимым и поместите его в папку шаблонов проекта. Снова закройте экземпляр VS, перезапустите его и создайте одно новое веб-приложение, используя настраиваемый шаблон.
Это все! Надеюсь, статья будет познавательной!
Последний. Но не в последнюю очередь…
У вас есть собственное представление о пользовательском шаблоне проекта или вы уже создали его раньше? Пожалуйста, поделитесь идеей в разделе комментариев.
Спасибо, что прочитали!