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, перезапустите его и создайте одно новое веб-приложение, используя настраиваемый шаблон.

Это все! Надеюсь, статья будет познавательной!

Последний. Но не в последнюю очередь…

У вас есть собственное представление о пользовательском шаблоне проекта или вы уже создали его раньше? Пожалуйста, поделитесь идеей в разделе комментариев.

Спасибо, что прочитали!