Я разрабатываю приложение Windows с использованием C# в .NET., Он работает правильно., Но клиент хочет получить на веб-сайте также. Как это возможно.? Веб-сервер и локальная работа с одной и той же базой данных. Я хочу синхронизировать две базы данных одинаково в каждом 15-секундном интервале или обновлять время данных? Пожалуйста, дайте мне решение этой проблемы.О базе данных Синхронизация
ответ
Это большая тема и нетривиальная проблема, перед которой вы должны сделать много исследований, прежде чем принимать решение о решении. Я написал некоторые мысли ниже, но это ни в коем случае не исчерпывающий список возможных подходов или вещей, о которых вы должны опасаться.
Первое решение заключается в том, должна ли веб-сайт и приложение использовать одну и ту же копию базы данных или иметь две отдельные копии базы данных и сохранять их в синхронизации с использованием репликации.
Репликация - большая тема сама по себе, поскольку вам нужно подумать о том, как конфликты вашего разрешения в данных изменяются между двумя копиями базы данных (например, если одна и та же запись изменяется в обеих базах данных).
Вы говорите в своем вопросе, что сайт будет иметь «выход», если это означает, что на веб-сайте отображаются только данные, доступные только для чтения (т.е. без редактирования данных на веб-сайте), тогда репликация будет проще, чем только необходимо скопировать данные на копию базы данных веб-сайта.
Еще одно решение для веб-приложений и настольных приложений для обмена одной копией базы данных. Тогда задаются вопросы, где размещать эту базу данных и как ее получить. На данный момент вы, вероятно, используете подключение к базе данных в своем рабочем приложении для доступа к базе данных. Наименее-кодирующее решение для обеспечения доступности данных в Интернете будет состоять в том, чтобы разместить ваш веб-сайт в сети клиента, чтобы как настольное приложение, так и веб-сайт имели доступ к базе данных. Тем не менее, это означает, что ваш клиент теперь размещает веб-сайт в своей сети, который имеет всевозможные потенциальные проблемы (например, безопасность, объемы трафика, время безотказной работы и т. Д.).
Вы можете написать веб-службу REST (например, ASP .NET WebAPI), чтобы сделать данные доступными для веб-сайта из сети клиента, но опять же, для чего вам потребуется веб-сайт (ну, веб-сервис) из сети клиента.
Альтернативный подход состоит в том, чтобы разместить базу данных в облаке и позволить веб-сайту и настольному приложению получить доступ к ней оттуда. Это устраняет необходимость размещения веб-сайта в сети клиентов. Тем не менее, вы, вероятно, обнаружите, что ваше настольное приложение теперь будет медленнее, чем вам хотелось бы, поскольку оно предназначено для ожидания близких данных и быстрого доступа. Если вы написали настольное приложение с асинхронной структурой доступа к данным, которая будет менее проблематичной, но если нет, вы, вероятно, обнаружите, что настольное приложение замедляется.
Однако, если данные в базе данных нечувствительны, вы можете обнаружить, что ваш клиент недоволен данными, находящимися в облаке. Если это так, то вам также нужно быть осторожным с решением для репликации - вы должны убедиться, что вы только копируете данные, необходимые для веб-сайта, на копию базы данных веб-сайта.
Еще одно решение заключается в том, чтобы локально размещенная база данных была доступна удаленно размещенному веб-сайту через TCP (SQL Server может это сделать), но опять же есть проблемы с безопасностью, которые необходимо учитывать, и снова вам нужно подумать о том, интернет-соединения надежны и достаточно устойчивы, чтобы предоставлять данные для веб-сайта в режиме реального времени.
Чтобы получить правильное решение, вам необходимо рассмотреть (среди прочего), будут ли данные редактироваться как на веб-сайте, так и в приложении, сейчас или в будущем, а также подумать о вероятном числе пользователей веб-сайт сейчас и в будущем. Это дискуссия, в которую вы должны включить клиента.
Отличные очки, все они, и спасибо за усилия. Однако это делает этот вопрос настолько плохим: это то, что мы называем «слишком широким». Есть слишком много возможных решений, каждый из которых требует подробного ответа и предоставления ссылок на другие ресурсы, черт, для каждого из ваших абзацев вы можете купить несколько книг по этому вопросу. Фактически, для каждого из предметов есть вопросы. OP должен показать свое исследование и свои аргументы (т. Е. Ответить на комментарии, отправленные на вопрос), прежде чем этот вопрос будет даже удаленно подотчетен. – CodeCaster
Да, я полностью согласен, я действительно просто пытался продемонстрировать, что их огромное количество, чтобы рассмотреть и дать OP некоторые вещи для исследования. – tomRedox
- 1. Синхронизация приложения Backbone/Spine к базе данных
- 2. Простая синхронизация экземпляра на базе базы данных
- 3. Вопрос о базе данных
- 4. о базе данных заблокировано
- 5. Вопросы о базе данных
- 6. MongoDB начальная синхронизация в большой базе данных
- 7. Синхронизация множественного доступа к базе данных weblogic
- 8. Эффективная синхронизация информации о хранилищах
- 9. Информация о базе данных SQLite
- 10. О базе данных на Ruby
- 11. Нужен запрос о базе данных
- 12. Сохраните информацию о базе данных
- 13. Информация о базе данных Php
- 14. Вопрос о базе данных HSQL в базе данных памяти
- 15. Сохранение данных о корзине в базе данных
- 16. Хранение данных о регистрации в базе данных
- 17. синхронизация объектов ID в базе данных приложений и веб-сайтов?
- 18. Синхронизация базы данных MySql
- 19. Синхронизация доступа к базе данных в распределенной App
- 20. Синхронизация данных в C#
- 21. Автоматическая синхронизация базы данных
- 22. Синхронизация однонаправленной базы данных
- 23. Синхронизация с базами данных
- 24. Синхронизация потока данных данных
- 25. MarkLogic Синхронизация баз данных
- 26. Синхронизация данных рабочего времени
- 27. Лучшая структура для информации о базе данных
- 28. Как отображать информацию о динамической базе данных?
- 29. django: о внешней базе данных модели
- 30. О базе данных MySQL и Wamp-сервере
вы можете использовать веб-сервис или посмотреть в wcf, и если его единственный выход, то это кажется простым. –
, если 'Web Server' и' Windows app' используют одну и ту же базу данных, зачем их синхронизировать? –
Вы можете просто написать службу jsonrpc в своем решении для сбора информации из db с помощью своих методов. –