如何参与 .NET 的开发和设计
现在 dotnet 属于 dotnet 基金会,所有开发者都可以向 dotnet 贡献代码和参与 .NET 的设计,参与路线决策。本文来告诉大家一些基本玩法,带着小伙伴们入坑
注意哦,参与 dotnet 开发是没有金钱的收益的哈
阅读本文你能了解:
- 在哪里参与 dotnet 的设计和开发
- 2020 的设计流程或提议方式是什么
在开始之前,必须说明的是 .NET 和 C# 是相对低耦合的,对于 C# 分为两个方面,一个是 C# 语言的设计,另一个是编译器的开发参与
- 关于 C# 语言的设计,欢迎来到 https://github.com/dotnet/csharplang/ 里面的 Issues 撕语言设计问题。在这里可以聊任何关于这个语言的提议。不过需要小心,这里的喷子很多,请确定你参与的时候心情不会很差,不会气炸
- 关于编译器的开发和设计,欢迎来到 https://github.com/dotnet/roslyn/ 里面的 Issues 讨论。在这里可以参与编译器的开发,或者对编译器的建议。需要小心,这里属于神坑,如果你没有足够的精力,看看就好
而 .NET 现在是什么?其实现在主要的是一个 runtime 库,里面包含运行时以及框架的支持。在此之前包含了 corefx 等仓库,比较松散。而对于 .NET 的设计一般来说可以分为针对细节和针对整体
针对运行时的表现以及框架的 API 设计的提议或讨论,欢迎到 https://github.com/dotnet/runtime 里面的 Issues 讨论。在这里欢迎讨论的点是
- 整体框架的设计,如某个 API 或类应该放在哪里
- 框架和运行时的坑,例如表现行为
- 某个模块的 API 是否开放
以及对框架的性能优化,性能优化如果涉及到行为变化,那么需要经过比较多的讨论。比较期望的性能优化是没有行为的变更,同时仅优化很小的模块。可以参考性能优化狂魔 Stephen Toub 大佬的更改。基本上任何对性能的优化的 PR 都需要附加基准性能测试的测试,关于基准测试请看 C# 标准性能测试
对整个大的 .NET 包括生态和体系等的提议请到 https://github.com/dotnet/designs 的 Issues 讨论。这里欢迎讨论一些比较大的改动,或者针对多个仓库的改动,或者收编某些库等
对 .NET 的其他仓库的设计和更改,基本套路都是在对应仓库的 Issues 里面先新建或参与讨论,然后再提 PR 请求合并
现在整个 .NET 都是完全开源,任何人都可以进行私有发布。如你的某项很好的提议没有被采纳,但是自己又觉得特别好,可以发布自己的 .NET 版本。简单的构建方法请看 dotnet/source-build: A repository to track efforts to produce a source tarball of the .NET Core SDK and all its components
如何参与 .NET 的开发和设计的更多相关文章
- 如何参与Linux内核开发(转)
本文来源于linux内核代码的Document文件夹下的Hoto文件.Chinese translated version of Documentation/HOWTO If you have any ...
- 如何参与linux 内核开发
如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维护者. 英文版维护者: Gre ...
- 如何参与linux内核开发
如何参与linux 内核开发 如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维 ...
- 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计
ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...
- 项目Splash页面的开发与设计
项目Splash页面的开发与设计 首先建立一个安卓的项目,然后修改manifest.xml文件,修改应用程序的logo和显示名称,效果图如下: 对应的代码如下: 1 <?xml version= ...
- 20155219实验四 Android开发基础设计实验报告
20155219实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello World!+学号的小程序 实验步 ...
- 20155227 《Java程序设计》实验四 Android开发基础设计实验报告
20155227 <Java程序设计>实验四 Android开发基础设计实验报告 任务一 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二 ...
- 无需编码开发快速设计互动式UI - uilang
uilang是一个非常小巧的ui类库,可以帮助不熟悉前端代码的web设计人员快速的开发互动式UI.你只需要使用“语义式”的说明来控制元素的动态效果. 开发中你只需要在<code>标签内部输 ...
- Android应用开发以及设计思想深度剖析
Android应用开发以及设计思想深度剖析(1) 21cnbao.blog.51cto.com/109393/956049
- 20145219 《Java程序设计》实验四 Android开发基础设计实验报告
20145219 <Java程序设计>实验四 Android开发基础设计实验报告 实验内容 安装Andriod Studio并配置软件 使用Andriod Studio软件实现Hello ...
随机推荐
- 「AntV」全球AQI数据获取与L7可视化
1. 引言 L7 地理空间数据可视分析引擎是一种基于 WebGL 技术的地理空间数据可视化引擎,可以用于实现各种地理空间数据可视化应用.L7 引擎支持多种数据源和数据格式,包括 GeoJSON.CSV ...
- PLC与上位机传递数据
1.我这里使用的是HslCommunication 假如传递的是word类型,PLC以16进制封装数组,它有预留,我扩充 PLC博图上是 word[5] 上位机接收 ushort[] Data1=ne ...
- 《.NET内存管理宝典》 售后服务系列文(2) - WinDbg命令.cmdtree
此文是<.NET内存管理宝典 提高代码质量.性能和可扩展性>(英文名<Pro .NET Memory Management: For Better Code, Performan ...
- 《On Java 8》笔记 2
第十一章 内部类 Java 8 的 Lambda 表达式和方法引用减少了编写内部类的需求 外部类可以提供一个方法返回一个指向内部类的引用 链接外部类 内部类还拥有其外部类的所有元素的访问权 使用 .t ...
- SpringBoot配置启动页(首页)控制台打印项目访问入口url
一.SpringBootApplication 1 package com.reliable.yang; 2 3 /** 4 * @author Administrator 5 * @date 202 ...
- JDBC复习:创建MySQL数据表
1 try { 2 conn=JDBCUtil.getConnection(); 3 preparedStatement = conn.prepareStatement(DROP_TABLE_1); ...
- #Tarjan,拓扑排序#洛谷 3436 [POI2006]PRO-Professor Szu
题目 分析 考虑有向图缩点然后拓扑排序, 最恶心的地方是这题有自环, 一旦存在自环就意味着答案一定超过阈值 其实更难过的是Tarjan大小写写错没有发现qwq 代码 #include <cstd ...
- 掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南
C# 变量 变量是用于存储数据值的容器. 在 C# 中,有不同类型的变量(用不同的关键字定义),例如: int - 存储整数(没有小数点的整数),如 123 或 -123 double - 存储浮点数 ...
- pathlib简单使用, 比os简单
from pathlib import Path p = Path(r'D:\project\pachong\test1\a.txt') # 基本用法 ''' # 判断 p.is_dir() # 判断 ...
- mybatis plugin源码解析
概述 Plugin,意为插件,是mybatis为开发者提供的,对方法进行自定义编程的手段.其中用到了动态代理.反射方法,通过指定需要增强的对象与方法,进行程序编写. 核心类 主要涉及几个核心类:Int ...