SOA - это способ разработки сервис-ориентированных приложений, а WCF - это технология, которую можно использовать для разработки сервис-ориентированных приложений.НО SOA определяет строгие правила (известные как принципы SOA) для приложений.Если вы не следуете этим правилам, вы создаете сервисы, но эти сервисы не соответствуют SOA.
WCF позволяет разрабатывать множество видов услуг.Вы можете разрабатывать совместимые сервисы SOAP, которые соответствуют SOA или нет.Вы можете разрабатывать чистые .NET-сервисы с не совместимыми функциями и разрабатывать REST-сервисы.
Более того, в SOA сервис может иметь другое значение, чем в WCF.В WCF сервисе - это набор функциональных возможностей, предоставляемых на конечных точках.В SOA сервисом может быть целое приложение (набор сервисов, похожих на WCF) - разница между малым и большим SOA.
Принципы SOA:
- Границы являются явными - сервис неделиться чем-либо с другими службами (даже таблицы базы данных и данные не могут быть общими)
- Службы являются автономными - каждая служба является независимой, может быть развернута отдельно и иметь версии
- Схема совместного использования служб и контракт,не класс - сервисы описаны в WSDL, транспортируемые данные описаны в XSD, оркестрации (агрегация) описаны в BPEL
- Совместимость сервисов основана на политике - WSDL содержит WS-Policies для описания конфигурации, необходимой для взаимодействия
Как видите, первые два принципа могут быть легко нарушены при создании службы WCF.