2012-01-19 2 views
2

У меня странный сценарий, когда мы разработали инструмент управления рабочими процессами в качестве веб-приложения ASP.Net с SQL Server 2008. К сожалению, мы не можем разместить это для нашего клиента и просить их разместить его сами не вариант.Лучшая технология для многопользовательской архитектуры настольных приложений с централизованной БД?

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

Что есть доступны нам сейчас, надежно, является:

  • Возможность запуска настольного приложения на компьютере пользователя.
  • Доступ к общим сетевым файлам.

Мои текущие мысли состоят в том, чтобы перенести компонент Sql Server на использование Sql Server CE вместо этого, размещать файл базы данных в общем сетевом файле и каждый пользователь запускает настольное приложение, которое указывает на него.

Проблемы возникают при развертывании обновлений программного обеспечения. Как вы гарантируете, что все пользователи обновят свое приложение? Как вы гарантируете, что они это сделают одновременно? Как вы гарантируете, что они будут обращаться к БД только с правильной версией?

Все эти проблемы становятся серьезными проблемами без централизации сервера или удаленного доступа к производственной среде.

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

Мои вопросы к вам:

Есть некоторые большие технологии я пропускаю что бы сделать свою жизнь легче в этом случае?

Как вы относитесь к проблеме?

+0

Самое простое решение - это исправить вашу сеть клиентов. – Raynos

ответ

2

SQL Server CE не будет работать, он требует эксклюзивного доступа к файлу базы данных. Я бы рекомендовал использовать SQLite. Это не лишено собственных проблем, если у вас есть большое количество пользователей или пользователей, записывающих в базу данных одновременно.

WPF не поможет вам здесь, это просто инструмент графического интерфейса.