求 WinForm 三层架构方案实例

时间:2022-10-16 00:59:19
三 层 式 架 构 方 案
一、实时连接服务器,数据集中存储服务器上,全部客户端只有连接上服务器才可以调用服务器数据,要保证200人在线顺畅运行。
二、实现功能:
1、以MSSQL示例数据训Pubs里面的employee数据库为例实现添加、删除、修改、查询功能
2、客户端可以管理在线用户,可以查询到用户ID、用户名、计算机IP、计算机名、登录时间及离开时间,可以踢掉某个在线用户
3、服务器有固定IP的可以用,没有固定IP的用花生壳解析的也可以使用。
三、服务器要求安全认证。


长期以来很多论坛的答案都是WebForm的,希望这里只讨论WinForm架构。过一会来收贴...,请各位大力支持!

28 个解决方案

#1


这个.......多少钱啊?

#2


winForm实现半点问题都没有:
1,完全以WebServier方式实现数据增删改
2,UDP高效
3,免费都可以搞定动态IP解析,推荐(3322.org,comexe.cn)

#3


不好意思,这个只有分,只做技术讨论

要钱没有,要命也不给!

#4


服务器安全问题,主要体现在WebService的安全管理上!

参考:
http://searchwebservices.techtarget.com.cn/wsdevelop/wsaq/

#5


winform+webservice没有问题,可以做的

#6


主要是当数据量达到几万条时,不知道显示和报表应该用什么方法到呈现给用户!如果一次读到客房端那肯定会延时很长时间。

#7


楼主放心,现在的服务器硬件水平足够应付!

速度主要瓶颈在的网络速度!

#8


#9


你压一下 要保证200人在线顺畅运行的话大约每秒20到50足够了

#10


WinForm?

连接远程服务器,只有WebService或者Socket连接了

前者灵活,不安全,不稳定
后者安全稳定效率高

想不通楼主为什么不用B/S?

#11


一、实时连接服务器,数据集中存储服务器上,全部客户端只有连接上服务器才可以调用服务器数据,要保证200人在线顺畅运行。

//按照你的说法 客户端应该连接应用程序服务器而不是数据库服务器
电脑A做数据库服务器
电脑B做应用程序服务器 这里可以写一个DataAccess进行数据操作
然后电脑B上可以发布WebService ,这个项目可以对DataAccess做一个引用(实际就是一个程序)
电脑B逻辑上是两层,数据库和应用程序服务器分开在两台机器上可以提高性能

1.增加删除修改查询等功能 一般的数据库操作而已
2.客户端可以管理在线用户  这个在客户端登录的时候让客户端给WebService发相应的信息 记录下来就行
可以踢掉某个在线用户 可以加一个form验证,直接修改客户端的form验证为不通过,客户端再次连接就会失败.
三、服务器要求安全认证
用Form验证即可

#12


我现在用的是webservices+soap+Auth头认证方式,只是因为我的记录中有图片,并且每天的数据量是1000条左右,1 个月下来就有3万条,
(20KB(图片)+1K)*30000=6300000K,图片已经是JPEG压缩格式了
这个要是出一个月的报表,肯定会很慢,不知道谁有没有碰到过这样的问题

#13


我现在本身用的是B/S结构,只是有些操作要求安装ActiveX,很多客户都不愿意去装,觉得这个很不安全。加上自己也想体验一下三层c/s程序的写法,所以...

#14


Webservice

#15


做报表难道要把图片传到客户端???

#16


bitpolar(独自看天)说的有道理
我可以不下载图片,只要他查看谁的再下载谁的,这样是节省了很多的时间和流量

#17


不知道你的报表中有啥东西

#18


那我想客户的在线状态我应当可以用WebServices 中的Application状态来进行管理吧?

#19


SQL Server2005里面的报表服务是web方式的,在WinForm里面显示一个WebBrowser就OK

#20


B/S 下面的完全可以参考的。

微软的例子就比较好。

#21


都是些垃圾数据,不过也要有这些功能才行,不然别人还不吊死你了。

#22


如果使用WebService的话,你的应用程序服务器是无法主动给客户端发消息的,只能等待客户端的请求(特殊情况不算,只讨论一般情况下的处理方式)
我能想到的就是客户端每隔几分钟给服务器发个消息(意思就是:我还连着呐),服务器在指定时间段没没收到客户端消息,就认为该客户端已经断开连接.
客户端如果还有更多状态,写消息里就行

#23


那就把报表数据在存储过程里处理好了,返回给客户端生成表就是.
按照上面几位的说法,sql server2005生成报表的方式不错,我用oracle,没试过

#24


这个我一直没有想到好办法解决,之前我用的是socket连接,这样全双工实时通讯,但是连接多了,程序水好优化,连了8台设备就有点慢了,又没有写成三层结构,服务器经常反应慢


========================================================================
如果使用WebService的话,你的应用程序服务器是无法主动给客户端发消息的,只能等待客户端的请求(特殊情况不算,只讨论一般情况下的处理方式)
我能想到的就是客户端每隔几分钟给服务器发个消息(意思就是:我还连着呐),服务器在指定时间段没没收到客户端消息,就认为该客户端已经断开连接.
客户端如果还有更多状态,写消息里就行

