asp.net核心 – .NET核心 – 解决方案,框架,导入,运行时

我开始重新编写一个框架集使用.NET Core的过程.想到我会等待RC2,并热衷于陷入困境.

我正在借机利用构建系统,配置,从头开始编写所有内容,以获得更深入的了解,并且没有不需要/不需要的不必要的行李.然而,缺乏文档使这很困难..所以我想在这里询问,无疑,聪明的.NET核心人员正在隐藏;)

我知道这个问题很长,有很多小问题.但是我可以通过一个单独的文档链接来感受,或者是有一些人知道的一些succint线.感谢与我的关系,我希望这可能成为一个有用的回答资源为其他人在同一条船,试图了解一个好的方法为.NET核心.

首先,global.json.我想要多个项目和组件在同一个解决方案”.通过另一个SO问题,我发现这个隐藏的链接http://dotnet.github.io/docs/project-model/global-json-reference.html – 但似乎没有VS工具从头开始设置或使用它.

1)global.json问题

A)这些文档是指什么构建系统? dotnet构建? (这个帮助说,它只是构建一个项目 – 如果它是“解决方案” – 如果这仍然是名称 – 它是否运行dotnet构建在所有子文件夹?).

B)许多例子都有一个“sdk”属性 – 但是EF Core没有这个属性,而新的“单句式”文档并没有引用它. The official RC2 migration guide for ASP.NET Core has it还在吗?如果是这样,为什么需要它?有什么用有什么选择?

接下来,到project.json和框架.我想了解这里的框架选项.有没有列表?官方指导dotnet新用netcoreapp1.0; “official docs”使用dnxcore50和this GH discussion from last month的示例也提出了netcore1.0作为框架(vs应用程序)的可能性的问题.

此外,进口.令人非常困惑的命名 – 该文档谈到这是项目与之兼容的其他框架的列表.

2)project.json框架问题 –

A)我在哪里可以找到关于框架选项的最新或维护的列表或一组建议?

B)如果我对导入目的的理解是正确的,为什么这样命名?如果没有,究竟进口什么?

C)为什么每个框架属性都有一个import属性?如果要指出整个项目是否与另一个框架兼容,那么似乎最好放在project.json的顶层呢?

D)我该如何决定我应该使用哪些导入选项? dotnet new只有dnxcore50 – 哪些包是满足的? This guy建议dotnet5.6,dnxcore50和portable-net45 win8!

最后,我正在构建类库,测试项目,控制台工具.所以..

3)参考和包

A)我是否一直希望MicrosoftnetCore.App根据dotnet新增?是否有其他基准选项?选择指导?一个列表?

B)文档没有提到关于类型选项(构建,平台)的任何内容.有没有这方面的指导?

C)我的一些项目将使用ASP.NET.在哪里找到正确的包参考的最佳位置在哪里? NuGet上似乎有一百万个版本和软件包. This tutorial只是谈论引用Microsoft.AspNetCore.Server.Kestrel – 和唯一ASP.NETty的事情是Microsoft.AspNetCore.Hosting.这是否意味着一个包是大多数ASP.NET?

解决方法

你有很多问题.没有单一的文件,因为问题不是那么简单;

global.json

> global.json构建系统:global.json(作为project.json)不指定构建系统(除了例如msbuild csproj文件).现在,只有dotnet构建可用(在VS中使用时由msbuild xproj代理).这将改变为msbuild,因为完整的工具是预览/测试版,不会在6月底发布.它遍历所有的子文件夹并构建东西.它也是用于查找本地项目引用的根节点.
> global.json sdk:这是用于构建的sdk.新的cli还支持多个sdks,我认为这仍然用于选择.

project.json

> project.json框架列表:我建议您阅读platform standard document,然后找到当前框架标记的列表.本文还将解决您(可能)拥有的其他许多问题.一个完整的列表是在NuGet project docs,但是列表再次被弃用,也没有那么有用.您的示例netcore指用于UWP(哪个运行时也称为.NET Core),而跨平台.NET Core使用netcoreapp,这在NuGet文档中完全缺失.
> project.json import:你这里的目的是错的.在project.json中,指定构建库的实现的目标框架(例如netstandard1.6和net451). import语句用于您为目标框架指定的依赖关系,并且基本上说:如果TFM(例如netstandard1.6)不存在于引用的库中(因为NuGet在之前构建),我也接受这些导入一次(例如,弃用的dotnet5.6或dnxcore50).这是一个打破NuGet的实用程序,允许使用尚未移动到新TFM的库.它并没有说明你的项目,而是您接受使用哪些版本的依赖项.这需要针对每个目标框架的单独规范,因为NuGet库实现的接受可能会因目标框架而有所不同.
> project.json导入用法:好的,使用你需要的,并删除所有你不需要的.当您将尚未迁移的NuGets引用到新的TFM时,您将收到错误. dnxcore和dotnet在.NET Core项目上保存下注,因为它们已被使用在当前的绰号netstandard和netcoreapp之前.只是不要那么大胆地​​添加,例如基于net461 / mscorlib的NuGet实现到基于netstandard / System.Runtime的目标框架.这不行,是一个常见的错误.

