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

相关文章

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

arduino ide安装详细步骤

​ 大家好,我是程序员小羊! 前言: Arduino IDE 是一个专为编程 Arduino 微控制器设计的集成开发环境,使用起来非常方便。下面将介绍如何在不同平台上安装 Arduino IDE 的详细步骤,包括 Windows、Mac 和 Linux 系统。 一、在 Windows 上安装 Arduino IDE 1. 下载 Arduino IDE 打开 Arduino 官网

C# dateTimePicker 显示年月日,时分秒

dateTimePicker默认只显示日期,如果需要显示年月日,时分秒,只需要以下两步: 1.dateTimePicker1.Format = DateTimePickerFormat.Time 2.dateTimePicker1.CustomFormat = yyyy-MM-dd HH:mm:ss Tips:  a. dateTimePicker1.ShowUpDown = t

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

C# 防止按钮botton重复“点击”的方法

在使用C#的按钮控件的时候,经常我们想如果出现了多次点击的时候只让其在执行的时候只响应一次。这个时候很多人可能会想到使用Enable=false, 但是实际情况是还是会被多次触发,因为C#采用的是消息队列机制,这个时候我们只需要在Enable = true 之前加一句 Application.DoEvents();就能达到防止重复点击的问题。 private void btnGenerateSh

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

C# Hash算法之MD5、SHA

MD5我们用的还是比较多的,一般用来加密存储密码。但是现在很多人觉MD5可能不太安全了,所以都用上了SHA256等来做加密(虽然我觉得都差不多,MD5还是能玩)。 还是跟上一篇说的一样,当一个算法的复杂度提高的同时肯定会带来效率的降低,所以SHA和MD5比较起来的话,SHA更安全,MD5更高效。 由于HASH算法的不可逆性,所以我认为MD5和SHA主要还是应用在字符串的"加密"上。 由于