ASP.NET MVC中模型定义的最佳实践

时间:2010-07-08 21:53:24

标签: asp.net-mvc

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

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

以下是我认为使用MVC构建可靠应用程序所需的全部内容:

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

1 个答案:

答案 0 :(得分:1)

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

例如,在我们的应用程序(约250个视图)中,我们有:

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