2011-01-31 2 views
1

Я в процессе преобразования нашего приложения форм win для использования службы WCF вместо вызовов клиентов в базу данных SQL.Конфигурация WCF для нескольких баз данных

Я не уверен, что лучше всего, но у нас есть идентичные схемы баз данных около 600 баз данных.

Я надеялся найти решение здесь, где я в процессе запуска приложения winform объявляет, что служба WCF использует эту базу данных. поскольку я пытаюсь избежать в каждом отдельном методе передать параметр для какой строки подключения использовать.

У меня есть некоторое понимание WCF, но я очень мало знаю о «публичных объявлениях» и контексте подключения и не нашел хороших примеров для моего сценария.

это даже возможно?

Если кто-нибудь может направить меня в правильном направлении или передать мне пример кода, он был бы очень признателен! :)

Заранее благодарен

ответ

1

WCF поддерживает сеансы. Таким образом, вы можете передать, какую базу данных вы хотите использовать при первом вызове, а все остальные вызовы будут использовать значение в сеансе.

См: http://msdn.microsoft.com/en-us/library/ms733040.aspx

+0

Спасибо, Шираз! Я рассмотрю этот – Alexander

1

WCF странный API, в том, что вы проведете первый месяц не получить его на всех, и в ближайшие несколько месяцев, интересно, как вы не можете получить его. Я могу ответить на некоторые из ваших вопросов.

  1. Лучший ресурс, который я знаю о книге Юваля Лоури, хотя я слышал, что книга Бустаманте тоже очень хороша.

  2. Вы можете раскрутить службу WCF в Main(), прежде чем запустить форму

  3. Для дизайна вы говорите вы, вероятно, нужно иметь конструктор не по умолчанию для вашей службы. Это немного больно, и я считаю, что книга Лоури справляется с этим. Если не смотреть на IInstanceProvider и IEndPointBehavior

Это сказанное, я не вижу, как WCF вписывается в эту схему дизайна. Это действительно для общения между клиентом и сервером. Если вы планируете использовать его для дизайна типа SOA, есть другие методы, которые намного чище и легки. Зависимость впрыска и т. Д. Можете ли вы дать более простой пример того, что вы хотите сделать, возможно? Я бы даже предложил класс, который просто обертывает вашу базу данных, которую вы передаете во все объекты, которым нужна информация о БД, а не WCF.

+0

Привет, Стив! Спасибо за ваш ответ Главное, что мы хотим сделать, это поднять бизнес-логику до нас. Я не уверен, что у означает простой пример , но в верхней части моей головы у меня будет какая-то «процедура входа» и запустите экземпляр WCF/Service и дайте мне доступ ко всем методам. типичным запросом будет, вставить, обновить, удалить клиента. Получить категории для выпадающего списка ... Поиск клиентов. im не уверен, насколько это важно, но база данных SQL будет находиться на том же сервере, что и служба WCF. – Alexander

+0

Я до сих пор не вижу, как WCF легко вписывается в ваш рабочий процесс. Вы можете сделать службу WCF, но она собирается инкапсулировать всю логику, которую вы поместите в класс, который просто обертывает вашу базу данных. ИМО, ты обманываешь муху молотком. Создайте класс DB, который обертывает все ваше соединение и запрашивает логику и поток, что на всей вашей программе локально. Это будет более эффективно и намного проще. – Steve

Смежные вопросы