智能客户端(SmartClient)

本文探讨了智能客户端在企业环境中的应用,对比了C/S和B/S模型的优缺点,提出.NET平台上的智能客户端模型结合了两者的优势。智能客户端的特点包括无接触部署、自动更新、离线工作和动态加载应用组件。文章还介绍了如何在.NET平台上构建智能客户端,包括安全性、可扩展性和可配置性的实现,并给出了WinForms应用程序的示例,详细阐述了网络运行和本地运行的模式以及程序的发布和更新流程。
摘要由CSDN通过智能技术生成

智能客户端(SmartClient)


    本文主要讨论基于企业环境的客户端应用程序模型,由于本人曾经从事过传统的客户端/服务器两层结构应用程序和基于.net平台的多层结构应用程序的开发,因此本文将着重描述.net平台上的智能客户端应用程序模型,并根据一般的企业应用系统的需求来一步一步构造出一个较为完整的客户端软件框架。

简介
    智能客户端的概念作为Microsoft.net平台的一个特性而被提出,其实它的很多功能在传统的应用程序中早已存在,只是.net平台从系统和语言级别对它提供了支持,使开发智能客户端应用程序更为便捷。本文将从企业应用系统的角度来讨论智能客户端应具有的功能和特性以及如何在.net平台上实现。

概述
    1、当前的客户端应用程序模型比较
    当前的客户端应用程序模型大致分为两种:C/S(客户端/服务器模型)和B/S(浏览器/服务器模型)。以企业环境为对象的软件开发人员,对于以浏览器为基础的精简型客户端 (Thin Client) 应用程序模型,以及对应的丰富型客户端 (Rich Client) 之间,究竟该如何取舍,面临了困难的世代替换。
    以浏览器为基础的应用程序的优缺点:

  • 易于安装:可以用于许多桌上型计算机,并且和客户机算计的操作平台无关。大多数计算机已经默认安装有浏览器软件(有些应用系统需要基于IE浏览器,或者需要安装java虚拟机,在此暂且忽略不及)。
  • 易于部署与维护:只需要在服务器端进行部署和维护工作。
  • 必须在线工作:工作效率和网络是否延迟有关。
  • 不能充分利用客户端计算机的资源:只能通过有限的HTML语言来呈现用户界面,没有利用客户端计算机的计算处理能力。只能利用浏览器的打印功能来打印资料,不适用于企业的报表打印。
  • 网络传输量大:由于客户端不能保存状态数据,因此必须在客户端和服务器之间传输用户界面内容以及所需的数据。
  • 安全性较低。对于服务器来说可以通过防火墙软件来过滤数据,因为所有传输内容都是基于HTTP端口。但很难对数据进行加密和签名以保证在传输过程中的完整性。(HTTPS似乎并不能解决问题)
  • 适合电子商务或不要求严格控制客户端的应用程序。  

    丰富型客户端应用程序的优缺点:

  • 可以离线工作:前提是本地必须有缓存数据的能力,这涉及到与服务器数据同步的问题。
  • 充分利用客户端计算机的资源:可以为用户提供丰富的界面元素,可以存取本机磁盘与本机应用程序接口 (API),执行速度较快。
  • 网络传输量较小:只需在客户端和服务器之间传输数据。
  • 安全性较高。可以方便的在客户端和服务器执行加密和解密操作,同时也可以通过Web Service来消除传统的应用程序诸如防火墙和HTTP的障碍。
  • 安装、部署和维护工作较为繁琐:对客户端计算机在操作平台和附加软件上有一定的限制和要求。
  • 适合企业内部应用程序。  


    目前,还有一种不是基于浏览器的瘦客户端应用程序。通过诸如Microsoft Terminal Server、Citrix System的Independent Computing Architecture和MetaFrame产品这样的技术和工具把它们提供给用户。这些类型的解决方案可以让用户运用胖客户端的经验,并通过集中的软件安装和维护来进行管理,这对公司来说是很划算的。这种模式的问题是,当应用程序没有连接到应用服务器时,用户就不能用了。客户端不进行真正的处理,处理完全依赖应用程序服务器,这种情况会导致服务器性能问题,并消耗桌面计算机的CPU周期。
    总之,相对于丰富型客户端,以浏览器为基础的模型对于信息科技 (IT) 系统管理员而言是非常棒的模型,但对于开发人员与使用者而言却有很多不足的地方。
Microsoft .NET Framework 将满足这三方的需求。它的智能型客户端应用程序模型结合了丰富型客户端模型的强大功能与弹性,还有以浏览器为基础之模型的容易部署与稳定性。
    2、客户端应用程序还应具备的其他功能
    对于企业应用系统来说,客户端应用程序作为整个系统与用户的交互界面,还需要考虑以下功能:

  • 安全性:这里的安全性主要是指应用层次的安全性,主要通过用户权限、角色分配来实现。对于客户端应用程序来说,通常需要提供一个登录窗体或登录页面来完成用户身份的认证。对安全性要求较高的应用系统可能还需要通过公共密钥基础设施(PKI)为应用提供可靠的安全服务,客户端则附加了加密签名模块。
  • 可扩展性:客户端应用程序应该具有包含各种不同类型的应用模块的能力,同时又能在使用过程中的不断的增加应用来完善整个系统。因此可以将客户端应用程序设计为一个容器,而各个应用模块作为组件由容器进行动态加载。
  • 可配置性:由于用户权限和用户喜好的不同,客户端加载的应用组件以及呈现的表现形式都因人而异。需要由应用系统将用户权限的范围以及用户的个性化配置信息传递给客户端&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值