当前位置: 首页 > news >正文

网站刚做怎么做seo优化北京p2p网站建设

网站刚做怎么做seo优化,北京p2p网站建设,pythonunicode转码,怎么做网站登录界面全文翻译自微软官方文档英文版 Whats new in ASP.NET Core 3.0本文重点介绍了 ASP.NET Core 3.0 中最重要的更改#xff0c;并提供相关文档的连接。BlazorBlazor 是 ASP.NET Core 中的一个新的框架#xff0c;用于使用 .NET 构建交互式的客户端 Web UI#xff1a;使用 C# 而… 全文翻译自微软官方文档英文版 Whats new in ASP.NET Core 3.0本文重点介绍了 ASP.NET Core 3.0 中最重要的更改并提供相关文档的连接。BlazorBlazor 是 ASP.NET Core 中的一个新的框架用于使用 .NET 构建交互式的客户端 Web UI使用 C# 而不是 JavaScript 创建丰富的交互式 UI。共享用 .NET 编写的服务器端和客户端应用程序逻辑。将 UI 渲染为 HTML 和 CSS以提供广泛的浏览器支持包括移动浏览器。Blazor 框架支持的场景可重用的 UI 组件Razor 组件客户端路由组件布局对依赖注入的支持表单与验证使用 Razor 类库构建组件库JavaScript 互操作有关更多信息请参阅ASP.NET Core 中的 Blazor 简介。Blazor ServerBlazor 将组件渲染逻辑与 UI 更新的逻辑进行了解耦。Blazor Server 支持在服务器上的 ASP.NET Core 应用程序中承载 Razor 组件。UI 的更新通过一个 SignalR 连接进行处理。Blazor Server 在 ASP.NET Core 3.0 中受支持。Blazor WebAssembly 预览Blazor 应用程序也可以使用基于 WebAssembly 的 .NET 运行时直接在浏览器中运行。Blazor WebAssembly 在 ASP.NET Core 3.0 中处于预览状态且不受支持。未来的 ASP.NET Core 版本将支持 Blazor WebAssembly。Razor 组件Blazor 应用程序是由组件 (components) 构建而成的。组件是自包含的用户界面元素例如页面、对话框或者表单等。组件是普通的 .NET 类用于定义 UI 呈现逻辑和客户端事件处理程序。您可以创建没有 JavaScript 的富交互式 Web 应用程序。Blazor 中的组件通常使用 Razor 语法编写它是 HTML 和 C# 的自然融合。Razor 组件与 Razor Pages页面和 MVC 视图 (view) 相似因为它们都使用 Razor。与基于“请求-响应”模型的页面与视图不同组件专门用于处理 UI 合成。gRPCgRPC是一种流行的高性能 RPC远程过程调用框架。为 API 开发提供了一种“契约优先“的方式。使用各种现代的技术例如通过 HTTP/2 传输使用 Protocol Buffers 作为接口描述语言二进制序列化格式提供以下功能身份验证双向的数据流与流程控制取消与超时ASP.NET Core 3.0 中的 gRPC 功能包括Grpc.AspNetCore — 一个用于承载 gRPC 服务的 ASP.NET Core 框架。ASP.NET Core 上的 gRPC 能够与日志记录、依赖注入 (DI) 身份验证和授权等标准的 ASP.NET Core 功能集成在一起。Grpc.Net.Client — 一个面向 .NET Core构建在 HttpClient 上的 gRPC 客户端。Grpc.Net.ClientFactory — 用于将 gRPC 客户端与 HttpClientFactory 集成。有关更多信息参见ASP.NET Core 上 gRPC 的简介SignalR请参见更新 Signal 代码以获取迁移说明。SignalR 现在使用 System.Text.Json 来序列化/反序列化 JSON 消息。有关还原为基于 Newtonsoft.Json 的序列化程序的说明请参阅切换到 Newtonsoft.Json。在 SignalR 的 JavaScript 和 .NET 客户端中添加了对自动重新连接的支持。默认情况下客户端尝试自动重新连接并在 2, 10 和 30 秒后如有必要重试。如果客户端成功重新连接它将受到一个新的连接 ID。自动重新连接是选择性加入的const connection new signalR.HubConnectionBuilder().withUrl(/chatHub).withAutomaticReconnect().build();可以通过传递基于毫秒的持续时间数组来指定重新连接间隔.withAutomaticReconnect([0, 3000, 5000, 10000, 15000, 30000]) 可以传入自定义实现以完全控制重新连接间隔。如果在上次重新连接间隔之后重新连接失败则客户端认为连接已离线。客户端停止尝试重新连接。为了在连接中断时提供 UI 反馈SignalR 客户端 API 已扩展为包括以下事件处理程序onreconnecting: 为开发人员提供了禁用 UI 或告知用户该应用程序处于脱机状态的机会。onreconnected: 重新建立连接后使开发人员有机会更新 UI。以下代码在尝试连接时使用 onreconnecting 更新 UIconnection.onreconnecting((error) {const status Connection lost due to error ${error}. Reconnecting.;document.getElementById(messageInput).disabled true;document.getElementById(sendButton).disabled true;document.getElementById(connectionStatus).innerText status; });以下代码在连接恢复时使用 onreconnected 更新 UIconnection.onreconnected((connectionId) {const status Connection reestablished. Connected.;document.getElementById(messageInput).disabled false;document.getElementById(sendButton).disabled false;document.getElementById(connectionStatus).innerText status; });当 hub 方法需要授权时SignalR 3.0 及更高版本为授权处理程序提供自定义资源。该资源是 HubInvocationContext 的实例。HubInvocationContext 包括HubCallerContext正在调用的 hub 方法的名称。hub 方法的参数。考虑以下聊天室应用程序示例该应用程序允许通过 Azure Active Directory 进行多个组织登录。具有 Microsoft 账户的任何人都可以登录聊天但只有所属组织的成员可以禁止用户或查看用户的聊天记录。该应用可以限制特定用户的某些功能。public class DomainRestrictedRequirement :AuthorizationHandlerDomainRestrictedRequirement, HubInvocationContext,IAuthorizationRequirement {protected override Task HandleRequirementAsync(AuthorizationHandlerContext context,DomainRestrictedRequirement requirement,HubInvocationContext resource){if (context.User?.Identity?.Name null){return Task.CompletedTask;}if (IsUserAllowedToDoThis(resource.HubMethodName,context.User.Identity.Name)){context.Succeed(requirement);}return Task.CompletedTask;}private bool IsUserAllowedToDoThis(string hubMethodName, string currentUsername){if (hubMethodName.Equals(banUser,StringComparison.OrdinalIgnoreCase)){return currentUsername.Equals(bob42jabbr.net,StringComparison.OrdinalIgnoreCase);}return currentUsername.EndsWith(jabbr.net,StringComparison.OrdinalIgnoreCase));} }在前面的代码中DomainRestrictedRequirement 用作自定义 IAuthorizationRequirement。由于传递了 HubInvocationContext 资源因此内部逻辑可以检查正在调用 hub 的上下文。决定是否允许用户执行特定的 hub 方法。可以使用策略名称来修饰各个 hub 方法代码会在运行时进行检查。当客户端尝试调用各个 hub 方法时DomainRestrictedRequirement 处理程序将会运行并控制对方法的访问。基于 DomainRestrictedRequirement 控制访问的方式所有已登录用户都可以调用 SendMessage 方法。只有使用 jabbr.net 电子邮件地址登录的用户才能查看用户的历史记录。只有 bob42jabbr.net 可以禁止用户进入聊天室。[Authorize] public class ChatHub : Hub {public void SendMessage(string message){}[Authorize(DomainRestricted)]public void BanUser(string username){}[Authorize(DomainRestricted)]public void ViewUserHistory(string username){} }创建 DomainRestricted 策略可能涉及在 Startup.cs 中添加新策略。将自定义的 DomainRestrictedRequirement 需求作为参数提供。使用授权中间件注册 DomainRestricted。services.AddAuthorization(options {options.AddPolicy(DomainRestricted, policy {policy.Requirements.Add(new DomainRestrictedRequirement());});});SignalR hub 使用终结点路由. SignalR hub 连接先前已显式地完成app.UseSignalR(routes {routes.MapHubChatHub(hubs/chat); });在以前的版本中开发人员需要在各个不同的位置启用控制器、Razor 页面和 SignalR hub。显式的连接导致一系列几乎相同的路由片段app.UseSignalR(routes {routes.MapHubChatHub(hubs/chat); });app.UseRouting(routes {routes.MapRazorPages(); });SignalR 3.0 hub 可以通过终结点路由进行路由。使用终结点路由通常可以在 UseRouting 中配置所有的路由app.UseRouting(routes {routes.MapRazorPages();routes.MapHubChatHub(hubs/chat); });ASP.NET Core 3.0 SignalR 添加了客户端到服务器的流。通过客户端到服务器的流传输服务器端方法可以采用 IAsyncEnumerableT或者 ChannelReaderT 的实例。在以下 C# 实例中hub 上的 UploadStream 方法将从客户端接收字符串流public async Task UploadStream(IAsyncEnumerablestring stream) {await foreach (var item in stream){} }.NET 客户端应用程序可以将一个 IAsyncEnumerableT 或者 ChannelReaderT 的实例作为上述 UploadStream hub 方法的 stream 参数进行传递。在 for 循环完成且本地函数退出之后将流完成发送(After the for loop has completed and the local function exits, the stream completion is sent)async IAsyncEnumerablestring clientStreamData() {for (var i 0; i 5; i){var data await FetchSomeData();yield return data;} }await connection.SendAsync(UploadStream, clientStreamData());JavaScript 客户端应用将 SignalR Subject (或者一个 RxJS Subject) 用于上述 UploadStream hub 方法的 stream 参数。let subject new signalR.Subject(); await connection.send(StartStream, MyAsciiArtStream, subject);当 JavaScript 代码捕获到字符串并准备将其发送到服务器时它可以使用 subject.next 方法来处理字符串。subject.next(example); subject.complete();使用类似前面两个代码段的代码可以创建实时流式传输体验。新的 JSON 序列化现在默认情况下ASP.NET Core 3.0 使用 System.Text.Json 进行 JSON 序列化异步读取和写入 JSON。针对 UTF-8 文本进行了优化。通常会比 Newtonsoft.Json 具有更高的性能。要将 Json.NET 添加到 ASP.NET Core 3.0 请参阅添加基于 Newtonsoft.Json 的 JSON 格式支持。新的 Razor 指令以下列表包含了新的 Razor 指令attribute — attribute 指令将给定属性应用于生成页面或者视图的类。例如attribute [Authorize]。implements — implements 指令为生成的类实现一个接口。例如implements IDisposable。证书与 Kerberos 身份验证证书身份验证要求配置服务器以接收证书。在 Startup.Configure 中添加身份验证中间件。在 Startup.ConfigureServices 中添加证书身份验证服务。public void ConfigureServices(IServiceCollection services) {services.AddAuthentication(CertificateAuthenticationDefaults.AuthenticationScheme).AddCertificate();}public void Configure(IApplicationBuilder app, IHostingEnvironment env) {app.UseAuthentication();}证书身份验证的选项 (Options) 提供以下功能接受自签名证书。检查证书吊销。检查提供的证书是否具有正确的使用标志。默认的用户主体 (user principal) 是根据证书属性构建的。用户主体包含一个事件。通过相应该事件可以补充或者替换该主体。有关更多信息请参见在 ASP.NET Core 中配置证书身份验证。Windows 身份验证 已扩展到了 Linux 和 macOS 上。在以前的版本中Windows 身份验证仅限于 IIS 和 HttpSys。在 ASP.NET Core 3.0 中Kestrel 能够在 Windows, Linux 和 macOS 上为加入了 Windows 域的主机使用 Negotiate协商, Kerberos 和 NTLM。Kestrel 对这些身份验证架构的支持由 Microsoft.AspNetCore.Authentication.Negotiate NuGet 包提供。与其他身份验证服务一样在用用程序范围内配置身份验证然后配置服务public void ConfigureServices(IServiceCollection services) {services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();}public void Configure(IApplicationBuilder app, IHostingEnvironment env) {app.UseAuthentication();}主机要求Windows 主机必须将服务主体名称 (SPN) 添加到承载该应用程序的用户账户中。Linux 和 macOS 主机必须加入域。必须为 Web 进程创建 SPN。必须在主机上生成和配置密钥表文件。有关更多信息请参见在 ASP.NET Core 中配置 Windows 身份验证。模板变更Web UI 模板Razor Pages, 带有控制器和视图的 MVC已删除以下内容“Cookie 同意” UI 不再包含在内。若要在 ASP.NET Core 3.0 模板生成的应用程序中启用“Cookie 同意”功能请参阅 ASP.NET Core 中的常规数据保护法规 (GDPR) 支持。现在脚本和相关的静态资产被作为本地文件引用而不再使用 CDN。有关更多信息请参见脚本和相关的静态资产现在被作为本地文件引用而不再使用 CDN (aspnet/AspNetCore.Docs #14350)。Angular 模板已更新为使用 Angular 8。默认情况下Razor 类库 (RCL) 模板默认为用于 Razor 组件开发。Visual Studio 中新的模板选项为页面和视图提供模板支持。在命令行中从模板创建 RCL 时请传入 -support-pages-and-views 选项 (dotnet new razorclasslib -support-pages-and-views)。通用主机ASP.NET Core 3.0 模板使用 .NET 通用主机。以前的版本使用 WebHostBuilder。使用 .NET Core 通用主机(HostBuilder)可以更好地将 ASP.NET Core 应用程序与其他非特定与 Web 的服务器方案集成。有关更多信息请参见 HostBuilder 替换 WebHostBuilder。主机配置在发布 ASP.NET Core 3.0 之前带有 ASPNETCORE_ 前缀的环境变量会被加载用于 Web 主机的主机配置。在 3.0 中AddEvironmentVariables 用于加载带有 DOTNET_ 以前追的环境变量以使用 CreateDefaultBuilder 进行主机配置。Startup 构造函数注入的更改通用主机仅支持一下类型的 Startup 构造函数注入IHostEnvironmentIWebHostEnvironmentIConfiguration仍然可以将所有服务以参数的形式直接注入 Startup.Configure 方法参见 通用主机限制 Startup 构造函数注入 (aspnet/Announcements #353).Kestrel为了迁移到通用主机Kestrel 配置已更新。在 3.0 中Kestrel 在 ConfigureWebHostDefaults 提供的 Web 主机构建器 (host builder) 上进行配置。连接适配器 (Connection Adapter) 已从 Kestrel 中删除并由连接中间件代替 (Connection Middleware)。该中间件类似于 ASP.NET Core 管道中的 HTTP 中间件但用于较低级别的连接。Kestrel 传输层已在 Connections.Abstractions 中作为公共接口公开。标头 (header) 和尾部 (trailer) 之间的歧义已通过将尾部标头 (trailing header) 移动到新的集合来解决。同步 IO API例如 HttpRequest.Body.Read是引起线程饥饿进而导致程序崩溃的常见原因。在 3.0 中默认情况下 AllowSynchronousIO 被禁用。有关更多信息请参见Kestrel - 从 ASP.NET Core 2.2 迁移到 3.0。默认启用 HTTP/2默认情况下Kestrel 中为 HTTPS 端点启用了 HTTP/2。当操作系统支持时对 IIS 或者 HTTP.sys 的 HTTP/2 的支持将被启用。请求计数器Hosting EventSource (Microsoft.AspNetCore.Hosting) 发出与传入请求有关的以下 EventCounterrequests-per-secondtotal-requestscurrent-requestsfailed-requests终结点路由终结点路由得到了增强该路由使各种框架例如 MVC可以与中间件更好地协同工作中间件和终结点的顺序可以在 Startup.Configure 的请求处理管道中进行配置。终结点和中间件与其他基于 ASP.NET Core 的技术例如运行状况检查进行良好的编排。终结点可以在中间件和 MVC 中实现各种策略例如 CORS 或者授权等。过滤器和特性 (attribute) 可以被放置在控制器的方法上。有关更多信息请参见 ASP.NET Core 中的路由。运行状况检查运行状况检查通过通用主机使用终结点路由。在 Startup.Configure 中使用终结点 URL 或者相对路径在终结点构建器上调用 MapHealthChecksapp.UseEndpoints(endpoints {endpoints.MapHealthChecks(/health); });运行状况检查终结点可以指定一个或多个允许的主机/端口。要求授权。要求 CORS。有关更多信息请参见以下文章运行状况检查 - 从 ASP.NET Core 2.2 迁移到 3.0ASP.NET Core 中的运行状况检查HttpContext 上的管道现在可以使用 System.IO.Pipelines API 读取请求正文并写入响应正文。HttpRequest.BodyReader 属性提供了一个 PipeReader可以用于读取请求正文HttpResponse.BodyWriter 属性提供了一个 PipeWriter可以用于写入响应正文。HttpRequest.BodyReader 是 HttpRequest.Body 流的相似物 HttpResponse.BodyWriter 是 HttpResponse.Body 流的相似物。IIS 中改进了的错误报告现在在 IIS 中托管 ASP.NET Core 应用程序时的启动错误会生成更丰富的诊断数据。这些错误会在适用的情况下使用堆栈跟踪报告给 Windows 事件日志。此外所有的警告、错误和未处理的异常都会记录到 Windows 事件日志中。服务角色服务和辅助角色 SDK.NET Core 3.0 引入了新的辅助角色服务 (Worker Service) 应用模板。该模板是在 .NET Core 中编写长时间运行的服务的起点。有关更多信息请参见作为 Windows 服务运行的 .NET Core 辅助角色 (.NET Core Workers as Windows Services)在 ASP.NET Core 中使用托管服务实现后台任务在 Windows 服务中承载 ASP.NET CoreForwarded 标头中间件的改进在早期版本的 ASP.NET Core 中应用在部署到 Azure Linux 或者除 IIS 之外的任何反向代理之后调用 UseHsts 和 UseHttpsRedirection 都是有问题的。转发 Linux 和非 IIS 反向代理的方案中介绍了以前版本的修复方式。此场景已在 ASP.NET Core 3.0 中修复。当 ASPNETCORE_FORWARDEDHEADERS_ENABLED 环境变量设置为 true 时主机将启用 Forwarded 标头中间件。在 ASP.NET Core 的容器镜像中ASPNETCORE_FORWARDEDHEADERS_ENABLED 已被设置为 true。性能提升ASP.NET Core 3.0 包括许多改进可以减少内存使用并提高吞吐量在将内置的依赖注入容器用于 scoped 服务时减少内存的使用量。减少整个框架的内存分配包括中间件的各类场景和路由。减少 WebSocket 连接的内存使用量。减少 HTTPS 连接的内存使用量并提高吞吐量。新的、经过优化的、完全异步的 JSON 序列化器。减少表单 (form) 解析的内存使用量并提高吞吐量。ASP.NET Core 3.0 仅可在 .NET Core 3.0 上运行从 ASP.NET Core 3.0开始.NET Framework 不再是受支持的目标框架。以 .NET Framework 为目标的项目可以继续通过使用 .NET Core 2.1 LTS 版本在完全受支持的状态下运行。绝大多数与 ASP.NET Core 2.1.x 相关的软件包都将在 .NET Core 2.1 的三年长期支持期内获得支持。(Most ASP.NET Core 2.1.x related packages will be supported indefinitely, beyond the 3 year LTS period for .NET Core 2.1.)有关迁移的更多信息请参见 将代码从 .NET Framework 移植到 .NET Core。使用 ASP.NET Core 共享框架Microsoft.AspNetCore.App 元包中包含的 ASP.NET Core 3.0 共享框架 (shared framework) 不再需要项目文件中的显式 PackageReference / 元素。在项目文件中使用 Microsoft.NET.Sdk.Web SDK 时将自动引用共享框架Project SdkMicrosoft.NET.Sdk.Web从 ASP.NET Core 共享框架中移除的程序集从 ASP.NET Core 3.0 共享程序集中移除的最值得注意的程序集是Newtonsoft.Json (Json.NET)。要将 Json.NET 添加到 ASP.NET Core 3.0请参阅 添加基于 Newtonsoft.Json 的 JSON 格式支持。ASP.NET Core 3.0 引入了 System.Text.Json 来读写 JSON。有关更多信息请参阅本文档中新的 JSON 序列化。Entity Framework Core有关共享框架中所移除程序集的完整列表请参阅 从 Microsoft.AspNetCore.App 3.0 中移除的程序集。有关进行此修改的动机更多信息请参阅Microsoft.AspNetCore.App 在 3.0 中的破坏性变更 和 ASP.NET Core 3.0 中的更改初探。原文链接https://www.cnblogs.com/vxchin/p/whats-new-in-asp-net-core-3-0.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://wiki.neutronadmin.com/news/105460/

