C/S结构的程序,用.NET开发,类似于进销存类的软件,客户端与数据库的数据直接用ADO.NET连接的,这样做会有什么问题吗?看了WCF觉得很不错,用WCF的话客户端跟服务端是通过什么方式连接的?用WCF的话客户端还用到ADO.NET吗?比如客户端传个SQL语句给服务端,服务端生成一个DataTable后用什么方式回传给客户端呢?谢谢!!!!

解决方案 »

  1.   

    用对象序列化方式
    把DataTable序列化为xml或者json字符串发给客户端
    然后客户端解析xml,json创建对象
      

  2.   

    直接用ADO.NET连接,如果数据库服务器和客户端不在一台机器上,那么势必要开放数据库的TCP访问端口,这样就把数据库暴露在了网络上,有不良用意的人也许就能访问你的数据库,并坐破坏.WCF客户端与服务端使用什么协议连接是可以配置的,比如HTTP,TCP,UDP等等,服务端生成的DataTable客户端可以直接使用,就好像客户端在调用本地方法一样.
    其实WCF在背后帮你做了许多事情,连接的建立,数据的序列化,传送,反序列化,断开,还有压缩,编码等等,当然,对于WCF使用者来说这些细节可以不必去操心,只需要配置好就OK了.
    使用WCF就避免了把数据库直接暴露在网络上的问题.
    不实用WCF,使用WebService也是可以的.
      

  3.   

    你如果用WCF,还传递sql语句。WCF会哭的。用对象代替sql中的表格数据,WCF的优点就是可以让对象在两端通讯
      

  4.   

    用WCF后可以直接在客户端和服务端之间可以互发datatable?
      

  5.   

    对象传输就用序列化和反序列化就可以实现了。还不是就scoekt传输的
      

  6.   

    重要问题:用WCF后,客户端与服务器间相互传输的都是XML文件吗?
      

  7.   

    使用wcf后,客户端和服务端只是在数据上进行序列化与反序列化的操作,不一定都是xml文件,比如服务端分层,服务连接数据库,处理数据的增删查改,而客户端中依然可以通过服务来访问服务端分层当中的model层,这样建立的好处,就是服务端连接,数据操作都在服务端来处理,客户端只用验证数据,调用服务端方法进行操作。
      

  8.   

    一般不会直接用datatable。可以使用自定义的内存数据结构来解析并接受datatable序列化的字符串,然后直接处理。