C# 我可以在silverlight中缓存所有用户使用的数据吗?

C# 我可以在silverlight中缓存所有用户使用的数据吗?,c#,asp.net,silverlight,C#,Asp.net,Silverlight,我正在silverlight中创建一个图形工具,用于从多个文件和数据库中读取数据 我不想一次又一次地调用数据库。我希望在需要时检索数据,并将其安全地保存在某个地方,这样,如果用户或任何其他用户访问同一页面,他们就可以访问数据 我想在Silverlight中使用asp.net缓存的应用程序状态[“对象”]?最好的方法是什么?Silverlight控件在浏览器/客户端为每个用户运行,因此不可能为服务器上的所有用户缓存某些内容 您可以将数据缓存在给定用户会话的控件中,也可以缓存在给定用户的独立存储中。

我正在silverlight中创建一个图形工具,用于从多个文件和数据库中读取数据

我不想一次又一次地调用数据库。我希望在需要时检索数据,并将其安全地保存在某个地方,这样,如果用户或任何其他用户访问同一页面,他们就可以访问数据


我想在Silverlight中使用asp.net缓存的应用程序状态[“对象”]?最好的方法是什么?

Silverlight控件在浏览器/客户端为每个用户运行,因此不可能为服务器上的所有用户缓存某些内容


您可以将数据缓存在给定用户会话的控件中,也可以缓存在给定用户的独立存储中。但是,如果不编写相应的服务器端代码,就无法在服务器上执行任何操作。

Silverlight控件在浏览器/客户端为每个用户运行,因此无法为服务器上的所有用户缓存某些内容


您可以将数据缓存在给定用户会话的控件中,也可以缓存在给定用户的独立存储中。但是,如果不编写相应的服务器端代码,就无法在服务器上执行任何操作。

因为silverlight正在运行客户端,所以需要缓存服务器端。 您可以使用WCF获取数据。 大致如下:

我过去所做的是使用WCF缓存查询,使用:

公共类YourWcfService
{
ICacheManager_cacheManager=null;
公共YourWcfService()
{
_cacheManager=EnterpriseLibraryContainer.Current.GetInstance(“缓存管理器”);
}
}

您的web方法类似于:

    [OperationContract]
    public List<Guid> SomeWebMethod()
    {
        if (_cacheManager.Contains("rgal")) // data in cache?
                result = (List<Guid>)_cacheManager.GetData("rgal");
            if (result == null)
            {

                result = FETCH FROM DATABASE HERE;
                // cache for 120 minutes
                _cacheManager.Add("rgal", result, CacheItemPriority.Normal, null, new AbsoluteTime(TimeSpan.FromMinutes(120)));
            }
                    return result;
    }
[运营合同]
公共列表SomeWebMethod()
{
如果(_cacheManager.Contains(“rgal”)//缓存中的数据?
结果=(列表)_cacheManager.GetData(“rgal”);
如果(结果==null)
{
结果=在此处从数据库获取;
//缓存120分钟
_cacheManager.Add(“rgal”,result,CacheItemPriority.Normal,null,newAbsoluteTime(TimeSpan.FromMinutes(120));
}
返回结果;
}

由于silverlight正在运行客户端,您需要缓存服务器端。 您可以使用WCF获取数据。 大致如下:

我过去所做的是使用WCF缓存查询,使用:

公共类YourWcfService
{
ICacheManager_cacheManager=null;
公共YourWcfService()
{
_cacheManager=EnterpriseLibraryContainer.Current.GetInstance(“缓存管理器”);
}
}

您的web方法类似于:

    [OperationContract]
    public List<Guid> SomeWebMethod()
    {
        if (_cacheManager.Contains("rgal")) // data in cache?
                result = (List<Guid>)_cacheManager.GetData("rgal");
            if (result == null)
            {

                result = FETCH FROM DATABASE HERE;
                // cache for 120 minutes
                _cacheManager.Add("rgal", result, CacheItemPriority.Normal, null, new AbsoluteTime(TimeSpan.FromMinutes(120)));
            }
                    return result;
    }
[运营合同]
公共列表SomeWebMethod()
{
如果(_cacheManager.Contains(“rgal”)//缓存中的数据?
结果=(列表)_cacheManager.GetData(“rgal”);
如果(结果==null)
{
结果=在此处从数据库获取;
//缓存120分钟
_cacheManager.Add(“rgal”,result,CacheItemPriority.Normal,null,newAbsoluteTime(TimeSpan.FromMinutes(120));
}
返回结果;
}

缓存真的有必要吗?你真的把你的数据库搞得那么糟吗


你的数据库就是你的存储器。除非您有性能问题,否则这是过早的优化

缓存真的有必要吗?你真的把你的数据库搞得那么糟吗


你的数据库就是你的存储器。除非您有性能问题,否则这是过早的优化

新的企业库为您提供了在客户端上缓存的功能。支持两种类型的数据缓存:在内存中和到独立存储。您还可以灵活配置过期策略(以编程方式或通过外部配置)和配置工具支持


注意:它现在是一个代码预览版,但应该在5月份作为最终版本发布。

新的企业库为您提供了在客户端上缓存的功能。支持两种类型的数据缓存:在内存中和到独立存储。您还可以灵活配置过期策略(以编程方式或通过外部配置)和配置工具支持

注意:它现在是一个代码预览版,但应该在五月份作为最终版本发布