Ссылки на службы и ссылки на сборки, использующие службы WCF - PullRequest
1 голос
/ 16 августа 2010

У меня есть служба WCF (с сервисными контрактами, контрактами на передачу данных и т. Д.), Например:

[ServiceContract(Namespace = "http://company.com/MyCompany.Services.MyProduct")]
public interface IService
{
    [OperationContract]
    CompositeType GetData();
}

[DataContract(Namespace = "http://company.com/MyCompany.Services.MyProduct")]
public class CompositeType
{
    // Whatever
}

Если я хочу использовать сервис на клиенте, я думаю, что есть два варианта:

  1. использовать ссылку на службу (используйте WDSL) для публикации URL службы WCF;
  2. use Assembly Ссылка на сборку содержит классы Interfaces, Contracts, DataContracts.

Я использую сценарии от .NET к .NET на 90%.

Какой путь лучше? какие преимущества друг у друга?

1 Ответ

1 голос
/ 16 августа 2010

Если вы действительно хотите использовать свои Сервисы в качестве Сервисов, вам придется использовать Сервисные ссылки. В противном случае вы просто добавляете зависимость к другой DLL, как и любая другая ссылка на сборку.

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

Преимущество добавления прямой ссылки на сборку, а не ссылки на службу, заключается в том, что вам не придется проходить через все накладные расходы, которые вызывает вызывающий код при добавлении службы (веб-сервер обрабатывает запрос, создает экземпляр службы, сериализует объекты, выполняющие код, сериализующие результат и передающие все это обратно клиенту).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...