罗斯林(Roslyn)正式命名为.NET编译器平台,是C#和Visual Basic .NET语言的一组开源编译器和代码分析API。
内容
- 图书
- 教程
- 开源项目
- 开源分析仪,代码修复和重构
- 用于测试分析仪,代码修复和重构的库和框架
- 来源生成器
- 博客文章和文章
- 会谈
图书
很棒的书,可以为您提供罗斯林的良好开端。
- 罗斯林(Roslyn)简洁地 – 亚历山德罗·德尔(Alessandro del Sole)的免费电子书和一本完美的书籍。 Roslyn Apis解释,之后专注于编写分析仪和重构。
- .NET开发使用编译器API的开发 – Jason Bock的书。除了分析仪和重构外,它还解释了脚本API,并对编译器API的未来提供了有趣的反思。
- 罗斯林(Roslyn)食谱 – 罗斯林分析仪团队成员曼尼什·瓦萨尼(Manish Vasani)撰写的书。在介绍了分析仪,重构和详细脚本之后,该书深入说明了如何开发新的C#语言功能并为Roslyn源代码做出贡献。
教程
很棒的在线教程可帮助您编写第一个分析仪,代码修复和源生成器。
- 现在学习罗斯林 – 探索罗斯林编译器API的一系列博客文章。它通过小的独立示例引入了罗斯林的力量。一个完美的教程,首先是:-)
- 如何编写C#分析器和代码修复程序 – 所有Roslyn教程的母亲:-)逐步逐步介绍语法和语义分析以及语法转换。
- C#和Visual Basic-使用Roslyn为您的API编写实时代码分析仪 – 较旧,但仍然没有过时,非常详细的MSDN文章,上面写着编写代码分析仪。
- C# – 在Roslyn Analyzer中添加代码修复程序 – 上一篇MSDN文章的续集。对代码修复的详细介绍。
- 引入C#源生成器 – C#9.0源生成器功能的原始公告。说明哪种源生成器是什么有用的,并显示了如何编写简单的源生成器。
- 新的C#源生成器样本 – 有关如何编写由其他非代码文件(例如CSV文件或小胡子模板)驱动的非平凡代码生成器的示例。
- C#源生成器 – 其他学习来源,样本以及实验和生产源生成器的综合列表。掌握基础知识后,完美的参考。
开源项目
令人敬畏的开源项目建立在罗斯林之上。
- 桥 – C#到JavaScript转板器。在C#中编写现代移动和Web应用程序,然后在JavaScript中运行它们。
- 代码转换器-c#to vb.net和vb.net到c#transpiler。
- codeanalisy.csharp.patternmatching-罗斯林语法树的直观图案匹配。简化了C#语法和语义分析。
- codegeneration.roslyn-在设计时支持的构建过程中,基于罗斯林的代码生成。
- dotnet -script-从.NET CLI运行C#脚本,在VS代码中定义Nuget软件包并编辑/调试它们。
- Flubucore-跨平台构建自动化工具,用于构建项目和使用C#代码执行部署脚本。
- MirrorSharp-在线C#,VB.NET和F#代码编辑器。具有代码完成,方法签名帮助,快速修复和诊断。
- OmnishArp-在您选择的编辑中启用跨平台.NET开发。一个开源项目的家庭,每个家庭都有一个目标:在您选择的编辑中启用了出色的.NET体验。
- Roslyn-Linq-螺纹 – 首先使用普通程序代码重写LINQ表达式的语法树来编译C#代码。这通过最大程度地减少堆的分组和动态调度来提高性能。
- Roslynpad-跨平台C#编辑器。具有代码完成,方法签名帮助,快速修复和诊断。
- Roslynquoter-在线工具,对于给定的C#程序生成语法树API调用该程序的语法树。
- scriptcs-将C#变成功能强大的脚本工具。功能C#repl,Nuget软件包的安装以及用一行代码执行脚本。
- Scripty-使用Roslyn驱动的C#脚本进行代码生成的工具。您可以将其视为T4模板的脚本替代品。
- 锐化 – 视觉工作室扩展,将新的C#语言功能智能地引入您现有的代码库中。
- Sharplab- .NET代码操场。显示代码编译的中间步骤和结果。显示编译器看到的代码。允许选择罗斯琳的不同分支和版本。在浏览器中运行C#,VB.NET和F#代码。
- testura.code-围绕用于生成,保存和编译C#代码的Roslyn API包装。提供方法和帮助者来生成类,方法,语句和表达式。
- UNO SourceGenerator -C#源代码生成器基于正在构建的项目,使用其所有句法和语义模型信息。
开源分析仪,代码修复和重构
很棒的开源分析仪,代码修复和重构。
- .NET分析仪 – Roslyn分析仪开发的GitHub组织。组织内的各种存储库涵盖了ASP.NET核心,WPF,IDISPOSABLE,SYSECE.TREFECTION等的分析仪。
- .NET编译器平台(“ Roslyn”)分析仪 – 由Roslyn团队开发的诊断分析仪。最初开发的是有助于充实静态分析API的设计和实施。分析仪涵盖代码质量,.NET核心,桌面.NET框架,代码中的评论等等。
- Code Cracker- c#和vb.net的分析仪库。提供许多类别的诊断,例如性能,编码样式以及一些基本的重构。
- CSHARPGUIDELINESANALYZER-报告C#编码指南的诊断(https://cs**harpco*dingguidelines.com/)。
- errorprone.net-一组分析仪和代码修复,重点关注C#程序的正确性和性能。受到Google容易发生的启发。
- 映射生成器 – 生成任意复杂对象对象映射的代码修复。它可以识别出使用映射的大量场景。 Automapper的设计时间替代品。
- nullable.Extended -Roslyn工具和分析仪,以改善使用无效的参考类型编码时的体验。
- 为Visual Studio的重构必需品 – C#和VB.NET的重构,分析仪和代码修复。
- Roslyn CLR HEAP分配分析仪-C#HEAP分配分析仪,可以检测明确的分配和许多隐式分配,例如拳击,封闭,隐式代表创作等。
- Roslynator- C#的190多种分析仪和190多个重构的收集。涵盖编码样式,代码可读性和简化,删除冗余,修复编译器错误等等。
- Sonarc# – C#语言的静态代码分析仪用作Sonarqube平台的扩展。
- .NET编译器平台的Stylecop分析仪 – Roslyn的Stylecop规则的港口。
- VSDIAGNOSTICS-代码质量分析仪的收集。涵盖异步方法的用法,标志枚举,例外处理中的最佳实践以及许多其他代码质量检查。
用于测试分析仪,代码修复和重构的库和框架
很棒的库和框架,用于测试分析仪,代码修复和重构。
- Microsoft.codeanalysis.testing-用于测试分析仪和代码修复的库,使用Nunit,Xunit和Mstest Frameworks。 Roslyn SDK的一部分。
- Roslyntestkit-用于编写分析仪,代码修复,重构和完成提供商的轻量级框架。它是单位测试框架不可知。
来源生成器
很棒(但目前主要是实验性的,因为.NET 5.0和C#9.0仍在预览中)源生成器和内部使用源发电机的开源项目。
- dpdtinjection-依赖注入容器的概念证明,该容器将大量分辨逻辑转移到编译阶段。提供额外的编译时间安全性和快速运行时分辨率。
- Generator.Equals-自动实现了类和记录的平等和哈希。支持不同的比较策略。提供类似的功能,例如基于IL编织的equals.fody。
- jSonsrcgen-无反射的JSON序列化器。通过在编译时生成无反射的序列化器来允许使用极快的JSON处理。
- 源发电机游乐场 – 在线应用程序,可让您尝试源生成器。非常适合学习和测试您的想法。编写自己的源生成器或从内置示例中学习,并查看生成的输出。
- stronginject-编译时间依赖注入容器。编译时间检查,免费反射和运行时代码生成,因此快速且应用程序友好。
- 结构包装 – C#结构类型的低级,轻巧和以性能为中心的序列化器。自动生成C#序列化代码以实现高峰运行时性能和效率。
- SVG到C#源生成器-SVG到C#编译器。将SVG绘图标记编译为C#,使用Skiasharp作为渲染引擎。
- WrapperValueObject-在类型周围创建免费包装纸。对于在原始类型上创建强烈键入的包装纸特别有用。
博客文章和文章
很棒的博客文章和在线文章涵盖了各种主题,例如表演,罗斯林历史,内部和类似的话题。
- Microsoft如何在C#中重写其C#编译器并将其制作开源-Roslyn的旅程,由C#的主要设计师Mads Torgersen提出。关于罗斯林项目如何开始,原因以及使其制造开源所需的内容的启发性故事。
- 在.NET编译器平台内 – 语法分析期间的性能注意事项(#SpeakRoslyn) – 深度查看Roslyn的性能,重点是记忆消耗。
- 持久性,外墙和罗斯林的红绿树木 – 关于罗斯林团队如何实施带有廉价父母参考和许多其他好东西的可重复使用的树木的启发性介绍。 Quote:“但是在罗斯林队中,我们通常会做不可能的事情” 🙂
- Resharper和Roslyn:问答 – 出色的解释为什么Resharper不会使用Roslyn。包括有关静态代码分析的良好讨论以及罗斯林的一些限制。
- Roslyn Performance(Matt Gertz) – 关于罗斯林团队如何处理评估和实现绩效的主题的见解。
会谈
很棒的公众谈论罗斯林。
- 罗斯林的力量 – Kasey Uhlenhuth在NDC OSLO 2018上的出色演讲,涵盖了Roslyn Essentials,API和用于构建代码分析仪和修复程序的工具。
贡献
欢迎贡献:-)目标是建立一个由社区驱动的awesome roslyn资源集合。在贡献之前,请确保阅读贡献指南。
执照
根据法律的可能,伊戈尔·罗恩切维奇(IgorRončević)放弃了所有版权以及这项工作的相关或邻近权利。
