零基础学pytho 网站开发,乐清市网论坛,软件培训网站建设,专业模板建站服务前言.NET平台的开发一直都只能使用Visual Studio来开发#xff0c;自从dotnet core 发布后不久#xff0c;jetbrains 发布了Rider预览版#xff0c;到目前为止的正式版2017.3.1。博主都使用过#xff0c;因为博主的主力开发语言是C##xff0c;所以一直以来被捆绑到Window… 前言.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程序因为打开快速但是始终觉得这是一个文本编辑器而不是一个IDEJetbrains Rider正主来了我使用Rider从测试预览版到目前最新的正式版至少有了一年的时间了(Windows、Mac、Ubuntu)经过我这些时间的使用我也发现了这个IDE很多亮点著名的VS插件ReSharper可能很多人都用过此款IDE就是基于ReSharper开发的所有ReSharper拥有的特性他都有另外还加入了Jetbrains家族的强大功能比如Git操作Unit Test、Docker集成等等。来来来我列举一部分让大家尝尝鲜。先说一下我的使用场景我一般是做后端API开发还有少量的配套API做的UI所以偏后端些但是这个IDE对前端的支持一点也不差。下载最新版激活运行一下目前还提供常见的前端模板创建这是创建的目录自定义的格式化方式我最喜欢的一键加入DockerJetbrains 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.groovySEP , 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 ListDataColumn
* ROWS IterableDataRow
* OUT { append() }
* FORMATTER { format(row, col); formatValue(Object, col) }
* TRANSPOSED Boolean
* plus ALL_COLUMNS, TABLE, DIALECT
*
* where:
* DataRow { rowNumber(); first(); last(); data(): ListObject; 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