我习惯于手动创建 UI、BLL、DAL(有时我使用 LINQ-to-SQL 或 SubSonic 来创建 DAL)。自 MVC 发布以来,我已经使用 MVC 完成了几个小项目。
在这些项目中,我仍然继续手动编写 BLL 和 DAL,然后将它们合并到 MVC 的模型/ Controller 中。我正在寻求优化我在项目上的时间,这似乎是一种过度杀戮和潜在的浪费时间。
问题
推出 SubSonic 等 DAL 并直接在我的 MVC 网络应用程序的模型/ Controller 中使用它是否可以接受?现在模型和 Controller 将充当 BLL。我只是认为这是一个重要的节省时间的方法,不必担心另一层。
更新:
我只是想补充一点,我真正关心的不是 DAL(我经常使用 SubSonic 和 NH),而是关注 BLL。抱歉造成混淆。
最佳答案
MVC 与 n 层架构没有或几乎没有联系。它属于UI层,用于处理与用户的交互。您如何构建应用程序的其余部分...让我们使用正交这个词来告诉您是否使用 MVC。
如果您有业务逻辑层,它会保留。
如果您有数据访问层,它会保留。
不应该使用 Controller 来实现业务逻辑。它基本上是一个路由层,用于决定调用什么操作,重定向到什么路由。一般的建议是让它保持精简,并让它根据路由数据和一些业务逻辑调用做出决定。
此外,模型不等于业务对象。模型是由 View 显示的一组数据,可能包含一些与业务实体无关的辅助数据。
您可以使用 ORM 并用它替换数据访问层。取决于 ORM 如何集成它。借助 EF,您可以将实体直接用作业务对象。
关于c# - MVC 会取代传统的手动创建的 BLL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2690707/