首页 > 解决方案 > 是否有可能看到涵盖 microsoft/referencesource 代码的单元测试?

问题描述

在这里,我将只写关于https://github.com/microsoft/referencesource的内容。

单元测试不仅涵盖代码,还可以作为很好的文档。

我注意到所有项目都没有解决方案文件,并且可能作为项目库,如果我在这里错了,请纠正我。

另外,这里有一个附带问题 - 是否有任何目的不公开您的单元测试,以便更难在您的代码中发现一些漏洞?如果是的话,它可能真的很有价值,因为没有单元测试真的很难理解代码的某些部分,而且确实让开发人员的生活有点痛苦。

标签: asp.netunit-testing

解决方案


从注释中复制并扩展以显示 .NET Framework 参考源的历史。

闭源开始

.NET Framework 从一开始就是一个闭源项目,微软只与某些合作伙伴共享其代码库,以便他们可以使用这些代码开发一些互操作的产品。

例如,Mainsoft 的Grasshopper

参考源发布

许多 Microsoft 合作伙伴没有奢侈地查看代码,因此他们不得不依靠反编译器(例如 .NET Reflector)来查看程序集并使用反射来解决令人讨厌的错误。

2007 年,Microsoft 最终决定在称为 Microsoft Reference License (MS-RL) 的特殊许可下发布一些 .NET Framework 源文件。

有关详细信息,请参阅Scott Guthrie在 2007 年的历史博文。

实际代码于 2008 年公开发布

由于目标是帮助开发人员调试到 .NET Framework 的一部分,因此包含的源文件远未完成。资源文件/项目文件等故意丢失,因此您将无法从代码库重建程序集。

请注意,由于许可证涵盖了此类代码,像 Mono 这样的开源项目无法利用它来提高兼容性。

拥抱开源

当微软最终决定在 2014 年开源 .NET 源代码并创建 .NET Core时,他们期望 Mono 直接与 .NET Core 代码库集成。

然而,挑战太多了,所以 Mono 的人首先开始与 .NET Framework 参考代码集成,微软将许可证涵盖的参考源更改为 MIT(你今天看到的)以提供帮助。

您可以阅读本文了解更多详情。

近年来,Microsoft 在那里为 Mono 发布了更多文件,但目标再次是提高兼容性,而不是帮助开发人员重新创建 .NET Framework 程序集。

今天使用 .NET 5/6

.NET 5 刚刚发布,最终将 Mono 和 .NET Core 合并,因此 Mono 和 .NET Framework Reference Source 都完成了它们的核心任务。

Mono 和 .NET Framework 参考源可能会存在一段时间,但您现在应该将宝贵的时间花在 .NET 5/6 上。

.NET 6 将实现接下来的几个重要里程碑(.NET 6 上的 Xamarin 和 Unity)。


推荐阅读