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

产品毕业设计代做网站资料库网站源码

产品毕业设计代做网站,资料库网站源码,asp.net mvc 手机网站,加快wordpressBlazor WebAssembly是什么首先来说说WebAssembly是什么#xff0c;WebAssembly是一个可以使C#,Java,Golang等静态强类型编程语言#xff0c;运行在浏览器中的标准#xff0c;浏览器厂商基于此标准实现执行引擎。在实现了WebAssembly标准引擎之后#xff0c;浏览器中可以执行… Blazor WebAssembly是什么首先来说说WebAssembly是什么WebAssembly是一个可以使C#,Java,Golang等静态强类型编程语言运行在浏览器中的标准浏览器厂商基于此标准实现执行引擎。在实现了WebAssembly标准引擎之后浏览器中可以执行由其他语言编译成的wasm模块。使用强类型编程语言的好处显而易见可以选择更多的语言编写前端逻辑静态编程语言编译成的字节码相对于JS这种脚本语言执行效率更高可以使用静态编程语言生态中的强大类库Blazor WebAssembly是dotnet版本的WebAssembly实现微软将dotnet运行时编译成dotnet.wasm模块我们的程序编译出来的dll文件运行在此模块上。需要注意的是Blazor WebAssembly是一个完完全全的前端框架只是逻辑代码不再使用JS编写而是使用C#编写。Grpc Web是什么Grpc是一种与语言无关的的高性能远程过程调用RPC框架。Grpc有以下优点现代高性能轻量级 RPC 框架。协定优先 API 开发默认使用协议缓冲区允许与语言无关的实现。可用于多种语言的工具以生成强类型服务器和客户端。支持客户端、服务器和双向流式处理调用。使用 Protobuf 二进制序列化减少对网络的使用。而Grpc Web是Grpc的前端实现版本可以使浏览器应用直接与Grpc交互。有了Grpc Web我们可以直接在Blazor WebAssembly中调用Grpc Server而不用再通过传统的Http请求方法调用。代码演示GrpcServer首先需要新建一个Grpc Server 然后为其引入 Grpc.AspNetCore.Web Nuget包并开启grpc webapp.UseGrpcWeb(); // Must be added between UseRouting and UseEndpoints// Configure the HTTP request pipeline.app.MapGrpcServiceGreeterService().EnableGrpcWeb();之后我们需要为Grpc Server开启跨域设置允许跨域访问app.Use(async (context, next) {context.Response.Headers.Add(Access-Control-Allow-Credentials, true);context.Response.Headers.Add(Access-Control-Allow-Headers, *);context.Response.Headers.Add(Access-Control-Allow-Methods, PUT,POST,GET,DELETE,OPTIONS,HEAD,PATCH);context.Response.Headers.Add(Access-Control-Allow-Origin, *);context.Response.Headers.Add(Access-Control-Max-Age, 100000);context.Response.Headers.Add(Access-Control-Expose-Headers, Grpc-Status,Grpc-Message,Grpc-Encoding,Grpc-Accept-Encoding); if (context.Request.Method.ToUpper() OPTIONS){ return;} // Do work that can write to the Response.await next.Invoke();    // Do logging or other work that doesnt write to the Response.});最终Program.cs的代码如下using GrpcService2.Services;var builder WebApplication.CreateBuilder(args);builder.Services.AddGrpc();var app builder.Build(); app.Use(async (context, next) {context.Response.Headers.Add(Access-Control-Allow-Credentials, true);context.Response.Headers.Add(Access-Control-Allow-Headers, *);context.Response.Headers.Add(Access-Control-Allow-Methods, PUT,POST,GET,DELETE,OPTIONS,HEAD,PATCH);context.Response.Headers.Add(Access-Control-Allow-Origin, *);context.Response.Headers.Add(Access-Control-Max-Age, 100000);context.Response.Headers.Add(Access-Control-Expose-Headers, Grpc-Status,Grpc-Message,Grpc-Encoding,Grpc-Accept-Encoding); if (context.Request.Method.ToUpper() OPTIONS){ return;} await next.Invoke(); });app.UseGrpcWeb(); app.MapGrpcServiceGreeterService().EnableGrpcWeb();app.MapGet(/, () Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid2086909);app.Run();Blazor WebAssembly现在新建一个WebAssembly项目 为其引入以下nuget包ItemGroupPackageReference IncludeGoogle.Protobuf Version3.20.1 /PackageReference IncludeGrpc.Net.Client Version2.46.0 /PackageReference IncludeGrpc.Net.Client.Web Version2.46.0 /PackageReference IncludeGrpc.Tools Version2.46.1IncludeAssetsruntime; build; native; contentfiles; analyzers; buildtransitive/IncludeAssetsPrivateAssetsall/PrivateAssets/PackageReference/ItemGroup在其项目文件中包含进proto文件ItemGroupProtobuf Include..\GrpcService2\Protos\*.proto GrpcServicesClient //ItemGroup然后将GrpcClient注入容器builder.Services.AddScoped(p {var channel GrpcChannel.ForAddress(https://localhost:7033/, new GrpcChannelOptions{HttpHandler new GrpcWebHandler(new HttpClientHandler())});var client new GrpcService2.Greeter.GreeterClient(channel);return client; });修改Index.razor让其访问grpc serverpage / inject GrpcService2.Greeter.GreeterClient GreeterClientdivgrpc web response Message/divcode {public string Message { get; set; }protected override async Task OnInitializedAsync(){var reply await GreeterClient.SayHelloAsync(new GrpcService2.HelloRequest { Name test });Message reply.Message;} }最终效果如下可以看到整个请求/渲染过程使用的是C#代码编写的逻辑没用到js原理是因为blazor webassembly将我们的dotnet运行时与我们的代码编译后的程序集运行在了基于webassembly标准实现的浏览器引擎中。并且可以看到基于Grpc Web的请求响应体都使用的压缩过的二进制形式。效率相对更高 webassembly难道是未来难道未来的某一天要和js say goodbye了吗
http://www.pierceye.com/news/213665/

