使用WCF作为模型的ASP.NET MVC3

时间:2012-02-19 08:16:27

标签: asp.net .net asp.net-mvc wcf asp.net-mvc-3

我正在尝试使用ASP.NET MVC3学习MVC。我提到的大多数教程都使用Entity Framework。就我而言,我将使用WCF服务进行模型化。我有以下问题(当我使用WCF时)

  1. 如果我使用DataAnnotation进行验证,验证应该在哪里?它在WCF服务中吗?
  2. 是否将WCF服务中使用的实体作为模型传递给视图?
  3. 你能指点一些好的MVC3文章/教程,使用 WCF 并解决我的问题吗?如果那些文章也有代码演示,那将会很棒。

    READINGS:

    1. How to make this Model in ASP.NET MVC3?

    2. WCF AND MVC3, system architecture. Passing a View Model with WCF?

    3. Conditional Validation on MVC3 Model Class

    4. How do I use WCF reference with MVC3 (razor) model?

3 个答案:

答案 0 :(得分:3)

  

如果我使用DataAnnotation进行验证,那么验证   应该?它在WCF服务中吗?

通常有2个级别的验证:一个用于视图模型,它们是您专门为视图设计的类,另一个是服务层。

  

是否将WCF服务中使用的实体作为模型传递给视图?

不,您永远不会将域模型传递给视图。您可以设计视图模型。

答案 1 :(得分:3)

我强烈建议您不要在WCF服务上添加DataAnnotation标记。
而是使用从执行WCF服务的服务/控制器填充的单独的视图模型


这里有两个不同的问题:

  1. 为您的网页构建视图模型
  2. 使用WCF服务获取模型数据。

答案 2 :(得分:0)

绝对不要在WCF中使用DataAnnotions。您当然需要抽象层,但是如何构建您的架构。通过某种形式的抽象来保护您的模型。显然,一个存储库模式可以适合账单,因为你连线说一个使用rest / soap wcf服务的通用存储库并查看Model与ViewModels。

实体= DDD =商业“?” 。例如,产品是一个实体。

保持验证清洁和“干”将允许更少的编码和更多的重用。