正如标题所说,为什么ASP.NET MVC 4项目有很多NuGet包呢?现在整个框架分成了包吗?哪一个对于一个空的项目来说真的很重要,这个项目将是一个网站,没有API等?
更新
澄清一点,我没有问题,好吧,除非你把基本的困惑算作一个。我只是想知道为什么新的MVC 4项目默认安装了这么多软件包?一个空项目有一整页的包。互联网项目有三整页的包。
我只是好奇为什么这是因为我目前的MVC 3项目最多使用五个包。
答案 0 :(得分: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:
答案 1 :(得分:22)
自ASP.NET MVC 3工具更新以来,ASP.NET MVC越来越多地通过NuGet包提供。这提供了几个优点:
您会注意到在Basic模板的项目中,您将获得以下包:
九个中的五个用于Web Api,它已经过高度组件化,可以让开发人员在何处以及如何使用它们方面具有很大的灵活性。如果您想最小化NuGet包,可以使用Basic模板。
当您升级到Basic和Internet模板时,您将看到更多软件包以支持项目提供的其他功能。 Internet带来了几个开源的非Microsoft代码包,如OAuth和JavaScript库。
有许多JavaScript包,当你考虑它时,这是一件非常好的事情,因为这意味着NuGet会自动为你处理JavaScript依赖 - 如果你想升级jQueryUI,而jQueryUI又要求新的版本jQuery,它会自动为你升级jQuery。