#25


主要有四个摄像头+视频卡,在刷卡时要实现抓拍,有时四个一起上+其他四个普通的

#26


学习中.欢迎加入ASP.NET(C#)学习交流QQ群号:32801051

#27


太难了,看不懂是撒意思?????????、

#28


不懂啊             55555555555555

#1


这个.......多少钱啊?

#2


winForm实现半点问题都没有:
1,完全以WebServier方式实现数据增删改
2,UDP高效
3,免费都可以搞定动态IP解析,推荐(3322.org,comexe.cn)

#3


不好意思,这个只有分,只做技术讨论

要钱没有,要命也不给!

#4


服务器安全问题,主要体现在WebService的安全管理上!

参考:
http://searchwebservices.techtarget.com.cn/wsdevelop/wsaq/

#5


winform+webservice没有问题,可以做的

#6


主要是当数据量达到几万条时,不知道显示和报表应该用什么方法到呈现给用户!如果一次读到客房端那肯定会延时很长时间。

#7


楼主放心,现在的服务器硬件水平足够应付!

速度主要瓶颈在的网络速度!

#8


#9


你压一下 要保证200人在线顺畅运行的话大约每秒20到50足够了

#10


WinForm?

连接远程服务器,只有WebService或者Socket连接了

前者灵活,不安全,不稳定
后者安全稳定效率高

想不通楼主为什么不用B/S?

#11


一、实时连接服务器,数据集中存储服务器上,全部客户端只有连接上服务器才可以调用服务器数据,要保证200人在线顺畅运行。

//按照你的说法 客户端应该连接应用程序服务器而不是数据库服务器
电脑A做数据库服务器
电脑B做应用程序服务器 这里可以写一个DataAccess进行数据操作
然后电脑B上可以发布WebService ,这个项目可以对DataAccess做一个引用(实际就是一个程序)
电脑B逻辑上是两层,数据库和应用程序服务器分开在两台机器上可以提高性能

1.增加删除修改查询等功能 一般的数据库操作而已
2.客户端可以管理在线用户  这个在客户端登录的时候让客户端给WebService发相应的信息 记录下来就行
可以踢掉某个在线用户 可以加一个form验证,直接修改客户端的form验证为不通过,客户端再次连接就会失败.
三、服务器要求安全认证
用Form验证即可

#12


我现在用的是webservices+soap+Auth头认证方式,只是因为我的记录中有图片,并且每天的数据量是1000条左右,1 个月下来就有3万条,
(20KB(图片)+1K)*30000=6300000K,图片已经是JPEG压缩格式了
这个要是出一个月的报表,肯定会很慢,不知道谁有没有碰到过这样的问题

#13


我现在本身用的是B/S结构,只是有些操作要求安装ActiveX,很多客户都不愿意去装,觉得这个很不安全。加上自己也想体验一下三层c/s程序的写法,所以...

#14


Webservice

#15


做报表难道要把图片传到客户端???

#16


bitpolar(独自看天)说的有道理
我可以不下载图片,只要他查看谁的再下载谁的,这样是节省了很多的时间和流量

#17


不知道你的报表中有啥东西

#18


那我想客户的在线状态我应当可以用WebServices 中的Application状态来进行管理吧?

#19


SQL Server2005里面的报表服务是web方式的,在WinForm里面显示一个WebBrowser就OK

#20


B/S 下面的完全可以参考的。

微软的例子就比较好。

#21


都是些垃圾数据,不过也要有这些功能才行,不然别人还不吊死你了。

#22


如果使用WebService的话,你的应用程序服务器是无法主动给客户端发消息的,只能等待客户端的请求(特殊情况不算,只讨论一般情况下的处理方式)
我能想到的就是客户端每隔几分钟给服务器发个消息(意思就是:我还连着呐),服务器在指定时间段没没收到客户端消息,就认为该客户端已经断开连接.
客户端如果还有更多状态,写消息里就行

#23


那就把报表数据在存储过程里处理好了,返回给客户端生成表就是.
按照上面几位的说法,sql server2005生成报表的方式不错,我用oracle,没试过

#24


这个我一直没有想到好办法解决,之前我用的是socket连接,这样全双工实时通讯,但是连接多了,程序水好优化,连了8台设备就有点慢了,又没有写成三层结构,服务器经常反应慢


========================================================================
如果使用WebService的话,你的应用程序服务器是无法主动给客户端发消息的,只能等待客户端的请求(特殊情况不算,只讨论一般情况下的处理方式)
我能想到的就是客户端每隔几分钟给服务器发个消息(意思就是:我还连着呐),服务器在指定时间段没没收到客户端消息,就认为该客户端已经断开连接.
客户端如果还有更多状态,写消息里就行

#25


主要有四个摄像头+视频卡,在刷卡时要实现抓拍,有时四个一起上+其他四个普通的

#26


学习中.欢迎加入ASP.NET(C#)学习交流QQ群号:32801051

#27


太难了,看不懂是撒意思?????????、

#28


不懂啊             55555555555555