.net 开源组件推荐 之 StackExchange

 

已经两年没更新过博客了!!!java

StackExchange,地址:https://github.com/StackExchange,开源的这些项目都是在StackOverflow线上使用的。python

提及StackOverflow,扯两句闲话,全部码农应该都不陌生,特别是对.net的开发者,它多是应用了.net里仅存的很少还能拿的出手的知名网站了。MySpace的远去,某东的完全转身,就连之前的老东家某二流IM,很早的时候也是转向了Java。感受用.net不多技术氛围很好的公司,其实老东家的技术氛围仍是不错的。。有种说法:有技术氛围的.net公司都转型了,凡是在坚持都是自认为氛围好的。(黑的漂亮,竟无言以对。。)。之后再听到这种说法,能够拿StackOverflow扇他脸了,哈哈。。。可是若是有作java、python的机会,而又不介意.net出身的,请联系我。。^_^git

通过反复黑和粉,作为一个靠.net吃饭的.net黑要转到正题了,这些开源项目里,推荐的都是跟.net相关的,而且都在StackOverflow上正在使用的,合适的状况下绝对能够放心大胆使用。github

1,dapper

https://github.com/StackExchange/dapper-dot-net数据库

可能有不少码农都使用过,一个微型ORM框架,很精简,就一个cs文件。app

最核心的技术是称为反射发出的机制,大意就是在运行时动态生成IL,而且只在第一次使用时,在此以后的使用就能够全速运行,效率上是颇有保证的。有兴趣的能够深究下,https://msdn.microsoft.com/zh-cn/library/8ffc3x75(v=vs.110).aspx框架

具体的使用方式也是很简单方便,发个本身的简单代码和使用笔记。工具

封装代码:https://github.com/fengzhbo/MySampleCode/blob/master/Code.Dapper/Code.Dapper/Main.cs性能

简单笔记:https://github.com/fengzhbo/MySampleCode/issues/1网站

性能很是优秀,看下项目介绍或本身试验下就好了。

2,StackExchange.Redis

https://github.com/StackExchange/StackExchange.Redis

一个访问操做Redis的.net客户端组件。

说到这里,不得不提一下另外一个鼎鼎大名的Redis组件ServiceStack.Redis,这个组件在2.0以后就已经商业受权了,https://servicestack.net/download#free-quotas,无偿使用的每小时只用6000次的使用请求上限,哎。。

作为客户端的组件,二者在使用上仍是有点差异的,具体使用这里也不介绍了。仍是分享个本身的简单封装和使用笔记。

简单封装:https://github.com/fengzhbo/MySampleCode/blob/master/Code.StackExchange_Redis/Code.StackExchange_Redis/Main.cs

简单笔记:https://github.com/fengzhbo/MySampleCode/issues/2

3,MiniProfiler

https://github.com/MiniProfiler

https://github.com/MiniProfiler/dotnet

一样也是StackOverflow内部使用和维护的,是一个须要在代码里埋点,用于分析性能的组件。

大概了解了一下,以为仍是挺有用的工具,从代码内部也不像其它外置工具分析,结果会更有说服力一些。而且有大公司在使用作为背书,绝对值得一用的。

可是,可是,我也只是了解了一下,尚未在实际项目上使用,无法展开,只能这样了,推荐一下,有使用过的能够详谈下。

 

到这里就能够结束了,可是顺带介绍下另外一个开源组件

protobuf.net

https://github.com/google/protobuf

https://github.com/mgravell/protobuf-net

protobuf的.net版本,用于序列化的。经过本人的实验和实际使用上,protobuf是目前最快的序列化组件,而且序列化以后内容的体积也是最小的,比ServiceStack.Text、NewtonSoft.Json都快,.net自带的XML,Binary的序列化更是渣的不行。

 

到这里,一个简单的基于开源组件的数据访问层骨架就出来:用Dapper作ORM;ProtoBuf.net 作序列化和反序列化;最后使用StackExchange.Redis 来存取Redis。这些组件结合在一块儿使用简单方便、效率高、性能好,谁用谁知道。

最后说一下,纯我的经验,应用的性能问题,在数据这块,大都出如今数据库(索引、SQL、结构设计等)和序列化上。

 

.net加油

相关文章
相关标签/搜索