Для меня backend - это домен и сервисный уровень, которые находятся в отдельной сборке.Фронтенд это контроллеры, ViewModels и Views.Поэтому бэкэнд-разработчики начинают с определения объектов модели и интерфейсов служб и предоставляют разработчикам внешнего интерфейса эту сборку.Они также могут предоставить фиктивную реализацию интерфейса службы, которая просто возвращает жестко закодированные значения.Таким образом, разработчики внешнего интерфейса теперь могут приступить к разработке контроллеров, которые будут использовать сервисы, отобразить модели доменов на соответствующие им модели представлений и передать их представлениям.Как только разработчики бэкэнда закончили реализацию сервисных интерфейсов, они предоставляют внешним разработчикам новую версию сборки, и разработчики внешнего интерфейса просто переключают свою инфраструктуру DI, чтобы указать на новую реализацию вместо фиктивной.
Youмогли бы также иметь некоторые разработчики внешнего интерфейса, работающие над многоразовой структурой помощников HTML, методов расширения, ... которые будут использоваться на протяжении всего проекта.