В настоящее время я разрабатываю клиентское приложение WPF, которое использует Linq-to-SQL для типизированных табличных объектов и для обработки множества хранимых процедур CRUD в базе данных MS SQL на внешнем сервере. Я не предполагаю манипулирования данными напрямую через контекст, только хранимые процедуры.
Мои две самые большие проблемы:
1) Безопасность базы данных
2) Гибкая архитектура
Насколько я могу судить, поскольку приложение будет легко доступно для загрузки через Интернет, сохранение информации о подключении к базе данных в самом приложении не является вариантом (по соображениям безопасности). Я чувствую, что мой единственный вариант - поместить свой DAL в веб-сервис.
Учетные данные пользователя могут передаваться отдельно для каждой операции, а информация о подключении к базе данных будет надежно храниться на защищенном веб-сервере.
Мне любопытно, является ли этот метод действительным, и если да, то является ли он оптимальным? Можно ли легко сериализовать объекты Linq-to-SQL (результаты таблиц и хранимых процедур) для отправки туда и обратно между клиентом и веб-службой?
Заранее спасибо.