Это зависит от остальных ваших требований. Связь по именованным каналам всегда снижает производительность. Вы можете просто сделать несколько тестов для непосредственного вызова операции и вызова операции через именованный канал, чтобы получить некоторые числа для сравнения. Существуют альтернативы именованным каналам для размещения службы в процессе вместо другого процесса - нулевой канал или локальный канал , но даже эти решения будут все еще медленнее, чем прямой вызов.
Вы планируете свою архитектуру на будущее, поэтому теперь вы должны определить, что значит и будущее. Как мобильные устройства будут использовать ваши услуги? Это будет МЫЛО или ОТДЫХ? Это два разных подхода, и вы можете обнаружить, что сервисы, которые вы подготовили для своего веб-приложения (SOAP), не очень полезны для мобильных устройств (где вы можете использовать REST, потому что он лучше поддерживается и более популярен).
Если вы не знаете, что означает будущее, нет смысла делать какие-либо приготовления, потому что вы, скорее всего, будете готовиться к тому, чего не произойдет = ваши текущие усилия будут потрачены впустую, и вам в любом случае придется изменить приложение позже .
Использование одних и тех же служб для вашего приложения (= внутренняя служба) и для мобильных устройств (= внешняя служба) может иметь разные требования безопасности. Например, ваше веб-приложение уже может обрабатывать авторизацию, но для мобильных устройств авторизация должна выполняться на сервисах. Авторизация является глобальной для службы, поэтому для вашего веб-приложения вы будете выполнять авторизацию дважды.
По моему мнению, вы должны начать с бизнес-логики как библиотеки, которая будет использоваться непосредственно вашим веб-приложением. После того, как вам нужно будет добавить сервисы для мобильных устройств, создайте сервисные обертки вокруг вашей бизнес-логики. Добавление слоя WCF для вашего веб-приложения имеет смысл, если вы хотите разделить внешний и внутренний интерфейсы на разные серверы или если вы хотите масштабировать бизнес-логику и внешний интерфейс отдельно, но когда они работают на одном сервере, это приведет только к снижению производительности, и это вероятно, не сделает вашу разработку для мобильных устройств проще. Даже в сценарии, в котором бизнес-логика будет развернута отдельно, вы должны тщательно продумать, хотите ли вы предоставлять бизнес-сервисы непосредственно мобильным устройствам. Весьма распространено выставлять другой уровень общедоступных сервисов, называемых внутренними бизнес-сервисами, который обычно используется в проектах со строгой безопасностью, где бизнес-сервисы должны находиться в другом периметре сети.