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

发布于:2020 年 2 月 2 日 09:00

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++;
}
}

Blazor跻身跨平台移动应用开发
图片来源:微软官方文档。

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

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

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

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

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

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

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

阅读数:1910 发布于:2020 年 2 月 2 日 09:00

更多 语言 & 开发、移动、.NET 相关课程,可下载【 极客时间 】App 免费领取 >

评论 (1 条评论)

发布
用户头像
不看好
2020 年 02 月 03 日 12:18
回复
没有更多评论了
  • Wasmtime:终于可以在.NET 应用中运行 WebAssembly 了

    WebAssembly运行时Wasmtime增加对.NET Core的支持,基于.NET Core的应用程序现在可以运行WebAssembly代码了。

    2020 年 1 月 10 日

  • 程序员练级攻略:程序员修养

    有修养的程序员才可能成长为真正的工程师和架构师,而没有修养的程序员只能沦为码农。

    2018 年 6 月 7 日

  • 微软 WinJS 3.0 支持多平台

    通过支持多平台和一些主流浏览器,微软已经对WinJS进行了提升,并且已经将其模块化,使其能配合其他JavaScript函数库一起工作。WinJS 3.0带来了一些新特性,其中最重要的是支持多平台和多浏览器。

    2014 年 9 月 24 日

  • 第 185 讲 | 狼叔:2019 年前端和 Node 的未来—大前端篇(下)

    今天继续分享移动端局面、多端拉齐的必然性等内容,以及2019年不可忽视的TypeScript和WebAssembly这两大技术。

    2019 年 3 月 12 日

  • 把 WPF 作为一种富客户端技术

    WPF的出现使开发视觉效果非凡的应用程序变得容易了不少,不过它其实作为一种开发前端富客户端应用程序的技术也非常有竞争力,而应用程序的后端服务可以使用如Java、Ruby或.NET等任何技术。这篇文章将会把WPF和其他一些技术,例如AJAX/DHTML、Swing或Flash进行对比;同时文章中也会分享一些使用WPF作为客户端的合适场景,这些示例会使用Java作为后台开发技术。

    2008 年 3 月 25 日

  • Visual Basic 10 介绍

    随着VB9将在今年某个时候发布,微软也开始谈论起VB10了,即通常所说的VBx。VBx的关键特性包括了大家希望的在Lisp,Ruby或者Python中存在的动态代码生成功能。这将开拓一个能使用VB.NET来开发 SilverLight和Offic应用程序的新时代。

    2007 年 5 月 7 日

  • Blazor 将.NET 带回到浏览器

    由Steve Sanderson开发的Blazor尝试使用WebAssembly和DotNetAnywhere将.NET带回到浏览器。它不是要成为一个像Flash或Silverlight那样的完整生产框架,而是要探索一下有什么可能性。

    2017 年 7 月 16 日

  • 每周一起背 10 句 | week 09

    本周我们进入了最后一篇语料。我把本周一起读过的句子放在这里,你可以试试背诵这些句子,感受下和之前背诵的句子有什么不同。

    2020 年 7 月 11 日

  • 项目启动:极客时间 App 下载页开发

    2019 年 10 月 23 日

  • WebAssembly 和 Blazor:解决了一个存在十年的老问题

    Blazor可以使用C#构建客户端代码,还允许开发人员在没有插件的情况下在浏览器中运行现有的.NET标准DLL。

    2019 年 6 月 11 日