日期:2014-05-19  浏览次数:20691 次

请教一下关于C/S的初级问题!!
第一次做关于C/S的东西..有一些不明白的,请帮忙解决一下~~~
谢谢~~~
前提:c#2005     sql2000     局域网       winform
问题:
1、先大体说一下这类程序的解决思路吧...如果服务器没有服务端,直接用sql的做服务端,客户端直接连接异地SQL服务器,算不算正常解决办法??其它的解决办法应该是什么样子的??
2、客户端连接服务器所需要信息应该怎么解决??可以放inf文件里或写注册表里,如果考虑安全方面,应该怎么做??
3、网上说的关于remoting与webservices是怎么样的一种解决思路??
谢谢......太菜的样子...

------解决方案--------------------
直接连接数据库就行了。至于服务器信息,你想存哪都行。安全的话你可以把数据加密。
------解决方案--------------------
你可以把连接服务器的信息放在config文件里,到时候直接读取配置文件就可以了。考虑安全的话可以加密存储
_dbConnectionString = (string)new AppSettingsReader().GetValue( "ConnectionString ", typeof(System.String));
------解决方案--------------------
如果直接通过局域网链接数据库的话就不算是C/S架构了吧!

我建议再写个服务端程序,然后用Remoting是客户端与服务端通信。
WebService有点慢。
------解决方案--------------------
一、 什么是C/S和B/S

第一、什么是C/S结构。C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client(客户端)端和Server(服务器端)端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。如我院使用的上海超兰公司“案件统计”管理软件就是典型的C/S体系结构管理软件。

第二、什么是B/S结构。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。目前我院内网(Intranet)、外网(Internet)和北京东方清大公司“案件、办公管理软件”就是B/S 结构管理软件,干警在局域网各工作站通过WWW浏览器就能实现工作业务。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效

------解决方案--------------------
要考虑的因素有很多,如下:
1、是否在多网段内进行数据库操作
2、是否需要异地备份
3、是否需要数据同步
4、如果出现断网情况如何处理

remoting是指远程对象引用,即在服务器端或者前置机上开放一个端口用于客户端进行数据库对象引用,以便在客户端直接操作数据库。
webservice可以看成是建立一个asp.net程序,由客户端发送sql语句或者数据对象,在webservice程序端进行和服务器的连接,同时负责返回数据。
------解决方案--------------------
如果真的这样写C/S程序的话,应该是相当复杂的一个工程吧
稍微作一点修改,需要同时修改客户端和服务器端两边的程序,而且还要考虑客户端的版本情况

还是B/S方便多了
------解决方案--------------------
这种方式叫做smart client(智能客户端),和b/s架构各有优势,在有些时候是不得不用C/S来做的。
------解决方案--------------------
LS的是把B/S的编程思路拿到C/S里来处理了,C/S的客户端可以采用自动升级的方式,和一些网络游戏的客户端版本类似。服务器端一般只要处理数据就行了,和客户端是两个不同的功能模块。