Веб сервис: WCF или ASP.NET MVC?

Здравствуйте. Что лучше использовать, для достижения максимальной скорости и простой расширяемости возможностей, при реализации веб сервиса который работает с бд и api других сервисов, а так же для создания своего api.
ASP NET MVC. WCF или их вместе? И как правильно это реализовать с точки зрения архитектуры проекта?
  • Вопрос задан
  • 14053 просмотра
Решения вопроса 2
Funbit
@Funbit
Всё зависит от проекта и области применения.
В общем случае, варианты архитектуры могут выглядить вот так:

[ASP.NET MVC]  <->   [ASP.NET WebAPI]    <->   [WCF SERVER]    <->    [DATABASE]

Данная связка рекомендуется для серьезных, высоконагруженных и кроссплатформенных проектов с серьезными требованиями безопасности. WebAPI (фактически, это будет прокси для WCF SERVER'a) и MVC могут крутиться на одном и том же IIS сервере. WCF SERVER же лучше держать отдельным сервисом либо на той же машине, либо отдельно.

[ASP.NET MVC]  <->   [WCF SERVER]    <->    [DATABASE]

WebAPI слой можно убрать, если сервис больше рассчитан на внутреннее использование, где кроссплатформенность не нужна и у WCF SERVER'а ожидается много разных клиентов.

[ASP.NET MVC]  <->   [ASP.NET WebAPI]   <->    [DATABASE]

Такая архитектура годится для 99% интернет стартапов. Самая простая и быстрая в разработке, при этом не сильно уступающая более сложным вариантам, описанным выше. А с выходом MVC 6 исчезнет необходимость крутить такой сервер на IIS'e и позволит запускать его на Linux.

Скорее всего вам больше подходит последний вариант.
Ответ написан
newross
@newross
Product owner
Хочу порекомендовать такую связку:

[ServiceStack] <-> [DATABASE]

По моим ощущениям ServiceStack быстрее WCF и реально намного удобней, чем WCF и WebAPI. Реализовывать SOA на ServiceStack одно удовольствие. Кстати, легковесный OrmLite входит в состав ServiceStack и идеально подходит для CRUD операций с БД.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
w1ld
@w1ld
Программирую
А зачем вам ASP.NET MVC, когда ASP.NET WebAPI без него может работать? WebAPI можно использовать для своего api. Видимо, ASP.NET MVC здесь вообще лишний, ведь он для UI. Здесь более о вашей архитектуре вопрос. Видимо, должно быть так. Внутри ваша модель обернутая в сервис модели. Этот сервис работает с БД. Потом к этому же сервису прицепляете ваш внешний сервис для работы с ответами на внешние запросы и для вызовов внешних сервисов. В общем, обычная архитектура, но без UI/UX слоя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы