最近在博客园上看了一篇博客为什么说是时候拥抱.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平台不开源也不跨平台。


推荐阅读:
相关文章