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、常用控件使用
4、契约
服务契约 ServiceContract
操作契约 OperationContract
<!--<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
<!--<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
•高级编程 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、数据库的三种交互方式比较
•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 3 - MultiThreading编程
•Silverlight 3 高级编程 Chapter 19 MultiThreading
下面是原文的PPT下载:Silverlight数据通信.pptx