ASP.NET 5系列教程 (五):在Visual Studio 2015中使用Grunt、Bower开发Web程序

简介:

基于Visual Studio 2015,你可以:

  • 方便的管理前端包,如jQuery, Bootstrap, 或Angular。

  • 自动运行任务,如LESS、JavaScript压缩、JSLint、JavaScript单元测试等。

  • 方便的获得Web开发者生态圈的工具包。

为了实现这些场景,Visual Studio 2015已经内置了一些流行的第三方工具包:

  • Bower:Web包管理器,Bower可以帮你安装前端包,包括JavaScript、CSS类库。对于服务器端包,请通过NuGet包管理。

  • Grunt and Gulp:Grunt和Gulp是基于JavaScript的运行任务。如你未用过类似功能,可以认为这是一个自动调度运行的app,ASP.NET 5工程模板使用的是Grunt运行任务。

  • npm (Node Package Manager). npm是一个node包管理器,最初被用于Node.js包管理。上面说的Bower、Grunt、Gulp用到了npm。

 

启动Visual Studio 2015,新建一个ASP.NET 5.0的工程,选择文件-> 新建工程->Visual C#->Web->ASP.NET Web应用程序:

image

 

在新建工程对话框,选择ASP.NET 5.0 Starter Web

image

 

创建一个ASP.NET MVC 6 app,工程文件结构如下:

image

 

该工程下,包括如下重要的配置文件:

  • Project.json. 主工程文件,NuGet 包依赖清单.

  • package.json. npm包清单.

  • bower.json. Bower包清单.

  • gruntfile.js. 配置Grunt任务.

 

静态文件和wwwroot

wwwroot 文件夹在ASP.NET 5.0中是新增的,工程中所有的静态文件存放于此。且客户端可直接访问这些文件,包括HTML文件、CSS文件、Images文件、JavaScript文件。wwwroot文件夹是网站的根目录,如这个域名http://hostname/指向wwwroot文件夹。

代码应该存放在wwwroot外,包括C#文件、Razor文件,既wwwroot文件夹用于实现代码文件、静态文件的隔离。

  • 编译CoffeeScript or TypeScript 文件为JavaScript.

  • 编译LESS or Sass 文件为CSS.

  • 压缩JavaScript.

  • 优化image文件.

以上的操作会把wwwroot文件夹外的代码文件进行编译,然后拷贝到wwwroot文件夹下,这样前端即可访问。可通过任务调度自动执行这些步骤。

{    "webroot": "wwwroot",    "version": "1.0.0-*",    // ...
 }

 

使用Bower来进行前端包管理

下面我们看看如何在Visual Studio 2015 中使用Bower进行前端包管理,在本节中,我们天津RequireJs类库给app。

打开bower.json,在dependencies节添加requirejs入口。

"dependencies": {        "bootstrap": "~3.0.0",        "jquery": "~1.10.2",        "jquery-validation": "~1.11.1",        "jquery-validation-unobtrusive": "~3.2.2",        "requirejs": "^2.1"
    },

 

备注:bower版本语法模式是”major.minor.patch”. 在^2.1中,字符'^’指定最小版本号。'~1.10.2' 用于指定最小为1.10.2版本,或者任何1.10的最新补丁。 更多细节,请查看Github:https://github.com/npm/node-semver.

在Visual Studio 2015下,可使用智能感知获得可用包的列表:

image

 

也可以获得包版本号的智能提示

image

 

现在安装最新包,在解决方案视图,点击Dependencies,然后在Bower文件夹上右击单击Restore Packages.

image

 

可通过Output 窗体查看安装的细节。 包被安装到bower_components文件夹。

image

Visual Studio会自动加载对应版本的包在您的解决方案中。这样包文件就不用上传到源码管理下。

 

使用Grunt运行任务调度

使用gruntfile.js 文件来定义Grunt任务,默认的工程模板包括了这样的任务,如Bower包管理器。

下面我们使用Grunt来添加LESS处理、编译过程。

在工程下,创建一个文件夹assets。

image

在assets文件夹上右键,选择Add > New Item. 在新建项对话框中,选择LESS Style Sheet文件,命名为“site.less”.

