写点什么

Blazor 跻身跨平台移动应用开发

  • 2020-02-02
  • 本文字数:1167 字

    阅读完需:约 4 分钟

Blazor跻身跨平台移动应用开发

.NET Conf 2019大会的“聚焦Blazor”活动中,微软正式发布了新的实验性项目Mobile Blazor Bindings。Mobile Bindings 项目意在使用 Microsoft Blazor 和.NET for iOS/Android 实现跨平台移动应用开发。类似于React Native,Mobile Bindings 同样使用原生 UI 控件提供原生的用户观感体验。


简而言之,Mobile Blazor Bindings 实现了 Blazor 编程模型向移动端开发的扩展。正如微软.NET 工程师 Eilon Lipton 撰文指出,对于一直使用XAML、Razor模板和Xamarin构建混合移动端应用的 XAML 和 Xamarin 开发人员,以及使用Blazor开发Web应用的开发人员而言,Mobile Bindings 独具吸引力。


Mobile Blazor Binding 的成功与否,取决于开发人员是否愿意在原生移动应用中使用具有 Razor 语法和特性的 Blazor 风格编程模型,去编写标记语言,实现数据绑定。


Lipton 给出了一段示例代码,直观展示了具有一定 Razor 经验的 Web 开发人员如何使用 Mobile Blazor Bindings 开发移动应用。示例代码定义了一个具有按钮和点击计数器的基本视图。


<StackLayout>    <Label FontSize="30"           Text="@("You pressed " + count + " times")" />    <Button Text="+1"            OnClick="@HandleClick" /></StackLayout>
@code { int count;
void HandleClick() { count++; }}
复制代码



图片来源:微软官方文档。


类似于Razor组件在混合应用开发中的一般用法,上面的代码段中同时使用了Xamarin.Forms StackLayout和原生 C#代码处理 UI 行为。要在 Web 应用中实现同样的基本视图,可使用类似的代码结构,只是 UI 描述需要使用 HTML 标记替代 Xamarin.Forms 标记。


微软在其.NET Conf 2019大会上提出,Mobile Blazor Bindings 意在将 Blazor 扩展为一种全栈开发框架。下图清晰阐释了 Blazor 发展的各个维度,以及 Mobile Blazor Bindings 的适用之处。



图片来源:微软官方文档。


开发人员对微软的这次官宣反应不一。尽管一些人对 Blazor 工具箱的新功能扩展持欢迎态度,也有一些开发人员对引入.NET 技术创建 UI 所导致开发选择上的复杂性表达了担忧。开发人员将难以在技术投入上做出抉择,团队的发展方向也会深受困扰。一些人进一步担心微软未来将会终止其中一些项目的发展,导致投入其中的开发人员无所适从。


更具体而言,一些持批评意见的人着重指出,Blazor 的 Web 和移动应用事实上并未共享相同的 UI 定义,削弱了在这两个平台上使用单一编程模型的价值。此外,批评人士希望微软能将 Blazor 的发展重心聚焦于Progressive Web AppsWebAssembly,将移动端开发交给WPFUWPXamarin


Blazor 基于.NET Standard 2.0运行,其原生 UI 组件依赖 Xamarin.Forms。Mobile Blazor Bindings在GitHub上开源提供,需.NET Core 3.0/3.1支持。


原文链接:


Blazor Makes Its Way into Cross-Platform Mobile App Development


2020-02-02 09:004206

评论 1 条评论

发布
用户头像
不看好
2020-02-03 12:18
回复
没有更多了
发现更多内容

学习笔记:架构师训练营-第四周

四夕晖

高并发 系统架构演化

都别拦着我,我要删库了

MySQL从删库到跑路

Linux oracle重装 MySQL 运维 root

kubernetes是微服务发展的必然产物

架构师修行之路

Kubernetes 分布式 微服务

数字经济2.0—趋势、逻辑、选择

CECBC

区块链 数字经济

后疫情时期,看区块链如何赋能文创产业加快经济复苏?

CECBC

区块链技术 文创产业

甲方日常 29

句子

工作 随笔杂谈 日常

Week 2 学习总结

balsamspear

极客大学架构师训练营

第四周 作业二:系统架构学习总结【未陌】

a d e

系统架构 互联网架构

第四周 作业一:系统架构【未陌】

a d e

系统架构

反向保理系统设计

森林

mybatis plus 自动更新数据库时间的小坑

废材姑娘

Java mybatis

当我在听播客时,我在听什么?

Nydia

MySQL-技术专题-mysql的联合索引

码界西柚

头条终面:写个消息中间件

yes

面试 消息队列

有状态的服务其实可以做更多的事情

架构师修行之路

分布式 微服务

读——沟通的艺术,看入人里,看出人外(第三章)

废材姑娘

浅析:线程安全

朱华

Java 多线程与高并发

深拷贝链表,python处理音频信号和数字信号、vim教程、swift单元测试和UI测试 John 易筋 ARTS 打卡 Week 21

John(易筋)

单元测试 ARTS 打卡计划 python 数字信号 vim教程 深拷贝链表

MySQL-技术专题-解决死锁问题

码界西柚

JAVA中的内部类详解

倔强的攻城狮

Java

打破区块链游戏经济的隔阂,或许该从跨游戏资产入手

CECBC

区块链 游戏

IDEA常用设置、快捷键及代码模板

jiangling500

IDEA

中国首个“芯片大学”即将落地;生成对抗网络(GAN)的数学原理全解

京东科技开发者

技术 网络 GAN 芯片

MySQL-技术专题-事务和并发一致性问题

码界西柚

Kubeless 架构设计 | 玩转 Kubeless

donghui

Serverless kubeless

【高并发】秒杀系统架构解密,不是所有的秒杀都是秒杀(升级版)!!

冰河

并发编程 高并发 架构设计 秒杀 异步

实现一个简单的 MobX

局外人

大前端 js React

图解超难理解的 Paxos 算法(含伪代码)

多颗糖

分布式 算法 分布式系统 架构师 一致性算法

Netty源码解析 -- 服务端启动过程

binecy

Netty nio

Week 2命题作业

balsamspear

极客大学架构师训练营

架构师训练营第 1 期 - 第四周课后练习

Anyou Liu

极客大学架构师训练营

Blazor跻身跨平台移动应用开发_语言 & 开发_Sergio De Simone_InfoQ精选文章