ServiceStack Visual Studio模板和REPOSITORY模式

时间:2014-08-28 23:25:33

标签: servicestack ormlite-servicestack

我使用ServiceStack Visual Studio加载项(" ServiceStack ASP.NET Empty")模板创建了一项新服务。

这将创建4个项目,ServiceModel,ServiceInterface,ServiceHost和测试项目。如果我通过接口使用REPOSITORY模式封装我的数据访问(想想依赖注入),并且不允许将任何其他项目添加到解决方案中,那么什么项目应包含此代码,为什么?如果repo代码绝对必须移出到另一个项目,那么项目依赖项是ServiceModel,ServiceInterface?

谢谢你, 斯蒂芬

1 个答案:

答案 0 :(得分:1)

  

ServiceHost和测试项目。如果我通过接口

用REPOSITORY模式封装我的数据访问

有关物理项目布局的更多信息,请参阅Physical project structure wiki

ServiceStackVS's VS.NET templates遵循上述物理项目结构,其中仅ServiceInterface用于维护您的服务实现和自定义逻辑。所有其他起始项目具有不同的目的,例如

  • 顶级Host项目是所有具体依赖项都已注册并连接在一起的粘合剂,否则应该保持轻量级和无逻辑。
  • ServiceModel项目是一个dep / impl-free项目,用于维护您的服务合同DTO,这些DTO应该不受Server实施的影响,因此可以在客户项目中重复使用。

接口和实现都可以在同一个项目中。此布局后的一些ServiceStack演示版是IRepository中的RedisStackOverflow类以及IEmailer中的EmailContacts类。