大家好,今天给各位分享net酒店网站源码分享的一些知识,其中也会对酒店项目网站进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
.NET8Preview3现已推出,这个预览版包括对构建路径、工作负载、Microsoft.Extensions和容器的更改,还包括针对Arm64的JIT和动态PGO的性能改进。
以下为该预览版的部分改动:
对SDK进行了多项改进,并进行了重大更改。
有关重大更改的更多信息,请参阅.NETSDK不再更改退出时的编码。
简化输出路径
.NETSDK引入了一个选项来创建更统一、更简化的输出路径结构。新的输出路径侧重于:
将所有构建输出收集在一个公共位置
在公共位置下按项目分隔构建输出
将整体构建输出布局展平到最多三层深度
要选择新的输出路径布局,需要在Directory.Build.props文件中设置UseArtifactsOutput属性。
开始的最简单方法是在存储库的根目录中运行dotnetnewbuildprops,打开生成的Directory.Build.props文件,然后将以下内容添加到该文件中的PropertyGroup:
<UseArtifactsOutput>true</UseArtifactsOutput>
此后,所有项目的构建输出都将放入存储库根目录中的.artifacts目录中,该目录可配置,只需将Directory.Build.props文件中的ArtifactsPath属性设置为其他目录。
.artifacts目录的布局将采用<ArtifactsPath>\\<TypeofOutput>\\<ProjectName>\\<Pivots>形式。
新的命令,可帮助清理剩余的工作负载包(工作负载所包含的实际功能、工具和模板单元):
dotnetworkloadclean
clean有两种操作模式,分别是:
dotnetworkloadclean
这个模式为基于文件或基于MSI的工作负载运行工作负载垃圾收集。在这种模式下,垃圾收集行为正常,只清理孤立的包本身。
dotnetworkloadclean–all
与workloadclean不同,workloadclean–all不定期运行垃圾回收,这意味着它会清除机器上所有,不是来自VisualStudio且属于当前SDK工作负载安装类型(基于文件或基于MSI)的现有包。
引入验证选项结果生成器(ValidateOptionsResultBuilder)
新的ValidateOptionsResultBuilder使创建ValidateOptionsResult对象变得更容易,这是实现IValidateOptions.Validate(String,TOptions)所必需的。
此构建器允许累积多个错误,然后一次查看所有问题,并相应地解决它们。
使用示例:
ValidateOptionsResultBuilderbuilder=new();builder.AddError(“Error:invalidoperationcode”);builder.AddResult(ValidateOptionsResult.Fail(“Invalidrequestparameters”));builder.AddError(“Malformedlink”,”Url”);//BuildValidateOptionsResultobjecthasaccumulatingmultipleerrors.ValidateOptionsResultresult=builder.Build();//Resetthebuildertoallowusingitinnewvalidationoperation.builder.Clear();
引入配置绑定源码生成器(theconfigurationbindingsourcegenerator)
使用新的配置绑定源代码生成器,可自动生成无反射和AOT友好的绑定实现。
该生成器会探测Configure、Bind和Get调用,可以从中检索类型信息。
usingMicrosoft.AspNetCore.Builder;usingMicrosoft.Extensions.Configuration;usingMicrosoft.Extensions.DependencyInjection;WebApplicationBuilderbuilder=WebApplication.CreateBuilder(args);IConfigurationSectionsection=builder.Configuration.GetSection(“MyOptions”);//!!Configurecall-tobereplacedwithsource-gen’dimplementationbuilder.Services.Configure<MyOptions>(section);//!!Getcall-tobereplacedwithsource-gen’dimplementationMyOptionsoptions0=section.Get<MyOptions>();//!!Bindcall-tobereplacedwithsource-gen’dimplementationMyOptionsoptions1=newMyOptions();section.Bind(myOptions1);WebApplicationapp=builder.Build();app.MapGet(“/”,()=>”HelloWorld!”);app.Run();publicclassMyOptions{publicintA{get;set;}publicstringS{get;set;}publicbyte[]Data{get;set;}publicDictionary<string,string>Values{get;set;}publicList<MyClass>Values2{get;set;}}publicclassMyClass{publicintSomethingElse{get;set;}}
在项目中启用生成器时,编译器会隐式地选择生成的方法,而不是预先存在的基于反射的框架实现。
要启用该源代码生成器,请下载Microsoft.Extensions.Configuration.Binder的最新预览版。生成器默认关闭。要使用它,请将以下属性添加到项目文件中:
<PropertyGroup><EnableMicrosoftExtensionsConfigurationBinderSourceGenerator>true</EnableMicrosoftExtensionsConfigurationBinderSourceGenerator></PropertyGroup>
.NET8将在第四个预览版向.NETSDK添加启用机制,不需要NuGet包引用也可以使用源代码生成器。
本机代码生成Nativecodegeneration
对JIT编译器进行了以下改进:
Arm64
将OR(condition,condition)转换为CCMP。它允许JIT在arm64上发出CCMP以进行按位或关系比较。PR83176
优化了除法在某些场景的溢出检查。PR82775
支持配置文件合成runtime83068,runtime83567
在Tier0中启用了更多内在函数,例如get_IsValueTyperuntime#83002
其他容器镜像等优化可在微软博客中了解详情。
好了,文章到这里就结束啦,如果本次分享的net酒店网站源码分享和酒店项目网站问题对您有所帮助,还望关注下本站哦!