相关文章:

  • 国内做服装的网站有哪些方面wordpress邮件订阅
  • 建立个人网站主题安徽省建设厅网站打不开
  • 做互联网小程序 和网站有没有前景广州网站制作教程
  • 新网网站内部优化wordpress菜单图标
  • 深圳市龙华区住房和建设局网站网站开发连接数据库
  • 做张家界旅游网站多少钱做网站的步骤 优帮云
  • 怎么建立一个好公司网站网站模版参考
  • 成都大型网站设计公司怎么快速建设小型外贸网站
  • 建设工程规范在哪个网站发布河南网络推广培训
  • 深圳宝安上市公司网站建设报价石家庄教育学会网站建设
  • 上海 专业网站建设网络推广公司收费标准
  • 网站建设维护的知识wordpress调用多张产品图片
  • 网站的静态资源服务器怎么做上海加盟网站建设
  • 网站数据库如何做小游戏网页版入口
  • 做php网站教程视频国产长尾关键词拘挖掘
  • 网站首页置顶是怎么做网站运营专员做什么
  • 福建嘉瑞建设工程有限公司网站wordpress密码字典
  • 网站开发答辩设计预期目标卓进网站
  • 整站优化要多少钱番禺建设网站哪个好
  • 汕尾手机网站设计广州建设网站外包
  • discuz 做论坛与网站wordpress一键 centos
  • 网站推广智选刺盾云下拉老鹰网营销型网站建设
  • 摄像机怎么在自己家网站做直播python网站开发招聘
  • 府网站建设先进个人网站产品数据库
  • 美食网站设计网站手机商城图片
  • 广州网站开发 细致广州亦客网络sql注入网站建设百度云
  • 株洲网站设计外包首选每个网站都有后台吗
  • 网站运营管理员具体做什么企业网站搭建哪家好
  • wordpress网站导入数据库网站开发自荐信
  • 网站商城如何获取流量天合建设集团网站