本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2016/02/jetbrains-announce-project-rider
在NDC London上,JetBrains发布了一个新项目——跨平台的C# IDE,它基于IntelliJ Platform并使用ReSharper技术进行开发。该项目代号为Project Rider,这款IDE包含了大家早已熟悉的来自于ReSharper与基于IntelliJ的IDE的诸多特性,比如说快速修复、检测、智能导航等。虽然ReSharper寄生于Visual Studio中,但Project Rider却是个功能完善、独立的IDE。
虽然现在的项目还处于早期阶段,但已经包含了如下特性:
导航——智能导航是JetBrains IDEs的一个主要特性,Project Rider当然也不例外。它提供了标准的Go To Type、Go To File,并且集成了IntelliJ Platform的“Search Everywhere”特性,可以转向符号、类型、文件,甚至还可以在设置与动作中进行搜索。
还可以使用Navigate To弹出菜单,在类继承体系中查找父类/子类等,也可以查找使用的地方,其结果会显示在标准的IDE工具窗口中。
编辑——Project Rider实现了大量的智能编辑特性,从类型辅助(比如说插入花括号与自动格式化)到Live Templates(包括ReSharper 10的postfix模板),还提供了快速信息提示与边栏图标,从而可以做到继承导航与上下文动作等。
检查——ReSharper所支持的大多数检查都会在编辑器中以错误、警告、建议与提示的形式显示出来。这包括对无法识别的符号的红色代码显示与代码问题的下划线高亮显示等等。
Alt+Enter——如果没有Alt+Enter支持,那么JetBrains IDE就是不完善的,ReSharper快速修复的大多数菜单项与上下文动作都是可用的。Project Rider还支持将多个动作应用到整个文件中,并且可以直接修改菜单中检查的严重级别。
重构——Project Rider提供了有限的重构功能。大多数重构都需要某种形式的用户界面,不过这些界面目前尚未实现。Project Rider可以重命名符号,并引入或是内联变量,还可以根据Alt+Enter来修改代码。
反编译——如果导航到没有源代码的类型,那么Project Rider就会帮你进行反编译,结果与C#代码很类似。
当然了,作为一个标准IDE,它还包含了其他很多特性:
- 多种运行时支持。Project Rider支持.NET Framework与Mono,对CoreCLR的支持也在进行当中。它可以加载MSBuild与MSBuild解决方案,以及DNX项目。此外,它还包含了用于创建新项目的模板。在创建空项目时,它真的就是空的!
- 构建、运行与调试。一个IDE最为重要的特性之一就是调试,Project Rider当然也不例外。它可以构建并运行.NET Framework、Mono与DNX项目,并且可以调试.NET与Mono应用,DNX调试与CoreCLR支持正在进行当中。任何构建错误都会显示在构建工具窗口中,调试工具窗口用于显示调用堆栈、变量及观察窗口。
- 跨平台。就像可以运行并调试多个运行时一样,Project Rider本身可以在多个平台上运行。它可以在Windows与Mac OS X上运行,Linux上也可以,不过还没有进行测试。
工作方式
Project Rider是个构建在IntelliJ Platform之上的独立IDE,就像WebStorm、DataGrip与JetBrains的其他IDE一样。不过,区别在于相对于在IntelliJ Platform(运行在JVM上)上重新实现ReSharper的特性,Project Rider与ReSharper之间是通过非常快速的自定义二进制协议进行通信的。这样,后端依旧是使用C#编写,运行在.NET或是Mono之上的ReSharper,而前端则使用Kotlin编写,并且调用IntelliJ Platform的APIs。我们后面会在博客中深度介绍其实现细节。
为何还要创建一款C# IDE?
主要是为广大开发者提供一种选择。我们坚信可以为那些在不同环境下工作的开发者提供优秀的用户体验。那为什么是现在呢?这是因为我们认为现在正是时候,原因如下:
- 为了让ReSharper能够在不同环境下使用(独立于Visual Studio),我们已经艰苦工作多年了,dotPeek就是例证。
- 现在已经有越来越多的开发者在使用非Windows平台,我们希望能给予他们所熟知的与ReSharper相同的体验。
- 最后,微软现在正在将其平台与C#语言向着开源的方向推进,比如说CoreCLR。
这对于ReSharper意味着什么呢?
ReSharper依旧是Visual Studio的最佳扩展,也是我们的龙头产品之一。Project Rider使用了ReSharper则强化了我们对于ReSharper的承诺,因为对ReSharper的任何更新都不仅会让ReSharper受益,Project Rider也会从中得到巨大的好处。除此之外,我们希望在Project Rider上所做的工作反过来能促进ReSharper的不断发展。本质上,Project Rider只会加大我们在ReSharper上所付出的努力。
许可模型是怎样的?
虽然现在谈论具体细节还为时尚早,不过其许可模型将会与JetBrains Toolbox中的其他产品保持一致。在制订价格时,我们会考虑到可能会出现的诸多使用场景,比如说有人可能想要使用两个工具等等。我们希望尽快制订出价格信息。
路线图
现在已经在通往1.0的路上了。我们对于架构非常有信心,并且坚信已经打下了非常好的根基,从而能够实现出1.0版本中计划的那些特性。我们已经实现了不少功能,不过还有很多功能亟待实现。我们计划过一阵儿开放一个私有的EAP,并且截止到2月底。在我们的博客与Twitter上会提供注册表单。在这个私有EAP之后,我们将会转向公开EAP。到底什么时候开放公开EAP取决于早期测试者所提交的反馈信息。我们的目标是在今年秋季发布正式版本。我们对于Project Rider感到非常兴奋,并且希望你能与我们一同分享其中的喜悦之情。如果有任何问题,请随时提出来。不要忘记关注我们的Twitter账号@JetBrainsRider以了解未来的更新信息!相信Project Rider将会给广大C#开发者带来一缕清风。根据JetBrains以往的产品风格与特性,我们有理由相信这款新的IDE也一定不会让大家失望。
JetBrains是一家来自于捷克的软件开发公司,该公司位于捷克的布拉格。JetBrains以各种优秀的开发工具而闻名,比如说Intellij IDEA、WebStorm、PyCharm、RubyMine、AppCode、PHPStorm、TeamCity、YouTrack、DataGrip等等。每一款工具都深受广大开发者所钟爱。JetBrains所推出的各种工具基本上涵盖了常见的软件开发平台,如Mac、Windows及Linux等。感兴趣的读者可以到JetBrains官网了解各种产品的信息并下载试用。