更强悍的Silverlight: WCF RIA Services
如果你安装了 VS 2010 的 Silverlight 4 开发工具,会发现一项重量级的安装项目,WCF RIA Services,用于Silverlight数据访问服务,比WCF和ADO.NET Data Service和Web服务都要简单.
在一个三层架构的应用程序中,中间层介于表示层和数据层之间,你所写的业务逻辑和数据验证都将在中间层出现。创建拥有良好用户体验的RIA应用,你需要客户端和服务端有着相同的业务规则,因此在客户端和服务端保证同步的中间层变得至关重要。WCF RIA Services可以让你在中间层用.NET框架编写逻辑应用,下面将讲述如何使用Domain Services以共享代码、数据实体来创建中间层。
DomainService类是所有服务端domain services类的基类,另外WCF RIA Services也提供了LinqToEntitiesDomainService和LinqToSqlDomainService两个继承自DomainService的抽象类。
为什么WCF RIA Service 对于 Silverlight 如此重要,最主要的原因在于,Silverlight 是一种客户端执行的环境,它无法如同 ASP.NET一样,直接与后端数据源进行沟通,数据存读取和保存全都必须跨越网络,我们就必须使用N-tier架构才能让 Silverlight 顺利的存取远程数据,这是一种很好的实践,在技术层面让开发者遵守现代软件开发的最佳实践,但是对于小项目来说并不是一项简单的事,微软一贯的作风就是为开发者提供开发者傻瓜式的开发模式,WCF RIA Services 让整个Silverlight 平台能够拥有如同 Web Form 或是 Win Form 一般同等级的数据库应用程序开发能力。
WCF RIA Service 让开发多层式架构的过程就如同传统 2 层式架构应用程序一般自然。因为 WCF RIA Service 的导入,让这第 4 版的 Silverlight 足以成为相关技术发展的一个重大里程碑,而这也是我们跳过 Silverlight 2 与 Silverlight 3,全心等待 Silverlight 4 来临最重要的原因之一。
在 Silverlight 3,我们通过WCF 或是ADO.NET Data Service 来实践所需的功能,WCF RIA Service 则是完全为了解决这一方面的问题而发展出来的相关服务,也是基于WCF服务,WCF支持各种通讯协议,目前WCF RIA Service只使用HTTP的绑定,而且Silverlight 4支持tcp绑定,参见InfoQ Silverlight 4中的高速通信,对于企业业务系统来说我会选择tcp的绑定。当然这只是beta版本,之后的版本肯定会改变,WCF RIA Services不仅仅是支持Silverlight,将来还会支持asp.net/ajax等等。
我们知道WCF 使用EndPoint(Address, Binding 和 Contract),可以通过配置文件和编程方式进行配置,WCF RIA Service默认使用自己的ServiceHost,叫DomainServiceHost,DomainServiceHost 通过编程方式添加了三种EndPoint,用于REST接口的WebHttpBinding, BasicHttpBinding 和 BinaryHttpBinding,所有的绑定都设置了MaxReceivedMessageSize 为 ”2147483647”。缺省的Address的三种Binding如下:
基于WCF的高度灵活性,可以自定义DomainServiceHost的来更改相关的配置来满足自己的需要,如果这些是微软来做的话会更加有影响力。期望WCF RIA Service能够继承WCF的灵活性为我们的提供强大的解决方案。
本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
写自己的缓存框架,JAD-CACHE架构设计篇
在之前一篇《写一个自己的通用缓存框架,以同时支持ehcache、mecache以及springcache注解等等》博文中,列出了自己的通用缓存框架需要实现在的大致功能总结如下: 1、提供统一的缓存操作api; 2、支持同时使用多种缓存实现; 3、提供灵活的配置; 4、需要防止缓存穿透; 5、需要可以灵活指定缓存存活时间; 6、需要任意控制缓存的停用或启用。 目前这个框架的编码部分已完成,并取名为JAD-CACHE,取这个名字的原因是因为它是我的个人的JAD项目的一部分,JAD项目是本人用业余时间开发一个企业基础架构平台,因涉及的东西比较多,而且很多模块还没有完全完成。目前准备把其中做的比较完善的缓存模块单独从原项目中剥离出来作为一个独立的项目并准备开源给大家测试和使用,于是也就有了JAD-CACHE。 本文先展示这个框架的原理及架构设计,后续开放源代码后再发布一些使用手册方面的文章。 JAD-CACHE缓存框架是在spring cache模块的基础上扩展而来,在上一篇博文《通用缓存框架,spring缓存模块原理分析篇》已经系统分析过srping cache的原理,这里不再重复。spri...
- 下一篇
为何我们要检查SSL流量?
数据流量加密是否有利于网络安全?某种程度上来说,的确如此。然而美好的事物往往都是鱼和熊掌不可兼得,为提高安全性而牺牲应用性能是我们需要避免的事情。 大多数企业机构的SSL流量平均已占网络总流量的15%至25%,在垂直细分市场中的此类流量更高。行业规范诸如支付卡行业安全标准以及HIPAA法案均要求各企业在数据传输中对敏感数据进行加密(例如:银行往来数据、商户或医疗行业相关网站等)。重要企业应用程序如Microsoft Exchange、Salesforce.com、Dropbox也针对LinkedIn、Twitter、Facebook等超人气网站启用SSL,以达到隐私保护要求。 加密有利于保护数据,但它同样可以保护潜在的攻击者。复杂的恶意软件以及难以察觉但有很大危害的潜在攻击信息往往隐藏在SSL加密流量中。然而数据流的加密使得IT团队的安全监控、应用监控、安全分析,甚至资源规划变得更加困难,因为他们不得不通过解密与检查所有数据寻找异常情况。 暗伏的危机 SSL加密数据中还可能隐藏着什么?企业需要了解两大风险:有形威胁以及更加微妙的威胁信号。 这种“威胁”通常是指恶意软件,即经过加密处理伪...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路