应该用什么来做服务端呢?
客户端用Silverlight展现数据
服务端去数据库中取数据
因为所有的客户端需要展示的数据都是一样的。而且要求五秒钟刷新一次,如果采取调用webservice服务,那不同的客户端同时去调用服务时,服务端就会产生很多数据库访问,而这些访问很多都是没必要的,因为读取的数据都一样。
设想实现:
如果第一个客户端要求服务时,服务端开始去数据库取数据并每隔五秒写到一组公用的变量中,新的其他客户端如再发出请求则直接读取公用变量。服务端只负责去数据库取数并刷新公用变量。如果超过30分钟都没有客户端请求则服务端就停止刷新。直到有下一次请求时再启动刷新。这样可以减少很多没有必要的数据库访问。反正所有客户端要求的数据都是一样的。可服务端应该用什么技术来实现呢?webservice服务好像不行。
[解决办法]
服务器端可以考虑使用WCF服务,可以通过客户端发起请求,也可以通过iis主动进行更新。至于是否使用公共变量存储数据,需要看具体项目数据量,如果数据量较大,保存在内存中并不是一个好办法,特别是对于安全性以及稳定性要求高的项目而言,一旦服务器内存溢出或者出现断电行为时,会造成数据丢失。
5秒刷新,并非一定要链接数据库,可以通过开关变量控制是否链接数据库,如果没有数据更新,可以进行忽略操作。