最近在博客園上看了一篇博客為什麼說是時候擁抱.NET CORE了? 這個博客本身沒什麼,但是下面的一位大佬的回答(下圖紅框中的內容),令我產出了疑問:.NET Core/.NET Framework上的第三方常用類庫/框架實現平均質量真的很差嗎?還是隻是個人的口味問題?

雖然自己也做過不少NET開發,但確實沒在某一領域有什麼建樹,開發用的基本是微軟的類庫,一些翻過來庫NPOI,Spring.NET, NHibernate等用的不多或者乾脆沒用過,混口飯喫,水平有限。於是提出了此問題。再次強調:不是掛人(不認識那位回復的大佬,也和他沒有交集和恩怨),只是想求證切實,增長見識。


1、你的問題很成問題,別人吐槽的是第三方開源庫,不是什麼常用類庫,舉的例子沒有一個常用的。

2、這是開源社區的普遍問題,不是dotnet core獨有的……不管什麼開源社區都是垃圾居多,評價最高的通常不是寫的最好的而是湊合能用的……

3、dotnet的BCL的質量是公認的,至少比其他的幾個流行語言的靠譜的多……


作為一個Rust愛好者真想把每一個吐槽.NET社區不好和找不到工作的人都打一頓。


就說圖裡面這個紅框,大家需要的話讓他去開個源,馬上就有好的了。


一般寫這種評論的呢,我們圈裡面叫做月經貼,就是那種自己寫出來的東西,覺得超牛逼。就感覺,有了代碼就有了天下,有了一切的那種人。

然後呢,殊不知這個世界上代碼不值錢,值錢的是解決方案。

嗯,這種人呢就總覺得自己做出來的東西一定比開源的東西好,一定比官方的東西好,恨不得自己都能夠寫一個語言出來,能夠吊打全世界。

這種帖子也好,評論也好,看看就好了,不用在意這一些東西,我很早之前就說過,現在已經是微服務的天下了,而且一個企業要用解決方案,其實不在於說是用哪一個語言,而是在於說我用哪一個技術能解決掉它,所以說討論這種東西是沒有意義的。

如果說.net的東西真的不好,對吧,然後你應該問一下他,你什麼時候給貢獻過一行代碼?如果說你的東西真的不錯,你的貢獻在哪裡? 不管是閉源的解決服務還是開源倉庫用的拿來走兩步是吧。。


.NET平臺上的類庫和框架,只要是微軟官方提供的,其實質量和水平都不錯。就拿基類庫來說吧,我覺得總體上設計和實現得就比JDK要好(僅個人感覺,勿噴)。

差就差在周邊生態上。用的人少,第三方開源框架項目的就少,反饋少,相應地改進也會慢,這是沒辦法的。微軟要是早10年象現在這樣技術上開放,情況就會好得多了。所以還是接受現實吧……

可以腳踏N條船,不用綁死在一個平臺上。


首先題目是說「第三方常用類庫/框架,正如 Ivony 所說題目圖裡的根本不是常用的;

然後題目圖中的關於 OAuth 2.0 的庫,IdentityServer4 完全是可以用的,其他幾個我沒做過相關的。

關於 .NET Core 第三方庫的平均水平,就拿剛才所說的 IdentityServer4,我 2017 年用的時候,很多文檔裏有的 API 庫裏是沒有的,具體怎麼用根本是靠猜和看源碼,當然最後還是被我用起來了,但是現在是 2019 年,各種庫經過了兩年已經完善多了。不過你說 .NET Core 所有第三方庫都實現很次,我是不同意的,隨便舉例,Newtonsoft.Json, 你不能因為每個項目都 用到它就忽視它。

同時也要注意,有一些語言是本身不足第三方庫來補,.NET Core 本身的 CL 功能就很豐富的同時,微軟第一方就有很多非常優秀的庫。


他開源出來接受大家的查閱和使用,才能說比其他開源的東西好,否則就猶如民科。

.net core一會兒要和java比成熟度,一會兒要和nodejs比社區,一會兒要和go比性能,一會兒要和py比人工智慧,就像中國和外國比似得,.net有其獨到的特點,綜合實力從來不弱,我們那個工業羣就拿來做通信,做界面做上位機, 做服務,做手機端,用的很好啊,好多javaer過來還是得用c#。.net還可以開發wincc控制項,結合西門子的控制項做plc模擬器,現在西門子plc模擬器和上位機聯調,只有c#的方案。


Mark一下,待會回家羅列一下現在線上.NET CORE服務用到的一些類庫。

港真,阿里的dotnet sdk代碼質量不算高,充滿了JAVA風格,身為雲廠商存在對技術偏見這可是大忌。


對於OAuth2不是還有個IdentityServer4嘛

Castle也是可以支持非同步的https://mp.weixin.qq.com/s/qytJcqaemMnfiMDYRAPDTA


那是因為官方庫寫的太好了,沒有對比就沒有傷害。


別說第三方庫了,就拿.NET Framework的BCL來說,裡面也是充斥著各種質量層次不齊的代碼,每次做性能測試的時候,總會發現.NET Framework的BCL裡面有幾個拖後腿的。

一個優秀的框架畢竟也是人(會寫出bug的生物)寫出來的,也必定要兼容很多情形,而其中也會有歷史包袱,就像.NET Framework一樣,但這並不影響它們的優秀。

隨著.NET Core的不斷完善,我相信在.NET Core的BCL級別上肯定會有更多讓人期待的東西出現,看看.NET Core 3.0發布的一些新的特性就知道了。而且現在基於.NET Core寫第三方庫的人越來越多,質量肯定也會不斷上升。

對於第三方庫,我的觀點是,你能滿足我的需求,我就用你。你不能滿足我的需求,我就自己造一個出來滿足我。俗話說,眾口難調,不可能有適應所有人的第三方庫,所以何必去糾結那些第三方庫裡面有沒有你需要的東西,它們沒有,我就自己造唄。

還有啊,造輪子是一件多麼令人開心的事啊……(哈哈哈哈)


怎麼說呢 剛剛從事 .net的時候 當時需要技術參考網上能找一大堆作為參考使用。前段時間自學.net core 並以此開發一個後臺管理系統,中間踩坑找資料 真的不好找.net從事人員少了很多。相對來說技術方面開源也好技術文檔也好數量明顯已經大幅縮水。但願以後.net開發越來越多


core不熟悉 不好說,但是.net可是有很多厲害的解決方案啊,就是收費唄,所以我理解的優質.net 開發都做收費軟體了,偶爾幾個開源的也是在傳統行業


微軟的東西論開發者的平均水平,肯定是高於非微軟的技術的。但是可惜開發者太少了,人家就拿自己社區的最好的5%的人和資料和你你比,還比你人多書多,就顯得微軟這邊很爛。


是的,很差。

主要原因就是因為早期.net平臺不開源也不跨平臺。


推薦閱讀:
相關文章