实用帖 | 使用Visual Studio开发.NET Core推荐设置

Visual Studio 一直是.NET程序员的好伙伴,如今虽然.NET Core的开发可以用VSCode等其他环境,但VS依旧有强大的优势。

今天来介绍下如何让VS用得更顺手的技能

Here We Go!




基本配置

首先要搞清楚的一点是,并不是所有版本的Visual Studio都支持.NET Core开发,甚至2017的早期版本也不行。有些童鞋误以为只要安装了.NET Core的SDK,就可以使用很久以前安装的VS2017开发,这会导致代码无法编译通过。

例如:对于.NET Core 2.1版本,至少要求 VS2017 升级到15.7。目前.NET Core 最新的 release 是2.2,所以我推荐大家始终保持 VS2017 升级到最新。

升级方法

?

在开始菜单里搜索 Visual Studio Installer

640?wx_fmt=png

一旦 IDE 有更新

就可以点击 “Update” 按钮安装更新

640?wx_fmt=png

另外,确保你已经勾选了

?

“ .NET Core cross-platform development” 

这个 workload

640?wx_fmt=png

时间久了,随着 VS 的每次更新,你的机器里会出现各种版本的 .NET Core SDK。我的习惯是保留当前版(2.2)和LST(2.1)的最新 SDK,其他都可以卸载。

?其中2.1.202,是 VS 2017自作聪明装上的,对应的其实是 .NET Core 2.0的版本,如果你不开发2.0的话,完全可以手工卸载。2.1.503对应的是 .NET Core 2.1.7,2.2.103对应的 是.NET Core 2.2.1。这些小版本通常是安全更新。

640?wx_fmt=png

要查看机器上的 .NET Core SDK 已经 runtime

可以用 dotnet --info 命令:

640?wx_fmt=png


插件

ReSharper

我个人必用的插件是 ReSharper,这个是收费插件,但提供了非常完备和强大的功能,比如批量重命名、整理 namespace、推荐使用新版 C# 的语法等等。

并且,它很早就支持 .NET Core 了。如果你有不错的开源项目,也可以向JetBrains申请免费使用。

?产品地址?

https://www.jetbrains.com/resharper/ 

640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

对于.NET Core 来说,我们经常写依赖注入,那么有了 ReSharper,你就可以让插件一键帮你生成构造函数注入,省时省力。

640?wx_fmt=png640?wx_fmt=png

Web Essentials

另一套插件是 Web Essentials ,在 VS2017版里,它是一个插件全家桶,其中包含了众多子插件都可以独立安装。

640?wx_fmt=png

在 Tools > Extensions and Updates 下就是 VS2017的插件窗口,点击 Online 选项卡,然后搜索 "Web Essentials",即可下载安装这个全家桶。

640?wx_fmt=png

桶里的功能实在太多,我挑几个有代表性的给大家的介绍一下。

Bundle & Minifier

这是一款在编程或编译时压缩和打包 CSS/JS 文件的插件。通过工程目录下的 bundleconfig.json 文件定义压缩和打包规则,一目了然。然后你在编辑保存源文件的时候,目标打包文件就会自动更新。

640?wx_fmt=png640?wx_fmt=png

在脱离 VS 的环境下,例如你的 CI 环境,也可以做到编译时重新生成打包文件。只需要指定"Enable bundle on build" 即可。

640?wx_fmt=png

实际上这个命令的作用是在你的工程文件里添加了一个NuGet包:

<PackageReference Include="BuildBundlerMinifier" Version="2.8.391" />


Open Command Line

.NET Core 经常需要手工敲命令来装逼,例如使用 dotnet 或 libman 的 CLI 命令。这款插件能够帮助你在选定的路径直接打开 cmd 或 PowerShell。

640?wx_fmt=png


设置

关于皮肤

VS 默认是浅色皮肤的,许多人将它改成黑色,除了能装逼以外,是有实用道理的。

注意看红线圈出的接口类型的颜色,这是黑色皮肤下的。

640?wx_fmt=png

如果用默认的(Blue)浅色皮肤,就难以辨别是接口还是类了:

640?wx_fmt=png

而.NET Core 里因为依赖注入的大量使用,一定是会遇到很多接口的,所以建议大家实用黑色皮肤,既能装逼,又能看清接口类型。

640?wx_fmt=png

鸡肋追踪

在.NET Core 的工程里,VS 默认会在 Solution Explorer 里自动选中当前正在编辑的文件,这个鸡肋功能通常会造成麻烦,特别是你在编辑同一个文件夹的临近文件,而又临时需要看另一个工程目录里的文件。这个自动选中当前文件的功能会让我们不得不来回拖滚动条。其实是可以关闭的。

在 Project and Solutions 里,取消勾选 Track Active Item in Solution Explorer 即可。

640?wx_fmt=png

自动换行

讲文明的程序员写代码会注意格式,然而我们没法控制团队里每一个成员都和自己一样牛逼,有时候也有一些三方或者工具生成的代码是不换行的。拖水平滚动条虽然能治疗颈椎病,但是显然降低了生产效率。我通常会把VS的自动换行打开。

在 Text Editor > All Languages 里,勾选 Word wrap

640?wx_fmt=png


640?wx_fmt=gif

(图片来源于网络)

感谢看到这里

?

以上就是博主开发.NET Core程序时

使用的Visual Studio配置

欢迎大家留言补充!

原文地址:https://edi.wang/post/2019/1/28/recommended-visual-studio-configuration-for-net-core-development

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P3642 [APIO2016]烟火表演(左偏树、函数)

解析 感觉是左偏树的神题了. 首先有一个比较显然的结论&#xff0c;一个合法的方案中&#xff0c;两个叶子到它们 lca\text{lca}lca 的距离必须相等. 考虑设计 dp\text{dp}dp &#xff1a; fi,xf_{i,x}fi,x​ 表示 iii 的子树中&#xff0c;所有叶子到它的距离为 xxx 的最小…

.NET Core IdentityServer4实战 第一章-入门与API添加客户端凭据

内容&#xff1a;本文带大家使用IdentityServer4进行对API授权保护的基本策略作者&#xff1a;zara(张子浩) 欢迎分享&#xff0c;但需在文章鲜明处留下原文地址。本文将要讲述如何使用IdentityServer4对API授权保护以及如何携带Token进行访问受保护的API&#xff0c;通过HttpC…

蒋金楠:200行代码7个对象《ASP.NET Core框架揭密》苏州.NET俱乐部课程分享

【课程名称】《ASP.NET Core框架揭密》【老师介绍】蒋金楠&#xff0c;同程艺龙机票事业部技术专家&#xff0c;微软最有价值专家&#xff08;MVP&#xff0c;连续12&#xff09;&#xff0c;多本.NET专著作者。博客园Artech&#xff0c;公众号“大内老A”。【课程简介】讲述AS…

H - Checker FZU - 2041

H - Checker FZU - 2041 题意&#xff1a; 一个长度为n的01串&#xff0c;现在能将里面的1移动m次&#xff0c;问最长的连续0是多长 题解&#xff1a; 没想出来&#xff0c;看了其他人代码&#xff0c;就是对于每个0空间进行扩充&#xff0c;然后记录每次扩充的最大值 关键…

2021-4-1 多校省选模拟赛

文章目录考试复盘nmd考试复盘 T1T1T1 我可太喜欢这种不要脑子的莽试题了&#xff01;&#xff01; 考场上猜的结论d>3d>3d>3无解 d1,d2d1,d2d1,d2的填法也试出来了 d3d3d3只试出来了n,mn,mn,m是333的倍数的填法 但是另外的情况就GGGGGG了 最后交上去竟然还敲挂了(…

Reactive Extensions 相见恨晚的Rx.Net

何为Reactive Extensions&#xff08;Rx&#xff09;Rx是一个遵循函数式编程的类库&#xff0c;它引用观察者以及迭代器设计模式对可观察对象产生的数据进行异步消费。使用Rx&#xff0c;开发人员将使用LINQ运算符操作异步数据流&#xff0c;并使用调度程序参数化异步数据流中的…

AcWing 1303. 斐波那契前 n 项和

AcWing 1303. 斐波那契前 n 项和 题意: 题解&#xff1a; 这个题解分析的太到位了 代码&#xff1a; #include<iostream> #include<cstring>#define ll long longusing namespace std;const int N3;int n,m; ll f1[N][N]{{1,1,1}}; ll A[N][N]{{0,1,0},{1,1,1…

2021-4-4 省选模拟赛(灯,十字路口,密室逃脱)

文章目录考试复盘A&#xff1a;灯(light)B&#xff1a;十字路口(crossing)C&#xff1a;密室逃脱(escape)考试复盘 第一题分块虽然明显&#xff0c;但是说实话自己没怎么做过分块的题 就不会做大块的处理。。。(;_) 今天听H老说分块可以成替代数据结构的骗分暴力对拍神器 这么…

张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用

什么是 GPIOGPIO 是 General Purpose Input Output 的缩写&#xff0c;即“通用输入输出”。 Raspberry Pi 有两行 GPIO 引脚&#xff0c; Raspberry Pi 通过这两行引脚进行一些硬件上的扩展&#xff0c;与传感器进行交互等等。Raspberry Pi B/2B/3B/3B/Zero 引脚图简单的讲&am…

acwing1304. 佳佳的斐波那契

1304. 佳佳的斐波那契 题意&#xff1a; S(n)表示Fibonacci的前n项和mod m T(n)(F12F23F3…nFn)mod m 给n和m&#xff0c;求T(n) 题解&#xff1a; 矩阵快速幂 参考题解 关键在于构造矩阵相乘的形式 代码&#xff1a; #include<bits/stdc.h> #define debug(a,b) pri…

1305. GT考试

1305. GT考试 题意&#xff1a; 准考证长度为n位&#xff0c;不吉利数字有m位&#xff0c;问不出现不吉利数字的准考证有多少种&#xff0c;答案mod K 题解&#xff1a; 动态规划kmp矩阵快速幂 设dp[i][j]表示长度为i&#xff0c;且不包含S串&#xff0c;且末尾部分与S串的…

.NET Core IdentityServer4实战 第二章-OpenID Connect添加用户认证

内容&#xff1a;本文带大家使用IdentityServer4进行使用OpenID Connect添加用户认证作者&#xff1a;zara(张子浩) 欢迎分享&#xff0c;但需在文章鲜明处留下原文地址。在这一篇文章中我们希望使用OpenID Connect这种方式来验证我们的MVC程序&#xff08;需要有IdentityServe…

[CF/AT]各大网站网赛 体验部部长第一季度工作报告

文章目录CodeForces#712 (Div. 1)——1503A. Balance the BitsB. 3-ColoringC. Travelling Salesman ProblemD. Flip the Cards108 (Rated for Div. 2)——1519A. Red and Blue BeansB. The Cake Is a LieC. Berland RegionalD. Maximum Sum of ProductsE. Off by OneCodeforce…

G - Tiling FZU - 2040(未解决)

G - Tiling FZU - 2040 题意&#xff1a; m * n的矩阵&#xff0c;通过任意大小的矩阵&#xff0c;有多少种填充方式&#xff1f; 图片为3 * 2的矩阵有如下填充方式&#xff1a; 题解&#xff1a; 矩阵快速幂 目前还没参透 代码:

I - The Mad Mathematician FZU - 2042(未解决)

I - The Mad Mathematician FZU - 2042 题意&#xff1a; 给你一段伪代码&#xff1a;如图 现在给你A&#xff0c;B&#xff0c;C&#xff0c;D&#xff0c;E&#xff0c;的具体值&#xff0c;问你sum是多少 0<A,B,C,D,E<263-1 题解&#xff1a; 数位dp&#xff1f;…

程序员修仙之路--高性能排序多个文件

点击上方蓝色字体&#xff0c;关注我们菜菜呀&#xff0c;昨天晚上班级空间崩溃了程序员主力 Y总what&#xff1f;菜菜我看服务器上写了很多个日志文件&#xff0c;我看着太费劲了&#xff0c;能不能按照日期排序整合成一个文件呀&#xff1f;程序员主力 Y总Y总要查日志呀&…

【.NET Core项目实战-统一认证平台】第十四章 授权篇-自定义授权方式

上篇文章我介绍了如何强制令牌过期的实现&#xff0c;相信大家对IdentityServer4的验证流程有了更深的了解&#xff0c;本篇我将介绍如何使用自定义的授权方式集成老的业务系统验证&#xff0c;然后根据不同的客户端使用不同的认证方式来集成到统一认证平台。.netcore项目实战交…

D - Covering HDU - 6185(未解决完)

D - Covering HDU - 6185 题意&#xff1a; 4 * n的地板&#xff0c;有无数个1 * 2 和2 * 1 的砖块&#xff0c;问有多少方式填满&#xff1f; 1≤n≤10^18 题解&#xff1a; 矩阵快速幂 代码&#xff1a;

.NET-记一次架构优化实战与方案-前端优化

前言上一篇《.NET-记一次架构优化实战与方案-梳理篇》整理了基本的业务知识&#xff0c;同时也罗列了存在的问题&#xff0c;本篇主要是针对任务列表的页面进行性能优化。该篇主要涉及的是代码实现上的优化&#xff0c;实现上的问题是战术债务&#xff0c;也就是我们平常出现的…

GDOI2022游记

文章目录Day -1Day 0Day 1Day 2Day 3()Day ?~?Day ?Day -1 考前好像写题状态不太好&#xff08;可能是纯粹的懒&#xff09;。 开始写板子&#xff0c;很多算法都很久没碰了&#xff0c;有的调了很久才过。树剖都调了一个多小时&#xff0c;身败名裂。不过想想省选应该不怎…