c# - MVC 会取代传统的手动创建的 BLL 吗?

标签 c# .net asp.net-mvc n-tier-architecture

我习惯于手动创建 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/

相关文章:

.net - Azure.Messaging.ServiceBus 中的 ServiceBusConnectionStringBuilder 的等效项

c# - Entity Framework 6 重用数据注释

c# - 为什么 ASP.NET MVC Controller FileStreamResult 在关闭的流上出错?

c# - 合并两个字典并删除重复键并按值排序

c# - 分段上传到 Amazon S3 会覆盖最后一部分

c# - JSON反序列化。

c# - ASP.NET Core 404 响应中的 Service Fabric 反向代理集成

.net - ASP.NET MVC 从请求参数中删除双正斜杠

c# - NHibernate 多对多关系表中的附加字段

javascript - 如何为 id 的 @html.validation 赋值?