Migrate away from using `Stride.Core.Utilities`/`Stride.Core.Interop`
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 49
Description
New features are available in recent versions of .NET that match functionality in Stride.Core.Utilties about exactly, employment of which can improve Stride in a number of ways.
- Removing P/Invoke overhead
- Migrating some C++ to C# or even eliminating the need for features implemented in C++
- Reducing the need for IL weaving
- Probably allow both the C# compiler and the JIT to do a better job optimizing the code
Getting rid of IL weaving is more or less a prerequisite or at least an advantage towards eventually fully supporting ahead of time compilation (AOT) during publish with minimal effort from the developer.
I would like to propose first to mark the public API in Stride.Core.Utilities as obsolete for as far as there are alternatives in C#/.NET and replace their use throughout Stride with the corresponding alternatives.
I deliberately scope this issue just to the class mentioned, although there are a series of other opportunities to follow the exact same line of thinking and that have about the same benefits. Those will come later.
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.
Research direction
The issue targets the public API in Stride.Core.Utilities and its uses throughout Stride, including related Stride.Core.Interop functionality. Start by inventorying the affected APIs and their call sites, then review the available C#/.NET alternatives. Done means the in-scope APIs are marked obsolete and their uses are replaced throughout Stride, with the existing behavior preserved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- game-dev
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100