Silverlight与企业信息化

  在企业应用系统中,企业客户不在满足于呆板的Portal、树形结构、数据堆积的表格和满屏的文字描述。企业客户越来越倡导用户体验,Silverlight迎合了这种需求,实现了炫目的体验和丰富交互的应用,更重要的是Silverlight更适合企业应用系统的开发,依靠.Net平台,使用C#高级语言代替JavaScript脚本语言,实现了强大的客户端计算能力、支持多线程,丰富的控件、特效与动画,更可控的浏览器适应性,更安全的沙箱模式,客户端嵌入式数据库等。

  现在企业应用开发有两大阵营,一个是Java,另一个是.NET平台,难道Silverlight只能服务于后者吗?答案:不是。Silverlight定位于,可以快速部署到浏览器中的富互联网应用。Silverlight将要覆盖的领域是“客户端应用程序”和“媒体体验”。Silverlight是为连接到主机的网页内容而设计的,其特点是不但用户可深入地参与到交互中,而且应用还可在任何浏览器中运行。

图1 Silverlight各组件之间的关系

  “Silverlight应用”运行于浏览器中的“XAP文件”本身需要使用Microsoft Visual Studio 工具开发,就像“Flash应用”运行于浏览器中的“SWF文件”需要使用AdobeFlex工具开发一样。“Silverlight应用”可以和“Flash应用”一样嵌入到已有的网页中运行,“应用本身”需要数据时再去向后端服务器通讯,例如:“Flash应用”经常使用的从服务器下载“XML数据文件”后再显示于应用中的通讯方案。

  Silverlight应用通信原型

  Silverlight内嵌在HTML网页中,自然就包含在web浏览器的沙箱内。非常重要的一点是,在Silverlight运行的客户端机器并不需要安装.NET。运行Silverlight应用所需的必要资源全都包含在Silverlight浏览器插件中,所有互操作场景都建立在Silverlight之上。Silverlight应用的最终生的XAP文件,在被用户下载到本地后所有通信任务都是由前端的Silverlight应用通过网络访问后端Server的数据,以回传绑定显示在UI之上。Silverlight支持广泛的网络能力如:REST、SOAP、POX,RSS及标准HTTP服务等网络技术的调用,这部分对前端的Silverlight特别重要。下面所示是通信原型:

图2 Silverlight通信原型

  前端的Silverlight通过网络访问后端服务器的数据,并以在UI之上绑定显示回传数据的过程分为以下步骤:

  1. 内嵌在HTML网页中Silverlight应用发起请求或回传数据。
  2. 客户端内存中的“请求”或“数据”被序列化为可传输的字符串,并发送到服务器。
  3. 服务器接收并反序列化传输的字符串为请求或数据到服务端内存中处理。

  Silverlight通信技术

  Silverlight提供了丰富的与服务器端通信能力,目前Silverlight支持TCP、UDP、Socket等网络协议,以及HttpHandler、WebServices等多种应用层协议,还可以通过WCF RIA Service数据“透明”访问方式(通过向客户端公开数据访问层,屏蔽了通信层手工编码)快速实现实体通信。下面所示为可用于Silverlight的通信技术:

图3 用于Silverlight的通信技术

  Silverlight 运行时支持若干将网络应用程序与远程主机进行连接的主要方法:

序号

命名空间

用途

1

System.Net

WebClient

HTTP

这些类使用 HTTP 或 HTTPS 协议来进行网络通信

2

System.Net.Sockets

套接字

这些类提供一个低级别的套接字接口,该接口可用于更常规的使用单播的网络通信

3

System.Net.Sockets

UdpAnySourceMulticastClient UdpSingleSourceMulticastClient

这些类为 UDP 多路广播客户端提供支持

  Silverlight 运行时直接支持的连接方法,都可用于非.Net平台的技术平台如:JAVA和PHP等。

  数据或命令要正常交换要具备两个必要条件:渠道和通用语义。这里的渠道就是与远程主机的连接方法,这里的通用语义指的就是:“序列化与反序列化”。当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以可保持或传输的格式在网络上传送。把对象转换为可保持或传输的格式的过程称为对象的序列化。把可保持或传输的格式恢复为对象的过程称为对象的反序列化。

