Сначала несколько определений, чтобы все было ясно.Управление WebBrowser как пользовательский интерфейс
Пользователь: Живой человек, с помощью программного обеспечения
Клиента: компания, которая платит за настроенную версию нашего программного обеспечения для своих пользователей.
В настоящее время у нас есть несколько приложений, которые потребуют значительных изменений в пользовательском интерфейсе на основе того, к какому клиенту принадлежит пользователь. В настоящее время у нас есть отдельная сборка для каждого клиента, но по мере увеличения числа клиентов становится все более больно управлять всеми этими отдельными выпусками.
Моя цель состоит в том, чтобы переключиться на один универсальный клиент, который может быть настроен динамически на основе того, кто входит в систему. Поскольку наше программное обеспечение требует интернет-соединения в любом случае (широко использует веб-службы), я рассматривал только использование элемента управления WebBrowser в .NET. и позволяет ему взаимодействовать (через ObjectForScripting) с необходимым оборудованием на компьютере.
Затем весь пользовательский интерфейс написан в формате HTML/JavaScript и хранится на сервере, что делает распространение и обслуживание новых пользовательских интерфейсов тривиальным. Общий клиент - это немного больше, чем пользовательский веб-браузер, который знает, как разговаривать с нашими аппаратными устройствами и может быть сказано сделать это через javascript.
Я вижу много преимуществ для этого подхода и не слишком много недостатков. Что мне не хватает? Почему я не должен идти в этом направлении?
Поддержка нескольких версий IE не должна быть проблемой. Мы не будем делать ничего очень сложного с html/css.Большинство страниц были бы предельно просты и немного больше отображали бы форму. Только одна коррекция на ваше сообщение, мы можем определить, нет ли сетевого подключения, и мы можем либо не отображать элемент управления WebBrowser, либо мы можем передать ему строковый/локальный файл, содержащий ошибку html. –
Тимоти, отлично! Рад слышать, что ваш html/css хорошо работает с соответствующими версиями IE. Обратите внимание, что условия отказа браузера, которые приводят к ошибкам, могут быть более тонкими. Связь может быть прерывистой, сервер может быть недоступен, приложение может быть недоступно на сервере, сервер может возвращать ошибки http 500, сервер может периодически выходить из строя из-за нагрузки и т. Д. Опять же, не следует останавливать вас, просто вызывая проблему –