使用Asp.net Core3Blazor 的全栈式网站开发体验

最新的微软视频: Full stack web development with ASP.NET Core 3.0 and Blazor - BRK3017  


以下是重要步骤截图配注解,注意图多杀猫:

640?wx_fmt=png

此图是.Net Core3的全栈解决方案示意图。

        话说此图的第一部分Client 是可以灵活替换的,哪怕它是Vue,Angular 或者 JQuery 都是很完美的一个解决方案的。我想到现在如果是10年前,我还是有点害怕的,那时候启动个项目还是很难的一件事情,那是JQ的时代,插件的时代,IFrame的时代,所有的公司都在做自己的框架,然后鼓吹一番!那个时代也有很多强大的库,比如ExtJs,Hae之流就是巅峰的产物,但我用的比较少,因我那时一直是忙着到处找插件,或自己写插件。为什么那么长的时代没有一个出色的,一统江湖的框架(jQuery不算,它只是基石)?现在看来,我认为是没有产生一个一统江湖的Router,而Router是框架的粘合剂。那时不太强调Router的概念,不就是添加Iframe嘛,不就是History Api嘛,你牛掰,还做了Page的生命周期, 都是这样的声音,Router部分即使做了也吹不响,吹响了也没人跟风用的,但没有的话,新手小白们还很难开头做项目,加之大量的后端在兼职写jsp。于是到这现在这个美好时代,有Vue,Angular了,一个命令行就做好框架,大家且行且珍惜吧!

        第二部分,广大Javaer 请手动略过,而且Neter们可以再次信仰充值。Mvc 和 Web Api的Controller完美统一,MVC和Razor pages 的视图语法统一,Razor Pages可以灵活的介入而无需MVC的诸多约定(asp的再生)。  SignalR的简单至极的用法,支持Web,  .Net  ,和Java的客户端连接,它的后台开发你可以用Web服务承载,甚至可以用控制台或桌面程序控制。说到桌面程序可以控制每个Client ,让我想到了网络游戏的开发,或许SignalR可以支持网络游戏的后台管理部分工作,大胆设想一下,以后网络游戏的网络连接模块全用SignalR编写, 而游戏的其它重心就只剩图形和逻辑模块(即游戏的Client开发)了。我完全没接触过游戏开发,也不知道已经有的联网模块如何的 Beautiful,但我认为SignalR是微软送给全世界开发者的礼物,无论他是用什么语言,在什么领域。因为它的开发模型简单至极,美到要死!

        第三部分,gRPC的到来是一场革命,虽然它把后端的战线又拉长了1公里,但这1公里是超值的。畅想以后广大的Net, Java, Python程序员可以欢座一堂,抚键盘而言欢了。而Work Services是.Net Core3中带来的服务功能,就是一个持续的进程。    

不知道细心的人有没有发现没有上图没有EF Core(数据层)呀!其实EF Core的位置在Web Api,  Worker services,和gRPC里面,它地位只是一个小工具了。

以下是启动步骤,可调试且安全的Blazor!

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

简单提到了Blazor 的路由@page , 页面即组件, Razor文件及Razor语法,如何发起对后台的Http请求,之后

演示了第三方的表格组件和前端下载Excel文件

640?wx_fmt=png        640?wx_fmt=png

640?wx_fmt=png

如何导出Excel文件

640?wx_fmt=png

浏览器侧导出文件本来是弱项,此处到底是如何实现保存文件的需要研究,真的是Net Core实现的?

640?wx_fmt=png

重要的伙伴

640?wx_fmt=png

640?wx_fmt=png

Client-side:  前端加载量大,依赖浏览器的wasm能力,响应快。而且微软标注了 Future

