1.ADO.NET直连数据库
2.引入webservice
3.引入wcf数据服务+实体框架
4.其他以上这些方法主要区别在哪里呢?不知道一般都应用哪种方法比较好呢?

解决方案 »

  1.   

    各自场合不同,使用直连是在内部网比较普及,好处是速度快,但如果到广域网则安全存在问题,在存在外部防火墙的情况下,还要费劲考虑通信通道问题,而使用单一端口,诸如webservice,wcf等进行转发是其中的解决方案之一,
    另有一个解决方案是混合连接,即内网使用ado.net,外部使用专门的通信端口。下面有个例子:
    http://www.puzhijie.com/support/handbook_1_3.aspx
      

  2.   

    嗯,如果直连能实现的,还有必要应用WCF数据服务+ADO.NET实体框架吗? 很想知道后者的优越性体验在哪里?是微软的新技术,应该比直连要好吧?
      

  3.   

    直连的缺点:向客户端暴露数据库Schema(结构),以及连接字符串,客户端程序一旦被反编译,客户就可以绕过你的程序为所欲为地做任何事情,系统存在极大风险。基于以上原因,一般直连程序不宜在互联网上发布,你的程序很难做成分布式的,可以在远程被访问的程序。直连导致业务逻辑放入客户端,不易维护,即便小的错误,也要修改客户端,同时造成程序复杂。增加中间层可以很好地重用业务逻辑,降低客户端程序的复杂度。数据库无关性,直连增加了数据库迁移和维护的成本。同时提高程序可伸缩性(比如使用Cache或者负载平衡提高性能和吞吐)。使用实体框架的优点:不言而喻,简化了业务逻辑和数据库访问交互的难度,简化编程、提高效率。简化编程意味着更少的bug,更低的开发成本和更好的维护性。