Silverlight开发使用WCF RIA Services的DomainContext和数据缓存
2011-09-30 11:55 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;
}
}
}
{
static DataContext context;
public static DataContext Current
{
get
{
if (context == null)
context = new DataContext();
return context;
}
}
}
Silverlight的开发更像WinForm开发,而不是Web开发。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架