ASP.NET Core 1.0 中的依賴項管理


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 文件夾下。

https://qinblog.blob.core.windows.net/images/basic-project-add-d3.png

注解

對於 Mac/Linux 平台,每次修改 bower.json 后,都需要手動運行 bower install 命令。

小技巧

非常不建議手動更改 wwwrootlib 文件夾下的任何內容,因為運行 bower install 便會覆蓋已有的更改。

聲明 知識共享許可協議

ASP.NET Core 1.0 中的依賴項管理 勤奮的小孩 創作,采用 知識共享 署名-相同方式共享 4.0 國際 許可協議進行許可。
本許可協議授權之外的使用權限可以從 http://space.cnblogs.com/msg/send/qin-nz 處獲得。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM