首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 智能客户端smart client与web service的问题 [已结贴,结贴人:sunhejun983]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 19:56:49 楼主
    在网上看到以下一段描述,想和大家讨论一下

      smart client应用程序可以与web service方便的集成应用, 这样可以轻松享受C/S应用程序的完美用户体验而不需要
    担心放火墙等等的一系列问题

    问题:
    1 一定要使用Web service吗,对于局域网应用程序,可不可以不使用Web service,而直接在FORM中进行数据库操作
      (我觉的使用Web service,回增加我们编程的工作量,例如:一个有上百个字段的个人信息登陆画面,我要把这些字段传给Web service,
      它有不能做到相WEB那样自动传过去)
    2 有些资料上说, smart client不适合使用在广域网上,对吗,为什么
      (假如一个公司在各大城市多有分布,我们为他们开发一个管理软件,应该是可以使用smart client的吧)

    我没多少分,请大家包涵,
    请各位高手多多指点,帮助我们这些菜鸟早日飞翔
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 20:01:371楼 得分:0
    只能回答你部分问题,WebService是可以使用Asp.net Membership进行验证的,在服务端和客户端都要进行配置
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    发表于:2008-05-16 00:39:432楼 得分:5
    ws使用http常用端口,例如80或8080,路由器通常不会禁止它。而其它服务不是使用web端口。现在对于.net,ws应该是用新名词wcf。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jinjazz
    • 等级:
    发表于:2008-05-16 02:19:003楼 得分:0
    smartclient不一定非要使用webservice,只要可以请求web服务器就行了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jinjazz
    • 等级:
    发表于:2008-05-16 02:21:354楼 得分:1
    比如你有一个dll,可以供客户端使用,如果通过局域网请求,就可以通过本地反射来实现,如果放在web上,可以让web服务器通过反射来执行其中的某方法。这样配合一个完善的企业框架可以很方便的进行开发和调试,基本上和开发普通的c/s系统没有什么区别。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:25:435楼 得分:0
    引用 2 楼 sp1234 的回复:
    ws使用http常用端口,例如80或8080,路由器通常不会禁止它。而其它服务不是使用web端口。现在对于.net,ws应该是用新名词wcf。


    在局域网内应该不存在路由器的问题把,在防火墙中将SQL SERVER的端口打开就可以了吧.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-16 16:34:416楼 得分:0
    引用 4 楼 jinjazz 的回复:
    比如你有一个dll,可以供客户端使用,如果通过局域网请求,就可以通过本地反射来实现,如果放在web上,可以让web服务器通过反射来执行其中的某方法。这样配合一个完善的企业框架可以很方便的进行开发和调试,基本上和开发普通的c/s系统没有什么区别。


    也就是说,smart client是可以使用在广域网上的,
    请问您有没有开发过用在广域网上的smart client项目,
    速度如何?

    我们去年开发过一个,不过我是用VPN将分布在三个城市的公司连起来的,
    而且客户对速度不是很满意,
    他们的带宽是3M,
    不过具体有多慢,我并不知道,(因为在日本,而且有时候只是用户期望过高,或者是我们的数据库设计的不好)
    也就是我并不知道是否真的慢,或者慢在哪里,

    大家做过的,来讨论讨论效果如何?
    我想这是一件很有意思的事,对大家都有帮助
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 17:43:597楼 得分:0
    数据量大了很慢,还不如直接用asp.net
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    发表于:2008-05-17 18:12:598楼 得分:0
    引用 5 楼 sunhejun983 的回复:
    在局域网内应该不存在路由器的问题把,在防火墙中将SQL SERVER的端口打开就可以了吧.


    你并没有在问题中说明你的程序将来“仅在局域网中使用”。

    实际上,smart client就是为了能够解决远程(例如跨城市或者更远)的安装维护问题而生的。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    发表于:2008-05-17 18:44:029楼 得分:10
    实际上你只是问“对于局域网应用”是否适合WS的问题,而smart client和ws是两个并不直接相关的问题。不过,它们都是适合大型网络应用的,这个大型不仅仅指广域网,也指比“办公室内几台电脑联网”稍微复杂一些的网络,例如一个soping mall大厦中许多店铺的电脑(或者小局域网)组成的稍微复杂一点的网络。不论是为了提高安全性还是为了提高联通可靠性,它们都比局域网要复杂,例如里边有很多路由器和服务器。ws比较简单可靠,对网络的要求不高,特别适合那些看上去时通时断的低速网络;当每一个网段都对路由器进行了严格限制时,http总是可以走通的。

    而smart client的核心就是它自动从网上部署,自动更新组件,无需人工进行安装。这本来与通讯方式没有必然关系,这是解决软件部署和升级方面。它用于部署桌面程序,而非web浏览器程序。

    不过他们组合在一起,是非常适合开发终端分布很远的大型网络软件。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    发表于:2008-05-17 18:48:2410楼 得分:0
    soping mall  -->  shopping mall

    shopping mall中的商家各种各样,各有各自的财务部门和多个销售终端,但是各自互不相同。同时又要与soppping mall的总部有联系。终端经常移动,例如(一个活动周期)临时使用wifi无线路由器来将几台收银机从店内搬到露天广场就是一例。如果以局域网的概念去开发这类大型软件,不如以广域网的概念去开发,然后用在相对不那么“广域”的网络上,形同运营更为可靠方便。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    发表于:2008-05-17 18:54:0311楼 得分:0
    引用 6 楼 sunhejun983 的回复:
    我们去年开发过一个,不过我是用VPN将分布在三个城市的公司连起来的,
    而且客户对速度不是很满意,
    他们的带宽是3M,
    不过具体有多慢,我并不知道,(因为在日本,而且有时候只是用户期望过高,或者是我们的数据库设计的不好)
    也就是我并不知道是否真的慢,或者慢在哪里,


    当你以1000M速度的网络认识去开发c/s程序,一旦运行在只有3M的网络上,程序运行一定会在一些关键的结算部分出大问题。例如原来某个功能有3秒钟延迟丝毫感觉不变,现在变为20分钟延迟就很难使用了。所以,如果你首先在internet基础上开发c/s或者wcf或者web应用,然后再用在高速网络上,程序会没有任何问题。在高速网络上开发,何在低速网络上开发,从程序架构设计、交互设计、数据缓存设计等很多方面都有本质的不同。我建议你任何大型应用都基于低速网络来设计。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    发表于:2008-05-17 19:21:5512楼 得分:1
    c/s可以应用在低速的网络上。但是,在低速的网络上运行的程序对架构师的技术要求比较高,而在高速的网络上开发程序则那些滥用网络带宽反复大量读写后台服务器的程序也很可能一时看不出来毛病。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-17 21:32:3313楼 得分:0
    我也在研究smartclient
    http://csla.blog.sohu.com/
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 15:24:1314楼 得分:0
    感谢sp1234
    让我对这种架构多了一点认识

    下面谈谈我门的一个憋脚的性能改善

    记得在做我们第一个smartclient项目时,
    我们也在internet上做了一点性能测试,(是最基本的,不包括压力测试)
    感觉太慢了,
    我们的带宽是2M的,web service向客户端传递数据采用dataset

    我觉得web service传递采用的是XML,在将dataset格式化为XML,肯定会使数据量变的很大
    于是我就首先将datatable转换为字符串,然后以字符串数组传递,后来速度变快了很多

    不过对与网络我不是很清楚,
    我在苏州测试很好(将自己的机器作为服务器,然后去其他朋友家访问),
    结果,在上海缺变的很慢(将自己的机器作为服务器,然后想上海某公司展示一下我们的架构)

    我那个哭啊,
    这可能是哪些方面的原因呢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-31 16:11:0315楼 得分:3
    你可以先测试一下你两台机在上海的联网速度是否达到你在苏州时的速度
    不同地方的联网速度可能相差很远的,特别对于那些不同服务商的更加如是(例如你在苏州时两台机都是电信接入,但在上海时变成网通了)

    还有web service还有一种二进制的传输方式的,如果变成字符串的话,还可以再考虑一下把字符串压缩后再传输,压缩后一般只有原来
    大小的30%左右,这样可以更快一点

    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved