Что такое предложенный способ работы с удаленной БД в приложении WPF - PullRequest
1 голос
/ 20 декабря 2011

У меня есть задача создать настольную версию нашего веб-приложения, которая будет распространяться среди наших клиентов. Я решил пойти с wpf. Веб-приложение представляет собой трехуровневое приложение с dal, bbl и pl. Я мог бы использовать его много раз в моем wpf, но вопрос в том, является ли хорошей идеей разрешить удаленные подключения напрямую к серверу sql (я мог бы скомпилировать строку подключения непосредственно в приложение). Или я должен пойти по пути wcf и получить доступ к БД через веб-сервис (это потребует оборачивания бизнес-методов методами сервиса. Дополнительное кодирование ...)? Любой вклад высоко ценится.

Ответы [ 3 ]

3 голосов
/ 20 декабря 2011

Я НАСТОЯТЕЛЬНО рекомендую использовать сервис WCF.Таким образом, вы контролируете, что выполняет запросы к вашей базе данных, и это помогает поддерживать обновленный код.Отличный пример плохого удаленного соединения:

Мир удаленного доступа

  1. Вы используете хранимую процедуру GetAnObject
  2. В процессе обновленияваше программное обеспечение, вы изменяете GetAnObject, чтобы он возвращал что-то другое
  3. Теперь все старые версии не работают = (

Мир WCF

  1. Вы используете хранимую процедуру GetAnObject
  2. В процессе обновления вы изменяете то, что она возвращает
  3. В вашем WCF вам просто нужно написать некоторый код, чтобы преобразовать ваш объект в старый и отправить вУстаревший клиент. Новые клиенты используют другой вызов метода WCF.

Кроме того, я лично не фанат открытия моего сервера SQL для любого удара по компьютеру, который может угадать логин.

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

В идеальном мире ваша служба WCF и веб-приложение могут совместно использовать кодовую базу, поэтому вам нужно меньше поддерживать.

2 голосов
/ 20 декабря 2011

Мое предложение состоит в том, чтобы пройти через службу (WCF или любой другой). Дополнительный уровень косвенности является разделением, что очень помогает в обслуживании и масштабируемости. Например, если у вас уже есть служба, используемая вашим веб-приложением, вам было бы гораздо проще сосредоточиться на создании пользовательского интерфейса WPF.

0 голосов
/ 20 декабря 2011

Все зависит от того, что вы хотите. Планируете ли вы использовать уровень БД и бизнес-уровень в разных приложениях? Если ваш ответ да, возможно, WCF - это то, что нужно.

У нас есть куча приложений, где мы подключаемся к БД из приложения WPF напрямую, потому что мы хотели избежать дополнительного уровня косвенности, который добавляет WCF.

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