存储库模式和网络 api
Repository pattern and web api
你好,我最近学习了 web api 2,我正在做一个示例项目 now.I 我在遵循分层架构 project.This 是流程
控制器=>业务层=>数据层
现在我读了一些关于存储库模式的文章,现在听起来更好。
我看到流量像
控制器=>服务=>存储库
这两种流程有什么明显的区别吗?
作为初学者,我应该采用哪种架构?
有人可以帮助我理解这些模式吗?
当您使用带有存储库的服务时,您应该使其通用并使用工作单元 (UOW),这样您就不会在每个实体上重复自己的 CRUD 操作。然后添加一些对象关系映射器 (ORM),例如 Entity Framework。您最好还使用域对象来存储您的逻辑,并使服务 return 数据传输对象 (DTO),因为最佳做法是让您的服务保持小而干净。然后您还需要包含一些映射 tool/logic 以将 DTO 映射到域对象。
你会看到这一切的发展方向。突然之间,您遇到的复杂性和障碍远比您需要的多。因为客户关心的只有一件事是您的产品质量,而不是一些花哨的架构。
但随着项目的增长,拥有适当的架构、自动测试等变得更加重要,因此它在大型项目中有效。如果你想尝试和学习这是一个很好的机会,但如果你有 运行 生产应用程序,我宁愿不做那么大的改变。
TLDR:它们都是有效的
你好,我最近学习了 web api 2,我正在做一个示例项目 now.I 我在遵循分层架构 project.This 是流程
控制器=>业务层=>数据层
现在我读了一些关于存储库模式的文章,现在听起来更好。
我看到流量像
控制器=>服务=>存储库
这两种流程有什么明显的区别吗? 作为初学者,我应该采用哪种架构? 有人可以帮助我理解这些模式吗?
当您使用带有存储库的服务时,您应该使其通用并使用工作单元 (UOW),这样您就不会在每个实体上重复自己的 CRUD 操作。然后添加一些对象关系映射器 (ORM),例如 Entity Framework。您最好还使用域对象来存储您的逻辑,并使服务 return 数据传输对象 (DTO),因为最佳做法是让您的服务保持小而干净。然后您还需要包含一些映射 tool/logic 以将 DTO 映射到域对象。
你会看到这一切的发展方向。突然之间,您遇到的复杂性和障碍远比您需要的多。因为客户关心的只有一件事是您的产品质量,而不是一些花哨的架构。
但随着项目的增长,拥有适当的架构、自动测试等变得更加重要,因此它在大型项目中有效。如果你想尝试和学习这是一个很好的机会,但如果你有 运行 生产应用程序,我宁愿不做那么大的改变。
TLDR:它们都是有效的