没有业务逻辑层的ASP.Net 2.0应用程序?

没有业务逻辑层的ASP.Net 2.0应用程序?

ASP.Net 2.0 Application without Business Logic Layer?

拥有没有以下BLL(业务逻辑层)的ASP.Net 2.0应用程序是否"可以接受"?

  • SQL Server数据存储和存储过程
  • 数据链接层(强类型表适配器)连接到存储的Procs
  • 带有代码和ObjectDataSource的表示层ASPX页面,用于直接连接到DLL
  • 即使业务逻辑在演示文稿的代码中完全有效,BLL还是总是可取的吗? 不使用BLL有哪些潜在的缺点?


    只要您了解后果,就可以接受。您拥有BLL的主要原因是在整个应用程序的其他地方重用该逻辑。

    如果演示代码中包含所有验证逻辑,那么您实际上很难在应用程序的其他地方重用。


    这取决于。如果您的点击事件和页面加载中包含业务逻辑,则不可接受。

    您的业??务逻辑似乎在DAL中(例如存储过程等)中,只要您保持一致就可以。只要您非常非常确定您的客户端将始终使用SQL Server,那么此方法就不会有问题。

    我认识一位在存储过程中拥有所有业务逻辑的同事,他的观点主要是数据库后端的瘦客户机:他在销售产品方面取得了巨大的成功。但这仅仅是因为他对此非常一致。


    可以接受吗取决于您问谁以及您的要求是什么。这个应用程式是您和其他一些人使用的内部工具吗?也许这已经足够了。如果要成为可以在未来几年内增长和维护的生产就绪型企业应用程序,那么您可能希望预先投入更多的精力来构建可维护的应用程序。

    关注点分离是构建可维护应用程序的关键设计技术。通过将表示,业务和数据访问逻辑结合在一起,您可能会遇到非常脆弱且难以更改的应用程序体系结构。


    像其他所有东西一样,它也是环境的,并且取决于系统的使用。您需要问自己的问题是:

  • 会积极发展吗
  • 这将在多年的使用中得到扩展吗?
  • 应用程序的扩展是未知的,因此是无限的吗?
  • 确实,这归结为懒惰。您想花多少时间从UI重新设计系统?因为没有业务层意味着您的用户界面中的规则可能会重复很多页面。

    如果这是概念证明或简短的演示或课堂项目,则再次。采取简单的方法。


    如果该应用程序是通用应用程序,那么业务逻辑层也可以用于其他应用程序中。就像,我通常在其他应用程序中使用与CMS相关的BLL类。


    推荐阅读