在openSUSE中配置基于apache2的Mono环境,因为openSUSE的安装DVD中已经包括了所需的所有安装包,所以整个过程非常简单。由于这篇文章是在openSUSE中写的,没安装截图软件,所以只贴出执行的命令和系统提示。菜鸟们照着本文来做就OK了。
分类归档:DotNet
分级分布式缓存组件设计
缓存机制是衡量Web系统是否成熟的重要标志,引入缓存机制可以缩短数据请求的处理时间,提高系统的整体响应能力。Web系统通常有大量经常被访问的对象,为了降低创建和销毁对象的开销,避免频繁和数据库进行交互,将经常被访问的对象保存在内存中,可以大幅度的提高系统的性能。
HttpRuntime.Cache是进程内的缓存实现,它高效,速度极快。但稳定性、安全性差,受应用程序池回收设置影响,数据无法持久化。文件缓存在php系统中非常见,Discuz!NT也有实现文件缓存,将对象序列化到文件中保存,读取速度会比分布式缓存快,但是在序列化和反序列化时性能消耗较大,同时进行缓存的对象必须是可序列化的。Memcached较稳定,受外因素影响较小,安全性高。但是毕竟是分布式缓存,网络开销、序列化和传输过程产生的额外开销比较大,数据也无法持久化。
这些常用的缓存实现方式都有各自的优点和弊端,只使用任何一种都不能很好的满足我们的需要。那假设我们会在项目中一起使用这三种缓存,那应该如何处理?
开心网(kaixin001.com)开放API的C#版SDK
借助开心网开放API,我们可以非常方便的开发组件或实现连接功能。开心网的开放平台API采用了REST基础的接口规范。所有接口都使用POST方法调用,这里实现了一个C#版本的SDK。
SDK中的KaixinClient一样是单例,通过KaixinClient.Instance来调用相关的接口。
开心网的组件是嵌入在iframe中的,它会通过URL传一个sessionKey的值给你,每次接口的调用都需要使用这个sessionKey,而sessionKey的过期时间是4个小时,所以SDK中重载了所有的接口调用方法,方便大家调用接口。
使用未带sessionKey的方法,方法内部会自动调用HttpContext.Current.Request.QueryString去获取sessionKey,如果获取sessionKey失败,那该次的接口调用也是失败的。
腾讯社区开放平台C# SDK
腾讯社区开放平台是基于QQ空间、朋友社区(QQ校友)两大社交网络的开放平台。至今官方提供了一系列的开放接口(Open API)和开发工具包(SDK),开发者可以通过Open API获取登录用户信息、用户签名信息以及好友关系链信息等。已上线的应用还可以调用支付和监控接口,实现支付功能,查看应用实时运维数据。
腾讯官方给出了不少的SDK,点这里进入官方地址。遗憾的是没有开放C#的SDK。
我们DotNet开发者不能落后其它平台的开发者,这里开源我的腾讯社区开放平台SDK,算是第一个C#的SDK吧。