怎么使用Asp.net Core3与Blazor的全栈式网站,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
最新的微软视频: Full stack web development with ASP.NET Core 3.0 and Blazor - BRK3017
以下是重要步骤截图配注解:
.Net Core3的全栈解决方案示意图。
此图的第一部分Client 是可以灵活替换的,哪怕它是Vue,Angular 或者 JQuery 都是很完美的一个解决方案的。在追求整体的前端解决方案之初,是插件的时代,IFrame的时代。之所以没有一统江湖的框架出来,可能是没有一个一统江湖的Router,而Router是框架的粘合剂。ExtJs,Hae之类就是那时的巅峰产物,各自实现了模拟类,组件继承,路由,页面生命周期管理等等。到如今这个美好时代,有Vue,Angular了,一个命令行就做好项目框架,现在Blazor (Client-side) 是首个利用WebAssembly 实现的前端解决方案!
在网站开发演化的过程中,前后分离的模式基本被推举为主流,但不时出现前后一体的技术架构,我称之为全栈解决方案。 比如之前的Asp.net 和 MEAN 框架了。 Asp.net框架实现WebForm架构,通过重重的ViewState来实现状态的传递,最后经不起MVC的轻轻一击就让位出来了;而 MEAN框架更是思维超前,全栈用JS开发,用JSON传递数据,但又过于小众; 还有Gwt或Abp等一些技术,口号是前端直接调用后端的服务或函数。然后这一次Blazor (Server-side) 是微软第二次摸索前后一体的技术架构,是首个利用WebSocket技术实现的全栈解决方案!
第二部分,广大Javaer 请手动略过,而且Neter们可以再次信仰充值。到了.Net Core3.0时,Mvc 和 Web Api的Controller完美统一,MVC和Razor pages 的视图语法统一,Razor Pages可以灵活的介入而无需MVC的诸多约定(asp的再生 )。SignalR的简单至极的用法,支持Web, .Net ,和Java的客户端连接以及未来的C++客户端,它的后台开发你可以用Web服务承载,甚至可以用控制台或桌面程序控制。说到桌面程序可以控制每个Client ,让我想到了网络游戏的开发,或许SignalR可以支持网络游戏的后台管理部分工作,大胆设想一下,以后网络游戏的网络连接模块全用SignalR编写, 而游戏的其它重心就只剩图形和逻辑模块(即游戏的Client开发)了。我没接触过游戏开发,不知道现有的游戏引擎的联网模块如何的工作和高效的,但我认为SignalR是微软送给全世界开发者的礼物,无论他是用什么语言,在什么领域,都可以尝试一下。
第三部分,gRPC的到来是一场革命,虽然它把后端的战线又拉长了1公里,但这1公里是超值的。畅想以后广大的Net, Java, Python程序员可以欢座一堂,抚键盘而言欢了。而Work Services是.Net Core3中带来的服务功能,就是一个持续的进程。
不知道细心的人有没有发现没有上图没有EF Core(数据层)呀!其实EF Core的位置在Web Api, Worker services,和gRPC里面,它地位只是一个小工具了。
以下是启动步骤,可调试且安全的Blazor!
简单提到了Blazor 的路由@page , 页面即组件, Razor文件及Razor语法,如何发起对后台的Http请求,之后
演示了第三方的表格组件和前端下载Excel文件
如何导出Excel文件
浏览器侧导出文件本来是弱项,此处到底是如何实现保存文件的需要研究,真的是Net Core实现的?
重要的伙伴
Client-side: 前端加载量大,依赖浏览器的wasm能力,响应快。而且微软标注了 Future
Server-side :前端加载小,SignalR,后端负载大,页面元素也是实时传输的, 它是随3.0正式发布的。
这个模式我认为是微软又一次的强造的东东,力量大就是好,直的能掰弯,弯的能掰直,但真的能否推广开真的是悬疑。这又是微软的造车计划,参考asp.net平台(其它公司只有造轮子的能力,微软向来是造车的)
服务端模式初始加载很少,400k, 浏览器彻底变成一个傀儡。mvc 框架中的View, Razor Pages,以及Blazor的组件都是Rendering Model ,是随着请求发送给浏览器的,而组件的State是放在Server端的, 建议第32~33分钟反复听几次!
现在的Blazor Server项目,浏览器端和后端像一个整体的单机程序一样,比如wpf,winform开发,组件是有状态的,但你不要关心它即可。这是微软的asp.net WebForm架构的ViewState方案失败后的再一次追求前后一体,不明白为什么微软认定了state这种东西了,难道现在的无状态HTTP不爽吗?
Angular7 & asp.net core3完美合体
在.Net Core3.0中,有新的Worker Services模板了,它是长时间运行的工作进程,可以承载在windows services, systemd,WebJobs,容器中,
aps.net core的 易用的配置项,日志及DI都是内置的,所有的一切只需要你新建一个asp.net core项目,选择Work Services模板即可!
这又是极简的框架, 还是微软大法好!
添加 windows的 服务支持,它就很容易部署成service了,以下是步骤!
再加一句话,然后发布项目。
启动服务即可:
一个批萨订单的例子
一次启动多个项目的设置:
proto文件是自动编译的。
看完上述内容,你们掌握怎么使用Asp.net Core3与Blazor的全栈式网站的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。