Конфигурация решения VS для Web API / MVC - PullRequest
0 голосов
/ 13 марта 2020

Я работаю в ASP. Net WebForms в течение последних 10 лет и пытаюсь перейти на более современные технологии. Поэтому я просто делаю небольшой список проектов Todo со следующими результатами:

  1. Настройка центрального SQL DB
  2. Создание ASP. Net Базового веб-API-проекта для обработки запросов данных
  3. Иметь проект ASP. Net Core MVC с веб-интерфейсом
  4. Создать приложение PWA для установки на iOS и Android

Я выполнил шаги 1 и 2. Я перешел к шагу 3 и не уверен, как настроить приложение MVC. У меня есть несколько вопросов о том, как мне это настроить.

Обратите внимание, что я настроил проект Web API с помощью. Net Core 3.1 и использовал Entity Framework, поэтому у него есть контекст БД.

  1. Должен ли я размещать проект MVC в том же решении, что и проект Web API.
  2. Если я размещаю проект MVC в том же решении, я должен вызывать DBContext напрямую (c# не javascript) из WebAPI (настройка в качестве ссылки) или я должен напрямую вызывать контроллеры Web API?
  3. Если я размещу проект MVC и проект веб-API в одном решении - когда Я go для развертывания этого реального мира смогу разделить 2 проекта как разные хосты, чтобы мой WPA мог получить доступ к Web API.
  4. Должен ли я проект MVC полностью отделить и использовать проект WebAPI как внешний проект.

Спасибо 2.

1 Ответ

1 голос
/ 13 марта 2020

Это может быть организовано разными способами. Я могу рассказать вам, как я буду действовать. (Предполагая, что вы переходите в . net core world).

Я постараюсь описать, как организовать ваше решение в отдельных проектах, и я предполагаю, что вы хотите использовать сущность- каркас, хранилище и шаблоны рабочих единиц для доступа к БД.

В моем решении я бы создал следующие проекты:

  • один. NET Стандартный проект для хранения только модели (сущности и DTO) - назовите его "YourNamespace.Models"

  • one. NET Стандартный проект для хранения репозитория и контрактов / интерфейсов единиц работы - назовите его "YourNamespace.Contracts"

  • один. NET Стандартный проект для вашего уровня доступа к данным - назовите его "YourNamespace.DAL" . Здесь вы устанавливаете EF Core, где у вас будут конфигурации ваших сущностей (если вы используете Fluent API), ваши миграции также будут здесь (при необходимости), ваши реализации репозиториев, а также единица работы и контекст базы данных.

  • один. NET Стандартный проект для ваших услуг - назовите его "YourNamespace.Services"

  • один API-проект для ваши контроллеры API / службы REST - назовите его "YourNamespace.TodoAPI"

  • один MVC проект для MVC контроллеров - назовите его "YourNamespace .Todo MVC "

Эта структура удобна для использования внедрения зависимостей для ваших служб и всего, что вам нужно. Убедитесь, что вы выбрали Несколько загрузочных проектов в разделе Задать стартовые проекты (щелкните правой кнопкой мыши ваше решение). Выберите как API, так и MVC в качестве запускаемых проектов.

Нечто подобное описано здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...