C/S结构的系统客户端与数据库的连接问题

ahljxwy 2011-08-19 12:13:37
C/S结构的程序,用.NET开发,类似于进销存类的软件,客户端与数据库的数据直接用ADO.NET连接的,这样做会有什么问题吗?

看了WCF觉得很不错,用WCF的话客户端跟服务端是通过什么方式连接的?用WCF的话客户端还用到ADO.NET吗?比如客户端传个SQL语句给服务端,服务端生成一个DataTable后用什么方式回传给客户端呢?

谢谢!!!!
...全文
309 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahljxwy 2011-08-22
  • 打赏
  • 举报
回复
重要问题:用WCF后,客户端与服务器间相互传输的都是XML文件吗?
jackwater 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ahljxwy 的回复:]
用WCF后可以直接在客户端和服务端之间可以互发datatable?
[/Quote]
一般不会直接用datatable。可以使用自定义的内存数据结构来解析并接受datatable序列化的字符串,然后直接处理。
MsdnProgrammer 2011-08-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ahljxwy 的回复:]
重要问题:用WCF后,客户端与服务器间相互传输的都是XML文件吗?
[/Quote]
使用wcf后,客户端和服务端只是在数据上进行序列化与反序列化的操作,不一定都是xml文件,比如服务端分层,服务连接数据库,处理数据的增删查改,而客户端中依然可以通过服务来访问服务端分层当中的model层,这样建立的好处,就是服务端连接,数据操作都在服务端来处理,客户端只用验证数据,调用服务端方法进行操作。
ahljxwy 2011-08-22
  • 打赏
  • 举报
回复
求回复。。。。
cc122137988 2011-08-19
  • 打赏
  • 举报
回复
对象序列化方式
Soloboy1020 2011-08-19
  • 打赏
  • 举报
回复
你這種也可以的,算是二層C/S結構,實際上很多的軟件都是這種.採用那種結構具體還是要看你面向的客戶群
增加了一層,你要做的工作也相應增加,自己取捨了
syx151 2011-08-19
  • 打赏
  • 举报
回复
直接用ADO.NET连接,如果数据库服务器和客户端不在一台机器上,那么势必要开放数据库的TCP访问端口,这样就把数据库暴露在了网络上,有不良用意的人也许就能访问你的数据库,并坐破坏.

WCF客户端与服务端使用什么协议连接是可以配置的,比如HTTP,TCP,UDP等等,服务端生成的DataTable客户端可以直接使用,就好像客户端在调用本地方法一样.
其实WCF在背后帮你做了许多事情,连接的建立,数据的序列化,传送,反序列化,断开,还有压缩,编码等等,当然,对于WCF使用者来说这些细节可以不必去操心,只需要配置好就OK了.
使用WCF就避免了把数据库直接暴露在网络上的问题.
不实用WCF,使用WebService也是可以的.
小赖赖 2011-08-19
  • 打赏
  • 举报
回复
用对象序列化方式
把DataTable序列化为xml或者json字符串发给客户端
然后客户端解析xml,json创建对象
jy251 2011-08-19
  • 打赏
  • 举报
回复
对象传输就用序列化和反序列化就可以实现了。还不是就scoekt传输的
Ryoko7 2011-08-19
  • 打赏
  • 举报
回复
学习了。
ahljxwy 2011-08-19
  • 打赏
  • 举报
回复
用WCF后可以直接在客户端和服务端之间可以互发datatable?
isjoe 2011-08-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 ahljxwy 的回复:]
C/S结构的程序,用.NET开发,类似于进销存类的软件,客户端与数据库的数据直接用ADO.NET连接的,这样做会有什么问题吗?

看了WCF觉得很不错,用WCF的话客户端跟服务端是通过什么方式连接的?用WCF的话客户端还用到ADO.NET吗?比如客户端传个SQL语句给服务端,服务端生成一个DataTable后用什么方式回传给客户端呢?

谢谢!!!!
[/Quote]


你如果用WCF,还传递sql语句。。。。WCF会哭的。。。。。。。

用对象代替sql中的表格数据,WCF的优点就是可以让对象在两端通讯。。。。。。
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据库管理之三,主要讲解以下内容:1.     PostgreSQL约束讲解和剖析2.     PostgreSQL数据类型3.     PostgreSQL的结构管理4.     PostgreSQL条件表达式和操作5.     PostgreSQL使用小技巧

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