Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 2
Регистрация: 17.07.2014
Сообщений: 9
1

Связь БД Firebird и клиента на Windows Forms с помощью WCF

28.05.2015, 15:35. Показов 1078. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется клиент-серверное приложение, двухуровневое, толстый клиент.
СУБД - Firebird.
Клиент - WinForms приложение.
Связь с БД - через ADO.NET Data Provider.
Над методами провайдера сделана надстройка из своих методов, для упрощения работы.
Над надстройкой - слой бизнес-логики, класс, содержащий в себе кучку классов, по одному для работы с каждой из сущностей. В этом же классе доступ для пользователей к тем или иным операциям БЛ.
Из слоя представления (формы и т.д.) методы для работы с БД не видны (как и положено), видны только методы БЛ.

Хочется это дело для порядку перевести на 3-уровневую архитектуру, чтобы БЛ была на сервере приложения, а со стороны клиента подключиться напрямую к БД было физически нельзя. То есть у клиента - формочки и минимум логики, а всё остальное через сервер.

Полазил в инете, вроде для таких целей советуют WCF.
Вот только не представляю себе как это реализовывать. Держать одно подключение к БД на всех пользователей не хотелось бы - у провайдера нет поддержки паралельных транзакций. На каждого пользователя по отдельному подключению, а как? Со стороны клиента запрашивать создание класса с БЛ, и получать при этом идентификатор, чтобы потом его серверу подсовывать каждый раз и тот знал, к какому классу обращаться и что пользователю можно, а что нельзя?

В общем, это все дело в голове упорно не увязывается. Не хочу громоздить велосипеды, возможно у кого-то есть простое и эффективное решение?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2015, 15:35
Ответы с готовыми решениями:

Как передать файл из клиента в сервер с помощью WCF
Знатоки, пожалуйста, скажите как передать файл из клиента в сервер с помощью WCF?

Пример службы WCF на Windows Forms
Добрый день всем Ребята подскажите где можно найти пример сужб WCF на windows forms еслм...

Firebird + VS2010 Windows Forms
привет я впервые столкнулся с Firebird .. меня интересует каким образом лучше подключать его к...

Windows.Forms - элементы на стороне клиента
Итак, есть web-страница. Как известно, в нее легко внедрить ActiveX-элемент. Но технология .net не...

5
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
29.05.2015, 12:35 2
подключение - печаль сервиса. клиент должен дернуть нужный сервис и получить данные.
0
1 / 1 / 2
Регистрация: 17.07.2014
Сообщений: 9
29.05.2015, 12:39  [ТС] 3
То есть предлагаете при каждой операции БЛ передавать серверу имя/пароль чтобы тот на ходу создавал подключение, проверял разрешения и сразу его закрывал по завершении операции? С такими дерганиями подключения туда-сюда это на быстродействии не сильно отразится?
Применение каких-нибудь сессий не из этой же оперы?
0
1643 / 1144 / 171
Регистрация: 23.07.2010
Сообщений: 6,794
29.05.2015, 12:43 4
в wcf контракты. чего кому можно дергать - решает только клиент
0
653 / 589 / 171
Регистрация: 17.07.2012
Сообщений: 1,670
Записей в блоге: 1
29.05.2015, 15:13 5
blackadder321, В WCF есть 3 режима инстанцирования сервисов: per call, per session & singleton. Какой выбирать - решать вам.

Цитата Сообщение от blackadder321 Посмотреть сообщение
То есть предлагаете при каждой операции БЛ передавать серверу имя/пароль чтобы тот на ходу создавал подключение, проверял разрешения и сразу его закрывал по завершении операции? С такими дерганиями подключения туда-сюда это на быстродействии не сильно отразится?
Подключение к базе? Это лучшая практика - открывать/закрывать подключение на каждом запросе, чтобы вернуть соединение в пул, которое будет использовано при следующем запросе. В ADO.NET механизм пулинга соединений уже реализован.
0
0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 2
04.06.2015, 12:59 6
да, делается метод ConnectToSvc() , ему передается имя, пароль и т.д., он при успехе возвращает ид сессии, и затем в каждый метод клиент сует этот ид.
Собственно, я делаю в каждом методе внутри сервиса connect, query, disconnect к серверу баз, при включенном connection pool, если он поддерживается.
0
04.06.2015, 12:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2015, 12:59
Помогаю со студенческими работами здесь

Связь приложения Windows Forms и СУБД
Привет всем. Делаю проект "мультимедийный учебник по дисциплине БД", там надо сделать лабы и есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru