聊聊 2020 的 dotnet 各大开源项目仓库的情况

现在是 2020.06.21 我来聊聊我所关注的 dotnet 的几个大开源项目的活跃以及定位情况。包括 WPF 和 WinForms 和 Xamarin 和 ASP.NET Core 和 Blazor 仓库

没有被点名的仓库不代表不活跃和不重要,只是我精力有限,没有参与开发。没有在局里面,不好评论

现在的各个仓库的分工如下:

  • Windows Forms 负责全平台商业化使用,主要是 Windows 和 Linux 系统,同时支持兼容大量诡异的设备。而且开源部分正在疯狂怼功能
  • WPF 负责 Windows 平台下的应用开发,支持 Win7 sp1 及以上。注意,如果需要支持 xp 依然需要使用 .NET Framework 4.0 之前版本
  • Xamarin 负责移动端,以及 PC 的 MAC 系统的应用开发。兼职负责 Linux 系统的应用支持,通过 GTK 的方式,有多少坑完全取决于想要支持的 Linux 系统,在 Ubuntu 下相对稳定
  • Blazor 负责浏览器端的应用开发
  • ASP.NET Core 负责服务器后台的应用开发,是当前成熟度最高的项目。竟然成熟度比 WPF 还高,哈哈,原因是 WPF 开小差了6年

关于开源情况如下:

  • dotnet runtime 最活跃的项目,用于提供给上面所有仓库,还包括此外的所有 dotnet 项目的运行时和底层库的支持,是整个 dotnet 的基础。有大量的硬件厂商对 dotnet 做特别优化,如 Intel 这个好基友,还有最近炒的比较火的龙芯 也都给了运行时很多支持
  • ASP.NET Core 这个仓库现在主要是有 Azure 的小伙伴在维护,作为微软三架马车之一的 Azure 有着雄厚的资金,例如给了整个 GitHub 提供所有仓库免费的构建服务器等,有 Azure 超级可怕数量的超强工程师在不断堆代码。每天都有大量 PR 被创建和合并
  • Windows Forms 和 Xamarin 这两个是现在商业化开源应用开发最成熟的两个仓库,每天都有大量的国际上的各个公司的小伙伴在报很多诡异的 Bug 也都有在不断修复以及探索更强大的功能。这两个仓库官方投入比社区投入的比例要少一些
  • Blazor 在正式发布 WebAssembly 版本之后进入了疯狂修 Bug 状态,现在属于初步状态,特别适合小伙伴想要了解 WebAssembly 以及一个大型项目维护是如何做的,推荐小伙伴参与进去
  • WPF 现在有很多小伙伴将积攒了很多年的 Bug 不断扔到 Issues 上面,因为 WPF 按照 xx 的统计,是被最多使用的框架(和上面 ASP.NET Core 和 WinForms 和 Xamarin 等比)因此任何改动都需要十分小心,牵一发而动全身。现在整个团队都在努力搞自动化测试,只有自动化测试完成之后才有勇气合并来自社区的PR否则就只能合并没有 IL 变更的社区代码了。现在 WPF 开源项目是 Issues 天天打仗,而 PR 合并不多

以上所说官方非仅指微软,而是指 dotnet 官方组织,微软是其中最大的一个参与公司。此外在 ASP.NET Core 项目里面可以看到大量 AWS 的小伙伴在贡献代码,甚至谷歌家的小伙伴也会指手画脚。而 dotnet runtime 项目就比较可怕了,我没怎么去统计各方小伙伴的占比,总体看起来 PR 和 Issues 都上天了,每天都看不过来

我现在主要活跃的是在 WPF 仓库里面,其他项目主要是作为格式化工程师的存在,做做代码格式化和修一下注释而已

回答小伙伴几个问题:

现在这些开源项目是不是意味着可以白嫖

答案:没错,不收钱。动动手就可以将其他公司投入海量开发资金开发的项目收归己有。使用这些项目进行二次开发也好,或者在此框架上开发自己的商业应用也好,都不需要交钱给官方,也不需要为此纳税

我是否可以改改项目名,假装这些项目是我拥有的

答案:不用假装,你可以对外宣称是你的。上面这几个项目都没有限制你更改和分发你的私有版本,任何公司或个人都可以在此基础上魔改然后分发。只有一点是被限制的,不能你申请专利等之后反过来告官方项目侵权以及其他使用这些框架的公司侵权。但是你声明是自主产权,这个没问题(至少比其他改系统图标说是自己研发的要好很多)至少法律上讲没问题,如果你声明之后还能将一些有趣的代码提到官方,那这也是官方鼓励的

参与这些项目开发有什么门槛

答案:会使用谷歌翻译或有道翻译或会阅读和写英文…… 任何小伙伴都能免费注册 GitHub 帐号在这几个开源项目里面发 Issues 讨论和提 PR 添加代码

如果官方拒绝我的代码怎么办

答案:很正常,不是所有的代码都符合官方的思想。但是拒绝代码基本上不是一个人能做的决定,是需要整个团队里面多数开发者同意拒绝之后才会拒绝。也就是不是特别逗比的代码,基本上都会被合并或者改改改之后合并。如果咱真的觉得官方逗比,这么好的逗比的代码都不合并,咱可以另起炉灶,自己玩不带官方。可以自己分发自己的版本,如我想要给自己公司的产品定制 WPF 框架,没问题,我可以发布我自己的版本。如果自己发布的版本做的比官方更好,那么自己的这个项目将会最终取代官方的项目哦

