在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在2016年, 本人就开始了一个内部项目, 其特点就是用C#构建DOM树, 然后把DOM同步到浏览器中显示. 并且在一些小工程中使用. 3年下来, 效果很不错, 但因为是使用C#来构建控件树, 在没有特定语法的情况下, 代码风格不是那么好. 典型的风格大概是这样的: 这个模式挺好的, 有点嫌弃C#代码占比太高, HTML代码靠字符串来完成, 在界面的设计上, 比较吃力. 在2019年秋, Asp.Net 3.0出来了, Blazor Server Side 也正式公布, 可以在VS2019中使用. 当时我就去尝尝鲜, 发现这东西, 和我的框架很接近. 不同的是, Blaozr Server Side 是基于 MVVM 的, 而我的框架是基于传统控件树的. Blazor毕竟有微软做爸爸, 在VS上的支持是直接的, 由Razor文件来负责 HTML+C# 的代码模式, 完全支持智能提示. 天呀, 这不是就是我梦寐以求的开发方式吗? 于是, 在疫情期间, 我把以前的框架, 和Blazor直接整合在一起. 开始做一些小工程做验证. 现在这个整合大部分需求与问题都得到了解决. 还需要提供更多的控件用以提高工程的开发速度. 先上图, 看看 Blazor 的代码是长什么样子的. (Razor语法, 和MVC有点接近. 但是MVC是输出静态HTML的, Blazor组件是生成服务器树状结构的) 与 MVC 的 Razor语法是接近的 , 然而最大不同时 , MVC 的最终目标是生成字符串发给浏览器. 而Blazor生成了模型之后, 依然是"活动"的, 随时准备好响应客户端的事件. 对于 Blazor 架构的一些特点, 画了一些图. 首先, 我把这种模式成为 "服务器UI映射" , 后面都会陆续使用这个概念. 个人看法 , 通常的情况, 仅供参考 Blazor 因为在服务器上把代码运行状态驻留在内存, 所以程序运行的上下文得以保存, 而关联的事件也会绑定到上下文中. 事件处理函数被调用时, 相关的对象和数据会全部可用. 具体的细节无法说太多, 毕竟这是新事物, 我自己也是一边使用一边积累心得. 我以后会陆陆续续放上各种例子, 提供给感兴趣的网友们, 用节省时间的方式去迅速掌握Blazor的开发流程. 最后, 放上一个对照表, 以供参考:
以上就是[Asp.Net Core] 浅谈Blazor Server Side 的详细内容,更多关于Blazor Server Side 的资料请关注极客世界其它相关文章! |
请发表评论