C# 跨平台UI 技术

构建跨平台应用程序的的几种UI技术,以C# 或者其他基于.NET的 语言(诸如:Visual Basic[VB])。本文研究了三种跨平台技术,并讨论了在哪些情况下开发人员可以使用这些技术。本文使你对可以用于C#中构建前端应用程序的技术有一个基本了解,并将回答诸如哪些平台可用的问题。那它可以在浏览器中运行吗?它会具有原生的外观和感受吗?另外,可以将其部署到应用商店吗?

背景

.NET Framework是一项于2000年代初创建的技术,主要用于Windows桌面应用程序。当时主要的两种语言是C#和VB。这些语言币可以编译为通用中间语言(CIL - 以前成为微软中间语言``MSIL)。当时.NET的主要竞争对手是Java。它与.NET相似,但从一开始就是为了跨平台兼容性而设计的,Java包括跨平台的UI框架SWing。.NET发布后不久,Mono平台于2004年发布。此框架允许将库编译为CLI并在Linux等平台上运行。但是,基于.NET的Windows窗口之类的UI技术无法再其他平台上运行,因为它们依赖Windows操作系统的本机组件。Mono平台不断发展,开发人员为每个平台创建了多个UI组件,但是没有一个跨平台UI`组件成为事实上的标准。微软没有推出将任何UI技术作为所有平台的答案。

现代生态系统

自.NET成立以来,情况发生了很大变化。现在,人们每天至少使用五种主要操作系统:Windows(台式机/平板电脑),OSX(台式机),Android(电话/平板电脑),iOS(电话/平板电脑),Linux(主要是台式机)。还有许多其他平台来驱动诸如手表之类的设备和诸如Tizen之类的电视组件。随着应用商店的出现,应用程序的部署机制也在迅速改变。现在,应用程序部署到手机的标准方法时使用各种应用商店,人们开始期望他们的手机和平板电脑能够运行与台式机相同的应用程序。

在应用程序开发部署中,安全性现在是一个重要的考虑因素。台式机落后于手机,因为许多应用程序仍然需要用户以安装程序的形式下载该应用程序,然后手动进行安装。这是一个巨大的问题,任何忽略此问题的开发人员都将自担风险。如果用户被迫从互联网上下载应用程序,那么他们就会遭受恶意软件的攻击。他们失去了对应用程序级别权限的控制,并向间谍软件开放计算机权限,而没有权限审查该软件。随着用户变得越来越精明,越来越少的人开始容忍这种情况,并选择通过应用商店或在浏览器中部署的应用程序。

这里的关键是:
您需要安全地部署应用程序,并且需要在尽可能多的平台上进行部署。

现代运行时:Mono/Xamarin,.NET Core,WebAssembly

Xamarin是一家给公司,其工程师创建了Mono平台已在许多平台上运行CIL。Xamarin在2016年被微软收购。他们仍然维护Mono平台,该平台允许C#代码在iOS,Android和其他平台上运行。开发人员经常使用Xamarin作为Mono的同义词,但是Xamarin还是一套CIL库,可在非Windows平台上驱动应用程序。

.NET Core是类似于.NET Framework的现代桌面运行时环境。它可以在OSX,Linux和Windows等操作系统上运行。自.NET Core发布以来,开发人员在Mono平台上构建了多个UI框架,因此构建跨平台运行的前端应用程序的能力已成为现实。其中一些UI框架也可以在Mono上运行。这意味着现在有可能构建跨平台相似性完美的应用程序。

开发人员不能忽视Web Assembly(Wasm)。它是浏览器内置的一项新兴技术,并得到W3C的支持。从本质上讲,这项技术使开发人员能够以与JavaScript一样安全的方式编译可以在浏览器中运行的代码。最重要的是,它是一种独立于语言的“基于堆栈的虚拟机的二进制指令格式”。C#编译为这种指令格式,因此为C#开发人员打开了UI功能的新世界。C#代码可以以类似于Silverlight的方式在浏览器中运行,Silverlight现在已经不在获得支持了。

XAML在这里也需要提及。 XAML是一种标记语言,用于在大多数基于c#的UI框架中以声明方式定义UI。这里提到的三个平台都支持XAML。 XAML对C#就像HTML对JavaScript。但是,XAML比HTML更进一步,因为它不仅包括CSS之类的样式,而且还具有非常强大的数据绑定功能。

以下是基于这些运行时的UI技术。

Uno Platform

C# 跨平台UI 技术

Uno Platform是基于XAML的开源UI库和平台,可在iOS,Android和Web Assembly上运行。它呈现本机原生控件,但尝试在非Windows 10平台上模拟Windows UWP图形库。它具有现代的Windows 10外观,并可以使用XAML样式轻松自定义样式。

https://github.com/nventive/Uno

平台:iOS,Android,WebAssembly,Windows(诸如UWP)。
应用商店:苹果商店,谷歌商店,微软商店(使用UWP编译时)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxsxx.html