Silverlight3系列(九)Silverlight 及其相关技术简介

Silverlight与WCF通信
本文介绍了Silverlight应用及其与WCF服务的通信机制。涵盖了RIA应用的特点、Silverlight控件使用、数据绑定与验证、离线存储机制、WCF安全配置等内容。适合希望深入了解Silverlight开发与WCF服务集成的开发者。

1、Silverlight应用类型

  •RIA Rich Internet Applications

  •是一种具有近似于传统桌面应用软件系统功能和特性的网络应用系统。RIA系统最大的特点是将大部分处理任务都从用户界面端移植到客户端,仅保留一些必要数据与服务器端进行信息交互。

  •RIA系统的特性:–运行于浏览器中,不需要额外安装支持软件 –在本地运行时,受安全沙箱全程保护。

2、Silverlight中的ABC

  •<endpoint address="" binding="basicHttpBinding" contract="WcfService.IServiceCustomer">

  •A address  访问地址

  •B basicHttpBinding 绑定协议(目前就支持这一种)•C contract 契约

3、常用控件使用

  •Silverlight控件应用开发

4、契约

  服务契约 ServiceContract
  操作契约 OperationContract

ExpandedBlockStart.gif 代码

  
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
[ServiceContract]
public interface IServiceCustomer
{
[OperationContract]
Domain.Server. Customer GetCustomer(SysUser user,
int customerId);
[OperationContract]
IList
< Domain.Server.Customer > GetAll(SysUser user);
[OperationContract]
void Add(SysUser user,Domain.Server.Customer customer);
[OperationContract]
string SayHello(SysUser sysUser);
}

 

  •数据契约 DataContract

  •成员契约 DataMember

 

ExpandedBlockStart.gif 代码

  
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> [DataContract]
public class Customer
{
private int _intCustomerId;
private string _strCustomerName;
[DataMember]
public virtual int CustomerId
{
get { return this ._intCustomerId; }
set { this ._intCustomerId = value; }
}
[DataMember]
public virtual string CustomerName
{
get { return this ._strCustomerName; }
set { this ._strCustomerName = value; }
}
}

 

5、序列化

  •序列化的目的就是把一种私有的或者某种平台下使用的数据类型转化为标准的可以公开交互的数据信息样式。这个过程就叫序列化。序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。

  • 序列化就是把本地消息或者数据的类型进行封送,转换为标准的可以跨平台、语言的信息集,为别的系统或者服务所用。

6、Silverlight 应用程序中XAP文件

  •XAP文件是Silverlight 应用程序编译打包后的一个文件,它是一个标准的zip压缩文件,包括了Silverlight 应用程序所需的一切文件,如程序集、资源文件等。

  •客户端访问sl网站之后会下载到客户端

  •可以动态加载

  •体积优化

  •Assembly Caching

