开源的这些项目
StackExchange,地址:https://github.com/StackExchange,开源的这些项目都是在StackOverflow线上使用的。
StackExchange,地址:https://github.com/StackExchange,开源的这些项目都是在StackOverflow线上使用的。
说起StackOverflow,扯两句闲话,所有码农应该都不陌生,特别是对.net的开发者,它可能是应用了.net里仅存的不多还能拿的出手的知名网站了。MySpace的远去,某东的彻底转身,就连以前的老东家某二流IM,很早的时候也是转向了Java。感觉用.net很少技术氛围很好的公司,其实老东家的技术氛围还是不错的。。有种说法:有技术氛围的.net公司都转型了,凡是在坚持都是自认为氛围好的。(黑的漂亮,竟无言以对。。)。以后再听到这种说法,可以拿StackOverflow扇他脸了,哈哈。。。
经过反复黑和粉,做为一个靠.net吃饭的.net黑要转到正题了,这些开源项目里,推荐的都是跟.net相关的,并且都在StackOverflow上正在使用的,合适的情况下绝对可以放心大胆使用。
1、dapper
https://github.com/StackExchange/dapper-dot-net
可能有很多码农都使用过,一个微型ORM框架,很精简,就一个cs文件。
最核心的技术是称为反射发出的机制,大意就是在运行时动态生成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内部使用和维护的,是一个需要在代码里埋点,用于分析性能的组件。
大概了解了一下,觉得还是挺有用的工具,从代码内部也不像其它外置工具分析,结果会更有说服力一些。并且有大公司在使用做为背书,绝对值得一用的。
但是,但是,我也只是了解了一下,还没有在实际项目上使用,没法展开,只能这样了,推荐一下,有使用过的可以详谈下。
4、Opserver
https://github.com/opserver/opserver
Stack Overflow的开源监控解决方案,由Stack Exchange发布。它基于.NET框架构建,这在监控工具领域有些与众不同。旨在为每个受监控系统的健康状况提供一个快速的总体视图,还允许用户使用下钻方法进行深入挖掘。
Opserver以Web仪表板的形式进行组织,每个仪表板专门针对一个特定的系统。Opserver目前支持SQL Server、ElasticSearch、HAProxy、StackExchange.Exceptional和Redis。Orion是一款来自SolarWinds的商业工具。Opserver还使用它提供基础设施和网络监控。一次Opserver安装并不需要使用所有这些系统,因为它们可以基于选择进行配置。
到这里就可以结束了,但是顺带介绍下另一个开源组件
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、结构设计等)和序列化上。
???企企csvcsvcsvcsvcsvcsv
Copyright © 启程