我想弄清楚一个"ASP.NET5类库"(VNext)C#项目与ASP.NET有什么关系.为什么要用这个模板创建一个项目,而不是一个普通的C#"类库"项目呢?

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

只是名字不好吗?它应该被称为"vNext类库",而不是使用看起来像web应用程序的图标吗?

推荐答案

为什么要创建ASP.NET5类库项目?

ASP.NET 5类库项目(.kproj) over Class Library projects (.csproj)有许多好处:

  1. ASP.NET5类库很容易支持将项目交叉编译到多个目标,例如aspnet50aspnetcore50net45和各种其他可移植的类库变体.这包括丰富的Visual Studio对IntelliSense的支持,以通知您哪些API可用于哪些目标.
  2. Nuget包是自动创建的,这是使用类库时非常常见的事情.
  3. 更高的工作效率,例如在文件系统更改时自动刷新解决方案资源管理器.try 合并*.csproj文件中的冲突更改时,源代码管理中的冲突较少.
  4. 可以跨平台编译(部分原因是它不依赖于MSBuild)

你可以参考a*.csproj项目来自a*.kproj项目(通过新的Visual Studio 2015预览版,这一点变得简单了很多),但通过一些手动步骤,这始终是可能的.

为什么名字里有"ASP.NET"?

就名字而言,这是一个很快就会被提及的历史遗迹.新的项目类型远比ASP有用.NET 5应用程序.希望在future 的Visual Studio预览中看到新名称:

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

更新日期:2015年5月13日

在版本Visual Studio 2015 RC中,您可以看到更新后的项目模板名称:

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

它们使用project.json文件和.NET执行环境(DNX)来构建、运行和打包(到NuGet包中)项目.

这些项目模板继续显示在"Web" node 下的"新建项目"对话框中,但现在也显示在主"Visual C#" node 中.

VS2015 RC类库/控制台应用程序模板

Asp.net相关问答推荐

Thread.CurrentPrincipal 错误地声称是匿名的

如何在 ASP.NET WebForms 中实现 TDD

捕获对 ASP.NET ASMX Web 服务的 SOAP 请求

获取没有主机的 url 部分

不支持关键字:服务器

我可以创建 .config 文件并将其包含到 web.config 中吗?

使用 gridview asp.net 进行排序和分页

如何在 Visual Studio 2017 中使用 NPM 并安装包?

来自 IP 地址的经度和纬度值

问题映射 HttpHandler --> HTTP Error 404 Not Found

以编程方式添加跨度标签,而不是标签控件?

回发后动态创建的控件丢失数据

对于每个请求,RestClient 应该是单例还是新的

为应用程序池Classic .NET AppPool提供服务的进程与 Windows 进程激活服务发生了致命的通信错误

使用 Moq 验证活动注册

Html.RenderAction 和 Html.Action 的区别

asp.net core 2.0 - 值不能为空.参数名称:连接字符串

可以在不 destruct 站点的情况下将 MIME 类型添加到 web.config 吗?

以编程方式滚动到锚标记

在 ASP.NET 中获取服务器的 IP 地址?