dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.55k stars 4.54k forks source link

Current status of .NET support on HarmonyOS platform #103627

Open Seanxwy opened 2 weeks ago

Seanxwy commented 2 weeks ago

Huawei HarmonyOS is about to release a new major version, using a full-stack self-developed architecture and will no longer rely on traditional AOSP code. Huawei HarmonyOS will run on mobile phones, watches, smart TVs and embedded devices, which is very consistent with the cross-platform framework concept of .NET for developing all applications.

Huawei already has a large user base and its market share is about to surpass iOS. In any case, there are already a large number of Huawei devices that will receive HarmonyOS, and many new devices will be manufactured. Therefore, it makes sense that the open platform .NET will eventually gain support for it.

Then, given the large user base of Huawei devices, as well as the huge market share, it makes sense to help .NET developers easily achieve cross-platform development. It makes sense that efforts will eventually be made to provide HarmonyOS support for the platform.

So, what plans does the .NET platform have for supporting HarmonyOS?

dotnet-policy-service[bot] commented 2 weeks ago

Tagging subscribers to this area: @dotnet/area-meta See info in area-owners.md if you want to be subscribed.

huoyaoyuan commented 2 weeks ago

As a managed runtime, in .NET we classify OS by its low-level API, not high level UI framework. Most of the information about HarmonyOS I can find are UI and packaging related. The relationship with Android NDK is also unclear.

For the reason we all know, there's unlikely to be action from Microsoft. The market shares are also significantly different among the world.

jkotas commented 2 weeks ago

Related/duplicate https://github.com/dotnet/runtime/issues/56632

driver1998 commented 2 weeks ago

If we are talking about OpenHarmony, that is currently musl Linux, you can try if the current linux-musl builds will run on it.

For HamonyOS NEXT (which is supposed to be based on OpenHarmony and be compatible), it is rumored to have a home-grown kernel, will need to know its ABI and API details first.

Native API on HarmonyOS is limited just like Android, with no UI framework support, only basic window management, custom drawing via OpenGL/Vulkan, and other low-level APIs.

The first-party UI framework is ArkUI, which uses a TypeScript-derived ArkTS language.

ArkTS provides native interop via Node.js-like N-API.

I would imagine MAUI will work something like Blazor on ArkUI.

OpenHarmony developer docs: https://docs.openharmony.cn/pages/v4.0/en/application-dev/application-dev-guide.md

Seanxwy commented 2 weeks ago

I am referring to HamonyOS NEXT. Currently, Huawei has invested a lot of money in marketing and building an application ecosystem. Many mainstream apps support HamonyOS NEXT. Based on Huawei's influence on the market, there will be a huge market opportunity in the future. At the same time, the Unity3d engine has also begun to support HamonyOS NEXT. If dotnet can support HamonyOS NEXT, in the future, whether it is games, apps or desktops, it will have a first-mover advantage over other high-level languages. The .net ecosystem will be more complete, and it will also help millions of developers to develop across platforms more conveniently.

driver1998 commented 2 weeks ago

A lot of stuff of OpenHarmony will apply to HamonyOS NEXT, as I said, HarmonyOS NEXT is supposed to be based on OpenHarmony.

But the rumored home-grown kernel (seemingly named HongmengOS in uname) does muddy the water quite a bit, we will first need to know its low-level ABI before we can do anything meaningful.

Too bad it is currently under closed beta and NDAs.

Seanxwy commented 2 weeks ago

We should be optimistic about HamonyOS NEXT. We hope that Microsoft will also be open and optimistic about HamonyOS NEXT in its investment in the dotnet cross-platform. The HamonyOS NEXT ecosystem is a platform that every application developer or cross-platform developer cannot bypass. As .Net developers, we very much hope that Dotnet can be developed on the HamonyOS NEXT ecosystem. In this way, millions of developers can release their own products and earn income in the new HamonyOS NEXT ecosystem.

driver1998 commented 2 weeks ago

.NET on HarmonyOS will probably be community supported for the time being, maybe you can try to convince Huawei to get on board, like Samsung and their contributions of Tizen support.

alexrp commented 2 weeks ago

Judging by the fact that LoongArch code has been included in the codebase, it seems highly unlikely that there'd be any opposition to HarmonyOS contributions.

As a practical matter, though, you just probably shouldn't expect Microsoft to do the work. Hopefully Huawei can fund it.

xiexingen commented 4 days ago

+1