没想到还有吵这个的,先说我的立场,我支持三层,另外还有些要说的
1.某些人认为两层比三层效率要高,这个不敢苟同,确实,少了一个中间层,对client来说好象要少处理很多东西,其实不然,client对数据存取的代码放到了应用服务器,一般来说应用服务器性能好,因此,对于单个的查询的响应时间上来说应该差不多.其实效率高低主要看服务器的处理方式上,假设100个client同时上线,对于C/S来说,数据库会开100个会话,对于多层来说,数据库只会开应用服务器所请求的对话,一般来说不会超过10个,而100个client就分别把自己的请求交给应用服务器,应用服务器对请求排队,在自己的10个会话中处理完毕后再把结果返回给client,也就是说在C/S下,当client没有任何请求的时候,这些会话是停在那不做任何处理的,必须等client发出请求该数据库会话才会得到利用,而实际情况是大部分client的数据请求并不频繁,因此造成了浪费,所以从这个角度来看三层要好些.
2.有些人觉得所谓的伪三层不好,我倒恰好觉得非常好,因为那是用来替代两层结构的必须品,以现在的DELPHI,如果说做两层结构,真的不如使用伪三层,道理很简单,开发的过程几乎没有区别,但是伪三层的client的维护要小很多,两层需要装数据库客户端,需要定义数据库客户端别名,如果用BDE则还要装BDE,如果使用ODBC则还要定义ODBC的别名,这些环节一旦有问题,整个客户端都不能用,而伪三层则只要有执行文件和MIDAS.DLL即可,如果你用ASTA来做伪三层,连动态库midas.dll都省了,拷过去就能用.因此伪三层可以说是替换两层结构的利器.相比伪三层,两层结构几乎可以说没有任何优势可言.