写点什么

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

2020 年 2 月 02 日

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 年 2 月 02 日 09:002298

评论 1 条评论

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

作业5

赝品

编程常见必备知识

梦醒了

编程 链表 函数

助力文化荟萃,区块链或可打造“新”春晚?

CECBC区块链专委会

区块链 春晚

Your small business questions, answered

小韩

【转】阿秀:C++经典49问49答

杨明越

第二次书摘的微信视频号直播复盘

Sicolas Flamel

用户体验

计算机内部的总线是什么

FishyFine

计算机结构

小结Spring中bean的作用域与生命周期

李楠

spring 生命周期 bean 作用域

OAtuth2.0 知多少

圣杰

oauth2.0 dotnet

Linux Jenkins 自动打包vue部署到远程window服务器

三爻

Vue jenkins Win

区块链技术带来金融服务的信任变革

CECBC区块链专委会

金融

量化机器人APP开发|量化机器人软件系统开发

开發I852946OIIO

系统开发

Java 训练营第一周习题:02 加载字节码文件

现实中游走

Java

DB-Engines 2月数据库排名:三霸主集体“亮红灯”?小众数据库不可小觑

华章IT

数据库 Influxdb Clickhouse

2021华为软件精英挑战赛正式开启,冠军奖金20万!

2021华为软件精英挑战赛

华为 软件 比赛 软件挑战赛

c语言函数与指针基础

赫鲁小夫

链表指定位置插入,指定位置删除,逆置链表的练习

大忽悠

产品训练营第五周作业

朱航

内娱完蛋了?不如让5G“出道”来抢救一下

脑极体

2021 iOS底层提升计划

iOS底层

最值得期待的Python进阶宝典《Effective Python》第2版中文版来咯!

华章IT

Python 代码整洁 Python编程 EffectivePython Python进阶

云算力系统开发|云算力APP软件开发

开發I852946OIIO

系统开发

危机还是机遇?我靠着这份算法笔记成功拿下字节offer

互联网架构师小马

Java 数据结构 面试 算法 数据结构与算法

Python编程入门手记

吕湛全

菜单展示的递归与非递归形式实现 (go语言版)

我的腿腿

数据结构和算法

量化炒币机器人软件系统开发|量化炒币机器人app开发

开發I852946OIIO

系统开发

关于零售业数字化势在必行的一些杰出观点

小刘在学习

新零售

智能云网:从时代所需,到运营商所向

脑极体

LeetCode题解:322. 零钱兑换,动态规划,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

开源微服务运行时 Dapr 发布 1.0 版本

阿里巴巴云原生

开源 容器 微服务 开发者 云原生

区块链技术的价值传递

CECBC区块链专委会

区块链

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

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