Лучшая стратегия для подключения моего клиента к моей базе данных - PullRequest
4 голосов
/ 04 декабря 2011

Я смотрю на разработку новой версии клиент-серверного приложения для клиента.Текущее решение - это веб-сайт в asp.net mvc.

Цель приложения - создать решение для цифровой рекламы, это означает, что на клиенте пользователь будет создавать списки воспроизведения, из viedos и изображений и планированияих нужно показывать на экране.Элементы, которые должны отображаться, - это пользовательские элементы управления WPF, один с логикой для изображения и один для логики видео.

Текущее приложение является веб-ориентированным и напрямую обращается к центральной базе данных.Когда все клиенты (те, которые представляют информацию) запрашивают данные, это делается через веб-сервис.Клиент очень рад использовать веб-клиент, хотя он запрашивает более «богатое» поведение.Это включает в себя основное требование: иметь предварительный просмотр как отдельного «слайда», так и коллекции слайдов.

Я начал разрабатывать это как приложение WPF (отказ от silverlight из-за предварительного просмотра пользовательского элемента управления wpf),Теперь я столкнулся с проблемой / проблемой определения способа доступа к базе данных.Заказчики, вероятно, хотят использовать тот же шаблон использования, что и сейчас, когда они перемещаются со своими лабораторными рабочими столами и, следовательно, не находятся в одной сети с базой данных все время.

Мой вопрос заключается в следующем: как я могу проектироватьслой подключения к базе данных, должен ли я использовать чистый веб-сервис, чтобы все всегда использовали его, или я должен сделать какой-то режим отключения, где они могут работать дома, а затем подключать и синхронизировать свои данные?Должен ли я требовать, чтобы они находились в той же сети, что и база данных, чтобы я мог подключаться напрямую, используя слой базы данных и строку подключения?

Будет ли подход на основе веб-службы достаточно быстрым для работы с изображениями, видео (если подумать отолько загрузка их миниатюр, иначе данные убьют производительность ~ несколько Гб данных).Я планирую использовать эскизы на клиентах, а в домашней сети они подключаются и получают все большие видео и изображения ...

1 Ответ

1 голос
/ 05 декабря 2011

При разработке вашего приложения стоит помнить принципы KISS и YAGNI , а также опасаться излишних решений и преждевременной оптимизации.

Если я правильно понимаю, у вас есть работающее веб-приложение, в котором единственная необходимая дополнительная функция - это своего рода слайд-шоу.
вы можете найти множество jQuery (или любого другого веб-клиента).Framework) решения для этого.

Если, тем не менее, вы решите разработать нового клиента - у вас уже есть веб-сервис, который работает хорошо!Я бы предложил использовать его.

Об идее хранения данных на стороне клиента - это классический кандидат на YAGNI;Проверьте производительность вашего приложения, а затем посмотрите, нужно ли вам что-нибудь более сложное, например, кэширование на стороне клиента и т. Д.

Примечание: доступ клиентского приложения к БД напрямую не рекомендуется;он эффективно отменяет «серверную» часть «клиент-сервер» и вызывает высокую связь между вашей презентацией и бизнес-логикой / доступом к данным.
Было бы лучше иметь приложение WCF на сервере, которое отвечает за выборкузапрошенные файлы.

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