TASEmulators / TASEmulators/BizHawk
Migrate to .NET (formerly .NET Core)
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 2.8k
- Forks
- 468
- PR merge metrics
- No merged PRs in 30d
Description
(Going to call it .NET Core here for clarity.)
.NET Core continues to gain new features, simpler and faster APIs, and better runtime performance. Even if MS hadn't formally ended .NET Framework development (which, 4.8.1 aside, they have), migrating is a no-brainer for any project.
Some features of C# rely on runtime support for certain types and are thus unavailable to us.
Along with a dramatically improved JITter, .NET Core has an AoT compilation mode (#3768), which builds upon trimming/DCE (#3767), which builds upon single-file publishing (see also #2441 and #2654).
Other opportunities that .NET Core would give us are tracked in &21. While a lot of the .NET ecosystem targets .NET Standard 2.0, a few libraries only target .NET Core, so we could make use of those too.
WinForms is the last big roadblock to switching (#4350). If we split Win/Tux and upgrade to modern WinForms, there are a few breaking changes to look out for, and shiny new async APIs.
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
Start by reading the WinForms roadblock in #4350 and the breaking changes cited in the issue comment, then review related issues #3768, #3767, #2441, and #2654. Done would mean migrating BizHawk to modern .NET Core, including the WinForms-related work and the opportunities tracked in milestone 21.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100