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++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

C# foreach 循环中获取索引的实现方式

《C#foreach循环中获取索引的实现方式》:本文主要介绍C#foreach循环中获取索引的实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、手动维护索引变量二、LINQ Select + 元组解构三、扩展方法封装索引四、使用 for 循环替代

C# Where 泛型约束的实现

《C#Where泛型约束的实现》本文主要介绍了C#Where泛型约束的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用的对象约束分类where T : structwhere T : classwhere T : ne

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

C#中DrawCurve的用法小结

《C#中DrawCurve的用法小结》本文主要介绍了C#中DrawCurve的用法小结,通常用于绘制一条平滑的曲线通过一系列给定的点,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 如何使用 DrawCurve 方法(不带弯曲程度)2. 如何使用 DrawCurve 方法(带弯曲程度)3.使用Dr

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当