依赖

> dotnet新的认模板:是的,对于总是正确选择的ASP.NET和控制台应用程序.然而,这只是一个简单的控制台应用程序(网络应用程序也是控制台应用程序).使用Visual Studio在Linux下创建新的ASP.NET Core项目或yeoman以进行高级模板化. dotnet新不是一个完整的脚手架系统.新模板使用netcoreapp目标框架和Microsoft.NETCore.App元数据包导入基本上所有可用的基类库.如果要创建库,请切换到netstandard目标框架,并依赖于NETStandard.Library.您仍然可以添加其他依赖项.对于ASP.NET核心,没有直接的元包可用.指导在这里结束.有一个称为修剪的过程,您可以在其中删除这些元数据包,并添加具体的依赖关系.但是还没有工具.
> project.json构建/平台依赖:构建依赖关系本质上是在构建期间不发布的工具.当你知道npm你知道这个方案是devDependencies.平台依赖性本质上是一个依赖关系,它不是与您的应用程序一起部署,而是.NET Core SDK的共享基础安装的一部分.您可以在“便携式应用程序”(即平台)和“自包含应用程序”(即没有)中找到guidance.
> project.json元包/传递依赖关系:.NET Core和project.json介绍元包的概念. Microsoft.NETCore.App本质上是.NET Core命令行应用程序和类库的NETStandard.Library的基准依赖关系.所有这些软件包都可以为自己的代码和其他软件包的传递依赖.这些你也可以利用.例如,Microsoft.NETCore.App包引用了NetStandard.Library,它再次引用System.Collections.Generic.所以在您的应用程序中,引用Microsoft.NETCore.App,您可以使用通用集合.对于ASP.NET Core来说,情况是不同的,因为现在付费的理念非常关键.对于高效应用,您必须了解您添加内容.作为起步者,您必须使用像VS或yeoman这样的脚手架系统. Microsoft.AspNetCore.Server.Kestrel(例如纯文本)或Microsoft.AspNetCore.Mvc(对于web api)传递性地包括大多数其他关键的ASP.NET Core依赖关系.

免责声明:以上大部分主题都涉及被认为是“预览”的工具. “预览”是指“测试版”.有即将到来的重大变化(如将build.js从project.json切换回msbuild,或再次改进.NET标准).

我希望这能回答大部分的问题.我认为在一个问题中回答所有这些都是一个挑战;).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WPF...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这...
Some samples are below for ASP.Net web form controls:(from http://www.visualize.uk.com/resources/asp
问题描述: 对于未定义为 System.String 的列,唯一有效的值是(引发异常)。 For columns not defined as System.String, the only vali
最近用到了CalendarExtender,结果不知道为什么发生了错位,如图在Google和百度上找了很久,中文的文章里面似乎只提到了如何本地化(就是显示中文的月份)以及怎么解决被下拉框挡住的问题,谈
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence changed a lot since 1.1. Here is the order: App
静态声明: ' Style="position: relative" AppendDataBoundItems="True"> (无 或 空 或
以下内容是从网络上搜集资料,然后整理而来的。不当之处,请不吝指教。(The following were from network, and edited by myself. Thanks in a
Imports System Imports System.Reflection Namespace DotNetNuke '*********************************
Ok so you have all seen them: “8 million tools for web development”, “5 gagillion tools that if you
以下内容来源于: http://blog.csdn.net/cuike519/archive/2005/09/27/490316.aspx 问:为什么Session在有些机器上偶尔会丢失? 答:可能和
以下文章提到可以用“http://localhost/MyWebApp/WebAdmin.axd”管理站点: ---------------------------------------------
Visual Studio 2005 IDE相关的11个提高开发效率的技巧 英文原创来源于: http://www.chinhdo.com/chinh/blog/20070920/top-11-vis
C#日期格式化 from: http://51xingfu.blog.51cto.com/219185/46222 日期转化一 为了达到不同的显示效果有时,我们需要对时间进行转化,默认格式为:2007
from: http://www.nikhilk.net/UpdateControls.aspx Two controls that go along with the UpdatePanel and
Open the report in the Designer. In the ToolBox, select/expand the "Report Items" section.
from: http://drupal.org/node/75844 Do this: find which TinyMCE theme you are using. For the sake of
asp.net中给用户控件添加自定义事件 用户控件中定义好代理和事件: public delegate void ItemSavedDelegate(object sender, EventArgs
在Windows版本的Safari中浏览以下的页面。 http://www.asp.net/AJAX/Control-Toolkit/Live/Calendar/Calendar.aspx Calen
http://aspnet.4guysfromrolla.com/articles/021506-1.aspx By Scott Mitchell Introduction When creating