Silverlight
一、 Silverlight与WPF的比较
Silverlight与WPF在许多方面都是类似的,但也有重要的区别。Silverlight由核心显示架构、 NET Framework for Silverlight、安装程序和更新程序组成。WPF应用程序运行在Windows系统上,至少需要, NET Client Profile。Silverlight使用一个插件模型,并驻留在 Web浏览器中。
Silverlight可用于许多浏览器和操作系统。除了Internet Explorer之外, Silverlight也可以用于Firefox、 Safari、0pera和 Google Chrome。并不是所有浏览器都支持 Silverlight。http://go.microsoft.com/fwlink/?LinkId=128526包含一个支持Silverlight的操作系统和浏览器列表
二、 创建Silverlight项目
用Visual Studio新建Silverlight项目时,系统会询问用户是否同时创建一个Web项目,该 Web项目包含可测试Silverlight应用程序的测试页面,以及Silverlight项目的二进制文件。
HTML测试页面包含一个object标记,它通过source参数引用Silverlight控件的二进制代码。参数 minRuntime Version定义在客户端系统上需要的Silverlight运行库的版本。如果客户端系统没有安装Silverlight运行库, 就用默认图像指定一个指向Microsoft站点的超链接
三、 导航
Silverlight和 WPF项目的一个区别是如何处理页面之间的导航。当然,在 Web应用程序中,页面之间的导航是一个常见任务。
四、 网络
在Silverlight中 ,网络在某些方面与.NET Framework中的栈相同,但也在一些重要的方面有区别。可以使用套接字类 HTTP Request和 Web Client,WCF和WCF数据服务也是可用的。但只能使用异步方法在网络上收发请求。UI线程不应阻塞,因为这可能给用户带来致命错误
在Silverlight 3.0以前,唯一可用于Silverlight的网络栈是浏览器提供的,自Silverlight 3.0开始,情况有了变化,还可以使用另一个Http栈。
在客户端的浏览器内部运行的应用程序有一个重要的限制:客户端只能从控件来自的同一个服务器中访问网络服务。自从有了Adobe的 Flash技术,这种情况就改变了,但目标服务器必须支持这种技术。Silverlight网络栈会检查服务器上是否存在Silverlight Policy文件clientaccesspolicy.xml如果这个文件不存在,则Silverlight也接受 crossdomain.xml文件,Adobe Flash也使用这个文件。如果第一个文件存在,就不检查第二个文件,Silverlight不使用 crossdomain.xml文件中的所有项。如果使用这个文件,则要求整个域标记为公共。
五、 为Silverlight客户端创建WCF服务
为了访问生成的实体类,创建一个WCF服务。该服务的合同由IRegistrationService接口定义。 这个服务合同定义了 GetEvents()和 RegisterAttendee() 操作。GetEvents()接受一个用于选择事件的日期范围,并返回由Entity Data Model定义的一个 Event对象数组。RegisterAttendee()操作需要一个Attendee对象作为参数,并根据注册成功与否,返回true或 false。