首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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开发移动应用。示例代码定义了一个具有按钮和点击计数器的基本视图。

代码语言:javascript
复制
<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

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/HWVN9jxE5YjFFNJ9iAGe
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券