【问题标题】:Best practices for model definition in ASP.NET MVCASP.NET MVC 中模型定义的最佳实践
【发布时间】:2010-07-08 21:53:24
【问题描述】:

最近我阅读并实现了来自 Pro ASP.NET MVC Framework 的 80% 的示例,似乎作者只给出了基础知识。阅读本文后,我确实能够使用 ASP.NET MVC 构建 Web 应用程序。但这只是基本的应用程序。

我发现最令人困惑的是,一开始作者强调模型是 MVC 应用程序的主要组件,但后来完全忘记了这一点,专注于视图、辅助方法、控制器、测试(我花了更多编写测试代码的时间,而不是应用程序本身),Web 安全,第三方软件可以做得更好,但没有正确解释模型在 ASP.NET MVC 中的位置。在本书中,在最大的示例中,我将归类为模型的代码完全放在了另一个项目中,并且没有在 Models 命名空间中创建一个文件。

以下是我认为在使用 MVC 构建可靠的应用程序时 100% 必要的事情:

  • 正确验证,模型端。我在互联网上的许多示例中看​​到它是使用注释完成的。在哪里可以找到有关用于 ASP.NET MVC 数据验证的注释的综合文档?
  • 模型内代码组织的最佳实践。我可能有许多需要定义的实体/类。我应该创建单独的文件吗? ASP.NET MVC 框架中是否有我应该了解的接口或有用的基类?
  • 应该在视图中使用纯 HTML 定义 HTML 字段名称,还是在模型中使用注释定义?模型在 ASP.NET MVC 中的作用必须在哪里结束?
  • 在 ASP.NET MVC 中将 ORM 工具与模型一起使用的最佳实践是什么?如果 DataContext 停止使用,应该如何进行更新?应该在哪里设置实体的可更新属性?在控制器之前被传递给模型进行更新?还是在模型中?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    模型是您的业务逻辑和业务对象。许多大型应用程序的“模型”与 Web 应用程序完全分离。如果您的应用程序有多个前端(移动、Windows、Web 等),您应该能够在每个前端使用相同的模型。

    例如,在我们的应用中(约 250 次浏览),我们有:

    Web App (strongly typed views, controllers)
    ---
    ServiceLayer       |-|
    RepositoryLayer    |-|These 3 projects compose the "model"
    DataAccess (ORM)   |-|
    ---
    Database
    

    【讨论】:

    • 我已经阅读了有关该主题的更多信息。意识到没有我所期望的明确的“最佳实践”。但是,您所描述的几乎是我们如何让另一个应用程序工作。现在是数据访问层、业务逻辑层、服务层。谢谢你的回复:)
    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 2012-09-20
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 2010-11-28
    相关资源
    最近更新 更多