序号

类型

通途

1

二进制序列化

保持类型保真度,这对于在应用程序的不同调用之间保留对象的状态很有用例如,通过将对象序列化到剪贴板,可在不同的应用程序之间共享对象。

2

XML 序列化

不保持类型保真度,当您要提供或使用数据而不限制使用该数据的应用程序时。

3

JSON序列化

不保持类型保真度,一种通用的数据格式,有着存储体积小的特点。

  Silverlight应用整合

  在原有应用集成方面,如果服务器端使用.Net平台,那么Silverlight客户端程序可以重用原有通信方式,而不必对服务器端程序有较大改动,如果服务器端使用Java平台,Silverlight也提供标准WebServices、Http、Socket多种交互方式进行通信,服务器端只要进行简单的服务封装就可以实现与Silverlight客户端的数据通信。因此,Silverlight基于.Net提供了快速与服务器端程序集成的能力。事实上,在笔者所开发的项目中,已经实现了Silverlight客户端与.Net、J2EE(通过REST接口)、Tuxedo(通过SALT接口)的数据通信。

图4 原有应用集成

  因此,Silverlight基于.Net提供了快速与服务器端语言集成的能力。事实上,在笔者所开发的项目中,已经实现了Silverlight客户端与.Net、J2EE(通过REST接口)、Tuxedo(通过SALT接口)的数据连通性。

  Silverlight 以前对于支持网络的插件的设计将连接性限制到主机或源站点。这意味着,Web 应用程序只能向后与其部署服务器通信,因此,网络应用程序可以连接到从中下载它们的主机。Silverlight 2 和更高版本包括对跨域连接的支持,这使得应用程序可以访问并非源站点的其他位置中的资源。这是一个重要的功能,它使 Silverlight 应用程序可以使用 Web 上的现有服务。

  结束语

  企业客户越来越认识到RIA技术对于企业应用的重要性,而Silverlight就是实现企业应用RIA重要的选择之一。Silverlight 定位于“客户端应用程序”,无论是互联网应用中,还是企业应用中,都可以为使用者带来的愉悦感和价值感。在Silverlight的数据与通信的中,除了通信渠道与序列化的问题外,最值得注意的两点:异步模式与同步模式的区别、不同开发平台的数据类型匹配问题。

转载于:https://www.cnblogs.com/waw/archive/2011/09/01/2162871.html

