Skip to content

Dotnetcore.NPOI项目的真相

Tony Qu edited this page Apr 28, 2022 · 2 revisions

每次搜索NPOI nuget包的时候你是不是有些疑惑,因为老是能搜到2个NPOI库,一个叫NPOI (1700万下载量),一个叫Dotnetcore.NPOI (500万下载量)。

别说是作为普通用户的你了,就是作为NPOI作者的我也感到很迷惑,我曾经也认为可能这个dotnetcore.npoi库与NPOI库是不一样的,增加了很多功能和bug修复,以至于被ncc (.Net Core Community)称为独立分支。

然而,经过半年的完整独立调查,我基本可以确认所谓的Dotnetcore.NPOI作者 杨晓东 (Savorboard)在过去的5年里一直在欺骗公众。

为什么说杨晓东不是Dotnetcore.NPOI真正的作者

该库真正的作者并不是杨晓东,是另外一个开发者把NPOI从.NET迁移到了.NET Core,而杨晓东完全隐藏了这些贡献。

这个分支真正的作者是这位https://github.com/joshcomley。而Dotnetcore.NPOI的初始代码来自于https://github.com/joshcomley/Npoi.Core。然而,杨晓东要求Github断开了NPOI.Core和Dotnetcore.NPOI的Fork关系,然后他自己自然而然地成为了该分支的作者。

相关证据在Dotnetcore.NPOI的Git历史中

我猜测实际的断开时间可能在2016年12月。

有些人可能相信杨晓东确实是项目真正的作者,因为根据Insights统计,他添加的代码量比Joshcomley多。在调查一开始,我也认为这个推测合理。但在随机抽查了杨晓东的代码提交(commits)之后,我发现他的代码提交非常有技巧性。

除了Readme的改动之外,大量的代码提交只是更改了注释的格式。是不是很有意思?让我们来看看下面的代码提交:

杨晓东真实的Dotnetcore.NPOI分支贡献

我总结了Dotnetcore.NPOI的整个git历史,下面是我对于杨晓东的贡献的总结。

  • 合并PR
  • 更新Readme.md(贡献频繁)
  • 清理代码(添加数量571,删除数量122)
  • 替换String为string (巨大贡献,改了534个文件)
  • 删除文件 好了没了,是不是贡献巨大?

来自NCC组织的最后贡献

在这个仓库归档之前,邪恶的NCC组织做了个巨大的贡献。很高兴看到他们最终能够团结起来在一个项目上出力。然而,这次的代码提交不是用C#写的,而是普通文本,即Readme.md更新,目的也很明确,就是为了诋毁我的名声和NPOI。

我必须承认这个Readme在短期内是有效的,我确实收到了一些来自中国NPOI用户的威胁,他们威胁我不会再使用NPOI。但谁会在乎呢?你是付费了吗?说好的感恩呢?