2011-10-24 2 views
0

Мы находимся на этапе проектирования архитектуры веб-системы страхования (для цитирования, управления политикой, управления претензиями, разработки ставок и т. Д.). Это приложение будет состоять из разных модулей. Мы планируем пойти с ASP.Net MVC и SQL Server. Для уровня бизнес-логики мы немного сбиты с толку, нужно ли разделять наш BLL с помощью служб WCF или просто составлять BLL-часть нашей модели. Я бы очень признателен за ваш вклад, почему или почему бы не пойти с SOA в нашей ситуации.SOA и ASP.net MVC

ответ

2

Если вы абсолютно уверены, что ваши сервисы будут потребляться чем-то другим, SOA, но если есть даже удар, который вам не понадобится, он будет практиковать YAGNI. Слишком часто кто-то будет создавать простую SOA-арку «на всякий случай» и каждый раз, когда они заканчивают «сервисами, которые работают с продуктомXXX», а не с архитектурой SOA. Как только это происходит, люди, которые разрабатывают или поддерживают продукт, начинают понимать, что услуги - это просто ненужные отходы, которые заставляют развитие занять больше времени.

+1

По моему опыту, перечисление «сервисов, которые производят продукт XXX», является точкой SOA. Многие системы запускаются без SOA и реализуют только один, когда он становится громоздким для обслуживания. В то же время преимущество SOA заключается не только в создании общей инфраструктуры, но и в том, что вы действительно разрабатываете, как взаимодействуют ваши приложения, и это может означать упрощение и рефакторинг вещей, так что вы получаете «сервисы, которые имеют силу XXX», ... и все в порядке. –

1

В приложении MVC большая часть вашей бизнес-логики будет находиться в модели, в то время как некоторые могут находиться в контроллерах. WCF может использоваться для обеспечения уровня служб данных для поддержки вашего домена Model/business. Если вы считаете, что система страхования и ее данные будут потребляться чем-то другим, кроме приложения MVC, то вам обязательно нужно разработать дизайн, который поддерживает сервис-ориентацию (то есть службы WCF).