У меня есть приложение, которое в настоящее время имеет три модуля / слоя; GUI, слой логики и вычислений и слой, который обеспечивает доступ к USB-устройству и его данным (ниже это USB-драйвер, но он не является частью нашего исходного кода). USB-устройство - это ресурс, который может использоваться одновременно только одним экземпляром программного обеспечения.
Это работало нормально, но теперь мы хотим, чтобы пользователь мог запускать несколько экземпляров приложения на одном и том же USB-устройстве. Поэтому теперь нам придется разделить самый нижний уровень (доступ к USB-устройству) между экземплярами программного обеспечения (так как USB-драйвер не может быть общим). Вы можете видеть это так, как я хочу создать системный синглтон самого нижнего слоя ...
Какие технологии или шаблоны .Net лучше всего подходят для решения этой проблемы?
Мы используем .Net 4, WPF и C #.
РЕДАКТИРОВАТЬ: связь с USB-устройством требует процедуры подключения, которая включает в себя калибровку оборудования и на самом деле это занимает некоторое время (секунды). Таким образом, подключение и отключение для каждого вызова не будет вариант. В случае проблем с производительностью мне нужно будет подключиться один раз, а затем оставить это соединение открытым.