Совместное использование одной и той же кодовой базы в нескольких приложениях - PullRequest
2 голосов
/ 22 ноября 2011

Какие варианты обычно используются для повторного использования одной и той же кодовой базы в разных приложениях (например, веб-приложение, winforms и т. Д.).

Моя непосредственная, высокоуровневая мысль - использовать веб-сервисы для раскрытия выделенной библиотеки бизнес-логики. Какие еще есть варианты?

Спасибо

1 Ответ

3 голосов
/ 22 ноября 2011

Обычно у вас должен быть отдельный уровень для вашей бизнес-логики и другой для доступа к данным. Это с точки зрения очень высокого уровня. В зависимости от сложности вашего приложения ваш бизнес-уровень может быть разделен на несколько компонентов, где могут быть веб-службы, открытые для интерфейса 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      |
+-----------------++-----------------+

Надеюсь, это поможет.

...