ASP.NET 5 中的依赖项管理?

做过实际开发的都知道,我们需要引用各种各样的类库来帮助我们完成项目的开发。 本文将从服务器端和浏览器端两个方面介绍ASP.NET 5 中的依赖项管理。

服务器端代码使用 Nuget 作为包管理器?

对于已经习惯使用 Visual Studio 2015 作为开发工具的码农们应该对 Nuget 不陌生,这里不做介绍了。 但有一点需要说明,它在管理服务器端类库的时候确实给我们提供了很大的便利,但不可否认的是它在浏览器端类库的管理上还很欠缺。

注解

如果你不是在Windows平台上开发,也没有关系,你依然能使用服务器端的包管理器,只不过没有漂亮的UI而已。 对于使用 Visual Studio Code 开发的人员,可以参考 ASP.NET 5 入门——创建一个空项目 中的project.json。

浏览器端代码使用 Bower 作为包管理器?

Bower是一个web包管理器,可以安装和恢复客户端的依赖包,同时能自动帮我们处理依赖关系,目前已经有超过3万个包可用。 Nuget 包管理器的依赖项定义在 project.json 中,而 Bower 的则定义在 bower.json 中。

小技巧

Visual Studio 2015 默认会隐藏bower.json文件,可以在 解决方案资源管理器 中选择 显示所有文件 来取消隐藏。

通常情况下,我们创建一个非空的项目后,Bootstrap和jQuery这两个包就已经安装好了。

{
  "name": "basic",
  "private": true,
  "dependencies": {
    "bootstrap": "3.3.5",
    "jquery": "2.1.4",
    "jquery-validation": "1.14.0",
    "jquery-validation-unobtrusive": "3.2.4"
  }
}

警告

事实上,对于 Mac/Linux 平台,上述2个包的依赖关系已经在 bower.json 写好,但两个包的内容却并没有下载到本地。 网站运行的时候没有出现问题是因为网站默认先从微软的CDN中获取文件,仅当CDN获取失败时才转而从本地获取。

安装 d3 绘图引擎?

如果我们需要引用新的包,比如用于数据展示的 d3 , 只需要添加如下一行内容即可。

{
  "name": "basic",
  "private": true,
  "dependencies": {
    "bootstrap": "3.3.5",
    "d3": "~3.5.10",
    "jquery": "2.1.4",
    "jquery-validation": "1.14.0",
    "jquery-validation-unobtrusive": "3.2.4"
  }
}

小技巧

使用 ~3.5.10 表示引用 3.5.x 的最新版, 也可使用 ^3.5.10 来表示引用 3.x.x 的最新版。

保存文件,Visual Studio 2015 会自动帮你下载 d3 ,下载好的文件会位于 wwwroot\lib\d3 文件夹下。

技术分享

注解

对于 Mac/Linux 平台,每次修改 bower.json 后,都需要手动运行 bower install 命令!