ASP.NET Core 1.0 中的依赖项管理

警告

您当前查看的页面是未经授权的转载!
如果当前版本排版错误,请前往查看最新版本:http://www.cnblogs.com/qin-nz/p/aspnet5-dependency-management.html

提示

更新时间:2016年01月20日。

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

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

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

注解

如果你不是在Windows平台上开发,也没有关系,你依然能使用服务器端的包管理器,只不过没有漂亮的UI而已。

Nuget的包引用在在项目文件 project.json 中的 dependencies 处定义。
dependencies 有两个位置,一处是对于所有的 frameworks 均适用的,另一处是在某个framework中。
比如下面的引用中,在 dnxcore50 的位置我引用了 System.Console ,而 dnx451 本身很庞大,已经自带了 Console 的功能,因此就无需再包含。

小技巧

dnxcore50 框架,微软做了大幅的裁剪,只包含了最最基础的代码,如果你需要使用Linq或者其他你认为很常用的,都是需要像第33行一样进行引用。

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"tooling": {
"defaultNamespace": "basic"
}, "dependencies": {
"Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final"
}, "commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}, "frameworks": {
"dnx451": {},
"dnxcore50": {
"dependencies": {
"System.Console": "4.0.0-beta-*"
}
}
}
}

使用 Visual Studio 2015 时,每次修改project.json文件会自动触发还原,但在其他情况下,需要手动执行:

dnu restore

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

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

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

 1
2
3
4
5
6
7
8
9
10
{
"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 , 只需要添加如下一行内容即可。

 1
2
3
4
5
6
7
8
9
10
11
{
"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 命令。

小技巧

非常不建议手动更改 wwwrootlib 文件夹下的任何内容,因为运行 bower install 便会覆盖已有的更改。

声明

ASP.NET Core 1.0 中的依赖项管理 由 勤奋的小孩 创作,采用 知识共享 署名-相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 http://space.cnblogs.com/msg/send/qin-nz 处获得。

ASP.NET Core 1.0 中的依赖项管理的更多相关文章

  1. ASP.NET Core 1.0 中使用 Swagger 生成文档

    github:https://github.com/domaindrivendev/Ahoy 之前文章有介绍在ASP.NET WebAPI 中使用Swagger生成文档,ASP.NET Core 1. ...

  2. ASP.NET Core 3.0中使用动态控制器路由

    原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...

  3. 探索 ASP.Net Core 3.0系列三:ASP.Net Core 3.0中的Service provider validation

    前言:在本文中,我将描述ASP.NET Core 3.0中新的“validate on build”功能. 这可以用来检测您的DI service provider是否配置错误. 具体而言,该功能可检 ...

  4. 在Asp.Net Core 3.0中如何使用 Newtonsoft.Json 库序列化数据

    在.Net Core 3.0中 内置了一套Json序列化/反序列化方案,默认可以不再依赖,不再支持   Newtonsoft.Json. 但是.NET Core 3.0 System.Text.Jso ...

  5. 避免在ASP.NET Core 3.0中为启动类注入服务

    本篇是如何升级到ASP.NET Core 3.0系列文章的第二篇. Part 1 - 将.NET Standard 2.0类库转换为.NET Core 3.0类库 Part 2 - IHostingE ...

  6. ASP.NET Core - 在ActionFilter中使用依赖注入

    上次ActionFilter引发的一个EF异常,本质上是对Core版本的ActionFilter的知识掌握不够牢固造成的,所以花了点时间仔细阅读了微软的官方文档.发现除了IActionFilter.I ...

  7. 在ASP.NET Core 1.0中如何发送邮件

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:目前.NET Core 1.0中并没有提供SMTP相关的类库,那么要如何从ASP.NE ...

  8. 用ASP.NET Core 1.0中实现邮件发送功能

    准备将一些项目迁移到 asp.net core 先从封装类库入手,在遇到邮件发送类时发现在 asp.net core 1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit 好东西一定要试 ...

  9. 在ASP.NET Core 2.0中使用CookieAuthentication

    在ASP.NET Core中关于Security有两个容易混淆的概念一个是Authentication(认证),一个是Authorization(授权).而前者是确定用户是谁的过程,后者是围绕着他们允 ...

随机推荐

  1. iOS 开发 常用的正则验证表达式:电话 、邮箱等等

    #pragma mark - 验证手机号 +(BOOL)checkForMobilePhoneNo:(NSString *)mobilePhone{ NSString *regEx = @" ...

  2. CSS 多浏览器兼容性问题及解决方案

    兼容性处理要点1.DOCTYPE 影响 CSS 处理 2.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 ...

  3. html window.open 使用详解

    window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no ...

  4. .NET重载运算符

    代码如下: /// <summary> /// 坐标(结构类型) /// </summary> public struct Coordinate { public int x; ...

  5. XmlDocument解析Soap格式文件案例:

    private static string Analysis(string strResult) { var doc = new System.Xml.XmlDocument(); //加载soap文 ...

  6. 阿里云 ECS 逻辑卷挂载数据盘

    查看磁盘信息: [root@ixx~]# fdisk -l Disk /dev/xvda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track ...

  7. OO基本原则

    1. 单一职责原则(SRP)     一个类应该最多只能有一个因素能够给导致其变化,类中的方法应该都是相关性很高的,即"高内聚"   2. 开放-封闭原则(OC)      - 扩 ...

  8. nerual style 执行命令

    python neural_style.py --content ./examples/4-content.jpg --styles ./examples/4-faguo-style.jpg --ou ...

  9. Word论文写作如何实现公式居中、编号右对齐

    第一步:插入表格 在公式所在行居中插入一行三列的表格,具体操作为: a.设置行居中,快捷键Ctrl+E: b.插入->表格->3×1的表格: 2 第二步:修改表格属性 新插入的表格三列等宽 ...

  10. iOS.Performance-trick-presentViewController-is-so-slow-in-didSelectRowAtIndexPath

    presentViewController is so slow in "tableView:didSelectRowAtIndexPath:" Use Case: 在UITabl ...