Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upgrade Solid project to .Net 8 #6

Open
megahirt opened this issue Mar 25, 2024 · 6 comments
Open

upgrade Solid project to .Net 8 #6

megahirt opened this issue Mar 25, 2024 · 6 comments
Assignees

Comments

@megahirt
Copy link
Contributor

megahirt commented Mar 25, 2024

This issue is about seeing what it would take to upgrade the Solid program to net8-windows with the new windows forms. I have no idea what that will take. Migrating a relatively contained application like Solid to the new windows forms would be a valuable exercise that would inform whether or not we should attempt this for other SIL software.

@ethnos-men
Copy link
Collaborator

ethnos-men commented Sep 2, 2024

Here is an analysis of the Main Solution (solid.sln in src-Folder) with the .NET-Migration-Assistant:

The issues mentioned there are a good starting point to see how to migrate:
solid-reports-net8.zip

Example:
image

Are there .NET8 compatible Versions of the libraries below?
image

https://www.nuget.org/packages/SIL.DictionaryServices/15.0.0-beta0082

  • Would this be for example usable? There is a Beta-Version on Nuget.org that supports .Net-Standard 2.0.
  • Can anyone tell me more about the Nugets in the Screenshot?
  • Who is responsible for those repositories / nugets?
  • I did not have the time yet to do research in the Repos of those packages.

@josephmyers
Copy link
Collaborator

@ethnos-men, these repo's are all managed by SIL and, in practice, us. Two of the repo's you've listed could be consumed by a .NET8 (windows) app, like Solid: SIL.DictionaryServices (.netstandard2.0) and L10NSharp (.net8.0-windows).

We are in the process of slowly upgrading the other libraries, mostly contained in Libpalaso, but the jump from Framework 4.6.1 to .NET8 is pretty hefty, not to mention meeting some resistance due to its dropping support for some older OS's, etc. You can see more information here, including our implementation strategy.

@ethnos-men
Copy link
Collaborator

ethnos-men commented Sep 6, 2024

Thank you @josephmyers .
So the plan is for the libraries to accomplish Multi-Targeting-Compilation and Publishing for .NET8, .NET4.8 and .NET-Standard 2.0 (in Phase 3 of the Library-Roadmap).
So that those 3 supported Targets are contained in one Nuget per Library? Is this correct?

@josephmyers
Copy link
Collaborator

Kind of, yes. It gets tricky, though, since some of the libraries in libpalaso are Windows-specific, so they somewhat fall into the Application roadmap. Most of these are SIL.Windows.Forms.* libraries, with a couple exceptions, and they will need to target .NET8-Windows. This creates complication in our targeting, and our planned solution is to add in .NET8 on its own branch, eventually swapping it into master and keeping Framework on a branch. The idea is to make targeting .NET8 progressively easier, and Framework progressively harder.

Nuget publishing is done per project/library, yes, and it is able to manage our 3 different targeting platforms with a single assembly per version. At the WinForms level, whichever platform is on its own branch will have its own Nuget version (with the branch name integrated into the version name), though they can all share the same assembly name.

All libraries, cross-platform and WinForms, currently support Framework 4.8, so we're very close to completing Phase 1. However, there has been some recent discussion on if the branching plan is the best way to go about this. So we're still working this out.

I've updated the table names to be a tad bit clearer.

@josephmyers
Copy link
Collaborator

At the Hawaii conference, the team suggested it would in fact be useful to upgrade the SIL.Windows.Forms.* libraries to .NET8-Windows, with Solid as a good example/experiment of what this might look like. So I'm going to move forward with this.

@josephmyers
Copy link
Collaborator

Here is the PR for SIL.Windows.Forms:
sillsdev/libpalaso#1358

I'm working on the remaining two now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants