博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Visual Studio (VS IDE) 你必须知道的功能和技巧 - 【.Net必知系列】
阅读量:6370 次
发布时间:2019-06-23

本文共 3504 字,大约阅读时间需要 11 分钟。

前言

    本文主要阐述一些Visual Studio开发下需要知道的少部分且比较实用的功能,也是很多人忽略的部分。一些不常用而且冷门的功能不在本文范围,当然本文的尾巴【.Net必知系列】纯属意淫,如有雷同,基情四射。。

目录
  1. WEB项目版本发布时 Web.config 中 Web.Release.config 和 Web.Debug.config 的使用。
  2. 项目属性下【生成事件】使用。
  3. 快速分析未知架构和类调用结构的方式(VS2010/2012)。
一:Web.Release.config 和 Web.Debug.config 的使用

    有时候我们开发与发布Web应用程序时Web.Config中的配置可能不一样,比如数据库连接字符串。那在发布时想自动替换Web.config文件的内容如何办呢?特别是项目开发到后期配置节点越来越多,共同部分和差异部分经常使用<!--注释--> 来进行节点的切换,这样是不是觉得太麻烦了,现在我们就来解决这个问题,当然这只是演示比较常用的一种方式,至于其他方式不做言表。

  大家看见的这个就是所说的3个经常看见但是下面2个一般没有人使用额配置文件, Web.Release/Debug.config内容描叙(默认新建项目会自动生成)

下面是Web.Release.config 和 Web.Debug.config 的配置文件

下面是Web.config 的配置文件

注意,我在Web.config的connectionStrings节点下 下建立2个 子节点用来比较发布后的效果,当发布后就会变成

 下面是发布 后Web.config 的配置文件

//注意这里的字符串变了,变成了release配置文件中的字符串

这样就自动把替换Web.config中需要替换的节点按照设定的模式进行处理了,下面具体看一下描叙语言吧。

    这里面2句重要的语句是 xdt:Transform="SetAttributes" xdt:Locator="Match(name)" 这2个配置属性意思是,把Web.config中connectionStrings对应name为AppConnection的节点属性替换。

  这里的语法来源于xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" 命名空间,那2个分开的文件中都需要导入才能使用。

    简单讲一下常用配置属性

1 :locator属性

(1)Match;

这里你需要就是在你直接匹配的属性名。    

View Code

 

Engine会再你的Web.config中找到匹配name为Norhwind的就用上面的配置文件图替换。

(2)Condition 基于XPath,在Locator中应用有逻辑性的判断表达式。

View Code

 

上面就是Name属性匹配‘Norhwind’的或providerName匹配System.Data.SqlClient的配置文件节点都会被替换。

 

2: Transform 属性

(1) Replace 表示所有匹配的节点都是替换

View Code

 

其实这里描述文件时web.release.config,将要替换的文件时Web.config . (2) Remove 删除第一匹配的元素。

(3)RemoveAll

View Code

 

(4)Insert

插入从父节点中插入,(authorization中插入<deny users="*" />)

View Code

 

(5)SetAttributes

View Code

 

 本功能和技巧大概就这里,具体详细的配置参考下面微软官方文档

 

二:
项目属性下【生成事件】的使用

  什么是生成事件呢,可以使用生成事件指定在生成开始之前或生成完成之后运行的命令。只有当生成成功到达生成过程中的这些时间点时,才执行生成事件。浅显易懂的说就是项目编译完毕后,你需要额外做些什么事情,这个在C#代码里面是做不了的,这样生成事件就派上用场了。

看到这个图是不是很熟悉呢,但具体用到过的同学有多少^_^。

    生成事件分为【生成前】和【生成后】执行的命令函数,后期生成事件又可以指定

3种编译情况选项

   常见生成事件举例:生成后DLL复制,转移

 例子一:

我有一个解决方案【NetToolStudio】这个是我一个插件式项目,由于【NTS.SqlServer】该程序集只是一个插件实现的子集,所以不依赖主框架,不会自动复制到BIN目录,更不会帮我复制到【DBProvider】放置插件文件夹,故需要将NTS.SqlServer生成的dll拷贝到【DBProvider】目录。但是每次手动拷贝很麻烦,于是乎生成事件就派上用场了,生成事件里的命令行是支持dos命令的,在后期生成事件命令行中输入 “copy或xcopy [源文件全路径]  拷贝到的路径”。

