2

作为一个在这个秋天浪费了几周时间来配置和重新配置 IIS 服务器以进行 WCF、身份验证、使 EntityFramework 正常运行等的人,我真的很想在即将到来的新项目中使用 ServiceStack。

我想全力以赴,即这次我想完全跳过微软特定的东西。

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

我的要求:

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

有谁知道这样一个我可以查看源代码的项目?

4

1 回答 1

1

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

我个人不喜欢规定的架构,因为我更喜欢随着代码库的增长而重构我的代码库,并且只根据需要添加架构和委托。我提供了如何在我的 ServiceStack 服务中分离层的示例,并描述了我在该线程中的同一应用程序中通常具有的一些不同级别的体系结构。ServiceStack 试图鼓励的一件事是将您的服务模型保持在一个独立的且很大程度上无 dep 的程序集中,该程序集与您的实现分离。

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

基本上,ServiceStack 嵌入了一个 IOC 并促进了干净的依赖注入 C# 服务,使您可以自由地以您已经习惯的首选样式测试您的服务。也就是说,您不需要更改架构或测试策略来支持 ServiceStack,因为它应该已经让您可以像往常一样自由地开发服务。

于 2012-12-29T16:59:39.033 回答