Обычно у вас должен быть отдельный уровень для вашей бизнес-логики и другой для доступа к данным. Это с точки зрения очень высокого уровня. В зависимости от сложности вашего приложения ваш бизнес-уровень может быть разделен на несколько компонентов, где могут быть веб-службы, открытые для интерфейса Facade, и другие компоненты, которые могут иметь единую логику принятия решений, могут находиться в другом компоненте. Это просто смутные идеи.
Исходя из вашего POV, одним из ваших намерений должно быть сокращение дублирующегося кода, если есть несколько приложений, имеющих одинаковую функциональность. Даже если у вас есть отдельный бизнес-уровень, это решает проблему? Возможно, вы будете вызывать одни и те же бизнес-функции из разных приложений, но все же на уровне пользовательского интерфейса будет много кодов, которыми вам придется управлять отдельно.
Архитектура вашего программного обеспечения приведена здесь, чтобы обеспечить среду, которая минимизирует усилия по сборке для другой платформы.
Учитывая, что у вас одинаковый пользовательский интерфейс для обоих ваших приложений, одна вещь, которая приходит мне в голову для вашего пользовательского интерфейса, - это общие Controller
и ViewModel
, которые будут доступны как из веб-приложения, так и из приложения win, где 1009 * будет взаимодействовать с интерфейсом фасада бизнес-уровня через агента , и этот агент будет открыт для вашего уровня пользовательского интерфейса, который будет тесно связан с вашим контроллером и ViewModel .
Это может помочь вам визуализировать эту диаграмму:
+------------------------------------+
| |
| DATA ACCESS LAYER |
+------------------------------------+
+------------------------------------+
| BUSINESS LAYER |
| +--------------------------------+ |
| | COMPONENT A | |
| +--------------------------------+ |
| +--------------------------------+ |
| | COMPONENT B | |
| +--------------------------------+ |
|+----------------------------------+|
|| WEB SERVICE FACADE ||
|+----------------------------------+|
+------------------------------------+
+-----------------++-----------------+
| WIN AGENT || WEB AGENT |
+-----------------++-----------------+
+------------------------------------+
| PRESENTATION STACK |
+------------------------------------+
|+----------------------------------+|
|| GENERIC CONTROLLER ||
|+----------------------------------+|
+------------------------------------+
+-----------------++-----------------+
| WIN APP || WEB APP |
+-----------------++-----------------+
Надеюсь, это поможет.