VS2012的简单但有趣的特性






4.72/5 (82投票s)
这是“VS2010 和 C# 4.0 简单而有趣的特性”的替代文章。
引言
通常我们会在新版本中尝试寻找独特的功能,但我的文章旨在发现 VS2012 中包含的简单而实用的特性。
本文的特性
图像缩略图:
在解决方案资源管理器中,我们可以添加图像。当您将鼠标指针悬停在图像上时,可以看到其缩略图。这使得识别图像变得容易。

页面检查器:
当我们有嵌套页面时,例如在 MVC 部分页面中,或在主页面中的 .NET 页面中,要找出代码的哪一部分负责生成 HTML 会变得非常困难。这时就有了另一个有用的功能:如果您想检查特定页面,只需右键单击该页面。您会看到“在页面检查器中查看”选项。

选择“检查器”后,我们可以看到如下格式的页面

无论我们在浏览器窗口中选择什么,其 HTML 都会显示在其下方,而负责该 HTML 的页面会显示在右侧。以前我们通常运行代码,然后使用 Firebug 等工具进行检查,任何更改都需要停止解决方案,应用更改,然后再次运行才能看到效果。但是使用此选项,我们可以应用更改并立即看到效果。此功能需要 IE9。
颜色选择器:
大多数开发人员都需要此功能,因为他们很难记住颜色名称,如果他们获得颜色选择器,则很容易设置颜色。VS2012 为 CSS 提供了内置的颜色选择器。只需在颜色前键入 #,即可看到颜色选择器。选择您喜欢的任何颜色,代码就会被添加。

IIS Express
VS2012 将 IIS Express 作为其默认服务器。IIS Express 是一个轻量级、独立的 IIS 版本,包含 IIS Web 服务器角色的所有核心功能。在 Visual Studio 2010 SP1 中,IIS Express 作为一项选项提供,您必须明确配置。IIS Express 具有以下功能:
- 它不作为服务运行,也不需要管理员用户权限即可执行大多数任务。
- IIS Express 与 ASP.NET 和 PHP 应用程序配合良好。
- 多个 IIS Express 用户可以在同一台计算机上独立工作。
欲了解更多信息,请访问 IIS Express 概述

重命名标签时自动补全标签:
HTML 编辑器在重命名标签时提供了一个非常棒的功能。例如,如果您添加了 <div id="div1">Name</div>
。编写后您觉得应该使用 span 而不是 div,当您将 div 单词更改为 span 时,关闭标签会自动更改为 </span>
。这将帮助开发人员避免因缺少关闭标签而导致的 UI 问题。
提取到用户控件:
当我们的网页很大时,我们可以从源代码视图中选择一些控件,并为其创建一个用户控件。这有助于提高页面的可读性。

选择控件 -> 右键单击鼠标并选择“提取到用户控件” -> 为您的控件命名,然后整行代码将被替换为一个单独的控件。

事件处理程序:
当我们添加任何 Asp 控件并希望管理其事件处理程序时,VS2012 IntelliSense 会显示 <Create New Event>
,它会在代码视图中创建具有正确签名的事件处理程序。