一起谈.NET技术,Silverlight 应用整合相关推荐

  1. 计算机辅助设计对提升产品质量,浅谈CAD技术与计算机辅助设计的应用

    浅谈CAD技术与计算机辅助设计的应用 来源:用户上传 作者: 杨思宇 [摘 要]随着社会经济的不断发展与进步,各领域的技术也不断的进行着革新.本文以计算机辅助设计当中的开发出的成组技术为主,对成组技术 ...

  2. 浅谈BIM技术在“智慧工地”建设中的应用

    浅谈BIM技术在"智慧工地"建设中的应用 随着信息技术的不断发展,建筑行业的信息化程度不断提高,BIM技术在建设行业得到了广泛的推广和应用,同时,伴随着大数据时代的到来,智慧城市的 ...

  3. 计算机在英语课堂的应用,浅谈信息化技术在英语课堂的应用

    浅谈信息化技术在英语课堂的应用 香洲区第一小学  李玉莲 摘 要:信息技术与课堂整合已经成为当代新课程改革的一个亮点,利用信息技术和网络资源可以丰富教学的内容和形式,现代信息技术给小学英语教学改革注入 ...

  4. 浅谈幼儿园计算机论文,浅谈信息技术与幼儿教育的整合论文

    浅谈信息技术与幼儿教育的整合论文 一.信息技术融入学前教育的现状 很多科学家和心理家们都在探讨是否应该将信息技术引入孩子的生活和学习当中.因为信息技术的世界是丰富多彩的,它有着正面信息的同时也有着很多 ...

  5. 计算机技术应用及信息管理,计算机应用技术与信息管理整合研究(共2808字).doc...

    计算机应用技术与信息管理整合研究(共2808字) 计算机应用技术与信息管理整合研究(共2808字) 摘要:随着现代信息技术的不断发展,计算机技术已广泛应用于各行各业的管理和运行中,且呈现迅猛的发展趋势 ...

  6. 浅谈虚拟化技术下的云安全如何处置

    浅谈虚拟化技术下的云安全如何处置 近年来,云计算是目前非常热门的一个研究领域,其实它并不是一种全新的技术,而是许多技术的融合体,包括分布式计算.动态和拓展等各种各样的技术算法,而虚拟化技术是云计算里最 ...

  7. 技术创业需胆识 谈IT技术人员的创业 (http://www.cnblogs.com/dudu/archive/2007/05/27/761740.html)...

    技术创业需胆识 谈IT技术人员的创业 作者:李立辉 我自己介绍一下:本人96年西点毕业,学的是无线通信,柳传志是我的校友,后来分配到北京巨龙做交换机,98年去了深圳中兴,当时看到中兴日益强大,和华为的 ...

  8. 浅谈.NET技术公司的实习生培养

    浅谈.NET技术公司的实习生培养 背景 近几年.NET开发者市场的越发不景气,一毕业就选择.NET技术的开发者更是少之又少.一方面是公司效益的日益提高,一方面却是招聘优秀人才的速度总是赶不上公司发展的 ...

  9. 以计算机谈人文科学,阅读下面一段文字,完成问题   自20世纪80年代以来,世界都在谈“软科学技术”,何谓软科学?经常听人说:“脑子不够使。”这其实就是对软科学的需求。于是,从古至今,...

    阅读下面一段文字,完成问题 自20世纪80年代以来,世界都在谈"软科学技术",何谓软科学?经常听人说:"脑子不够使."这其实就是对软科学的需求.于是,从古至今, ...

最新文章

  1. 一、多个txt文件合并成1个txt文件
  2. 免费报名 | 智源论坛:智能处理器探索,AI技术前沿精粹尽览
  3. 联想扬天T4900v开启VT-x方法
  4. ACM题解系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
  5. Objective-C 之category
  6. 86-90linux下配置javaEE环境
  7. SEO技巧之网站优化的具体细节
  8. 微信小程序scroll-viwe遇到的问题
  9. linux中pushd和popd用法,在Linux中使用pushd和popd命令操作目录的用法
  10. 如何在PHP7中安装mysql的扩展
  11. vs2008 sp1下载中
  12. html5中左浮动怎么写代码,html浮动详解(代码实例)
  13. C语言如何设置随机数
  14. win10user文件夹迁移_Win10纯净版下迁移用户文件的技巧
  15. Codeforces Edu:双指针 » Step 3 » Practice:A. Looped Playlist
  16. 2019最新升级全能版vbox硬件级虚拟机系统 vm去虚拟化修改信息工具 批量启动克隆 virtualbox CPA网赚挂机电商
  17. math.h数学函数
  18. 阿里云 OSS SDK :上传的图片直接访问变成下载问题解决
  19. python 元组拆包_Python元组拆包和具名元组解析实例详解
  20. [统计学笔记] 必须要掌握的统计学基本概念和术语(更新中)

热门文章

  1. HashMap的使用方法及注意事项
  2. 关于苹果, 有多少事可以重提
  3. RabbitMq(九) SpringBoot整合RabbitMQ消费者示例代码
  4. 谷歌pay服务端文档_Google pay 服务器验证
  5. centos 卸载vsftp
  6. 夹具PHP,PHP类的静态(static)方法和静态(static)变量
  7. Python精通-运算符与基本数据类型(二)
  8. SpringBoot配置Profile以及配置文件的加载位置
  9. 理解Linux的overcommit memory
  10. 一文读懂 etcd 的 mvcc 实现