xcopy /r /y $(TargetPath) $(SolutionDir)NTS\DBProvider\

这样就产生了这样一句dos命令

当然也可以想如图上的写多条命令语句。

大家看见里面有$(TargetPath) $(SolutionDir)这些是些什么啊?打开生成事件中的宏如下图所示。

 

看打了吧,这样我们可以拿到程序集和解决方案给我的一些宏命令,至于什么是宏命令,这里不做解释,可以使用就好。

 

本功能大概就这里,具体详细的配置参考下面微软官方文档

 

分享几个好用的批处理,也是常用哟。

    【该批处理的功能可以把当前目录所有的DLL复制到当前的TEMP文件夹中】

   【看名字就知道是删除所有VS生成的BIN目录和OBJ目录,打包时复制带走的好帮手】

 

三:
快速分析未知架构和类调用结构的方式

   大家有时候看开源代码和新入职一家公司看以前同仁写的代码是不是很纠结,没有文档,没有架构图,没有人问,但是项目已经维护了N年了,看起来好恶心啊,现在有2种VS自带的功能来快速浏览和建立起自己的逻辑思维图。

是的,就是我们在代码编辑窗体中右键后出现的,这2种代码视图和调用层次结构图是快速读懂别人代码的一种捷径。

1.VS 2010引进了一个新的“View Call Hierarchy (查看调用的层次结构)”的特性,允许你快速地发现你的代码库中的某个特定方法或属性是在何处被调用的,允许你快速地遍历(traverse)整个代码库的调用树形图(而不必运行或调试方案)。

2.上面的代码视图,微软叫做【Code Map 理解复杂代码】

 

首先来看看【查看调用的层次结构】

方法名称上右键后点击-》查看调用的层次结构,稍等几秒就会出现如下图

然后点击里面的【UpdateKeyWordToFile】节点,可以继续展开。

看是不是很爽,具体怎么看,请看红色标识,赶紧去尝试一下吧,具体还有很多功能,有很多惊喜。

 

再来看看代码(类)引用图【Code Map 理解复杂代码】

 【类】或者【方法】名称上右键后点击-》在代码上查找所有引用,稍等几秒(看机器性能)就会出现如下图:

右键方法

右键类

 如果大家觉得它仅仅只是看看而已就错了,当我们debug的时候也能显示当先调用方法的具体位置和层次,能看清前后的调用顺序。

 

当我打了断点后,右图也会显示一个断点图标,标识运行的具体位置,如果你的index里面有很多方法,都可以右键添加到右边的MAP视图中,根据自己的喜好来调整数量和层次。

转载于:https://www.cnblogs.com/dingdaxiong/p/4439627.html

你可能感兴趣的文章
商标转让和域名转让的区别是什么?
查看>>
《数值分析(原书第2版)》—— 1.1 二分法
查看>>
Instor公司发布一款免费的数据中心成本估算工具
查看>>
公交监控系统之弊须有人出来认头
查看>>
STiD推出两款UHF RFID标签,适用于航空航天、石油等行业
查看>>
注意五大问题,避免CRM低效问题
查看>>
物联网将如何塑造未来的网络
查看>>
大连应探索适合智慧城市建设运营模式
查看>>
对Gartner发布2017年十大技术趋势的分析
查看>>
宜城运用大数据严查惠民政策落实问题
查看>>
智能语音推动物联网应用落地
查看>>
Java 8的6个问题
查看>>
国家能源局亮配额制家底:弃光或缓解?
查看>>
Qt之高级网络操作(HTTP/FTP快速上手)
查看>>
《Hadoop集群与安全》一1.1 选择Hadoop集群硬件
查看>>
Debian 考虑重新加入 FFmpeg
查看>>
《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一1.4 淘宝店铺转化率优化
查看>>
《技术的潜能:商业颠覆、创新与执行》一一1.4基因技术
查看>>
《设计工作室生存手册》—第1章1.5节设计师的工作要有系统
查看>>
《Cisco QoS认证考试指南(第2版)》——6.4节基于类的整形配置
查看>>