.net 開源組件推薦 之 StackExchange


 

已經兩年沒更新過博客了!!!

StackExchange,地址:https://github.com/StackExchange,開源的這些項目都是在StackOverflow線上使用的。

說起StackOverflow,扯兩句閑話,所有碼農應該都不陌生,特別是對.net的開發者,它可能是應用了.net里僅存的不多還能拿的出手的知名網站了。MySpace的遠去,某東的徹底轉身,就連以前的老東家某二流IM,很早的時候也是轉向了Java。感覺用.net很少技術氛圍很好的公司,其實老東家的技術氛圍還是不錯的。。有種說法:有技術氛圍的.net公司都轉型了,凡是在堅持都是自認為氛圍好的。(黑的漂亮,竟無言以對。。)。以后再聽到這種說法,可以拿StackOverflow扇他臉了,哈哈。。。但是如果有做java、python的機會,而又不介意.net出身的,請聯系我。。^_^

經過反復黑和粉,做為一個靠.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內部使用和維護的,是一個需要在代碼里埋點,用於分析性能的組件。

大概了解了一下,覺得還是挺有用的工具,從代碼內部也不像其它外置工具分析,結果會更有說服力一些。並且有大公司在使用做為背書,絕對值得一用的。

但是,但是,我也只是了解了一下,還沒有在實際項目上使用,沒法展開,只能這樣了,推薦一下,有使用過的可以詳談下。

 

到這里就可以結束了,但是順帶介紹下另一個開源組件

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加油

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM