C# 为什么要创建ASP.NET 5类库项目?
我试图弄清楚“ASP.NET 5类库”(vNext)C#项目与ASP.NET有什么关系。为什么要用这个模板创建一个项目,而不仅仅是一个普通的C#“类库”项目 我喜欢这些新特性,比如project.json文件而不是.csproj文件等,但当项目与ASP.NET或IIS等无关时,创建“ASP.NET”类库似乎是不对的。它只是一个用于业务逻辑层的项目。一个新的WebApi ASP.NET网站最终将引用此项目,但这与此无关C# 为什么要创建ASP.NET 5类库项目?,c#,asp.net,asp.net-mvc,asp.net-core,C#,Asp.net,Asp.net Mvc,Asp.net Core,我试图弄清楚“ASP.NET 5类库”(vNext)C#项目与ASP.NET有什么关系。为什么要用这个模板创建一个项目,而不仅仅是一个普通的C#“类库”项目 我喜欢这些新特性,比如project.json文件而不是.csproj文件等,但当项目与ASP.NET或IIS等无关时,创建“ASP.NET”类库似乎是不对的。它只是一个用于业务逻辑层的项目。一个新的WebApi ASP.NET网站最终将引用此项目,但这与此无关 只是名字不好吗?它应该被称为“vNext类库”,而不是使用看起来像web应用程
只是名字不好吗?它应该被称为“vNext类库”,而不是使用看起来像web应用程序的图标吗?据我所知,ASP.NET 5类库项目的最终产品是一个NuGet包(而不仅仅是.dll程序集) 您可以通过在Visual Studio 2015中右键单击项目并选择“发布…”选项来生成NuGet包。或者可以在命令行中使用“KPM包”
此外,您还可以使用ASP.NET 5核心运行时,以便库可以跨平台运行。这是一个有趣的观察结果,当前模板将生成一个与ASP.NET 5运行时兼容的类库。你不能从普通的C#类库中得到这些 为了跟踪这个设计问题,我提交了以下问题-为什么要创建ASP.NET 5类库项目? ASP.NET 5类库项目(.kproj)比类库项目(.csproj)有许多好处:
aspnet50
、aspnetcore50
、net45
,以及各种其他可移植类库变体。这包括对Intellisense的丰富Visual Studio支持,以通知您哪些API可用于哪些目标- .NET控制台应用程序(跨平台)
- .NET类库(跨平台)
- 类库(包)
- 控制台应用程序(包)
project.json
文件和.NET执行环境(DNX)来构建、运行和打包(到NuGet包中)项目
这些项目模板继续显示在“Web”节点下的“新建项目”对话框中,但现在也显示在主“Visual C#”节点中
它的名字不好吗?与ASP.NET无关?ASP.NET 5的关键目标之一是允许它跨平台运行。有人问:“这不应该被称为.NETCore吗?”至少目前微软的多平台方法只涉及web(和控制台应用程序),不支持像Java那样的桌面开发。为了强调这是关于网络的,他们以“ASP.NET 5”的名义给它打上了品牌。如果你想制作一个跨平台运行的库,它应该是一个ASP.NET 5类库。这意味着当我的老板问我“ASP.NET是最好的技术吗?”时,我可以告诉他“是的”——这就是为什么我会关注你的问题,谢谢。显然,与“ASP.NET 5控制台应用程序”相同的命名问题。可能应该称为“vNext控制台应用程序”,否则开发者可能会将其与ASP.NET网站的某种控制台应用程序混淆。也许模板的位置应该从“Visual C-->Web”移到“Visual C-->vNext”github问题已经解决。更好的项目名称-谢谢:你能扩展一下#2吗-你是说intellisense建议一个API,然后为你下载nuget软件包?我输入JQuery,它会给我?@Simon_Weaver我的意思是,常规类库项目只生成一个DLL和PDB,而新的项目生成一个NUPKG(NuGet包)这可以上传到nuget.org..kproj从此被重命名为.xprojIs他们认为什么时候可以添加good old Class Library类型的现有项目?这是我最后一次考虑将MVC 5迁移到ASP.NET 5 MVC 6。“ASP.NET 5类库”的框架与ASP.NET Core不同,但Core有自己的核心类库,请使用它。