Архитектура уровня доступа к данным WPF - PullRequest
3 голосов
/ 18 апреля 2009

В настоящее время я разрабатываю клиентское приложение WPF, которое использует Linq-to-SQL для типизированных табличных объектов и для обработки множества хранимых процедур CRUD в базе данных MS SQL на внешнем сервере. Я не предполагаю манипулирования данными напрямую через контекст, только хранимые процедуры.

Мои две самые большие проблемы: 1) Безопасность базы данных 2) Гибкая архитектура

Насколько я могу судить, поскольку приложение будет легко доступно для загрузки через Интернет, сохранение информации о подключении к базе данных в самом приложении не является вариантом (по соображениям безопасности). Я чувствую, что мой единственный вариант - поместить свой DAL в веб-сервис.

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

Мне любопытно, является ли этот метод действительным, и если да, то является ли он оптимальным? Можно ли легко сериализовать объекты Linq-to-SQL (результаты таблиц и хранимых процедур) для отправки туда и обратно между клиентом и веб-службой?

Заранее спасибо.

1 Ответ

3 голосов
/ 18 апреля 2009

Вы правы, если ваше приложение используется через Интернет, вам, скорее всего, придется добавить туда промежуточные уровни.

Если то, что вы делаете, в первую очередь CRUD, я думаю, что хорошей идеей было бы взглянуть на ADO .Net Data Services . Это эффективный способ предоставления данных через интерфейс REST, и вы получаете клиентскую библиотеку для доступа к вашим данным типизированным способом на стороне клиента.

Он поддерживает обычные механизмы безопасности ASP.Net (такие как проверка подлинности с помощью форм, поставщик членства и т. Д.), Так что вы можете защитить свои точки доступа на основе учетных данных пользователя (и для этого вы можете использовать Client Services , который может обеспечить аутентификацию между вашим приложением и сервером).

Надеюсь, эти указатели помогут.

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