代码改变世界

Silverlight开发使用WCF RIA Services的DomainContext和数据缓存

  zhoujie  阅读(1011)  评论(0编辑  收藏  举报

所谓的利用WCF Ria Service开发,其实就是新建一个silverlight的business application项目,其中以.web结尾的项目作为服务器端并承载WCF服务.svc;而silverlight项目作为富客户端,使用自动产生的DomainContext作为WCF代理,去访问WCF服务。此处所说的数据缓存只讨论客户端的缓存,web服务端直接用Cache类。习惯了HTML开发,让我们忘记了还有浏览器端数据缓存,而不是通常的HTML片段缓存。

虽然缓存算法很简单,但是我们完全不用自己实现。 DomainContext对象管理着这些数据,是一个很好的缓存容器。

 

A DomainContext is a stateful client-side representation of a domain service。既然是一个stateful有状态的context,数据缓存得来全不费功夫。我们通过Load<ObjectData>查询到的数据,其实全都保存在EntitySet<ObjectData>类型的属性ObjectDatas中。这样如果我们要取一些不会经常改变的数据时,就可以直接从DomainContext的这些属性中找到,如果已经加载过了。从而达到了缓存数据的目的。

关键是要有唯一的DomainContext对象,我们可以用单件模式实现:

 

复制代码
 public class DataContextSigleton
    {
        static DataContext context;
        public static DataContext Current
        {
            get
            {
                if (context == null)
                    context = new DataContext();
                return context;
            }
        }
    }
复制代码

 

 Silverlight的开发更像WinForm开发,而不是Web开发。

 

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示