添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

作者 :Web Camp 团队

新版本的 Visual Studio 引入了一些增强功能,重点是改进使用 Web 技术时的体验和性能。 适用于 CSS、JavaScript 和 HTML 的 Visual Studio 编辑器已完全修改,包括许多最需要的代码辅助工具,例如 IntelliSense 和自动缩进。 关于性能,捆绑和缩小现在已集成为内置功能,以便轻松减少页面加载时间。

Visual Studio 使你能够使用最新的网站技术。 可以使用跨浏览器 CSS3 代码片段来确保网站无论客户端平台如何工作,同时利用新的 HTML5 元素和功能。

使用此 Visual Studio 版本编写和分析 JavaScript 代码应该更容易。 IntelliSense 列表、集成的 XML 文档和导航功能现在可用于 JavaScript 代码。 现在,你已获得 JavaScript 目录的指尖。 此外,还可以检查 ECMAScript5 与脚本的符合性,并在早期检测语法错误。

最后,但至少实现此 Visual Studio 版本的内置捆绑和缩小。 脚本文件和样式表将打包和压缩,以便网站更快地执行。

本实验室将指导你完成以前通过对源文件夹中提供的示例 Web 应用程序进行轻微更改来介绍的增强功能和新功能。

在此动手实验室中,你将了解如何:

  • 在 CSS 编辑器中使用新功能和改进
  • 在 HTML 编辑器中使用新功能和改进
  • 在 JavaScript 编辑器中使用新功能和改进
  • 配置和使用捆绑和缩小
  • Microsoft Visual Studio Express 2012 for Web 或高级 (阅读 附录 A ,了解如何安装它) 。
  • Windows PowerShell 安装脚本的 (- 已安装在 Windows 8 和 Windows Server 2008 R2)
  • Internet Explorer 10 - 或 HTML5 兼容的浏览器
  • 此动手实验包括以下练习:

  • 练习 1:CSS 编辑器中的新增功能
  • 练习 2:HTML 编辑器中的新增功能
  • 练习 3:JavaScript 编辑器中的新增功能
  • 练习 4:捆绑和缩小
  • 完成此实验室的估计时间: 60 分钟

    练习 1:CSS 编辑器中的新增功能

    Web 开发人员应熟悉与 CSS 编辑相关的许多困难。 CSS 样式设置的最大问题之一是跨浏览器兼容性。 通常,在向网站应用样式后,你会注意到,如果你在另一个浏览器或设备中打开它,它看起来会有所不同。 因此,你可能花了很多时间修复这些视觉问题,以意识到,当你最终使其在一个浏览器中工作时,它会在其他人中中断。

    Visual Studio 现在包括可帮助开发人员有效访问、工作和组织 CSS 样式表的功能。 在本练习中,你将满足有效组织和版本的新功能,以及用于跨浏览器兼容性的 CSS3 代码片段。

    任务 1 - 新的编辑器功能

    在此任务中,你将发现 CSS 编辑器的新功能。 此新编辑器将帮助你利用新的智能缩进、改进的代码注释和增强的 IntelliSense 列表来提高工作效率。

  • 启动 Visual Studio 并打开位于此实验室的 Source\WhatsNewASPNET 文件夹中的 WhatsNewASPNET.sln 解决方案。

  • 在Průzkumník řešení中,打开位于 Styles 文件夹下的 Site.css 文件。 请确保 文本编辑器 工具在工具栏上可见。 为此,请选择 “视图 | 工具栏 ”菜单选项,并选中 “文本编辑器 ”选项。 你会注意到,由于这个新版本,“ 批注 ”按钮 ( ) 和“ 取消注释 ”按钮 ( 也为 CSS 编辑器启用) 。

    启用编辑器和 CSS 工具

  • 滚动代码并选择任何 CSS 类定义。 单击“ 批注 ( ) ”按钮注释所选行。 然后,单击“ 取消注释 ” ( ) 按钮撤消更改。

  • 单击 折叠 ( 折叠 ) , 展开 ( 展开 位于文本左边距的) 按钮。 请注意,现在可以隐藏不使用更简洁视图的样式。

    折叠 CSS 类

  • 确保启用智能缩进功能。 选择 “工具 | 选项” 菜单选项,然后在屏幕左窗格中选择 “文本编辑器 | CSS | 格式 ”页。 检查 分层缩进 选项。

    启用分层缩进

  • 找到 main 类定义 (.main) 并将样式追加到 div 元素。 你会注意到代码自动对齐,帮助用户一目了然地查找父类。

    .main
      padding: 0px 12px;
      margin: 12px 8px 8px 8px;
      min-height: 420px;
      .main div
        border: 0px;
    

    CSS 中的分层对齐方式

  • .main div 类中,找到边框末尾的光标 :0px; 然后按 Enter 以显示 IntelliSense 列表。 开始 键入顶部 ,并注意键入时列表的筛选方式。 该列表将显示包含单词顶部的元素 (在 Visual Studio 的早期版本中,列表由以术语) 开头的项进行筛选。

    CSS 中的 IntelliSense 增强功能

    在此任务中,你将发现集成到 Visual Studio IntelliSense 中的新 CSS 颜色选取器。

  • Site.css 中, 找到标头类定义 (.header) 并将光标放在 背景色 属性旁边,在该代码行上的“:”和“#”字符之间

  • 删除 冒号 (:) ,然后再次写入以显示颜色选取器。 请注意,你将看到的第一种颜色是网站中最频繁的颜色。 如果单击白色,则其 HTML 颜色代码 (#fff) 将替换样式表中的当前颜色代码。

    颜色选取器

  • 按颜色选取器上的 “展开 (com ) ”按钮显示颜色渐变,然后拖动渐变光标以选择其他颜色。 之后,单击 “眼滴器 ”按钮,然后从屏幕中选择任何颜色。 请注意,移动光标时背景色值会动态更改。

    颜色选取器渐变

  • 不透明度 滑块中,将选择器移动到条的中心以减少不透明度。 请注意,背景色值现在将其刻度更改为 RGBA。

    颜色选取器不透明度

    使用 CSS3 中的 RGBA (红色、绿色、蓝色、Alpha) 颜色定义,可以定义单个项的颜色不透明度值。 与 不透明度不同 - 类似的 CSS 属性 - RGBA 颜色也与最新的浏览器兼容。

    在此任务中,你将了解如何使用跨浏览器兼容的 CSS3 代码片段,以便在网站中实现某些功能。

  • Site.css 文件中,找到 标头 CSS 类定义 (.header) ,并将光标置于 /*border radius*/ 占位符下方以添加新代码段。 按 Enter 显示 IntelliSense 列表并键入 半径 以筛选列表。 通过双击从列表中选择 边框半径 选项,然后按 TAB 键插入代码片段。 然后,键入半径大小(以像素为单位),然后按 Enter。 例如,键入 15px

    代码片段添加的 CSS3 属性将在大多数 HTML5 符合性浏览器(包括 Mozilla 和基于 WebKit 的浏览器)中呈现圆角边框。

    使用边框半径代码片段

  • 在页面样式 (.page) 中应用相同的 边框 代码片段。

    .page
        width: 960px;
        background-color: #fff;
        margin: 20px auto 0px auto;
        border: 1px solid #496077;
        /*border radius*/
        -moz-border-radius: 15px;
        -webkit-border-radius: 15px;
        border-radius: 15px;
    
  • “F5”运行该解决方案。 请注意,每个页面现在都有圆角边框。

  • 关闭浏览器并返回到 Visual Studio。

  • 打开位于 Styles 文件夹下的 Custom.css 文件,并将光标置于 div.images ul li img 类定义中。

  • 按 Enter 可显示 IntelliSense 列表,键入 框阴影 ,然后按 TAB 键两次在类定义中插入默认阴影代码片段。 将阴影值设置为 10px 10px 5px #888。 然后,键入 边框半径 并插入代码片段。 键入 15px 以设置半径大小,然后按 Enter

    带阴影的圆角

    目前,阴影属性将插入相应的前缀 (moz、webkit、o) 以支持 Mozilla 和 Webkit (Chrome、Safari、Konkeror) 浏览器。

  • 创建新的 class div.images ul li img:hoverdiv.images ul li img 类定义下方,并将光标置于括号内

    div.images ul li img
    div.images ul li img:hover
    
  • 键入 转换 并按 TAB 键两次以插入转换代码片段。 然后,输入 旋转 (-15deg) ,以便在图像悬停时更改旋转角度值。

    div.images ul li img
      padding-top: 50px;
      padding-right: 15px;
      width: 150px;
    div.images ul li img:hover
      -moz-transform: rotate(-15deg);
      -ms-transform: rotate(-15deg);
      -o-transform: rotate(-15deg);
      -webkit-transform: rotate(-15deg);
      transform: rotate(-15deg);
    
  • F5 运行解决方案并浏览到 CSS3 页面。 请注意,图像具有圆角和框阴影。 将鼠标悬停在图像上并观看它们旋转。

    转换旋转图像的代码片段

    如果使用 Internet Explorer 10 且看不到阴影,请确保文档模式设置为 IE10 标准。 按 F12 打开 Internet Explorer 开发人员工具,然后单击 “文档模式 ”以更改为 IE10 标准。

    练习 2:HTML 编辑器中的新增功能

    Visual Studio 具有改进的 HTML 编辑器。 此版本中包括的一些增强功能是 HTML 文档、HTML5 代码片段、HTML 开始和结束标记匹配以及 HTML 验证中的智能缩进。 在本练习中,你将看到这些更改如何在网站标记中改进你的流畅性。

    与 CSS 编辑器一样,HTML 编辑器也得到了改进。 这些改进大多是小型改进,使 Web 开发人员的生活更加轻松。 编辑和验证面向 HTML 文档 DOCTYPE 的更多代码片段、智能缩进、匹配的开始和结束标记等内容是其中一些改进。

    任务 1 - 改进了 DOCTYPE 验证

    HTML 编辑器现在可以检查页面的 DOCTYPE,即使定义可能位于母版页中也是如此。 根据页面的 DOCTYPE,HTML 编辑器将使用正确的规则集进行验证,并筛选考虑 DOCTYPE 元素的 IntelliSense 列表。

    在此任务中,你将更改页面的 DOCTYPE,以查看 HTML 编辑器的行为如何相应地更改。

  • 如果尚未打开,请启动 Visual Studio 并打开位于此实验室的 Source\WhatsNewASPNET 文件夹中的 WhatsNewASPNET.sln 解决方案。

  • 打开 Site.Master 页。

  • 请注意验证工具栏的目标架构。 HTML 编辑器的行为方式 (验证、IntelliSense 等) 将正确更改以适应所选 Doctype。

    在 HTML 源编辑工具栏中使用 Doctype

  • 将目标架构更改为 HTML 4.01。

    在 HTML 源编辑工具栏中更改 Doctype

  • 将光标放在 正文 元素下,然后开始键入 HTML5 元素的名称 (,例如 视频) 。 请注意,该元素在 IntelliSense 列表中不可用。

    未列出的 HTML5 元素

  • 撤消对验证工具栏的目标架构所做的更改,从下拉列表中选择 DOCTYPE:XHTML5。

    在 HTML 源编辑工具栏中重置 Doctype

  • 将光标置于 正文 元素下,然后再次 (键入 HTML5 元素,例如 视频) 。 请注意,HTML5 元素现在可在 IntelliSense 列表中使用。

    列出的 HTML5 元素

    Visual Studio 现在更新要编辑的元素的 HTML 开始或结束标记以相互匹配。 编辑 HTML 标记时,此新功能将提高工作效率。

  • Default.aspx 页上,添加标题为 (的 H3 元素,例如 Visual Studio 2012 Rocks!) 。

    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
      <asp:Image ImageUrl="~/images/Web11.JPG" runat="server" />
      <h3>Visual Studio 2012 Rocks!!</h3>
    </asp:Content>
    
  • 更改 H3 标记并键入 H2H1。

    请注意,结束标记会自动更新。 还可以修改结束标记,以查看开始标记也会相应地更新。

    结束标记的自动更新

    Visual Studio 现在包含多个 HTML5 代码片段。 在此任务中,你将使用这些代码片段中的一些。

  • 将名为 音频 的新文件夹添加到网站文件夹的根目录。 打开 Windows 资源管理器,并将任何音频文件复制到 WhatsNewASPNET.sln 解决方案的音频文件夹中。

  • Default.aspx 页中,找到 Web11 Rocks!! 标头。 键入 音频 并按 Tab 键。

    新的 HTML 编辑器包含 HTML5 内容的代码片段。 请记住使用正确的 DOCTYPE 定义来启用 HTML5 代码片段。

    插入 HTML5 代码片段

  • 更新音频源以指向现有音频文件。

    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
      <asp:Image ImageUrl="~/images/Web11.JPG" runat="server" />
      <h2>Visual Studio 2012 Rocks!!</h2>
      <audio controls="controls">
        <source src="audio/Kalimba.mp3" />
      </audio>
    </asp:Content>
    

    需要将音频文件添加到解决方案。

  • F5 运行站点并播放音频。

    运行音频控件

    还可以尝试 Visual Studio 中包含的更多代码片段,例如视频、图等。

  • 现在,请尝试在页面的某些部分插入控件。 例如,尝试插入 GridView 控件,但不要键入 <Gri, 而是开始键入 <GV。 请注意,IntelliSense 列表显示 asp:GridView 控件。

    HTML 编辑器中的 IntelliSense 现在提供标题大小写搜索,以及部分匹配 (检索包含术语) 的所有元素。

    使用 IntelliSense 列表插入 GridView

    如果键入 <网格 ,将获取与术语匹配的所有项,但 Visual Studio 会建议 gridview 控件:

    使用 IntelliSense 列表和部分匹配插入 GridView

    任务 4 - HTML 编辑器智能标记

    HTML 编辑器中的另一个改进是智能标记功能。 智能标记使每个控件可以轻松执行常见或重复的开发任务。 此功能已在 HTML 设计器中提供,但在 HTML 编辑器中不可用。

  • 打开 Site.Master 并找到 asp:Menu 元素。 将光标放在开始标记上,并注意到元素底部显示的小型字形 - 单击它以打开智能任务菜单。 请注意,你可以快速访问与菜单控件相关的某些任务。

    菜单控件的智能任务

  • 确保 HTML 编辑器上的缩进配置设置为智能缩进。 为此,请选择 “工具”|选项 菜单选项,然后选择 “文本编辑器”|HTML | 屏幕左窗格中的选项卡页。 选择“智能缩进”选项。

    HTML 编辑器设置

  • Default.aspx 页上,删除音频元素下的所有内容。

  • 将光标置于打开 的音频 元素的末尾,并点击 Enter

    请注意,游标的新位置具有额外的缩进级别。

    HTML 编辑器中的智能缩进

  • 使用已删除的内容还原音频标记,或关闭 Default.aspx ,而无需保存更改。

    任务 6 - 提取到用户控件

    Visual Studio 中包含的重构工具(例如将一部分代码提取到函数)是有助于改进和重构现有代码的极佳功能。 ASP.NET 页面的对应项是将 HTML 代码提取到用户控件。 手动执行此操作涉及几个步骤,例如创建新的用户控件、将代码部分移动到用户控件、注册用户控件的标记前缀,最后,在页面上实例化用户控件。 现在,新的 “提取到用户控制 ”工具会自动执行所有这些步骤。

    在此任务中,你将使用新的“提取到用户控件”上下文操作从所选代码生成新的用户控件。

  • Default.aspx 页上,选择 H2音频 元素。

  • 右键单击并选择“ 提取到用户控件”。

    “提取到用户控件”菜单选项

  • 键入新用户控件的名称。 例如, Jukebox.ascx,然后单击“ 确定”。

    保存提取的用户控件

  • 请注意,所选代码已提取到用户控件,并且所选代码的原始位置已替换为新用户控件的实例。

    页面自动更新为使用新用户控件

  • F5 运行页面并验证控件是否正常工作。

    练习 3:JavaScript 编辑器中的新增功能

    编写或编辑 JavaScript 代码并不简单,尤其是在应用程序开始增大大小时,你会发现自己处理长文件和数百个函数。 脚本开发人员通常需要执行一些额外的工作来维护代码易读性并跨文件导航。 随着 JavaScript 库(如 jQuery)的包含,脚本导航由于代码长度而成为挑战本身。

    Visual Studio 已续订 JavaScript 编辑器,承诺使代码模式易于访问和组织。 C# 或 VB 编辑器中已存在的许多 Visual Studio 功能现在在 JavaScript 编辑器中实现:转到定义、自动缩进、文档和验证(编写时)。 使用更新的 IntelliSense 列表,你将有 JavaScript 函数目录的指尖。

    在本练习中,你将了解 JavaScript 编辑器的一些新功能和改进。 你将浏览示例文件并发现每个新特征,使 JavaScript 编程在 Visual Studio 2012 中更高效。

    任务 1 - JavaScript 编辑器新功能

    此任务将介绍一些新的 JavaScript 编辑器功能,这些功能侧重于组织代码并带来更好的用户体验。

  • 如果尚未打开,请启动 Visual Studio 并打开位于本实验室的 Source\WhatsNewASPNET 文件夹中的 WhatsNewASPNET.sln 解决方案。

  • F5 运行应用程序,然后单击导航栏中的 JavaScript 链接。 多次刷新页面,并检查计数器的增量方式。

    页面计数器

  • 关闭浏览器并返回到 Visual Studio。

  • 打开 JavaScript.aspx 页,找到<>脚本块 (如下所示) 。

    以下代码使用 HTML5 本地存储来存储一个 pageLoadCount 变量,用于存储当前用户访问页面的次数。 本地存储是使用 HTML5 标准引入的客户端键值数据库。 数据保存在用户浏览器内的本地计算机上。

    <script>
      addCount(1);
      document.getElementById('count').innerHTML = getCount();
      function getCount() {
        var storage = window.localStorage;
        if (!storage.pageLoadCount)
          storage.pageLoadCount = 0;
        return storage.pageLoadCount;
      function addCount(value) {
        window.localStorage.pageLoadCount = parseInt(getCount(), 10) + value;
    </script>
    

    在继续执行后续步骤之前,请确保 DOCTYPE 设置为 XHTML5。

  • 编辑代码并注意到 IntelliSense for JavaScript 包括 HTML5 功能,例如本地存储及其内部方法。

    JavaScript 中的 HTML5 JavaScript 功能

  • 单击脚本代码 ({) 的任何左括号,并注意到括号突出显示。

    突出显示方括号

  • 取消注释函数 testAutoAlign () (选择三行,可以使用 Ctrl + K; CTRL + U) 并找到函数代码中的游标。 按 Enter 追加第二行。 请注意,代码现在 已对齐自动缩进

    JavaScript 代码自动对齐

    任务 2 - 验证 JavaScript

    在此任务中,你将发现 ECMAScript5 标准的新 JavaScript 验证。 此功能将帮助你编写合规的 JavaScript 代码,同时在站点部署前防止脚本问题。

    Visual Studio 2010 实现了 ECMAStript3 符合性,而 Visual Studio 2012 提供 ECMAScript5 符合性。

  • 打开 位于 Scripts\custom 项目文件夹下的ECMA5script5.js。 现在,你将测试 ECMAScript5 标准的验证。

    "use strict";
    if (true) {
        function StrictModeError()
    

    可以查看文件第一行中的“ 使用严格 ”方向,从而启用 ECMAScript5 严格模式。 此模式包含一部分用于阐明过去版本中的歧义的语言,并添加了一些新功能,例如 getter 和 setter、JSON 库支持,以及对对象属性的更完整的反射。

  • 打开 错误列表 (如果尚未打开 (视图 菜单| 错误列表) 。 请注意 ,函数 声明带有下划线。 这是因为在 ECMA5 标准函数中不能嵌套在语言结构中。 在下面的错误列表中,你将看到警告详细信息。

    JavaScript 验证错误消息

  • 注释掉 “使用严格” 的方向,并注意到错误消失,但警告仍然存在。

  • 在文件的最后一行中,写入任何字符串(如 “test” ) (包含引号,以指示它是字符串) 。 编写字符串旁边的句点以显示 IntelliSense 列表,然后选择 剪裁 选项。

    在 ECMAScript5 标准中,字符串值和变量还定义了字符串方法,例如剪裁、大写、搜索和替换。

    JavaScript 中的 IntelliSense 列表

    任务 3 - JavaScript 的 XML 文档

    在此任务中,你将浏览 JavaScript 中用于 XML 文档的 Visual Studio 功能。 此时会看到 JavaScript IntelliSense 列表显示每个函数的 XML 文档。 此外,你将在 JavaScript 中发现导航功能。

  • 打开位于 Scripts/自定义项目文件夹中的XMLDoc.js文件。 此文件包含每个 JavaScript 函数的 XML 文档。

    与 IntelliSense 集成的 JavaScript XML 文档

  • XMLDoc.js 文件中添加函数下方,创建名为测试的新函数。

  • 测试 函数中,调用接收两个参数的 法函数。 请注意,工具提示框显示 函数文档。

    function test() {
      multiply(
    

    JavaScript 函数的 XML 文档

  • 完成函数调用语句并键入一个 以打开返回值上的 IntelliSense 列表。 请注意,Visual Studio 正在检测文档中的 返回 值,并将该值视为数字。

    返回类型的 XML 文档

  • 现在,插入用于添加函数的调用。 请注意,JavaScript 编辑器现在支持函数重载。 编写函数名称时,将能够选择文档中指定的任何可用重载。

    重载的 XML 文档

  • 打开 GotoDefinition.js 文件并找到 $ () .html () 函数调用。 在 html 上找到光标。

  • F12 并导航到定义。 请注意,现在无需使用 Find 工具即可访问和浏览 JavaScript 代码。

  • 在代码文件底部的签名块之前,在 jQuery 指令上找到光标。 按 F12。 你将导航到 jQuery 库文件。 请注意,还可以使用 F12 在 jQuery 文件中导航。

    导航到 jQuery 定义

    保存文件之前,请确保GotoDefinition.js没有语法错误。

    练习 4:捆绑和缩小

    网站包含多个 JavaScript 或 CSS 文件有多少次? 这是一种非常常见的方案,即捆绑和缩小有助于减小文件大小并加快站点的性能。 ASP.NET 4.5 中的新捆绑功能将一组 JS 或 CSS 文件打包到单个元素中,并通过缩小内容 ((即删除不需要的空格、删除注释、减少标识符) )来减小其大小。

    ASP.NET 4.5 中的捆绑和缩小是在运行时执行的,因此该过程可以识别用户代理 ((例如 IE、Mozilla 等) ),因此,通过将用户浏览器 (为目标来改进压缩,从而删除请求来自 IE) 时特定于 Mozilla 的内容。

    在本练习中,你将了解如何在 ASP.NET 4.5 中启用和使用不同类型的捆绑和缩小。

    任务 1 - 从 NuGet 安装捆绑包和缩小包

  • 如果尚未打开,请启动 Visual Studio 并打开位于此实验室的 Source\WhatsNewASPNET 文件夹中的 WhatsNewASPNET.sln 解决方案。

  • 打开 NuGet 包管理器控制台。 为此,请使用菜单 “查看 | 其他 Windows | 包管理器控制台”。

    打开包管理器控制台

  • 包管理器控制台中, 键入 Install-Package Microsoft.Web.Optimization ,然后按 Enter

    任务 2 - 默认捆绑包

    使用捆绑和缩小的最简单方法是启用默认捆绑包。 此方法使用约定来引用文件夹中 JS 和 CSS 文件的捆绑和缩小版本。

    在此任务中,你将了解如何启用和引用捆绑和缩小的 JS 和 CSS 文件并查看生成的输出。

  • 如果尚未打开,请启动 Visual Studio 并打开位于此实验室的 Source\WhatsNewASPNET 文件夹中的 WhatsNewASPNET.sln 解决方案。

  • Průzkumník řešení中,展开样式脚本\自定义脚本\捆绑文件夹。

    请注意,应用程序正在使用多个 CSS 和 JS 文件。

    应用程序中的多个样式表和 JavaScript 文件

  • 打开 Global.asax.cs 文件。

    请注意,新的 Microsoft.Web.Optimization 命名空间在文件开头注释掉。 取消注释 using 指令以包括捆绑和缩小功能。

    using System;
    using Microsoft.Web.Optimization;
    
  • 找到 Application_Start 方法。

    在此方法中,取消注释 EnableDefaultBundles 调用,如以下代码片段所示。 这使我们能够通过使用该文件夹的路径以及“CSS”或“JS”后缀来引用文件夹中的 CSS 文件的捆绑集合。

    void Application_Start(object sender, EventArgs e)
        // Default behavior
        // Bundles all .js files in folders such as "scripts" if URL pointed to it: http://localhost:54716/scripts/custom/js 
        BundleTable.Bundles.EnableDefaultBundles();
    
  • 打开 Optimization.aspx 文件并找到 HeadContent 的内容控件。

    请注意 CSS 文件和 JS 文件具有单个引用的标记。

    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
      <link href="Styles/CSS" rel="stylesheet" type="text/css" />
      <script src="Scripts/custom/JS"></script>
    </asp:Content>
    

    此代码用于演示目的。 理想情况下,你将引用 Site.Master 文件中的捆绑包。 在此示例代码中,你会发现 Site.Master 文件也引用了一些捆绑文件,使最后一个引用冗余。

  • 请注意,链接使用 href 属性中的捆绑约定分别从样式和 Scripts\custom 文件夹中获取所有 CSS 或 JS 文件。

    可以使用路径 Scripts/custom/JS ,如下所示来捆绑和缩小 脚本/自定义 文件夹中的所有 JS 文件。 这是默认捆绑包的默认行为。

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
          <h2><a href="Styles/CSS">CSS Bundle</a></h2>
          <h2><a href="Scripts/custom/JS">JS Bundle</a></h2>
    
  • 打开 Styles\Site.css 文件。

    请注意,原始 CSS 文件包含缩进的代码、空格和放大文件的注释。 (JavaScript 文件还包含空格和注释) 。

    脚本文件夹中的原始 CSS 文件之一

  • F5 运行应用程序并导航到 “优化 ”页。

  • 单击 CSS 捆绑包 链接下载并打开该文件。

    查看缩小的捆绑文件。 你会注意到,所有空格、注释和缩进字符都已删除,并生成较小的文件。

    捆绑的 CSS 文件

  • 现在,单击 JS 捆绑链接 打开 JavaScript 捆绑文件。 可以安全地忽略资源管理器警告。 请注意 ,自定义 文件夹下的 JavaScript 文件也会捆绑和缩小。

    捆绑的 JavaScript 文件

    在以前的 ASP.NET 版本中,为 CSS 或 JS 文件启用压缩要复杂得多。 现在,正如你所看到的,只需在 Global.asax 文件中添加一行即可启用捆绑,然后引用站点中的捆绑文件。

  • 取消注释静态捆绑代码,如以下代码所示。

    你正在定义一个静态捆绑包,该捆绑包将使用“~/StaticBundle”虚拟路径引用,并使用 JsMinify 通过 AddFile 方法缩小所有指定文件。 最后,你要将静态捆绑包添加到 BundleTable 并启用它。

    请注意,文件未位于同一位置;这是默认捆绑的另一个优势。

    void Application_Start(object sender, EventArgs e)
        // Default behavior
        // Bundles all .js files in folders such as "scripts" if URL pointed to it: http://localhost:54716/scripts/custom/js
        BundleTable.Bundles.EnableDefaultBundles();
        // Static bundle.
        // Access on url http://localhosthost:54716/StaticBundle
        Bundle b = new Bundle("~/StaticBundle", typeof(JsMinify));
        b.AddFile("~/scripts/custom/ECMAScript5.js");
        b.AddFile("~/scripts/custom/GoToDefinition.js");
        b.AddFile("~/scripts/bundle/JScript1.js");
        b.AddFile("~/scripts/bundle/JScript2.js");
        BundleTable.Bundles.Add(b);
        // Dynamic bundle
        // Bundles all .coffee files in folders such as "script" when "coffee" is appended to it: http://localhost:54716/scripts/coffee
        // DynamicFolderBundle fb = new DynamicFolderBundle("coffee", typeof(CoffeeMinify), "*.coffee");
        // BundleTable.Bundles.Add(fb);
    
  • 打开 Optimization.aspx 文件。

    请注意,指向 静态 JS 捆绑包 的链接使用在 Global.asax.cs 文件中配置静态捆绑包时声明的路径: /StaticBundle

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
          <h2><a href="Styles/CSS">CSS Bundle</a></h2>
          <h2><a href="Scripts/custom/JS">JS Bundle</a></h2>
          <h2><a href="StaticBundle">Static JS Bundle</a></h2>
          <h2><a href="Scripts/bundle/Coffee">Dynamic JS Bundle</a></h2>
    </asp:Content>
    
  • F5 运行应用程序,然后导航到 “优化 ”页。

  • 单击 “静态 JS 捆绑包 ”链接以打开该文件。

    请注意,缩小捆绑 JavaScript 文件是路径“/StaticBundle”下静态捆绑文件中配置的所有 JavaScript 文件的输出。

    静态 JavaScript 文件捆绑包

  • 关闭浏览器并返回到 Visual Studio。

    任务 4 - 动态文件夹捆绑包

    在此任务中,你将了解如何配置动态文件夹捆绑包。 动态捆绑的强大功能是,可以包括静态 JavaScript,以及编译为 JavaScript 的语言中的其他文件,因此,在执行捆绑之前需要一些处理。

    在此示例中,你将了解如何使用 DynamicFolderBundle 类为 CofeeScript 中写入的文件创建动态捆绑包。 CofeeScript 是一种编程语言,可编译为 JavaScript,并提供更简单的语法来编写 JavaScript 代码,增强 JavaScript 的简洁性和可读性。

  • 打开 Global.asax.cs 文件并找到 Application_Start 方法。

  • 取消注释动态捆绑代码,如以下代码所示。

    你正在定义一个动态文件夹捆绑包,该捆绑包将使用 CoffeeMinify 自定义缩小处理器,该处理器仅适用于扩展名为“.coffee”的文件, (CoffeeScript 文件) 。 请注意,可以使用搜索模式选择要捆绑在文件夹内的文件,例如“*.coffee”。

    void Application_Start(object sender, EventArgs e)
        // Default behavior
        // Bundles all .js files in folders such as "scripts" if URL pointed to it: http://localhost:54716/scripts/custom/js
        BundleTable.Bundles.EnableDefaultBundles();
        // Static bundle.
        // Access on url http://localhosthost:54716/StaticBundle
        // Dynamic bundle
        // Bundles all .coffee files in folders such as "script" when "coffee" is appended to it:
             // http://localhost:54716/scripts/coffee
        DynamicFolderBundle fb = new DynamicFolderBundle("coffee", typeof(CoffeeMinify), "*.coffee");
        BundleTable.Bundles.Add(fb);
    
  • 打开 NuGet 包管理器控制台。 为此,请使用菜单 “查看 | 其他 Windows | 包管理器控制台”。

  • 包管理器控制台中, 键入 Install-Package CoffeeSharp ,然后按 Enter

  • 单击“Průzkumník řešení”窗口中的“显示所有文件”按钮

    显示所有文件

  • 右键单击Průzkumník řešení中的 CoffeeMinify.cs 文件,然后选择“在项目中包括

    在项目中包括 CoffeeMinify.cs 文件

  • 打开 CoffeeMinify.cs 文件。

    此类继承自 JsMinify,以缩小由 CoffeeScript 代码编译生成的 JavaScript 输出。 它调用 CoffeeScript 编译器以先生成 JavaScript 代码,然后将其发送到 JsMinify.Process 方法以缩小生成的代码。

    public class CoffeeMinify : JsMinify
        public override void Process(BundleResponse bundle)
            var compiler = new CoffeeScriptEngine();
            bundle.Content = compiler.Compile(bundle.Content);
            base.Process(bundle);
    
  • Scripts/bundle 文件夹中打开 Script1.coffeeScript2.coffee 文件。

    这些文件将包含要编译的 CoffeScript 代码,同时执行与 CoffeeMinify 类的捆绑。

    为简单起见,提供的 CoffeeScript 文件仅包括 CoffeeScript 示例代码。 注释由 JsMinify 进程排除。

    CoffeeScript 文件

    CofeeScript 提供了一种更简单的语法,用于编写 JavaScript 代码、增强 JavaScript 的简洁性和可读性,以及添加数组理解和模式匹配等其他功能。

  • 打开 Optimization.aspx 文件并找到捆绑链接。

    请注意,动态 JS 捆绑包的链接使用为动态文件夹捆绑包配置的 /Coffee 后缀来引用 Scripts/bundle 文件夹。

    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
          <h2><a href="Styles/CSS">CSS Bundle</a></h2>
          <h2><a href="Scripts/custom/JS">JS Bundle</a></h2>
          <h2><a href="StaticBundle">Static JS Bundle</a></h2>
          <h2><a href="Scripts/bundle/Coffee">Dynamic JS Bundle</a></h2>
    </asp:Content>
    
  • F5 运行应用程序,然后导航到 “优化 ”页。

  • 单击 “动态 JS 捆绑包 ”链接以打开生成的文件。

    请注意,此捆绑包中包含的内容仅包含 .coffee 文件。 还可以看到 CoffeeScript 代码已编译为 JavaScript,注释掉的行已被删除。

    动态 JS 文件捆绑包

    此外,可以按照附录 B 将此应用程序部署到 Windows Azure 网站 :使用 Web 部署发布 ASP.NET MVC 4 应用程序

    此实验室可帮助你了解 Visual Studio 2012 中 ASP.NET 和 Web 开发中的新增功能,以及如何利用 Visual Studio 2012 中的各种增强功能。

    通过完成此Hands-On实验室,你已了解如何在 Visual Studio 2012 编辑器中为 CSS、JavaScript 和 HTML 使用新功能和改进。 此外,你还了解了 Visual Studio 2012 如何实现内置捆绑和缩小。

    附录 A:安装 Visual Studio Express 2012 for Web

    可以使用 Microsoft Web 平台安装程序 安装 Microsoft Visual Studio Express 2012 for Web 或其他“Express”版本。 以下说明指导你完成使用 Microsoft Web 平台安装程序 安装 Visual Studio Express 2012 for Web 所需的步骤。

  • 转到 [https://go.microsoft.com/?linkid=9810169] () https://go.microsoft.com/?linkid=9810169 。 或者,如果已安装 Web 平台安装程序,则可以打开它并搜索产品“Visual Studio Express 2012 for Web with Windows Azure SDK”。

  • 单击“ 立即安装”。 如果没有 Web 平台安装程序 ,将重定向到先下载并安装它。

  • 打开 Web 平台安装程序后,单击“安装”以启动安装程序。

    安装Visual Studio Express

  • 阅读所有产品的许可证和条款,然后单击“ 我接受 ”继续。

    接受许可条款

  • 等待下载和安装过程完成。

  • 安装完成后,单击“ 完成”。

    安装已完成

  • 单击 “退出 ”关闭 Web 平台安装程序。

  • 若要打开 web Visual Studio Express,请转到“开始”屏幕并开始编写“VS Express”,然后单击 VS Express for Web 磁贴。

    VS Express for Web 磁贴

    附录 B:使用 Web 部署发布 ASP.NET MVC 4 应用程序

    本附录介绍如何从 Windows Azure 管理门户创建新网站,并发布通过遵循实验室获取的应用程序,并利用 Windows Azure 提供的 Web 部署发布功能。

    任务 1 - 从 Windows Azure 门户创建新网站

  • 转到 Windows Azure 管理门户 并使用与订阅关联的 Microsoft 凭据登录。

    使用 Windows Azure,可以免费托管 10 个 ASP.NET 网站,然后在流量增长时进行缩放。 可以 在此处注册。

    登录到 Microsoft Azure 管理门户

  • 单击命令栏上的 “新建 ”。

    创建新网站

  • 单击 “计算 | 网站”。 然后选择“ 快速创建 ”选项。 提供新网站的可用 URL,然后单击“ 创建网站”。

    Windows Azure 网站是可在云中运行的 Web 应用程序的主机,你可以控制和管理。 使用“快速创建”选项,可以从门户外部将已完成的 Web 应用程序部署到 Windows Azure 网站。 它不包括设置数据库的步骤。

    使用“快速创建”创建新网站

  • 等待新 网站 创建。

  • 创建网站后,单击 URL 列下的链接。 检查新网站是否正常工作。

    浏览到新网站

    网站正在运行

  • Go back门户,然后单击“名称”列下的网站名称以显示管理页面。

    打开网站管理页

  • “仪表板 ”页的 “快速概览 ”部分下,单击“ 下载发布配置文件 ”链接。

    发布配置文件包含将 Web 应用程序发布到每个已启用发布方法的 Windows Azure 网站所需的所有信息。 发布配置文件包含有连接到并且验证该发布方法启用的每个端点所需的 URL、用户凭据和数据库字符串。 Microsoft WebMatrix 2Microsoft Visual Studio Express for WebMicrosoft Visual Studio 2012 支持读取发布配置文件,以便自动配置这些程序,以便将 Web 应用程序发布到 Windows Azure 网站。

    下载网站发布配置文件

  • 将发布配置文件下载到已知位置。 在本练习中,你将了解如何使用此文件从 Visual Studio 将 Web 应用程序发布到 Windows Azure 网站。

    保存发布配置文件

    如果应用程序使用SQL Server数据库,则需要创建SQL 数据库服务器。 如果要部署不使用SQL Server的简单应用程序,可以跳过此任务。

  • 需要SQL 数据库服务器来存储应用程序数据库。 可以在 Sql 数据库服务器 | 服务器的仪表板的 Windows Azure 管理门户中查看订阅中的SQL 数据库服务器 | 。 如果没有创建服务器,可以使用命令栏上的 “添加 ”按钮创建一个服务器。 记下 服务器名称和 URL、管理员登录名和密码,因为将在下一个任务中使用它们。 尚不创建数据库,因为它将在后续阶段创建。

    SQL 数据库服务器仪表板

  • 在下一个任务中,你将测试 Visual Studio 中的数据库连接,因此需要在服务器的 “允许 IP 地址”列表中包括本地 IP 地址。 为此,请单击“ 配置”,从 当前客户端 IP 地址 中选择 IP 地址,并将其粘贴到 “开始 IP 地址 ”和 “结束 IP 地址” 文本框中。 输入规则的名称,然后单击 add-client-ip-address-ok-button 按钮

    添加客户端 IP 地址

  • 客户端 IP 地址 添加到允许的 IP 地址列表中后,单击“ 保存 ”以确认更改。

    任务 3 - 使用 Web 部署发布 ASP.NET MVC 4 应用程序

  • Go back到 ASP.NET MVC 4 解决方案。 在Průzkumník řešení中,右键单击网站项目,然后选择“发布”。

  • 导入在第一个任务中保存的发布配置文件。

    导入发布配置文件

  • 单击“ 验证连接”。 验证完成后,单击“ 下一步”。

    在“验证连接”按钮旁边显示绿色复选标记后,验证将完成。

  • “设置” 页的“ 数据库 ”部分下,单击数据库连接文本框旁边的按钮 (,即 DefaultConnection) 。

    Web 部署配置

  • 按如下所示配置数据库连接:

  • 服务器名称中,使用 tcp: 前缀键入SQL 数据库服务器 URL。

  • 用户名 中,键入服务器管理员登录名。

  • “密码” 中,键入服务器管理员登录密码。

  • 键入新的数据库名称,例如: MVC4SampleDB

    配置目标συμβολοσειρά σύνδεσης

  • 然后单击“确定”。 当系统提示创建数据库时,单击“ ”。

    创建数据库

  • 用于在 Windows Azure 中连接到SQL 数据库的συμβολοσειρά σύνδεσης显示在“默认连接”文本框中。 然后单击“下一步”。

    指向SQL 数据库的连接字符串

  • “预览” 页中,单击“ 发布”。

    发布 Web 应用程序

  • 发布过程完成后,默认浏览器将打开已发布的网站。

    发布到 Windows Azure 的应用程序

  •