相关文章:

  • 局域网建站软件网络优化工程师发展前景
  • 张家港网站seo公司网站建设情况说明书
  • 网站开发 题目现在流行什么语言建设网站
  • 定制做网站平台北网站建设
  • 镇江企业网站建设租服务器多少钱
  • 关于网站建设的小故事网页界面设计教材
  • 佛山市企业网站seo报价什么是网络营销?如何理解网络营销
  • .php是什么网站高端网站设计公司上海
  • 房产网站建设价格物流案例网站
  • 个人网站建设规划表巨野有做网站的公司吗
  • 国外做伞的品牌网站安卓手机app开发用什么软件
  • 东莞网站建设有什么网络公司wordpress网站关闭
  • 杭州网站制作专做外贸库存的网站
  • 定制 网站电子商务网站开发方式
  • 小地方网站建设公司取名字的网站 优帮云
  • 目前热门的网站建设语言wordpress的意思和读音
  • 广州有哪些做网站的公司门户网站系统设计
  • 网站系统分析报告手机网站建设哪家专业
  • 做网站模板平台cms wordpress模板制作
  • 药材公司网站建设模板WordPress无法取消置顶文章
  • 凡科网站空间慢wordpress图片源码
  • 合肥建设工程竣工结算备案网站建设工程司法解释(一)
  • 深圳线运营是网站建设天津建设银行网站
  • 高校网站建设的重要性网站建设和维护要点
  • 网络直播平台搭建seo文章代写平台
  • 电脑手机一体网站张家界有没有做网站的公司
  • 海口房产网站建设wordpress 商务模板
  • 雅虎网站收录入口住房和城乡建设部政务服务门户app
  • 佛山做网站开发有哪些可以做任务的网站
  • 温州建校官网整站seo技术搜索引擎优化