请注意讨论的前提:web应用,并非大型系统 说来也用三层构架(以下简称三层)开发asp.net web系统有些时日了,经手大大小小的项目也有很多。 从初识三层的满腹疑问,再到学习三层时的激情,再到应用三层成功开发时的成就感,直到现在满腹的疑惑。 我们应用三层开发web应用是否真的有必要? 三层鼓吹的好处不用说,什么便于修改,易于维护,统一的编程风格等等我就不说了,大家都知道。 现在我来说说三层的坏话。
请注意讨论的前提:web应用,并非大型系统
说来也用三层构架(以下简称三层)开发asp.net web系统有些时日了,经手大大小小的项目也有很多。
从初识三层的满腹疑问,再到学习三层时的激情,再到应用三层成功开发时的成就感,直到现在满腹的疑惑。
我们应用三层开发web应用是否真的有必要?
三层鼓吹的好处不用说,什么便于修改,易于维护,统一的编程风格等等我就不说了,大家都知道。
现在我来说说三层的坏话。
首先、三层是否真的像鼓吹的那样便于修改???我在项目的进行过程中经常要修改项目的数据库,而每次修改过数据库都非常痛苦,因为除了反射不用修改外,其他的要从实体层一直修改到表现层,层层都要改。
这难道是减耦??我觉得这依然是强耦合。
其次、三层带来的臃肿是空前的,本来简简单单的表单提交搞的异常麻烦,先要填充实体,期间还有好多数据封装与转换。。。。
再次、抽象。在web应用大多不过是对数据库进行读读写写,而应用三层还要层层分离,设计各种接口,期间还会浪费大量的资源(这就是传说的盘剥?)。本来提交到web的表单都是应该直接对应数据库的,应该是简洁快速的。
最后、对于web应用用户体验是最关键的,而三层要结合大量的服务器控件,无疑对资源又是一个消耗,速度会下降,用户体验就会降低,这是个很重的问题。
目前就想到这些,欢迎讨论。如果有好的方法请不吝赐教!