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

Remove all .NET Fx dependencies #8557

Closed
3 of 4 tasks
crutkas opened this issue Dec 11, 2020 · 25 comments
Closed
3 of 4 tasks

Remove all .NET Fx dependencies #8557

crutkas opened this issue Dec 11, 2020 · 25 comments
Assignees
Labels
Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release.

Comments

@crutkas
Copy link
Member

crutkas commented Dec 11, 2020

For ARM64 support, we needed to remove .NET Framework dependencies. This is caught NU1701 which is suppressed in a few projects currently.

  • Catalog all .NET Fx dependencies across all projects
  • Mages for calc, in Calculator plugin for PT Run,
  • tlbimp-Microsoft.Search.Interop for wrapper for indexer plugin for PT Run
  • PowerToysInterop
@crutkas crutkas added this to the 2020 Stability Release milestone Dec 11, 2020
@ghost ghost added the Needs-Triage For issues raised to be triaged and prioritized by internal Microsoft teams label Dec 11, 2020
@crutkas crutkas mentioned this issue Dec 11, 2020
13 tasks
@crutkas crutkas removed the Needs-Triage For issues raised to be triaged and prioritized by internal Microsoft teams label Dec 14, 2020
@enricogior
Copy link
Contributor

@crutkas

Catalog all .NET Fx dependencies across all projects

do you know if there is a way to do it through a query or do we need to manually check each dependency?

@crutkas
Copy link
Member Author

crutkas commented Dec 15, 2020

Looks like these are done in the project level.

image

NU1701 -> Mages for Calculation
NU1701 -> tlbimp-Microsoft.Search.Interop for wrapper for indexer

@davidegiacometti
Copy link
Collaborator

xFunc could be a valid alternative to mages even if it won't be fully compatible with Mages syntax.

@crutkas
Copy link
Member Author

crutkas commented Dec 24, 2020

Mages is OSS, we could just do the port.

@crutkas
Copy link
Member Author

crutkas commented Dec 24, 2020

Is xFunc localized for different country formats?

@davidegiacometti
Copy link
Collaborator

Of course, porting Mages could be a solution too.
I don't think xFunc supports different formats.

@snickler
Copy link
Collaborator

snickler commented Jan 13, 2021

I did a quick super duper stab at porting the Mages.Core project to .netstandard 2.0 for the heck of it and referencing it as a local NuGet package.

IT WORKS!

The other portions of the Mages library will require a lot more work to provide support (other pieces are dependent on packages targeting netfx)

@crutkas
Copy link
Member Author

crutkas commented Jan 13, 2021

Do we need the other parts?

@snickler
Copy link
Collaborator

Nope. The Mages.Core project is the only necessary one for this.

@crutkas
Copy link
Member Author

crutkas commented Jan 14, 2021

@enricogrior any objections just bringing that into our code base for now? They haven’t touched their repo in a while. This will make it easy to port / fixes.

@enricogior
Copy link
Contributor

@crutkas @snickler
OK let's do it.

@snickler
Copy link
Collaborator

@enricogior @crutkas - What's the best way for us to go about that?

@crutkas
Copy link
Member Author

crutkas commented Jan 14, 2021

Move the that project into our base in the same project, update notice.md.

@snickler
Copy link
Collaborator

Perfect. I'll work on that later on today.

@crutkas crutkas added Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release. and removed Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release. labels Jun 10, 2021
@davidegiacometti
Copy link
Collaborator

Updated the first post.
Marked Mages as done since the installed version is now on .NET Standard 2.0.
Added PowerToysInterop that is on .NET 4.7.2
https://docs.microsoft.com/en-us/dotnet/core/porting/cpp-cli#port-a-ccli-project

@crutkas
Copy link
Member Author

crutkas commented Nov 3, 2021

tlbimp-Microsoft.Search.Interop I think will be the painful one

@snickler
Copy link
Collaborator

@crutkas - I believe we can get past the tlbimp-Microsoft.Search.Interop issue and I'd like to take on the task. We're able to use the Microsoft.Windows.CsWin32package to generate the same code that is used by the tlbimp package.

Question: Are we still targeting .NET Core 3.1 first and then moving upwards?

@crutkas
Copy link
Member Author

crutkas commented Nov 17, 2021

@snickler we need .net 5 (excellent chance we'll do .net 6) and up but to do that we need to shift our installer pipeline due to the agent to a different system internally.

If possible, a .net standard lib would solve the targeting problem i believe since that will work in .net 5/6. Worst case, we can just manually update the 3.1 lib to .net 5/6 when we do the larger migration.

TLDR: Please take the task with this background info

@crutkas
Copy link
Member Author

crutkas commented Feb 8, 2022

@snickler is doing tlbimp-Microsoft.Search.Interop

@snickler
Copy link
Collaborator

Looking at PowerToysInterop, this one may be the most painful. C++/CLI on .NET Core has a minimum target of .NET Core 3.1 (.netstandard 2.1). UWP only implements up to .netstandard 2.0, which means it will take some rewriting.

@crutkas
Copy link
Member Author

crutkas commented Feb 16, 2022

Remember we will have to upgrade settings no matter what so to WinUI 3.1 so this will resolve itself in near future

@snickler
Copy link
Collaborator

Oh yeah, that makes sense. No big worries on that then.

@crutkas
Copy link
Member Author

crutkas commented Feb 25, 2022

is PowerToysInterop a thing anymore? I feel like this task is done

@crutkas
Copy link
Member Author

crutkas commented Feb 25, 2022

lemme rephrase, yes it is a thing but it is C++, not a .NET Fx dependency which is what this tracks

@crutkas crutkas added the Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release. label Feb 25, 2022
@crutkas crutkas mentioned this issue Feb 25, 2022
10 tasks
@snickler
Copy link
Collaborator

lemme rephrase, yes it is a thing but it is C++, not a .NET Fx dependency which is what this tracks

I'd say you are correct. This was more for 3rd party .NET Fx dependencies.

@crutkas crutkas closed this as completed Mar 3, 2022
@crutkas crutkas removed the Status-In progress This issue or work-item is under development label Apr 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Resolution-Fix Committed Fix is checked in, but it might be 3-4 weeks until a release.
Projects
None yet
Development

No branches or pull requests

5 participants
@crutkas @enricogior @snickler @davidegiacometti and others