asp.net-mvc - 遵循最佳编程实践的 Asp.Net Mvc 应用程序所需/推荐的所有层的分割是什么?

标签 asp.net-mvc standards

我对 Asp.Net MVC 的了解越多,我发现的层和组件就越多,以使我的应用程序遵循所有标准和最佳编程实践。

它开始变得有点困惑,因为一些新层似乎不像我学到的其他层那样容易融入。所以我只是希望有人了解 Asp.Net MVC 应用程序的所有必需/推荐层——它们的用途是什么以及它们如何与其他层交互。

这是我发现的一些层以及它们如何链接:
(其中一些可能是错误的)

View/UI --> Model Binder --> Controller --> Service Layer --> Repository --> Entity Framework/LINQ to SQL --> DB

有人可以回顾一下我可能遗漏的那些,它们是如何联系起来的,以及它们各自的目的是什么?

谢谢,
马特

最佳答案

好问题,我想你涵盖了我见过的所有层:Modal binder 和 service layer 是可选的。

也许,您可以添加另一个错误处理层,例如 elmah .

  • View/UI --> 你把你的 html 标记/Javascript 代码。
  • 模型绑定(bind)器 --> 您执行魔术将您的输入绑定(bind)到 Action 参数,通常,您将使用默认绑定(bind)器,因此您无需担心。但是,您可以使用自己的活页夹覆盖它,并在这一层进行验证。这是 good example对此。
  • Controller --> 足够的在线文档。
  • 服务层 --> 很多人在将其发送到存储库之前在这里进行验证和其他业务逻辑处理。 Asp.net mvc contact manger example这里有一个很好的例子。这也是实际使用您的模态的层。
  • 存储库 --> 简单的读/写操作。
  • Entity Framework/LINQ to SQL --> DB - 实际写入数据库。 Nhibernate 是这里的另一个不错的选择。
  • 关于asp.net-mvc - 遵循最佳编程实践的 Asp.Net Mvc 应用程序所需/推荐的所有层的分割是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122016/

    相关文章:

    javascript - 按键在我为某些聊天应用程序制作的功能中不起作用

    c# - Asp.net mvc 应用程序在用户登录前抛出 js 语法错误

    c++ - 任何类型的数组总是聚合吗?

    css - 使用严格的 XHTML 并 100% 依赖 CSS 来构建网站视觉样式是否可行?

    c# - 无法加载文件或程序集 'System.Web.Http,' - 将一个项目添加到另一个解决方案时

    c# - 如何创建到主项目 MVC 到另一个项目 MVC 的路由?

    asp.net - Session_Start 在默认 ASP.NET MVC3 项目上多次触发

    c++ - 为什么(如果是这样的话)标准说用 memcpy 复制未初始化的内存是 UB?

    c - XOPEN_SOURCE 和信号处理

    c++ - 在 IOStreams 库中使用 ignore(numeric_limits<streamsize>::max()) 是否可以处理任意大量流?