寻找ServiceStack的真实世界示例

时间:2012-12-29 11:12:08

标签: unit-testing servicestack ormlite-servicestack

作为今年秋天浪费时间来配置和重新配置IIS服务器以进行WCF,身份验证,使EntityFramework行为等的人,我真的想在即将到来的新项目中使用ServiceStack。

我想全押,即我想彻底跳过微软的具体内容。

我正在寻找使用ServiceStack的真实示例,我一直在关注Rockstars和SocialBootstrapApi,但我想要更大的东西。

我的要求:

  • 至少应该是两个子项目,一个包含Web部件,另一个包含业务逻辑。
  • 除了ServiceStack.OrmLite之外,我不期望任何ServiceStack的东西以及业务逻辑部分中的一些常见内容
  • 业务逻辑的单元测试
  • ServiceStack服务的单元测试

有没有人知道我可以查看来源的这个项目?

1 个答案:

答案 0 :(得分:1)

听起来你正在寻找一个规定的n层架构,期望它应该如何构建。你正在使用ServiceStack的事实是一个红色的鲱鱼,因为ServiceStack服务只是一个标准的,自动连线的C#类,它是完全可以模仿和可单独测试的(所以你可以像任何一样测试它其他类)或使用自托管的ServiceStack HttpListener将其作为Integration Test进行测试。

我个人不喜欢规定的架构,因为我喜欢在代码库增长时重新考虑我的代码库,只根据需要添加架构和委托。我提供了如何在ServiceStack服务中分离层并描述一些different levels of architecture I commonly have within the same application in this thread的示例。 ServiceStack试图鼓励的一件事就是将您的服务模型保存在一个单独的,基本上无部署的程序集中,该程序集与您的实现分离。

与任何其他DAL相比,OrmLite不需要特别注意。如果您选择将其封装在Repository类中,那么您将获得一个标准的C#类(即Repository),它只接受并返回干净的POCO。根据您测试数据访问层的首选方法,您可以选择在测试服务时模拟存储库,或者选择使用内存中的Sqlite数据库并使用测试数据模拟RDBMS数据库以进行也测试RDBMS访问的集成测试。

基本上,ServiceStack嵌入了一个IOC并推广了干净的依赖注入的C#服务,使您可以自由地以您已经习惯的首选方式测试您的服务。即您不需要更改您的架构或测试策略来支持ServiceStack,因为它应该已经像您通常那样为您提供开发服务的自由。