Я desgined моего приложения ASP.NET MVC с помощью домена Driven Design, и я получил следующие проекты:ASP.NET MVC Enterprise DDD Архитектура и WCF слой
- MyApp.Core - ядро приложения, содержит модели домена и т. д.
- MyApp.Infrastructure - приложение main infrastrucutre, содержит реализацию для хранения модели домена (РЕПО и т. д.) с использованием EF.
- MyApp.Web.Core - модели предметной области, услуги декларация (интерфейсы) и таких только для веб-сайтов (например, IFormAuthenticationTicketSupplier, IOAuthAuthenticationProvider и т.д.)
- MyApp.Web.Infrastructure - веб-реализация
- MyApp.Web.UI - Стандартное приложение ASP.NET MVC.
Это приложение должно использоваться предприятием с несколькими серверами и т. Д. В настоящее время приложение вызывает службу на уровне инфраструктуры на контроллерах, использующих репозитории и EF. Я могу подключиться к серверу БД с помощью строки подключения.
При поиске этой темы в Google я читал, что некоторые попытки, предпринятые при создании корпоративного приложения, создают сервер приложений и веб-сервер. На сервере приложений - сохранение службы WCF и на веб-сервере, просто вызывающем его.
Я хотел бы знать, должен ли я сделать это (если создание службы WCF является правильным и требуемым соглашением при работе с предприятиями): - Почему кто-то не просто использует Службы в контроллерах и вместо этого использует API? - В случае, если я использую API, это не замедлит ответ? поскольку даже если компьютеры находятся в одной сети, я все же открываю HTTP-запрос. - Если я должен использовать WCF или ASP.NET WebAPI?
Благодарим за отзыв и помощь!
Спасибо за ваш комментарий. О разделении - я должен был упомянуть об этом, я сделал это, потому что я хочу использовать этот проект в будущем для приложений Windows 8, WP, iOS (Mono), Android (Mono) и т. Д. Поэтому я думал, что это будет хороший подход. Из-за этих приложений - я думаю, что мне нужно будет использовать WebAPI или WCF в будущем (в этом случае я буду разрабатывать приложения для iOS, Android и т. Д., Вы по-прежнему рекомендуете WCF?). Будет ли использование WebAPI или WCF замедлять производительность (если предполагается, что служба находится в одной сети)? – OzB
Для служб HTTP я рекомендую WebAPI через WCF. WCF для HTTP довольно ограничен и неестествен по сравнению с WebAPI.И процесс-хоп всегда будет замедлять производительность, но это не должно быть проблемой. Фактически вы можете заставить HTML-клиент напрямую обращаться к службе WebAPI для определенных вещей. – eulerfx
Спасибо, поэтому я выберу WebAPI. Последний вопрос: не могли бы вы подумать, что будет нормально использовать эту службу как на стандартных контроллерах веб-приложений, так и в WebAPI? поэтому веб-приложение не будет замедлено из-за HTTP-запроса, но все остальные приложения (iOS, Android, AJAX-вызовы) будут использовать WebAPI? – OzB