我是否可以对外宣称我的产品受到微软的技术支持

答案:如果没有经过授权,是不可以的…… 就像咱的软件在 Intel 的 CPU 上运行,咱是否可以说这个软件受到 Intel 工程师的技术支持?肯定是不成的啦

我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

如有不方便在博客评论的问题,可以加我 QQ 2844808902 交流

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

----------Database-------------- 1.DataTable帮助类(DataTableHelper.cs) 2.Access数据库文件操作辅助类(JetAccessUtil.cs) 5.查询条件组合辅助类(SearchCondition.cs) 6.查询信息实体类(SearchInfo.cs) 8.Sql命令操作函数(可用于安装程序的时候数据库脚本执行)(SqlScriptHelper.cs) ----------Device-------------- 声音播放辅助类(AudioHelper.cs) 摄像头操作辅助类,包括开启、关闭、抓图、设置等功能(Camera.cs) 提供用于操作【剪切板】的方法(ClipboardHelper.cs) 获取电脑信息(Computer.cs) 提供用户硬件唯一信息的辅助类(FingerprintHelper.cs) 读取指定盘符的硬盘序列号(HardwareInfoHelper.cs) 提供访问键盘当前状态的属性(KeyboardHelper.cs) 全局键盘钩子。这可以用来在全球范围内捕捉键盘输入。(KeyboardHook.cs) 模拟鼠标点击(MouseHelper.cs) 全局鼠标钩子。这可以用来在全球范围内捕获鼠标输入。(MouseHook.cs) MP3文件播放操作辅助类(MP3Helper.cs) 关联文件(ExtensionAttachUtil.cs) 注册文件关联的辅助类(FileAssociationsHelper.cs) 打开、保存文件对话框操作辅助类(FileDialogHelper.cs) 常用的文件操作辅助类FileUtil(FileUtil.cs) INI文件操作辅助类(INIFileUtil.cs) 独立存储操作辅助类(IsolatedStorageHelper.cs) 序列号操作辅助类(Serializer.cs) 获取一个对象,它提供用于访问经常引用的目录的属性。(SpecialDirectories.cs) 简单的Word操作对象(WordCombineUtil.cs) 这个类提供了一些实用的方法来转换XML和对象。(XmlConvertor.cs) XML操作类(XmlHelper.cs) ----------Format-------------- 参数验证的通用验证程序。(ArgumentValidation.cs) 这个类提供了实用方法的字节数组和图像之间的转换。(ByteImageConvertor.cs) byte字节数组操作辅助类(BytesTools.cs) 处理数据类型转换,数制转换、编码转换相关的类(ConvertHelper.cs) CRC校验辅助类(CRCUtils.cs) 枚举操作公共类(EnumHelper.cs) 身份证操作辅助类(IDCardHelper.cs) 检测字符编码的类(IdentifyEncoding.cs) RGB颜色操作辅助类(MyColors.cs) 日期操作类(MyDateTime.cs) 转换人民币大小金额辅助类(RMBUtil.cs) 常用的字符串常量(StringConstants.cs) 简要说明TextHelper。(StringUtil.cs) 获取中文字首字拼写,随机发生器,按指定概率随机执行操作(Util.cs) 各种输入格式验证辅助类(ValidateUtil.cs) ----------Network-------------- Cookie操作辅助类(CookieManger.cs) FTP操作辅助类(FTPHelper.cs) HTML操作类(HttpHelper.cs) 网页抓取帮助(HttpWebRequestHelper.cs) Net(NetworkUtil.cs) IE代理设置辅助类(ProxyHelper.cs) ----------Winform-------------- 跨线程的控件安全访问方式(CallCtrlWithThreadSafety.cs) CheckBoxList(CheckBoxListUtil.cs) 窗口管理类(ChildWinManagement.cs) 由马丁·米勒http://msdn.microsoft.com/en-us/library/ms996492.aspx提供一个简单的方法打印工作的一个RichTextBox一个帮手(ExRichTextBoxPrintHelper.cs) 显示,隐藏或关闭动画形式。(FormAnimator.cs) 对窗体进行冻结、解冻操作辅助类(FreezeWindowUtil.cs) 窗体全屏操作辅助类(FullScreenHelper.cs) GDI操作辅助类(GDI.cs) 提供静态方法来读取这两个文件夹和文件的系统图标。(IconReaderHelper.cs) 图片对象比较、缩放、缩略图、水印、压缩、转换、编码等操作辅助类(ImageHelper.cs) 输入法帮助,全角 转换为半角(ImeHelper.cs) Winform提示框 的摘要说明。(MessageUtil.cs) 包含互操作方法调用的应用程序中使用。(NativeMethods.cs) 托盘图标辅助类(NotifyIconHelper.cs) 打印机类(POSPrinter.cs) 图片、光标、图标、位图等资源操作辅助类(ResourceHelper.cs) RTF字符格式辅助类(RTFUtility.cs) 串口开发辅助类(SerialPortUtil.cs) 设置文本属性提供一个ToolStripStatusLabel(SafeToolStripLabel.cs) 只运行一个实例及系统自动启动辅助类(StartupHelper.cs) Web页面预览效果图片抓取辅助类(WebPageCapture.cs) 供Asp.Net直接调用的包装类(WebPreview.cs) 计算机重启、关电源、注销、关闭显示器辅助类(WindowsExitHelper.cs)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值