一起谈.NET技术,Silverlight 应用整合

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

  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的数据与通信的中,除了通信渠道与序列化的问题外,最值得注意的两点:异步模式与同步模式的区别、不同开发平台的数据类型匹配问题。

目录
相关文章
|
8天前
|
机器学习/深度学习 人工智能 Cloud Native
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台
在数字化时代,.NET 技术凭借其跨平台兼容性、丰富的类库和工具集以及卓越的性能与效率,成为软件开发的重要平台。本文深入解析 .NET 的核心优势,探讨其在企业级应用、Web 开发及移动应用等领域的应用案例,并展望未来在人工智能、云原生等方面的发展趋势。
21 3
|
8天前
|
开发框架 安全 Java
.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力
本文深入探讨了.NET技术的独特魅力与优势,涵盖高效的开发体验、强大的性能表现、高度的可扩展性及丰富的生态系统等方面,展示了其在软件开发领域的核心竞争力。.NET不仅支持跨平台开发,具备出色的安全性和稳定性,还能与多种技术无缝集成,为企业级应用提供全面支持。
17 3
|
12天前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
15天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
28天前
|
JSON 算法 安全
JWT Bearer 认证在 .NET Core 中的应用
【10月更文挑战第30天】JWT(JSON Web Token)是一种开放标准,用于在各方之间安全传输信息。它由头部、载荷和签名三部分组成,用于在用户和服务器之间传递声明。JWT Bearer 认证是一种基于令牌的认证方式,客户端在请求头中包含 JWT 令牌,服务器验证令牌的有效性后授权用户访问资源。在 .NET Core 中,通过安装 `Microsoft.AspNetCore.Authentication.JwtBearer` 包并配置认证服务,可以实现 JWT Bearer 认证。具体步骤包括安装 NuGet 包、配置认证服务、启用认证中间件、生成 JWT 令牌以及在控制器中使用认证信息
|
11天前
|
人工智能 开发框架 安全
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
|
1月前
|
人工智能 开发框架 C#
C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
C#/.NET/.NET Core技术前沿周刊 | 第 6 期(2024年9.16-9.22)
|
1月前
|
人工智能 开发框架 Cloud Native
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)
|
1月前
|
数据可视化 NoSQL C#
C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)
C#/.NET/.NET Core技术前沿周刊 | 第 8 期(2024年10.01-10.06)

热门文章

最新文章

下一篇
无影云桌面