听说你开发.NET还在用VS,小哥哥给你推荐全平台的Rider
前言
.NET平台的开发一直都只能使用Visual Studio来开发,自从dotnet core 发布后不久,jetbrains 发布了Rider预览版,到目前为止的正式版2017.3.1。博主都使用过,因为博主的主力开发语言是C#,所以一直以来被捆绑到Windows平台不得动弹许久,无比渴望有一个能够跨平台玩儿玩儿的IDE,既然core都有了,那就只差一款顺手的IDE。
以下发言不是为了对比各个IDE,是为了表述我在使用过程中的心理活动
Visual Studio
这货大家应该无比熟悉,号称宇宙第一IDE,在.NET平台下拥有几乎不可替代的重要性,没有了这货,绝大部分人都无法开发了。
好了,功能强大那是重要的,性能也不错,但是。。。这货太臃肿了,有木有,我仅仅想要开发个Web API,但是使用VS,我的安装一个不下10GB的IDE。
Visual Studio For Mac
这是微软为了拉拢Mac环境开发者的橄榄枝,但是这个橄榄枝还是太嫩了,各种工具残缺,莫名其妙的BUG。
刚发布的时候,我通过 官方在线安装 进行安装,不知道是因为qiang的问题,一直超时,后来通过网友提供的地址直接下载了完整的安装包,进行安装的。
当时的第一印象,是:握草,这东西是Bate版吧,太草率了~试用了一阵后,就卸载了,根本无法在正式环境下使用。
最近,再次安装了一次,还是无法通过官方的在线安装进行安装,差评!再次尝试几次后,发现BUG少了许多,性能和实用性还是太差太差。
Visual Studio Code
我平时用这个编辑器开发Python脚本和简单的Go程序,因为打开快速,但是始终觉得,这是一个文本编辑器,而不是一个IDE
Jetbrains Rider
正主来了,我使用Rider从测试预览版到目前最新的正式版至少有了一年的时间了(Windows、Mac、Ubuntu),经过我这些时间的使用,我也发现了这个IDE很多亮点,著名的VS插件ReSharper
可能很多人都用过,此款IDE就是基于ReSharper开发的,所有ReSharper拥有的特性他都有,另外还加入了Jetbrains家族的强大功能,比如Git操作,Unit Test、Docker集成等等。
来来来,我列举一部分让大家尝尝鲜。先说一下我的使用场景,我一般是做后端API开发还有少量的配套API做的UI,所以偏后端些,但是这个IDE对前端的支持一点也不差。
下载最新版,激活,运行一下:
目前还提供常见的前端模板创建
这是创建的目录
自定义的格式化方式
我最喜欢的一键加入Docker
Jetbrains Rider 更多
只要是Resharper拥有的特性,这个IDE都有,传送门这是最新版特性的介绍,更多的就去看看,强推!
Jetbrains Rider 根据数据库查询结果快速生成DTO类
映像中DTO类的编写一直是各种麻烦,重复又无意义,特别是作为Web API服务的时候,需要提供无数的DTO映射类!
这个痛点可以借助Rider的groovy脚本来快速解决,如下图,我写了两个groovy的脚本,编写脚本很简单,而且可以在脚本中混合使用Java语法~
这两个脚本 Param-Groovy.cs.groovy
、proto-Groovy.cs.groovy
都是我用来生成DTO类的,其中proto使用来生成ProtoBuffer的DTO类
脚本的使用方法,在Rider右侧的数据库栏,选择编辑SQL脚本,简单的select一些数据后,出现如下的结果栏,切换红框中的选项到proto-Groovy.cs.groovy,然后选择一行按Ctrl + C
进行复制,然后在代码编辑器中Ctrl + V
粘贴出来
这个DTO就生成好了。
依此类推,也可以通过这种自定义脚本的方式,直接根据整个数据库生成POCO类
哟!
一下是两个脚本的代码:
Param-Groovy.cs.groovy
SEP = ", "QUOTE = "\'"NEWLINE = System.getProperty("line.separator")def record(columns, dataRow) {columns.eachWithIndex { item, idx ->OUT.append("/// <summary>\n")OUT.append("/// \n") if (dataRow.value(item) != null) OUT.append("/// eg: ${dataRow.value(item)}\n")OUT.append("/// </summary>\n")OUT.append("public string " + captureName(item.name()) + " { set; get; } \n\n")}
}ROWS.each { row -> record(COLUMNS, row) }public static String captureName(String name) { return name.substring(0, 1).toUpperCase() + name.substring(1);
}
proto-Groovy.cs.groovy
/*
* Available context bindings:
* COLUMNS List<DataColumn>
* ROWS Iterable<DataRow>
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col) }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): List<Object>; value(column): Object }
* DataColumn { columnNumber(), name() }
*/SEP = ", "QUOTE = "\'"NEWLINE = System.getProperty("line.separator")def record(columns, dataRow) {columns.eachWithIndex { item, idx ->OUT.append("/// <summary>\n")OUT.append("/// \n") if (dataRow.value(item) != null) OUT.append("/// eg: ${dataRow.value(item)}\n")OUT.append("/// </summary>\n")OUT.append("[ProtoMember(${idx + 1})] \n")OUT.append("public string " + captureName(item.name()) + " { set; get; } \n\n")}
}ROWS.each { row -> record(COLUMNS, row) }public static String captureName(String name) { return name.substring(0, 1).toUpperCase() + name.substring(1);
}
最后
Jetbrains家有很多的IDE,大家可以去看看,开发.NET并一定要使用VS,去外面的世界看看吧。
原文地址: https://www.cnblogs.com/likeli/p/8461010.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
听说你开发.NET还在用VS,小哥哥给你推荐全平台的Rider相关推荐
- 广州有哪些好点的软件外包公司或者软件开发公司呀?听说广州碧软还不错,还有其他靠谱的软件外包公司?
广州有哪些好点的软件外包公司或者软件开发公司呀?听说广州碧软还不错,还有其他靠谱的软件外包公司?广州碧软,做软件开发与外包还不错,我们和他们一直合作了好几年,不比那些超大型软件外包公司差,因为超大的软 ...
- 游戏引擎除了开发游戏还能做什么?
近几年,国内游戏市场有了爆发性的增长,随着电竞手游层出不穷.职业玩家不断壮大,游戏开发和 "Unity&虚幻引擎"成为很多人茶余饭后讨论的话题,越来越多年轻人想要学会这项技 ...
- 2020年Java开发前景还好吗?现在学java好找工作吗?
2020年Java开发前景还好吗?现在学java好找工作吗?下面就跟着小编一起来看看吧! Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植 ...
- 目前Java开发前景还好吗 Java工资待遇怎么样
目前Java开发前景还好吗?Java工资待遇怎么样?Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心. ...
- 我的名片能运行Linux和Python,还能玩2048小游戏,成本只要20元
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 猜猜它是什么?印着姓名.职位和邮箱,看起来是个名片.可是右下角有芯片,看起来又像是个PCB电路板. 其实它是一台超迷你的ARM计算机,不仅 ...
- 微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现
接着上面微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现.(第一二章:微信小程序开发教程,第三四章:微信小程序项目结构以及配置&微信小程序首页面开发,第五章:微信小程序名片夹详情页开 ...
- 如何开发与设计一个爆款小游戏
小游戏是今年游戏行业中又一个火爆的类型.它所指的不是微信小游戏,而是可以运行于微信.浏览器的H5游戏,也是能以Native形式运行的小游戏.它小而美,即点即玩,社交属性更强.在这次开发者巡回沙龙中,游 ...
- uni-app云开发的网盘助手微信小程序源码抓取网盘资源引流好助手
uni-app云开发的网盘助手微信小程序源码抓取网盘资源引流好助手 这是一款uni-app开发的一款网盘小助手小程序源码 该源码主要用于用户输入关键词然后全网抓取百度网盘资源内容 另外呢该小程序还可以 ...
- 基于小程序开发的宝可梦图鉴小程序源码课程设计毕业设计
源码地址:基于小程序开发的宝可梦图鉴小程序源码课程设计毕业设计 宝可梦是一款备受喜爱的游戏,其丰富的剧情和可爱的角色深受玩家们的喜欢.而对于宝可梦爱好者来说,一款好的宝可梦图鉴是必不可少的.今天,我来 ...
最新文章
- linux环境下和网络服务相关的配置文件含义及如何配置
- [转载] 晓说——第31期:无比强大的美国工会
- java web netty_基于Netty的非Servlet规范 JavaWeb框架及高性能 Java服务器
- Hadoop 运行jar包时 java.lang.ClassNotFoundException: Class com.zhen.mr.RunJob$HotMapper not found...
- Visual Studio的语言服务器协议
- bootstrap在ie8下,兼容媒体查询
- SOCKET bind INADDR_LOOPBACK和INADDR_ANY的区别
- 前端每日实战 2018 年 9 月份项目汇总(共 26 个项目)
- Spring : Spring自定义FactoryBean
- oracle的一些学习
- STM32烧写程序:ST-link驱动下载和安装
- APP崩溃的主要原因
- 职场人如何制定学习计划?
- Ubuntu18.04+输入法
- 王者荣耀无法提取模型
- 第13课:生活中的克隆模式——给你一个分身术
- java List删除元素问题及解决办法
- Dota2世界冠军OG被AI碾压,全程人类只推掉两座外塔 | 广东省智能创新协会
- 有小伙伴说看不懂 LiveData、Flow、Channel,跟我走
- 恶魔奶爸语法1-3课
热门文章
- python基础===PEP网站,代码规范指南
- 页面获取Spring Security登录用户
- Web开发中的矢量绘图(vml,svg)处理和应用
- 中小企业信息化,“轻”和“快”是方向
- 在Eigrp做不等值路由的负载均衡
- .NET Core中异常过滤器ExceptionFilter的使用介绍
- C# 修改配置文件进行窗体logo切换
- .NET Core 服务在 ARM64 服务器中的部署
- C# 中的 null 包容运算符 “!” —— 概念、由来、用法和注意事项
- 跟我一起学Redis之高可用从主从复制开始