Architecture 跨多个应用共享相同的代码库
在不同的应用程序(例如web应用程序、winforms等)中重复使用相同的代码库通常有哪些选项 我当前的高级想法是使用web服务公开业务逻辑的专用dll。还有什么其他选择Architecture 跨多个应用共享相同的代码库,architecture,scalability,Architecture,Scalability,在不同的应用程序(例如web应用程序、winforms等)中重复使用相同的代码库通常有哪些选项 我当前的高级想法是使用web服务公开业务逻辑的专用dll。还有什么其他选择 谢谢通常,您应该有一个单独的层用于业务逻辑,另一个层用于数据访问。这是从非常高的层次来看的。根据应用程序的复杂性,您的业务层可以划分为多个组件,其中可能有向Facade接口公开的web服务,而可能具有唯一决策逻辑的其他组件可能位于另一个组件中。这些只是模糊的想法 从您的角度来看,您的目的之一应该是减少重复代码,因为有多个应用程
谢谢通常,您应该有一个单独的层用于业务逻辑,另一个层用于数据访问。这是从非常高的层次来看的。根据应用程序的复杂性,您的业务层可以划分为多个组件,其中可能有向Facade接口公开的web服务,而可能具有唯一决策逻辑的其他组件可能位于另一个组件中。这些只是模糊的想法 从您的角度来看,您的目的之一应该是减少重复代码,因为有多个应用程序具有相同的功能。即使您有一个单独的业务层,这能解决问题吗?可能您将从不同的应用程序调用相同的业务功能,但UI层中仍有许多代码需要单独管理 构建您的软件是为了提供一个框架,使构建不同平台的工作量最小化 考虑到您的两个应用程序都有相同的UI,我想到的一件事是您的UI端有一个通用的
控制器
和视图模型
,可以从web和win应用程序访问,其中,控制器
将通过一个代理与业务层门面接口对话,该代理将暴露于您的UI层,该UI层将与您的控制器和视图模型紧密耦合
这可能有助于您使用此图表进行可视化:
+------------------------------------+
| |
| DATA ACCESS LAYER |
+------------------------------------+
+------------------------------------+
| BUSINESS LAYER |
| +--------------------------------+ |
| | COMPONENT A | |
| +--------------------------------+ |
| +--------------------------------+ |
| | COMPONENT B | |
| +--------------------------------+ |
|+----------------------------------+|
|| WEB SERVICE FACADE ||
|+----------------------------------+|
+------------------------------------+
+-----------------++-----------------+
| WIN AGENT || WEB AGENT |
+-----------------++-----------------+
+------------------------------------+
| PRESENTATION STACK |
+------------------------------------+
|+----------------------------------+|
|| GENERIC CONTROLLER ||
|+----------------------------------+|
+------------------------------------+
+-----------------++-----------------+
| WIN APP || WEB APP |
+-----------------++-----------------+
希望这能有所帮助。你在用什么语言?我猜是C#/VB,但它显然极大地影响了给出的答案。。。