Starting from version 2022.2 the Eyeshot installer includes .NET6-Windows assemblies for both WinForms and WPF platforms.
Prerequisites
Prerequisites to build .NET applications:
Upgrade .NET Framework Applications
To convert a .NET Framework project to .NET, you can use the net-upgrade assistant offered by Microsoft.
Open the Developer Command Prompt for VS 2022 and use the below command to install the tool.
dotnet tool install -g upgrade-assistant
Once installed, move to the directory containing the .NET Framework project and use the below command to convert it to the new Microsoft.NET.Sdk format.
upgrade-assistant upgrade .\yourproject.csproj
Follow the instruction of the tool for completing the conversion.
Once completed the conversion, you need to open the project, change the target framework to .net6.0-windows, and add the NuGet packages according to the .json files shipped with Eyeshot .net6 assemblies (you can find them in the subfolder Bin\net6.0-windows of the Eyeshot installation path)
In the source code folder of the Arrows sample, you can find a converted Visual Studio project file ready to use.
Design-Time Support
Currently, there is no design-time support for Eyeshot .NET6-Windows assemblies and Microsoft does not allow manually adding a custom control to the Toolbox yet (see here).
Moreover, Microsoft has not released the new WinForms Designer SDK docs yet (we're keeping our eyes here).
Anyway, most of the code targeting .NET Framework will work in .NET projects without modifications.
So, a temporary workaround is to create a separate project targeting .NET Framework and use it to launch the old designer for your .NET project's forms.
Comments
Great News.
Will you bring Eyeshot to the Mac then?
Hi Stefan,
Currently, the goal is to give the possibility to use the new language features shipped with .NET6 but only in Windows O.S., sorry.
Marcello, is there any plan to match compatibility of the whole .NET 6 environment ? I know that mean implement Metal for Mac and probably focus Vulkan or OpenGL for linux.
I'm just asking, i am not requesting.
Hi Francis,
Not in the short term, sorry.
This might interest you. The framework is compatible for many platform. Might help sprout some ideas.
https://github.com/dotnet/Silk.NET
Good news, will check it soon!
Sounds very interesting. Does this mean, we can use Eyeshot in a MAUI application? Of course only for Windows, but still ist this possible?
Hi Rainer,
Unfortunately no. For using Eyeshot in a MAUI application we need to rewrite the rendering code using a library like the one Francis suggested.
As I wrote, it's not planned in the short term, sorry.
Dear all, great to hear some news on this matter.
Are we talking about the geometric kernel only or you also updated the UI components?
Hi Matteo,
We also updated the UI components but only for use on Windows O.S.
Thank you @Marcello, sounds great. We'll give it a try as soon as possible, very looking forward to it. Personally, I appreciate the fact that you decided to speed up the development in this area, so thank you very much to the whole team.
I also just want to congratulate the DevDept team for making this possible for us. I was able to run Eyeshot in a .NET6 WPF environment with C# language features reserved to .NET Core, such as Span<T>. This is a very important milestone for our team, as we will continue to develop WPF on MS Windows targets, however we can now migrate from .NET framework to .NET6.
Hi DevDept Team! Now that you have successfully targeted the net6.0-windows framework, what can you tell us about when we can expect to target net7.0-windows? I would expect this is not as big as an undertaking as the one coming from net4.8, is this correct? Would love to hear an estimation.
Have you considered supporting .NET standard 2.1? If I understand correctly, this should allow one set of libraries to be used for .NET framework or .NET6/7 (or even older .NETcore)
https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-1-0
.NET Standard is dead. Active development is shifted toward .NET Core and .NET 7.0.
They made .NET 5.0 in order to eventually replace .NET Standard 2.1 as of November 2020. Right now .NET Standard has been put on the same EOL schedule as .NET Framework (1.0 to 4.8) so they will keep supporting as long as the OS supports it.
Francis, I think you are correct about new development that does not require .NET framework support. However, it seems that Eyeshot will continue to support .NET framework for sometime.
https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-1 - Unless I'm misreading this, it says best practice for .NET framework & .NET 6/7 support should be done using .NET standard.
If .NET standard is not used, I think its not possible for one assembly to support both .NET 6/7 & .NET framework... and if 2 completely separate assemblies are used, this seems like a big support/maintenance issue. I've personally no experience targeting .NET standard, this is based on what I am reading... I am certainly not an expert on this.
James, the short version for people using both is if your code is on .NET standard dont touch it unless you really want more performance and feature of the latest platform.
There is not other compatibility layer that exist indeed.
Problem is that most third party lib are not availaible in .NET Standard as most desktop UI focus either .NET Framework or .NET 6.0 so they only offer one so you are pretty much stuck with your own app in either of those flavor. I have a bit over 4,400 libraries and a bit more than 80% are .NET Framework 3.5 to 4.7 (according to my dll checker) so either way .NET Standard cannot use those libraries
is it possible to do this with Eyeshot 2021?
Adam, Eyeshot 2021 is built against .net framework only, so the answer is no, sorry.
Please sign in to leave a comment.