c# - mvc教程 - asp.net core教程




为什么要创建一个ASP.NET 5类库项目? (2)

我试图弄清楚“ ASP.NET 5类库”(vNext)C#项目与ASP.NET有什么关系。 为什么要使用此模板创建一个项目,而不仅仅是一个常规的C#“类库”项目?

我喜欢新功能,例如project.json文件而不是.csproj文件等,但是当项目与ASP.NET或IIS等无关时,创建“ ASP.NET”类库似乎并不正确这只是业务逻辑层的一个项目。 一个新的WebApi ASP.NET网站最终将引用此项目,但目前不相关。

它只是名字不好吗? 是否应该仅将其称为“ vNext类库”而不使用看起来像Web应用程序的图标?


为什么要创建一个ASP.NET 5类库项目?

与类库项目( .csproj)相比,ASP.NET 5类库项目( .kproj) 有许多优点:

  1. ASP.NET 5类库可以轻松地支持将项目交叉编译到多个目标,例如 aspnet50aspnetcore50net45 和其他各种可移植类库变体。 这包括对Intellisense的丰富Visual Studio支持,以通知您哪些API可用于哪些目标。
  2. NuGet软件包是自动创建的,这对于类库而言是非常普遍的事情。
  3. 当文件系统更改时自动刷新解决方案资源管理器时,可以提高生产率。 尝试合并* .csproj文件中的冲突更改时,源代码管理中的冲突较少。
  4. 可以跨平台编译(部分原因是它不依赖于MSBuild)

您可以从* .kproj项目中引用* .csproj项目(使用Visual Studio 2015的新预览使此操作变得更加容易),但是始终可以通过一些手动步骤来实现。

为什么名称中包含“ ASP.NET”?

就名称而言,这是历史遗迹,将很快得到解决。 除了ASP.NET 5应用程序之外,新的项目类型还很有用。 期望在以后的Visual Studio预览中看到新名称:

  • .NET控制台应用程序(跨平台)
  • .NET类库(跨平台)

更新5/13/2015

随着 Visual Studio 2015 RC 的发布,您可以看到更新的项目模板名称:

  • 类库(包)
  • 控制台应用程序(包)

它们使用 project.json 文件和.NET执行环境(DNX)来构建,运行和打包项目(将其打包为NuGet软件包)。

这些项目模板继续显示在“ Web”节点下的“新建项目”对话框中,但现在也显示在主“ Visual C#”节点中。


据我了解,一个好处是ASP.NET 5类库项目的最终产品是NuGet程序包(而不只是.dll程序集)。

您可以通过右键单击Visual Studio 2015中的项目并选择“发布...”选项来生成NuGet包。 或者,您可以在命令行中使用“ KPM pack”。

另外,您还可以使用ASP.NET 5 Core运行时,以便您的库可以跨平台运行。





asp.net-core