我已经知道了一种模型,你可以在下面看到
是否有不同类型的网络编程图层?
层之间的关系可能不同?与上图不同
(表示层 - 业务逻辑层 - 数据访问层)
如果有,请解释它们甚至介绍一些资源。 (优点和缺点)
答案 0 :(得分:0)
你(以及其他大多数人)应该知道的最重要的一个是洋葱建筑..
图片来自Channel9上有关使用此架构构建ASP.NET MVC 4应用程序的演示文稿。真的值得一看,但要注意,它可能会永远改变你对构建应用程序的想法(:-))
http://channel9.msdn.com/Events/aspConf/aspConf/ASP-NET-MVC-Solution-Best-Practices
实质上,您不再将数据库视为“底层”。实际上,您将其视为用户界面旁边的“顶层”,或换句话说,它是应用程序之外的世界的端口。您的域名实体位于底层,但他们不依赖或了解使用它们的任何内容。然后,您可以定义接口 - 再次不依赖或了解特定的数据访问技术 - 描述您需要的任何存储和检索操作。 (尽量避免简单地定义五个CRUD操作......更重要的是,避免使用generic repository pattern ......长期可维护性通常会成为问题所在。)
UI层和业务逻辑永远不会直接访问存储库接口的特定于数据库的实现。您只能针对接口编写应用程序代码。