2020 Google开发者大会重磅开幕 了解详情

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:00 1990

评论 1 条评论

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

在 VPS 里搭建 Drone CI 持续集成构建系统

Gadzan

Docker ci DevOps cicd 持续集成

改变

一把梭

生活 随笔

Disruptor 高效的秘密-Sequencer

Rayjun

Java 并发编程 Disruptor

如何成为一个靠谱的人

熊斌

个人成长 团队协作

以物理学思维破解分布式系统的本质

常平

分布式

Block底层原理探析

Damien

ios 源码分析

重要:Kafka第3篇之一条消息如何被存储到Broker上

z小赵

kafka

HTTP的德性

十三

游戏夜读 | 2020周记(4.10-4.17)

game1night

为什么开源是基础软件的未来

顾钧

开源 基础软件

没有了手机的诺基亚,过得远比你想象的要好

赵新龙

微软 手机 上市 诺基亚

Web3极客日报#130

谢锐 | Frozen

区块链 创业 独立开发者 技术社区 Rebase

科技 vs 隐私:瘟疫下“以健康为名”会将我们推向何方?

陶乐思

消息队列Kafka - 原理分析

Java收录阁

kafka

论十三

十三

Web3极客日报 #133

谢锐 | Frozen

区块链 技术社区 Rebase

《我是余欢水》与《一个叫欧维的男人决定去死》

十三

Java并发编程系列——常用并发工具类

孙苏勇

Java Java并发 并发编程 多线程

使用Kubeadm搭建Kubernetes集群

Java收录阁

Kubernetes k8s

从“中国GPL诉讼第一案”聊聊开源软件的license许可证

赵新龙

GitHub 开源 许可证

苟富贵,勿相忘

十三

Web3极客日报 #132

谢锐 | Frozen

区块链 创业 独立开发者 技术社区 Rebase

OKR实践中的痛点(3):破3旧,迎3新!

大叔杨

OKR Scrum 敏捷 敏捷开发 绩效

为什么最该祝自己劳动节快乐

石君

劳动 劳动节 励志

疫情故事一则 | 庆祝北京应急响应调为二级

赵新龙

滴滴 顺风车

Firefox浏览器背后的力量,Mozilla基金会的“生财”之道

赵新龙

firefox 开源 基金会

如何表达自己的感情?

zkh

Web3极客日报#131

谢锐 | Frozen

区块链 创业 独立开发者 技术社区 Rebase

我所想的跨平台开发:小程序+App+Web

曾伟@喵先森

flutter 小程序 微信小程序 跨平台

消息队列Kafka - 基本应用

Java收录阁

kafka

面向兴趣编程 - 一条微博和一个小程序的故事

遇见

小程序 微信小程序 副业 面向兴趣编程

2020中国技术力量年度榜单盛典

2020中国技术力量年度榜单盛典

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