ASP.NET Core 1.0 中的依赖项管理
2015-12-09 21:56
806 查看
var appInsights=window.appInsights||function(config){
function r(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},u=document,e=window,o="script",s=u.createElement(o),i,f;for(s.src=config.url||"//az416426.vo.msecnd.net/scripts/a/ai.0.js",u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=["Event","Exception","Metric","PageView","Trace"];i.length;)r("track"+i.pop());return r("setAuthenticatedUserContext"),r("clearAuthenticatedUserContext"),config.disableExceptionTracking||(i="onerror",r("_"+i),f=e[i],e[i]=function(config,r,u,e,o){var s=f&&f(config,r,u,e,o);return s!==!0&&t["_"+i](config,r,u,e,o),s}),t
}({
instrumentationKey:"b2e35952-fd24-45c1-a4c5-1b24703d79e7"
});
window.appInsights=appInsights;
appInsights.trackPageView();
您当前查看的页面是未经授权的转载!
如果当前版本排版错误,请前往查看最新版本:/article/5249281.html
if (document.domain.match("cnblogs.com") !=null){document.getElementById("none-cnblogs-attention").hidden="hidden"}
提示
更新时间:2016年01月20日。
做过实际开发的都知道,我们需要引用各种各样的类库来帮助我们完成项目的开发。
本文将从服务器端和浏览器端两个方面介绍ASP.NET Core 1.0 中的依赖项管理。
但有一点需要说明,它在管理服务器端类库的时候确实给我们提供了很大的便利,但不可否认的是它在浏览器端类库的管理上还很欠缺。
注解
如果你不是在Windows平台上开发,也没有关系,你依然能使用服务器端的包管理器,只不过没有漂亮的UI而已。
Nuget的包引用在在项目文件
比如下面的引用中,在
小技巧
使用 Visual Studio 2015 时,每次修改project.json文件会自动触发还原,但在其他情况下,需要手动执行:
Nuget 包管理器的依赖项定义在
通常情况下,我们创建一个非空的项目后,Bootstrap和jQuery这两个包就已经安装好了。
警告
事实上,对于 Mac/Linux 平台,上述2个包的依赖关系已经在 bower.json 写好,但两个包的内容却并没有下载到本地。
网站运行的时候没有出现问题是因为网站默认先从微软的CDN中获取文件,仅当CDN获取失败时才转而从本地获取。
小技巧
使用
保存文件,Visual Studio 2015 会自动帮你下载
注解
对于 Mac/Linux 平台,每次修改 bower.json 后,都需要手动运行
小技巧
非常不建议手动更改 wwwrootlib 文件夹下的任何内容,因为运行
Bower 官方网站
在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站
在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )
声明
ASP.NET Core 1.0 中的依赖项管理 由 勤奋的小孩 创作,采用 知识共享 署名-相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 http://space.cnblogs.com/msg/send/qin-nz 处获得。
function r(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},u=document,e=window,o="script",s=u.createElement(o),i,f;for(s.src=config.url||"//az416426.vo.msecnd.net/scripts/a/ai.0.js",u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=["Event","Exception","Metric","PageView","Trace"];i.length;)r("track"+i.pop());return r("setAuthenticatedUserContext"),r("clearAuthenticatedUserContext"),config.disableExceptionTracking||(i="onerror",r("_"+i),f=e[i],e[i]=function(config,r,u,e,o){var s=f&&f(config,r,u,e,o);return s!==!0&&t["_"+i](config,r,u,e,o),s}),t
}({
instrumentationKey:"b2e35952-fd24-45c1-a4c5-1b24703d79e7"
});
window.appInsights=appInsights;
appInsights.trackPageView();
ASP.NET Core 1.0 中的依赖项管理¶
警告您当前查看的页面是未经授权的转载!
如果当前版本排版错误,请前往查看最新版本:/article/5249281.html
if (document.domain.match("cnblogs.com") !=null){document.getElementById("none-cnblogs-attention").hidden="hidden"}
提示
更新时间: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-*" } } } } |
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 | { "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便会覆盖已有的更改。
其他资源¶
Nuget 官方网站Bower 官方网站
后续步骤¶
ASP.NET Core 1.0 入门——创建一个空项目在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站
在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )
声明
ASP.NET Core 1.0 中的依赖项管理 由 勤奋的小孩 创作,采用 知识共享 署名-相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 http://space.cnblogs.com/msg/send/qin-nz 处获得。
相关文章推荐
- ASP.NET中字段赋值问题
- ASP.NET 问题集锦
- ASP.NET MVC 监控诊断、本地化和缓存
- asp.net列表分页
- @AspectJ使用示例
- ASP.NET MVC
- ASP.NET发送电子邮件
- ASP.net MVC自定义错误处理页面的方法
- ASP.NET MVC 发送邮件(异步)
- ASP.NET中实体数据库模型的增删改查的用法。
- asp.net关于post和get传值的问题
- vs2013 asp.net System.BadImageFormatException
- ASP.NET Web API 应用教程(一) ――数据流使用
- but no declaration can be found for element 'aop:aspectj-autoproxy'.
- ASP.NET Web API 应用教程(一) ——数据流使用
- ASP.NET MVC 实现与SQLSERVER的依赖缓存
- ASP.NET状缓存Cache的应用-提高数据库读取速度
- MVC6 (ASP.NET5) 认证 (Asp.net identity) cookie模式 自定义认证
- 阿里云ESC(Windows Server 2012 40G系统盘+10G数据盘)搭建IIS+ASP.NET运行环境详解
- .NET中First,FirstOrDefault,Single,SingleOrDefault