Обслуживание WCF Приложение N-ряда: Переключение между развитием/производством?

Контекст

Мы разработали приложение от непрерывного использования.NET Стек. Так, скажем, мы управляем чем-то вроде этого:

WPF Client <=> Web Service:

  1. развитие) Простая ссылка (прямые требования к Сервисному проекту WCF внутри ПРОТИВ, не развернутый в IIS)
  2. Производство) Отдаленный веб-сервис [IIS удаленный сервер, нуждайтесь в VPN, чтобы соединиться]

Web Service <=> Database:

  1. развитие) SQL Server Express местная DB [машина развития]
  2. Производство) DB SQL Server [рабочий сервер, то же самое как WS]

Заметьте, что я осуществил его "Ручной путь, правильный путь" (http://www.code-magazine.com/Article.aspx? quickid=0809101). Следовательно, отделите контракты/полномочия клиента и так далее...

Вопрос

How could I get a set-up like described before in an elegant way? I mean, the web service <=> database it's trivial, since I can use the web.config transformations in order to switch the connection string between debug & release. But, how can I automatically switch the "connection" from the client app to the Web Service?

В производстве я использую ссылку на полномочия и описываю конечную точку в app.config файле. Я предполагаю, что в развитии мне просто была бы нужна простая ссылка на сам веб-сервис. [Я должен добавить/удалить ссылки между конфигурациями отладки/выпуска? Если да, как это могло быть достигнуто программно?... Я полностью потерян].

Спасибо за ваших парней времени!;)

Править:

Как @AlexanderBalte предполагает, поведение развития - просто прямое требование методов. У меня нет сервера приложений в главной машине развития.

0
nl ja de
what' s неправильно с использованием конфигурации преобразовывает для сервисных конфигураций конечной точки? Если ваше беспокойство с преобразованиями на App.config, проверяют это: stackoverflow.com/questions/3004210/…
добавлено автор Didaxis, источник
Ваше поведение развития - просто прямое требование методов без взаимодействия с веб-сервисом?
добавлено автор Alexander Balte, источник
Я думаю, что только необходимо изменить сервисный URL конечной точки на тот, используемый в производстве.
добавлено автор prthrokz, источник
Как @AlexanderBalte предполагает, мое поведение развития - просто прямое требование методов. Я don' у t есть сервер приложений в главной машине развития, таким образом... никакая конечная точка. На самом деле это было пунктом вопроса: P
добавлено автор Carlos Murdock, источник

2 ответы

Точно так же, как prthrokz, прокомментированный, мы просто переключаем конечные точки. Используя символы условной компиляции максимально просто (но не более прост):

    WCFServiceClient client = new WCFServiceClient();
#if DEBUG
    client.Endpoint.Address = new EndpointAddress(new Uri("http://devSrv/WCFService.svc"));
    client.Endpoint.Name = "Dev";
#else
    client.Endpoint.Address = new EndpointAddress(new Uri("http://prodSrv/WCFService.svc"));
    client.Endpoint.Name = "Prod";
#endif
1
добавлено

Поскольку я понимаю, поведение развития - просто прямое требование методов, и производственное поведение - взаимодействие с веб-сервисом через произведенные полномочия.

Соответственно, в развитии и производстве вы работаете с различными классами, но с подобным набором методов.

Возможно, мы должны создать другое взаимодействие по доверенности с точным набором методов как веб-сервис, имеет. Будет два внедрения этого интерфейса: можно было бы быть к требованиям прямого метода по доверенности, другому - вызовы метода веб-сервиса.

Кроме того, необходимо будет написать Фабрике класс, который предоставит вам concete внедрение вашего интерфейса по доверенности в зависимости от некоторой конфигурации в вашем app.config.

0
добавлено
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)