Server-side :前端加载小,SignalR,后端负载大,页面元素也是实时传输的, 它是随3.0正式发布的。 
这个模式我认为是微软又一次的强造的东东,力量大就是好,直的能掰弯,弯的能掰直,但真的能否推广开真的是悬疑。这又是微软的造车计划,参考asp.net平台(其它公司只有造轮子的能力,微软向来是造车的

服务端模式初始加载很少,400k, 浏览器彻底变成一个傀儡mvc 框架中的View,  Razor Pages,以及Blazor的组件都是Rendering Model ,是随着请求发送给浏览器的,而组件的State是放在Server端的, 建议第32~33分钟反复听几次!

现在的Blazor项目,浏览器端和后端像一个整体的单机程序一样,比如wpf,winform开发,组件是有状态的,但你不要关心它即可:   (这是微软的asp.net 的view_state失败后的一次绝地反击,不明白为什么微软认定了state这种东西了,难道现在的无状态HTTP不爽吗)
640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

ng & asp.net core3完美合体

640?wx_fmt=png

我们有新的Worker Services模板了,它是长时间运行的工作进程,可以承载在windows  的services, systemd,WebJobs,容器中,
aps.net core的 易用的配置项,日志及DI都是内置的,所有的一切只需要你新建一个asp.net core项目,选择Work Services模板即可!

640?wx_fmt=png

这又是极简的框架,  还是微软大法好!

640?wx_fmt=png

添加 windows的 服务支持,它就很容易部署成service了,以下是步骤!

640?wx_fmt=png

再加一句话,然后发布项目。

640?wx_fmt=png

启动服务即可:

640?wx_fmt=png

一个批萨订单的例子
640?wx_fmt=png

一次启动多个项目的设置:

640?wx_fmt=png

proto文件是自动编译的。

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

预告一下:NET Core 3.0 launches at .NET Conf 2019 September 23-25, a free, virtual developer event.

原文链接:https://my.oschina.net/u/1540190/blog/3089863


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s集群部分常见问题处理

目录部分常见问题处理Coredns CrashLoopBackOff 导致无法成功添加工作节点的问题添加工作节点时提示token过期kubectl 执行命令报“The connection to the server localhost:8080 was refused”网络组件flannel无法完成初始化部分节点无法启动pod最后部分常见问题处理结合我们上…

Hyper-V + CentOS7 网络设置(视频教程)

Hyper-V Centos7 网络设置 本文目标:1、 设置虚拟机固定IP:无论物理机的网络环境怎么变化,都需要保持虚拟机的IP地址不变,保证本机使用xshell等终端访问始终用同一个IP地址2、物理机可访问虚拟机,虚拟机是否可访问网络…

Consul的反熵

熵熵是衡量某个体系中事物混乱程度的一个指标,是从热力学第二定律借鉴过来的。熵增原理孤立系统的熵永不自动减少,熵在可逆过程中不变,在不可逆过程中增加。熵增加原理是热力学第二定律的又一种表述,它更为概括地指出了不可逆过程…

通过Blazor使用C#开发SPA单页面应用程序(2)

今天我们尝试创建一个默认的Blazor应用。.Net Core 3.0需要Visual Studio 2019 的支持。安装.Net Core 3.0 预览版 SDK版本,注意预览版对应的VS版本,我这里安装的是v3.0.0-preview6。一定要开启预览选项才能使用Net Core Preview,在工具> …

通过Blazor使用C#开发SPA单页面应用程序(1)

2019年9月23——25日 .NET Core 3.0即将在.NET Conf上发布! .NET Core的发布及成熟重燃了.net程序员的热情和希望,一些.net大咖也在积极的为推动.NET Core而不懈的努力。在这次.NET Core 3.0中一项新的技术也首次出现在人们的视野,这就是Blazor。说起Bla…

基于 WPF 模块化架构下的本地化设计实践

背景描述最近接到一个需求,就是要求我们的 WPF 客户端具备本地化功能,实现中英文多语言界面。刚开始接到这个需求,其实我内心是拒绝的的,但是没办法,需求是永无止境的。所以只能想办法解决这个问题。首先有必要说一下我…

你会轻易打破规则吗?

这里是Z哥的个人公众号每周五11:45 按时送达当然了,也会时不时加个餐~我的第「86」篇原创敬上俗话说的好,不以规矩,不成方圆。但是有些时候,可能破坏规则反而是一个更有效的方式,这个时候到底该…

架构杂谈《十》

常用开发模式一、瀑布式开发瀑布式开发是在1970年提出的软件开发模型,是一种较老的计算机软件开发模式,也是典型的预见性的开发模式,在瀑布式开发中,开发严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤进行&…

如何删除GIT仓库中的敏感信息

1. 前言正常Git仓库中应该尽量不包含数据库连接/AWS帐号/巨大二进制文件,否则一旦泄漏到Github,这些非常敏感信息会影响客户的信息安全已经公司的信誉。公司可能其它还有相关规定,如禁止私人邮件加入GIT仓库。如果违反这些规定,可…

ASP.NET Core on K8S深入学习(4)你必须知道的Service

本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。前面几篇文章我们都是使用的ClusterIP供集群内部访问,每个Pod都有一个自己的IP地址,那么问题来了:当控制器使用新的Pod替代发生故障…

博客园翻车启示录

开发者的日常作为一名996的开发者,我几乎每天只有两件事,制造bug和解决bug,这两件事,既替我解决了温饱问题、也替产品经理、测试工程师等一票人解决了吃穿问题。嗯,有人为我这种程序员评了一个等级,我大概是…

asp.net core 从单机到集群

asp.net core 从单机到集群Intro这篇文章主要以我的活动室预约的项目作为示例,看一下一个 asp.net core 应用从单机应用到集群部署需要做什么。示例项目活动室预约提供了两个版本,集群版和 单机版单机版方便部署,不依赖其他环境,数…

通过Blazor使用C#开发SPA单页面应用程序(3)

通过Blazor使用C#开发SPA单页面应用程序(1)通过Blazor使用C#开发SPA单页面应用程序(2)今天我们来看看Blazor开发的一些基本知识。Blazor中组件的基本结构可以分为3个部分,如下所示://Counter.razor//Directives section 指令部分page "/counter&qu…

ASP.NET CORE 2.* 利用集成测试框架覆盖HttpClient相关代码

ASP.NET CORE 集成测试官方介绍我的asp.net core 项目里面大部分功能都是去调用别人的API ,大量使用HttpClient,公司单元测试覆盖率要求95%以上,很难做到不mock HttpClient 达到这个指数。以下方法是我自己总结的在单元测试里 mock httpClien…

Let's Encrypt网站推出中文版

如今很多网站都强制使用 HTTPS 加密协议访问,安全性有了很大的提高,最起码在数据传输的初始阶段数据包不会被劫持,保证了客户端与服务器端的通讯安全性。说到 HTTPS 加密协议,就不得不提 Let’s Encrypt。Let’s Encrypt 是一家不…

使用WebDeploy部署远程IIS网站

目录 使用WebDeploy部署远程IIS网站后台服务部署服务器配置本地WebDeploy发布文件配置前端页面部署WebDeploy服务端配置WebDeploy发布文件配置使用WebDeploy部署远程网站后台服务部署服务器配置打开IIS管理器(开始->控制面板->管理工具->IIS管理器)添加网站(右键网站…

CF436F Banners(分块/凸包/单调队列)

CF436F Banners 首先有n个物品分别有ai和bi,然后定义价值为 c∗wp∗(ai大于p且bi小于c的用户个数)c*wp*(ai大于p且bi小于c的用户个数)c∗wp∗(ai大于p且bi小于c的用户个数) 然后我们需要求解对于每一个c的最大价值和对应的p 首先我们先枚举c,然后每次加…

译 | 改进 Visual Studio 及 Windows 上 .NET Core 的安装体验

点击上方蓝字关注“汪宇杰博客”原文:Lee Coward翻译:Edi Wang导语Visual Studio 2019 16.3 和 .NET Core 3.0 Preview 7 改进了 Windows 上 .NET Core 的安装体验。目标是减少计算机上可能存在的 .NET Core 版本的数量。这些改进基于客户反馈和我们自己…

SonarQube系列三、Jenkins集成SonarQube(dotnetcore篇)

来源:https://www.cnblogs.com/7tiny/p/11348785.html【前言】本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目。目录如下:SonarQube系列一、Linux安装与部署SonarQube系列二、分析dotnet core/C#代码SonarQube系列三、Jen…

CF198D Cube Snake(三维空间/增量构造)

CF198D Cube Snake n<50 显然是一个构造题&#xff0c;然后很容易想到增量构造&#xff0c;可以考虑每次保证一层值域连续&#xff0c;然后再增加一个值域连续的层&#xff0c;就会产生两个值域连续的正方体&#xff0c;但是只移动头是不够的&#xff0c;所以我们还需要移…