image

粘贴如下代码到site.less文件

@base: teal;
body {
    background-color: @base;
}

使用@base 变量用于定义颜色值,这个变量被用于LESS的特性。

  • 安装task,创建一个Grunt task或者复用一个存在的.

  • 在Grunt文件中配置task.

  • 绑定task到Visual Studio编译任务中

 

在package.json文件中,配置grunt-contrib库。

{    "version": "0.0.0",    "name": "MyApp",    "devDependencies": {        "grunt": "^0.4.5",        "grunt-bower-task": "^0.4.0",        // Add this:
        "grunt-contrib-less": "^0.12.0"
    }
}

在输入的时候,同样会看到可用包列表:

image

同样可智能感知出版本号:

image

 

在解决方案,点击Dependencies > NPM,你可以看到grunt-contrib-less已经被列出来,但是目前尚未安装。

image

点击右键,Restore Packages。

image

安装完成的gruntfile.js 文件如下所示:

module.exports = function (grunt) {
    grunt.initConfig({
        bower: {
            install: {
                options: {
                    targetDir: "wwwroot/lib",
                    layout: "byComponent",
                    cleanTargetDir: true
                }
            }
        },        // Add this JSON object:        less: {
            development: {
                options: {
                    paths: ["Assets"],
                },
                files: { "wwwroot/css/site.css": "assets/site.less" }
            },
        }
    });

    grunt.registerTask("default", ["bower:install"]);

    grunt.loadNpmTasks("grunt-bower-task");    // Add this line:
    grunt.loadNpmTasks("grunt-contrib-less");
};

initConfig方法

使用initConfig方法来配置Grunt任务。每个Grunt插件有他自己的配置项集合。如,我们可以配置grunt-contrib-less编译为assets/site.less文件,然后拷贝到wwwroot/css/site.css.

loadNpmTasks方法

从Grunt插件中加载任务,工程模板默认通过这个来加载grunt-bower-task。下面添加一个grunt-contrib-less。

在解决方案视图,选择gruntfile.js  右键Task Runner Explorer

image

通过选择任务名称“less”,点击Run运行:

image

 

output窗口运行如下:

image

 

打开/wwwroot/css/site.css文件,可看到编译后的CSS文件如下:

body {
  background-color: #008080;
}

运行程序,背景色已经被真实颜色修改了:

image

配置自动运行:通过Bindings > After Build 即可配置自动运行。

image

 



本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/1608626,如需转载请自行联系原作者

相关文章
|
22天前
|
开发框架 前端开发 JavaScript
ASP.NET Web Pages - 教程
ASP.NET Web Pages 是一种用于创建动态网页的开发模式,采用HTML、CSS、JavaScript 和服务器脚本。本教程聚焦于Web Pages,介绍如何使用Razor语法结合服务器端代码与前端技术,以及利用WebMatrix工具进行开发。适合初学者入门ASP.NET。
|
22天前
|
开发框架 .NET PHP
ASP.NET Web Pages - 添加 Razor 代码
ASP.NET Web Pages 使用 Razor 标记添加服务器端代码,支持 C# 和 Visual Basic。Razor 语法简洁易学,类似于 ASP 和 PHP。例如,在网页中加入 `@DateTime.Now` 可以实时显示当前时间。
|
1月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
33 4
|
1月前
|
机器学习/深度学习 人工智能 物联网
.NET 技术:引领未来开发潮流
.NET 技术以其跨平台兼容性、高效的开发体验、强大的性能表现和安全可靠的架构,成为引领未来开发潮流的重要力量。本文深入探讨了 .NET 的核心优势与特点,及其在企业级应用、移动开发、云计算、人工智能等领域的广泛应用,展示了其卓越的应用价值和未来发展前景。
60 5
|
1月前
|
存储 缓存 NoSQL
2款使用.NET开发的数据库系统
2款使用.NET开发的数据库系统
|
1月前
|
开发框架 JavaScript 前端开发
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
|
3月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
50 7
|
3月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
80 0
|
4月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
57 0
|
4月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?