AntiXSS 库:
AntiXSS 库是 .NET 4.0 的一部分,但当时是外部的,现在已包含在 4.5 中。如果您的页面需要 HTML 格式,那么页面就会变得不安全,为了保护您的页面免受跨站脚本攻击,您需要包含 AntiXss 库。
4.5 中的 AntiXSS 库包含以下外部功能:
- HtmlEncode、HtmlFormUrlEncode 和 HtmlAttributeEncode
- XmlAttributeEncode 和 XmlEncode
- UrlEncode 和 UrlPathEncode (新)
- CssEncode
多浏览器支持:
您系统中安装的所有浏览器都可以用于测试应用程序。如果您的应用程序支持多种浏览器,这会变得很容易。您可以在所有支持的浏览器中查看 UI。
往返
一个非常重要的功能,当我们从旧版本升级到新版本时,例如从 VS2010 升级到 VS2012,并且您希望您的项目在 VS2010 和 VS2012 中都能工作,就需要此功能。往返有助于处理现有的 Visual Studio 2010 项目,将项目升级到 VS2012 很容易,我们可以同时使用 VS2012 和 VS2010。
摘要
我已经使用上述所有功能创建了一个示例应用程序。深入研究这些功能真的变得非常有趣,还有更多功能有待探索。我已经研究了与数据控件、验证相关的其他功能。我一定会尝试将它们包含在我文章的下一个扩展中。
在撰写本文时,我参考了以下网站:ASP.NET 4.5 和 Visual Studio 2012 中的新功能
续篇
让我们开始介绍一些更有趣的特性。
背景
在我的上一篇文章中,我试图找出大多数基本但我觉得非常有用的功能。在本文中,我将尝试涵盖一些简单而有趣的功能。
JavaScript 括号匹配
如果我们正在编写一个包含太多开括号和闭括号的 JavaScript 函数,并且我们遗漏了一个闭括号,那么很难确定哪个开括号缺少闭合。使用 .NET 4.5,我们可以选择括号,它会告诉我们其闭括号,因此很容易识别嵌套结构。

JavaScript 代码大纲:
直到以前的版本,大纲只支持 .cs 或 .aspx 文件,现在 JavaScript 中也提供了大纲区域。它帮助我们折叠当前不属于我们焦点的文件或函数。

请求验证:
当开发人员允许脚本和 HTML 标签时,跨站脚本是一种安全威胁。但在许多情况下,我们需要页面支持 HTML 和脚本。在这种情况下,.NET 4.5 为我们提供了两个功能:
延迟“惰性”请求验证 - 用于选择性部分。访问未经验证的请求数据。每当发出请求时,它总是对完整数据进行验证;如果关闭验证,则根本不进行验证。使用惰性请求验证,只会验证所需的数据。要启用惰性请求验证,请在 web.config 中将 "httpRuntime"
元素的 "requestValidationMode"
属性设置为 "4.5"。
这将如何工作,让我们举一个简单的例子:如果我希望在点击特定按钮时验证数据,在这种情况下,我不想在页面加载时验证请求,而应该在点击按钮时进行验证。这在以前的 .NET 版本中是不可能实现的,但现在 .NET 4.5 中的惰性请求验证将实现相同的功能。
它可以像这样使用:
- Request.Unvalidated.Cookies["Name"]
- Request.Unvalidated.QueryString["VarName"]
- Request.Unvalidated.Form["Value"]
示例:我添加了两个 asp 文本框和一个 asp 按钮。我将 requestvalidationmode
设置为 4.5。当我尝试输入带有 HTML 标签的字符串时,我收到错误“潜在危险请求……”
这是我的代码

当我将 asp 文本框服务器控件替换为简单的 HTML 控件并点击提交按钮时。它工作正常。结构看起来像这样:


我又收到了相同的错误“潜在危险请求……”,但当我稍微修改代码后再次尝试访问页面时,它工作正常。

现在回到 asp 文本框,即服务器控件,.Net 尝试使用发布的数据来维护视图状态,因此会出现错误。为了避免这种情况,.Net 引入了 "ValidateRequestMode
" 功能。我们可以为我们不希望服务器请求验证的文本框设置为 "disabled"。

添加 ValidateRequestMode
后,它工作正常。此功能很重要,因为以前我们习惯于在页面级别将验证请求设置为 false,这样整个页面都容易受到跨站脚本攻击。但使用此功能,只有一部分是开放的,其余页面则安全地免受 XXS 攻击。
CSS 编辑器:层级缩进:
当我们使用 CSS 创建层级时,它会自动缩进,我们可以看到继承关系。层级缩进默认启用,但如果用户愿意,也可以禁用它。要关闭,请选择 工具->选项->文本编辑器->CSS->格式化