microsoft / microsoft/react-native-windows
Split up the Microsoft.ReactNative.dll into two DLLs: Core and UWP
Open
@vmoroz is already working on this.
Since Apr 9, 2020.
Area: Core DLL
Code Cleanup
enhancement
Workstream: ES Compliance SFI
- Dominant language
- C++
- Stars
- 17.3k
- Forks
- 1.2k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 33
Description
Task: Split up the Microsoft.ReactNative.dll into two DLLs: Core and UWP
Summary
Introduce a new Microsoft.ReactNative.Uwp.dll that has all the UWP specific code. It includes the ReactApplication, native modules, ViewManagers and any other XAML-based code. The Microsoft.ReactNative.dll is kept as a relatively thin wrapper around the ReactNative code and exposes it through the ABI-safe API.
Motivation
There are several scenarios we would like to address:
- Use Microsoft.ReactNative.dll for non-XAML based UI.
- Use Microsoft.ReactNative.dll for UWP and Win32 applications.
- Write internal and external NativeModules and TurboModules using the same ABI-safe API.
Basic examples
- Generate TurboModules based on ReactNative spec files that have the same shape for internal and external code that use the same ABI-safe API.
- Microsoft Office applications require to define its own UI ViewManages based on non-XAML components.
Open Questions
- Where should we have the UI shadow tree: in Microsoft.ReactNative.dll or Microsoft.ReactNative.Uwp.dll? Ideally it should be in the common shared core Microsoft.ReactNative.dll.
- Should the the new "Core DLL" Microsoft.ReactNative.dll support plugable JavaScript engines (Hermes, V8, Chakra) or it must wrap only one of them?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.