Можно ли использовать WCF и Web API в одном решении, используя один и тот же уровень обслуживания в c#? - PullRequest
0 голосов
/ 04 мая 2020

Для одного из требований проекта нам нужны веб-API и службы wcf, бизнес-логика c является общей для обоих, поэтому мы хотим, чтобы WEB API и WCF были в одном решении. Возможно ли, что у кого-то есть такие вещи? Пожалуйста, помогите мне в этом.

1 Ответ

0 голосов
/ 04 мая 2020

Это возможно, и это одна из функциональных возможностей, которую предоставляют такие архитектуры, как Onion architecure / N-layer architecure / clean Architecture.

Просто добавьте WebApi csproj и Wcf csproj к вашему решению. Затем добавьте к своему решению businesslayer csproj. Затем просто добавьте ссылку на свой проект businesslayer в свой проект WebApi & Wcf.

Тогда просто убедитесь, что все бизнес-логики c сохранены в классах бизнес-уровня, и вы готовы к go.

С архитектурной точки зрения у вас будет следующая структура

  • Уровень решения (проект WebApi & Wcf) [оба проекта зависят от уровня бизнес-логики]
  • Бизнес-логика c layer (Business level csproj) [не зависит ни от чего]

Если вы также читаете данные из базовых баз данных, других API или файлов, я бы также предложил добавить нижний уровень, называемый уровнем доступа к данным. (еще один csproj), где вы делаете все доступ к данным, как запросы к базам данных.

Тогда у вас будет что-то похожее на это (стрелки являются зависимостями):

enter image description here

Одно примечание: если вы хотите использовать Wcf вместе с. Net Core WebApi просто убедитесь, что BusinessLayer.csproj является стандартным проектом. net, так что вы можете запустить оба. Это потому, что WCF работает на. Net Framework.

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