JetBrains宣布Project Rider:一款C#跨平台IDE

2023-10-07 01:32

本文主要是介绍JetBrains宣布Project Rider:一款C#跨平台IDE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文来源于我在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官网了解各种产品的信息并下载试用。

这篇关于JetBrains宣布Project Rider:一款C#跨平台IDE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155215

相关文章

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

基于Python+PyQt5打造一个跨平台Emoji表情管理神器

《基于Python+PyQt5打造一个跨平台Emoji表情管理神器》在当今数字化社交时代,Emoji已成为全球通用的视觉语言,本文主要为大家详细介绍了如何使用Python和PyQt5开发一个功能全面的... 目录概述功能特性1. 全量Emoji集合2. 智能搜索系统3. 高效交互设计4. 现代化UI展示效果

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

idea中project的显示问题及解决

《idea中project的显示问题及解决》:本文主要介绍idea中project的显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录idea中project的显示问题清除配置重China编程新生成配置总结idea中project的显示问题新建空的pr

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py