2012-08-16 38 views
37

正如標題所說,爲什麼ASP.NET MVC 4項目有許多SOOOO包的NuGet?整個框架現在分成幾個包?哪些是一個空的項目,這將是一個網站,沒有API,等真正重要的?爲什麼ASP.NET MVC 4有這麼多的NuGet包,哪些是真正重要的?

UPDATE

爲了澄清,我並沒有問題,好了,除非你把基本的混亂之一。我只是想知道爲什麼新的MVC 4項目有默認安裝那麼多的包?一個空的項目有一整頁的包。一個互聯網項目有三個完整的軟件包頁面。

我只是好奇,這是爲什麼,因爲我現在的MVC 3項目的最大五個包使用。

+0

我很好奇,爲什麼有很多NuGet包的問題?你想解決什麼問題? – neontapir 2012-08-16 22:13:13

+3

我沒有說有問題。我只是簡單地安裝了MVC 4並創建了一個新項目,並探討了哪些不同。一個空白的項目有一個頁面包裝完整,而互聯網項目有三個完整的包裝頁面。我只是想知道爲什麼這是因爲我的MVC 3項目最多使用了大約五個軟件包。只是好奇。 – Gup3rSuR4c 2012-08-16 22:17:27

+0

我問過這個問題,因爲它可能會使您收到的回覆變爲顏色。 http://programmers.stackexchange.com上的 – neontapir 2012-08-16 22:18:14

回答

26

正如標題所說,爲什麼ASP.NET MVC 4項目有太多的NuGet包?

這是一個問題,你需要問問框架的設計者。

對於一個空的項目來說,哪些對於一個網站,沒有API等是真正重要的?

這裏是嚴格的最低,這將允許您配置路由和行動呈現Razor視圖定義控制器:

<packages> 
    <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net40" /> 
    <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net40" /> 
    <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net40" /> 
    <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" /> 
</packages> 

,或者如果你喜歡只1/2頁:

enter image description here

+0

我想應該足夠了。謝謝(你的)信息。 – Gup3rSuR4c 2012-08-21 02:10:01

+0

ASP.NET Web Pages 2 Web數據,數據和管理如何?我知道ASP.NET Web Pages 2(Core)包含共享的MVC和WebForms功能,但那三者呢?他們需要或更好,他們究竟包含什麼? – mare 2012-10-12 12:42:31

+0

哦對不起,我現在看到ASP.NET Web Helpers帶來了這些,它們不在默認的Basic模板中。 – mare 2012-10-12 12:46:09

22

自ASP.NET MVC 3工具更新以來,ASP.NET MVC已經越來越多地通過NuGet包提供。這有幾個優點:

  • 升級到通過的NuGet交付組件 - MVC本身和其他相關部件(刀片,網絡API),而無需等待任何ASP.NET MVC,.NET的一個新的「大」的發佈,或Visual Studio。
  • 這也意味着您可以在MVC之外使用單個部件 - 例如,Web API可以在ASP.NET之外使用。
  • 越來越多的組件正在UI層和ASP.NET的其他部分之間共享。一些示例:路由與Web窗體和Web頁面共享,Razor與Web頁面共享,新的OAuth部分與Web窗體共享。

你會發現,從基本模板的項目,你會得到以下軟件包:

  • Microsoft.AspNet.Mvc
  • Microsoft.AspNet.Razor
  • 微軟.AspNet.WebApi
  • Microsoft.AspNet.WebApi.Client
  • Microsoft.AspNet.WebApi.Core
  • Microsoft.AspNet.WebApi.WebHost
  • Microsoft.AspNet。網頁
  • Microsoft.Net.Http
  • Microsoft.Web.Infrastructure
  • Newtonsoft.Json

九五是用於Web API,它一直高度組件允許開發了很多他們在哪裏以及如何使用他們的靈活性。如果你想最小化你的NuGet包,你可以使用基本模板。

隨着您進入基本和互聯網模板,您將看到更多的軟件包以支持項目提供的附加功能。互聯網帶來了幾種開放源碼的非Microsoft代碼包,如OAuth和JavaScript庫。

有很多JavaScript包,當你考慮它的時候這是一件非常好的事情,因爲這意味着NuGet會自動爲你處理JavaScript依賴關係 - 如果你想升級jQueryUI,而這需要一個新版本的jQuery,它會自動爲你升級jQuery。

+0

這是否意味着我不必通過Web Platform Installer安裝ASP.NET MVC4框架了? – Nigiri 2013-08-28 07:01:36

+1

Visual Studio 2012包含MVC 4.如果您使用2010,我建議在大多數情況下使用Web PI。你可以使用一個空的web應用程序和NuGet包創建一個MVC 4網站,但是你也需要擺弄web.config,你不會有完整的VS支持像snippets之類的東西。 – 2013-08-29 19:33:30

+3

不同意所有的Javascript 「空」MVC項目中的Nuget套件是一件好事。我不想等到升級到最新的補丁級別的jquery,直到在Nuget上發佈,它可能會落後一年。我會自己更新它 - 這是一個單獨的文件,而Nuget只是擋道。 – 2013-12-11 16:37:20

相關問題