приложений, взаимодействующих с базой данных. Разработчик в них задает спецификации, по которым в дальнейшем генерируется программный код для операций создания определенных записей в базе данных, их чтения, обновления и удаления.
На выходе: • модель • миграция БД • контроллер • полный набор представлений для управления стандартными операциями CRUD • шаблоны для партиалов, хелперов и тестов 20
информации о типах из схемы модели данных Настройка метаданных, шаблонов полей, валидации Технология морально устарела Нет интеграции с новомодными фреймворками
dotnet new web > cd src # Создаем простой шаблон > mkdir template/.template.config > cd template/.template.config > nano template.json https://github.com/dotnet/aspnetcore/tree/master/src/ProjectTemplates https://github.com/dotnet/templating/wiki/Available-templates-for-dotnet-new 42
{ModelName} : IBaseEntity<int> { public int Id { get; set; } public int Identifier => Id; } } namespace Contracts.Models ModelNameDto.cs { public class {ModelName}Dto : IDto<int> { public int Id { get; set; } } } 46
.\ Templates Short Name Language Tags ------------------------------------ ----------------------------- UfaDotNet Model model [C#] Common/Code > dotnet new model --ModelName=Book --DbTableName=Books --ServiceName=BookService --WithTest=true The template "UfaDotNet Model" was created successfully. Processing post-creation actions... Description: Ending Manual instructions: Ура! Вы дошли до конца. 50
режим (как в yo aspnet) • Интеграция с Visual Studio • Интеграция с yo aspnet • Обновления шаблонов (как обязательные, так и необязательные) https://github.com/dotnet/templating/#roadmap
Универсальный скаффолдер, позволяющий создавать любые приложения. Предоставляет так называемые «генераторы», которые можно вызывать с помощью команды yo, чтобы сгенерировать структуру приложения. 57
Yo, которые описывают инициализацию проекта: какие директории создать, какие файлы и куда копировать, каким образом обрабатывать шаблоны и куда их разместить после обработки. 58
: IBaseEntity<int> { public int Id { get; set; } public int Identifier => Id; } } namespace Contracts.Models ModelNameDto.js { public class <%=ModelName%>Dto : IDto<int> { public int Id { get; set; } } } 66