与专家一起探索新的.NET多平台应用程序UI(MAUI)
在2020年的Build展会上,微软透露了其名为.NET MAUI的多平台框架的计划。这个最新的框架似乎是Xamarin.Forms的升级和改造版本,使开发者能够建立强大的设备应用程序,并为Windows、Android、macOS和iOS提供本地功能。
微软最近致力于统一.NET平台,MAUI在其中发挥了重要作用。该框架通过提供具有内置资源的单一代码库,帮助开发者访问所有现代操作系统的本地API(应用编程接口)。它为在一个独家项目结构的旗帜下开发多平台应用程序铺平了道路,并在需要时为不同平台灵活地纳入不同的源代码文件或资源。
.NET MAUI将使项目结构成为一个唯一的来源,可以根据需要为许多平台进行单键部署。 .NET MAUI的一些突出特点将是XAML和模型-视图-视图-模型(MVVM)。它将使开发人员能够实现模型-视图-更新(MVU)模式。
微软还打算提供 "Try-N-Convert "支持和迁移指南,以帮助开发者将现有应用程序无缝过渡到.NET MAUI。 性能 仍然是MAUI的焦点,更快的算法、先进的编译器和先进的SDK风格项目工具体验。
让我们听听我们的专家对MAUI的看法,这个框架有可能简化跨平台的应用开发。
哪种技术--原生和跨平台应用开发--更好、更普遍?
- Gabriel:我总是建议,最好的平台是最适合你的团队的平台。我的意思是,如果你有一个C#团队,肯定.NET开发(Xamarin,MAUI等)会更好。另一方面,如果你有一个JavaScript/Typescript团队,我们确实有其他几个原生/跨平台开发的选择。
- Francesco:一般来说,说 "更好 "是相当困难的。正确的选择总是取决于一个人的限制,但我认为对于大多数应用程序来说,"跨平台 "是唯一可以接受的选择。 移动和桌面应用的生命周期明显较短,而且它们中的大多数都比服务器企业应用的预算低。通常,它们只是与企业应用或复杂网站互动的几种方式之一。 因此,预算和时间的限制使得开发和维护几个本地应用程序是不现实的。然而,无论跨平台框架如何智能和优化,本地应用程序总是有更好的性能,并充分利用每个设备的特定功能。所以,可以肯定的是,有一些关键的应用程序可以像原生应用程序一样实现。
- Valerio: 两种方法都有优点和缺点:原生移动应用程序通常有更高的性能和无缝的用户体验,因此是最终用户和/或对用户界面/用户体验有很高期望的产品所有者的理想选择。然而,现在构建这些应用程序可能是昂贵和耗时的,因为你需要有一个强大的开发团队(或多个团队),可以同时处理iOS、Android和Windows/Linux桌面电脑。此外,还有可能出现不同的代码库,这在维护、升级和保持同步方面会相当麻烦。跨平台开发可以减轻这些弊端。然而,你在开发成本、时间和可维护性方面所节省的一切,往往要在性能、有限的功能和有限的UI/UX方面付出代价;更不用说多平台开发框架由于其抽象程度较高,往往有陡峭的学习曲线。
如果有的话,MAUI和Uno平台的主要区别是什么?
- Gabriel:我还想说,考虑到MAUI有Xamarin.Forms,它将很容易实现与不同操作系统的兼容。
- Francesco:Uno的默认选项是在所有平台上都有相同的风格,但给了一个机会让应用程序看起来和感觉像一个本地应用程序;而 MAUI则 更多地利用了本地功能。简而言之,MAUI应用程序看起来更像本地应用程序。Uno还针对浏览器中的WASM,而MAUI并不针对它,而是以某种方式提出Blazor。也许Blazor仍将是统一移动、桌面和网络开发的另一种选择,但在6.0.NET版本中不会出现。
- Valerio: MAUI和Uno平台都试图实现类似的目标,但它们是基于两种不同的架构方法。MAUI和Xamarin.Forms一样,在本地API之上有自己的抽象层,而Uno则在其上建立UWP接口。同样,这两种方法都有其优点和缺点:抽象层在性能方面可能是昂贵的(特别是在移动设备上,因为它需要照顾大多数与布局有关的任务),但这对于保持一个小而通用的代码库是有用的。
MAUI会不会一推出就能满足跨平台的应用开发要求,还是需要在发布后进行一些开发才能完全满足其目的?
- Gabriel:这种技术所呈现的机制会让我们在有差异的情况下也能保证跨平台。所以,我的回答是肯定的。
- Francesco:从微软所有平台的故事背后来看,我认为MAUI在推出时就能满足所有跨平台应用开发的要求是非常不可能的。它可能是80-90%的有效概念,并迎合开发需求。要使MAUI成为一个成熟的平台,配备跨平台应用的所有工具,可能还需要一年时间。
- Valerio: 我希望如此!从现实情况来看,我认为这将是一个成熟的平台。 现实地说,我认为这将是一项艰巨的任务:我不会期望一开始就有良好的跨平台应用程序的兼容性,特别是在UI/UX方面。这种雄心勃勃的发展是随机应变的,并随着来自真实用户和社区的准确和相关的反馈而逐渐变得完美。
微软需要多少时间来发布MAUI?
- Gabriel:微软正在不断地提供他们软件环境的版本。这个问题有点复杂,因为作为一个软件开发者,你不能只考虑微软何时发布MAUI。你需要考虑它什么时候能稳定下来,并且有一个LTS版本可用。我相信这要比微软提出的路线图要长一点。
- Francesco:根据计划的时间表,MAUI应该与2021年11月的.NET 6版本一起推出。这个时间表应该得到尊重,但在最坏的情况下,该版本将被玩弄,并在几个月后到达。这与Blazor和3.1.NET版本的情况类似。
- Valerio: MAUI的官方时间表听起来相当乐观,但微软似乎在这个项目上投入了很多,而且他们已经成功地交付了大型版本,没有过度的延迟(想想.NET 5)。我认为他们会尽力将MAUI与第一个.NET 6最终版本一起发布,因为这在营销方面是很理想的,而且可以帮助带来一些额外的早期采用者。
总结
多平台应用程序用户界面(MAUI)的推出无疑将彻底改变开发者构建设备应用程序的方式。开发者可以期待顺利和更快的部署,而MAUI是否会提供特定平台的项目或它将是一个共享的代码系统,最终将被揭示。现在估计MAUI的影响程度还为时过早,但它肯定是值得等待的,现在随着MAUI进入dotnet Github,人们很高兴看到MAUI如何在各开发平台上展开,以及各社区如何接受和配合它。随着.NET 6的每一次预览,我们可以期待对.NET MAUI的功能进行大量补充。现在,开发者们正期待着 "dotnet new "的体验。
