在Scala中共享应用程序之间的业务层

时间:2013-10-07 09:37:51

标签: c# scala architecture

我有一个业务逻辑(域服务/模型),我想在两种类型的项目之间共享。一个是mvc Web应用程序,另一个是终端/控制台应用程序。

在.NET世界中,我创建了一个至少包含三个项目的解决方案(每个项目都将编译为DLL文件)。

  1. 服务(图书馆)
  2. Web(mvc web application)
  3. 控制台(控制台应用程序)
  4. 然后我会参考来自ServicesWeb项目的Console。这种方式WebConsole应用程序使用相同的Services图层,可以完全分开运行。

    现在我想在Scala中做同样的工作。我正在寻找最好的模式和做法来做这样的工作。

    更重要的是,将模型Web应用程序移至Services并在Console应用中使用这些模型是一个好主意?实际上我正在使用模型类作为域和mvc模型。

    注意:我不知道是否重要,但我使用Play作为Web应用程序框架。

2 个答案:

答案 0 :(得分:0)

您可以使用任何构建系统(如SBT或Maven)在Scala中执行完全相同的操作。由于您使用Play,自然选择是SBT。正如您所描述的那样,只需制作三个项目using SBT build definitions

我并不特别了解Play,但通常每个这样的项目都会产生JAR(或其他* AR)文件,例如,可以使用java命令运行或部署在某处。因此,您的“服务”和“控制台”可能是普通的JAR文件。

答案 1 :(得分:0)

  1. 创建子项目A,B,C并将所有业务逻辑移至D.
  2. Make A, B, C depend on jar artifact produced as a result of D。 (仔细查看classpath dependencies部分)
  3. ????
  4. 利润!