7、Silverlight中的离线存储

  •离线存储 Isolated Storage

  •关于 Silverlight3 的离线模式

  •高级编程 chapter18

  •详解Silverlight 2中的独立存储(Isolated Storage

  •独立存储(Isolated Storage)是Silverlight 2中提供的一个客户端安全的存储,它是一个与Cookie机制类似的局部信任机制。独立存储机制的APIs 提供了一个虚拟的文件系统和可以访问这个虚拟文件系统的数据流对象。Silverlight中的独立存储是基于 .NET Framework中的独立存储来建立的,所以它仅仅是.NET Framework中独立存储的一个子集。

  •Silverlight中的独立存储有以下一些特征: –每个基于Silverlight的应用程序都被分配了属于它自己的一部分存储空间, 但是应用程序中的程序集却是在存储空间中共享的。一个应用程序被服务器赋给了一个唯一的固定的标识值。基于Silverlight的应用程序的虚拟文件系统现在就以一个标识值的方式来访问了。这个标识值必须是一个常量,这样每次应用程序运行时才可以找到这个共享的位置。   –独立存储的APIs 其实和其它的文件操作APIs类似,比如 File 和 Directory 这些用来访问和维护文件或文件夹的类。 它们都是基于FileStream APIs 来维护文件的内容的。 –独立存储严格的限制了应用程序可以存储的数据的大小,目前的上限是每个应用程序为1 MB。 –在SL3中增大为25MB

8、SL3的独立存储

  •Silverlight 3 提供了强大的离线模式,通过离线模式,你可以获得如下益处:

  •增加用户访问应用的粘度
通过提供离线的模式,增加用户对应用的粘。

  •提供离线体验
可以提供无需网络的应用体验。

  •运行于安全沙箱
通过沙箱机制,提供更加可靠的安全浏览体验。

  •不需要管理员权限 更加灵活的安装。

  •独立存储空间(Isolated Storage)更大

提供 25M 的默认独立存储空间。

  •网络状态支持
提供对网络状态变化的事件响应支持。

  •自动升级
自动检测服务器应用的更新状态,即时更新应用。 在线、离线状态定制
可根据在线、离线状态调用不同 UI

9、数据绑定

  •绑定一个对象

  •2、双向绑定

  •3、绑定服务

  •4、绑定集合 –ItemsSource –DisplayMemberPath –ItemTemplate –ItemsPanel

  •5、数据格式转换

  •Silverlight3高级编程 Chapter 16

10、数据验证

  •ValidatesOnException

  •2、NotifyOnValidationError

  •3、Validation Class 验证类

  •4、Input Validation输入验证

  •Silverlight3高级编程 P548-P553

  •技巧:在Silverlight应用程序中进行数据验证 Silverlight3系列(六)数据验证 Data Validation

11、数据库的三种交互方式比较


12、知识点:版本

  •RTM版是最终压盘版,Release To Manufacturing,也就是交付给光盘制作厂商,这和最终发布版一样。发布RTM后,厂商若要修改就只有通过发布SP来完成了。

  •RC版是发布候选版,Release Candidate,一般是RTM版本前的几个预览版,但是这个阶段来说基本功能已经完成,主要是用来捉bug了,所以发布RC后,基本功能不会有大的变化了,只要各种测试能够通过,这也表明最终发布不远了。

  •CTP是社群技术预览版,Community Technology Preview,这个版本只是用来在社区内发布,验证市场情况和用户认可度,早于RC版,就像Atlas,在发布了多个CTP后,突然剑峰一转,变为了ASP.NET AJAX,所以说CTP版本不一定可靠,可能在功能上都会有大的变化。

13、整体架构

14、好处

  •可以分层开发,不用每个人从底层写到上层,集中精力,精益求精,方便后期优化

  •中间层可插拔,中间层可以优化,可扩展性

  •ORM

  •增加可测试性

15、WCF

  •WCF全称Windows Communication Foundation,是Microsoft为构建面向服务的应用提供的分布式通信编程框架,是.NET Framework 3.5的重要组成部分。

  •WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,如Enterprise Sevices(COM+)、.Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。

16、WCF身份验证机制

17、WCF Transfer的安全模式

18、WCF安全模式与绑定协议

绑定/安全模式

None

Transport

Message

Mixed

Both

BasicHttpBinding

Yes(default)

Yes

Yes

Yes

No

NetTcpBinding

Yes

Yes(default)

Yes

Yes

No

NetPeerTcpBinding

Yes

Yes(default)

Yes

Yes

No

NetNamedPipeBinding

Yes

Yes(default)

No

No

No

WSHttpBinding

Yes

Yes

Yes(default)

Yes

No

WSFederationHttpBinding

Yes

No

Yes(default)

Yes

No

WSDualHttpBinding

Yes

No

Yes(default)

No

No

NetMsmqBinding

yes

Yes(default)

Yes

No

Yes

Silverlight和WCF通信的绑定协议目前只支持BasicHttpBinding

19、Transport安全模式与客户端凭据

绑定/安全模式

None

Windows

Username

Certificate

BasicHttpBinding

Yes(default)

Yes

Yes

Yes

NetTcpBinding

Yes

Yes(default)

No

Yes

NetPeerTcpBinding

No

No

Yes(default)

Yes

NetNamedPipeBinding

No

Yes(default)

No

No

WSHttpBinding

Yes

Yes(default)

Yes

Yes

WSFederationHttpBinding

N/A

N/A

N/a

N/A

WSDualHttpBinding

N/A

N/A

N/A

N/A

NetMsmqBinding

Yes

Yes(default)

No

Yes

20、消息安全模式与客户端凭据

绑定/安全模式

None

Windows

Username

Certificate

Issued token

BasicHttpBinding

No

No

Yes

Yes

No

NetTcpBinding

Yes

Yes(default)

Yes

Yes

Yes

NetPeerTcpBinding

N/A

N/A

N/A

N/A

N/A

NetNamedPipeBinding

N/A

N/A

N/A

N/A

N/A

WSHttpBinding

Yes

Yes(default)

Yes

Yes

Yes

WSFederationHttpBinding

N/A

N/A

N/A

N/A

N/A

WSDualHttpBinding

Yes

Yes(default)

Yes

Yes

Yes

NetMsmqBinding

yes

Yes(default)

Yes

Yes

Yes

21、安全

  •传输安全 https <security mode="Transport">

  •消息安全 username/pw-combination

    –No authentication.

    –Authentication through method parameters

    –Authentication through message headers

    –Authentication through message headers by implementing an operation behavior. Every method decorated with this attribute will automatically perform username/pw authentication.

22、Web.config中的WCF安全配置

• <bindings >

•      <basicHttpBinding >

•        <binding>       

•          <security mode="TransportCredentialOnly">

•            <transport clientCredentialType="None"/>

•            <message clientCredentialType="UserName"/>

•          </security>

•        </binding>

•      </basicHttpBinding>

•    </bindings>

23、开发分工

  •横向分层发开

24、有用的连接

  •Silverlight客户端和WCF服务器端共享类

  •Silverlight 3 - MultiThreading编程

  •Silverlight 3 高级编程 Chapter 19 MultiThreading

 

下面是原文的PPT下载:Silverlight数据通信.pptx

 

内容概要:本文介绍了基于Matlab代码实现的【EI复现】考虑网络动态重构的分布式电源选址定容优化方法,重点研究在电力系统中结合网络动态重构技术进行分布式电源(如光伏、风电等)的最佳位置选择与容量配置的双层优化模型。该方法综合考虑配电网结构变化与电源布局之间的相互影响,通过优化算法实现系统损耗最小、电压稳定性提升及可再生能源消纳能力增强等多重目标。文中提供了完整的Matlab仿真代码与案例验证,便于复现实验结果并拓展应用于微网、储能配置与配电系统重构等相关领域。; 适合人群:电力系统、电气工程及其自动化等相关专业的研究生、科研人员及从事新能源规划与电网优化工作的工程师;具备一定Matlab编程基础和优化理论背景者更佳。; 使用场景及目标:①用于科研论文复现,特别是EI/SCI级别关于分布式能源优化配置的研究;②支【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)撑毕业设计、课题项目中的电源选址定容建模与仿真;③辅助实际电网规划中对分布式发电接入方案的评估与决策; 阅读建议:建议结合提供的网盘资源下载完整代码与工具包(如YALMIP),按照文档目录顺序逐步学习,注重模型构建思路与代码实现细节的对应关系,并尝试在不同测试系统上调试与扩展功能。
本系统采用SpringBoot与Vue技术架构,实现了完整的影院票务管理解决方案,包含后台数据库及全套可执行代码。该系统在高等院校计算机专业毕业设计评审中获得优异评价,特别适用于正在进行毕业课题研究的学生群体,以及需要提升项目实践能力的开发者。同时也可作为课程结业作业或学期综合训练项目使用。 系统提供完整的技术文档和经过全面测试的源代码,所有功能模块均通过多轮调试验证,保证系统稳定性和可执行性。该解决方案可直接应用于毕业设计答辩环节,其技术架构符合现代企业级开发规范,采用前后端分离模式,后端基于SpringBoot框架实现业务逻辑和数据处理,前端通过Vue.js构建用户交互界面。 系统核心功能涵盖影院管理、影片排期、座位预定、票务销售、用户管理等模块,实现了从影片上架到票务核销的完整业务流程。数据库设计遵循第三范式原则,确保数据一致性和完整性。代码结构采用分层架构设计,包含控制器层、服务层、数据访问层等标准组件,便于后续功能扩展和维护。 该项目不仅提供了可直接部署运行的完整程序,还包含详细的技术实现文档,帮助开发者深入理解系统架构设计理念和具体实现细节。对于计算机专业学生而言,通过研究该项目可以掌握企业级应用开发的全流程,包括需求分析、技术选型、系统设计和测试部署等关键环节。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值