封装ASP.NET MVC模型作为可重用的组件

本文关键字:组件 ASP NET MVC 模型 封装 | 更新日期: 2023-09-27 18:10:35

是否有一种公认的/预期的最佳实践方法来封装ASP的"模型"部分?NET MVC成一个可重用的程序集?

作为技术练习,我想在不同的系统中使用相同的业务/持久层。例如,将同一个程序集编译为ASP和asp.net。. NET MVC应用程序和传统的Windows服务。

我的想法是实现我的模型(和EntityFramework/DbContext/等)在一个单独的程序集。然后我的MVC项目将完全省略"模型"文件夹,我的控制器将引用"模型汇编"中的代码。我总是喜欢ViewModels而不是实际的业务对象作为视图的"目标",所以我非常高兴我所有的视图都是强类型的ViewModel对象,而不是Model对象。

  1. 这是一种常见的方法吗?
  2. 它是否违反了ASP的"约定优于配置"原则?净MVC吗?
  3. 是否有特定的MVC的好处,我将失去,通过这种方法?
  4. 这种方法还有其他令人讨厌的陷阱吗?

我是一个相当熟练的ASP老手。. NET、c#和windows服务,但对ASP相当陌生。净MVC。如果这是一个重复的问题,我很抱歉;大多数关于"可重用MVC"的问题都集中在UI组件上,而不是整个业务/持久化"层"。一如既往,提前感谢您的见解!

封装ASP.NET MVC模型作为可重用的组件

是的,我看到很多系统都是这样开发的。你最终得到了一个"业务层",它可以与REST-over-WCF-on-IIS一起工作,就像在其他任何地方一样。

不,我知道你不会损失任何东西,尽管维护多个项目会稍微增加复杂性。

这样做的另一个好处是,你最终得到的控制器和模型层都更易于测试,因为你可以在它们之间使用依赖注入。