ASE Home Page Products Download Purchase Support About ASE
ChartDirector General
Forum HomeForum Home   SearchSearch

Message ListMessage List     Post MessagePost Message

  Support for .Net Core
Posted by Michael on Jan-12-2018 23:08
Hi,
are there any plan to support .Net Core framework?

Thx

  Re: Support for .Net Core
Posted by Peter Kwan on Jan-16-2018 01:25
Hi Michael,

Currently, we only support the standard .NET framework. We do not have a confirmed schedule on when we will port ChartDirector to the .NET Core framework.

Regards
Peter Kwan

  Re: Support for .Net Core
Posted by Keith Nicholas on May-28-2018 07:44
When you say "standard" you mean  .net framework and NOT .net standard?

Because that's what you should be targetting for future versions, .NET standard which will work with framework and core.

Regards,

Keith

  Re: Support for .Net Core
Posted by Peter Kwan on May-28-2018 15:38
Hi Keith,

From my understanding, the .NET standard is a very limited subset of the .NET framework and .NET Core. In particular, it does not support any user interface. That's why for real applications, we need .NET Core or .NET Framework or Universal Windows Platform, which are built on-top of the .NET standard.

The .NET standard is useful for "libraries" that do not have user interface or use any features specific to .NET Framework, .NET Core or other implementation. An example is a library for sorting numbers or for numerical integration.

Unluckily, ChartDirector does have "controls" and user interface support, such as clickable hot spots, programmable track cursors, drag to zoom/scroll, viewport control, etc.. This makes it impossible to target the .NET standard alone.

Regards
Peter Kwan

  Re: Support for .Net Core
Posted by Keith Nicholas on Jun-01-2018 09:34
.net standard has no UI, but it does have drawing.  For your web offering it would be nice to have a .net standard version that is cross platform.

  Re: Support for .Net Core
Posted by Peter Kwan on Jun-02-2018 01:44
Hi Keith,

We have investigated .NET standard in the past. At that time, we found that there is no graphics capabilities.

I just looked at the latest .NET Standard 2.0, but I cannot find any graphics capability.

I found a System.Drawing namespace, which supports a very small subset of the "data structures" for drawing. For example, it has a class for Color, and one for Point (which is just two numbers for the x and y coordinates), and one for Rectangle (which is just 4 points). It cannot actually draw any of them. Drawing requires an object that can draw things, such as the "System.Drawing.Graphics" object, and also something to draw onto, such as a "System.Drawing.Bitmap" object. But these things do not seem to be available even in the latest version of the .NET Standard.

Regards
Peter Kwan

  Re: Support for .Net Core
Posted by Erkki Holttinen on Mar-06-2019 15:31
Hi Peter,

Any changes to this with .NET Core 3.0? .NET Core 3.0 is going to include support for WinForm and WPF and there are suggestions that the graphics namespace would also contain new items.

Regards,
Erkki Holttinen

  Re: Support for .Net Core
Posted by Peter Kwan on Mar-07-2019 04:51
Hi Erkki,

The .NET Core 3.0 still have not been official release by Microsoft. (There is only a "Preview" available.) So we have not yet tested ChartDirector with .NET Core 3.0 yet.

When .NET Core 3.0 is official released, we will try to compile ChartDirector with the target set to .NET Core 3.0. I suspect there will still be some unsupported .NET API. We will then see if we can redesign the code to not using those unsupported API.

Regards
Peter Kwan

  Re: Support for .Net Core
Posted by robert yin on Nov-13-2019 08:29
Hi Peter,

Any updated on this? .NET Core 3.0 has been officially released.
We are looking into possible ways to upgrade our system to .NET Core and the graph component is a big part of it.

Regards

Robert

  Re: Support for .Net Core
Posted by Keith Nicholas on Nov-13-2019 08:33
We are really interested in this as well, given that "Framework" is a dead end, we will be porting to .NET core during 2020.

Regards,

Keith

  Re: Support for .Net Core
Posted by Peter Kwan on Nov-13-2019 15:44
Hi Robert/Keith,

Yes, we are right now porting ChartDirector to .NET Core. The desktop part that supports Windows Forms and WPF are almost complete. It is completely compatible with the .NET Framework, which means your code do not need to change when porting to .NET Core. All our sample code continues to run normally.

For the web part, because ASP.NET Core itself is not compatible with ASP.NET or ASP.NET MVC, so it takes more effort to port. In addition to porting ChartDirector (which we have already completed), we also need to port all of our sample code.

Are you using ChartDirector for desktop or web applications? If you are using it for desktop application, we may be able to get a ChartDirector for .NET Core to you in the next week, knowing that you just need to replace the old DLL with the new DLL and keep using your existing code and existing ChartDirector documentation.

If you are using ChartDirector for web applications, it might take longer (may in Dec 2019) as we will need to port hundreds of our sample code and update our documentation.

Regards
Peter Kwan

  Re: Support for .Net Core
Posted by Terry Tutt on Nov-14-2019 03:59
Peter Kwan wrote:

Hi Robert/Keith,

Yes, we are right now porting ChartDirector to .NET Core. The desktop part that supports Windows Forms and WPF are almost complete. It is completely compatible with the .NET Framework, which means your code do not need to change when porting to .NET Core. All our sample code continues to run normally.

For the web part, because ASP.NET Core itself is not compatible with ASP.NET or ASP.NET MVC, so it takes more effort to port. In addition to porting ChartDirector (which we have already completed), we also need to port all of our sample code.

Are you using ChartDirector for desktop or web applications? If you are using it for desktop application, we may be able to get a ChartDirector for .NET Core to you in the next week, knowing that you just need to replace the old DLL with the new DLL and keep using your existing code and existing ChartDirector documentation.

If you are using ChartDirector for web applications, it might take longer (may in Dec 2019) as we will need to port hundreds of our sample code and update our documentation.

Regards
Peter Kwan

I'm using ChartDirector in a WebApi to generate bitmap images to return to the browser.  I think I would just need the "Desktop" dll.  I would love to get my hands on a pre-release version as the rest of my api is .net core.

  Re: Support for .Net Core
Posted by Robert on Nov-14-2019 08:18
Hi Peter,

That's great news! Thanks for the update.
We are using ChardDirector for web apps at the moment.
Looking forward to the .Net Core update.

Regards

Robert

  Re: Support for .Net Core
Posted by Terry Tutt on Dec-03-2019 21:26
Hi Peter,

Do you have an update on support for .Net Core?

Kind regards,
Terry

  Re: Support for .Net Core
Posted by Peter Kwan on Dec-04-2019 02:51
Hi Terry,

The following contains the release candidate of for "ChartDirector for .NET Core" DLLs. It contains two DLLs. If you just need to create chart images, you just need "ChartDirector.Net.Core.dll". If you need to use the ChartDirector desktop controls (the Windows Forms or WPF controls), then you also need "ChartDirector.Net.Core.Controls.dll".

As far as I know, the API for generating chart images and the controls are compatible with the current ChartDirector for .NET Framework. That means existing code do not need to change.

https://www.advsofteng.com/support/netchartdir.core.640rc1.zip

The "ChartDirector.Net.Core.dll" requires "System.Drawing.Common 4.5" or above. The .NET Core 3 includes "System.Drawing.Common". However, depending on your project type, Visual Studio may not automatically include it in the project. From our testing, Visual Studio will include it in Windows Forms projects, but not WPF. If it is a WPF project, you would have to manually add the line "<UseWindowsForms>true</UseWindowsForms>" to the project file, or to use nuget to get the "System.Drawing.Common" package into the project.

In the real release, we will likely release the DLLs as a nuget package, so Visual Studio can automatically include the "System.Drawing.Common" in the project.

Regards
Peter Kwan

  Re: Support for .Net Core
Posted by Erkki Holttinen on Oct-31-2022 15:09
Hi Peter,

The ChartDirector has now been working with .NET 6 by having reference to System.Drawing.Common 4.5. When running within Linux one just needs to have libgdiplus installed. However a breaking change has been introcuded to System.Drawing.Common (https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only) which causes that the System.Drawing.Common is no longer supported in Linux environments. Any plans to move away from using System.Drawing.Common in the future?
Right now there is no urgent issue with this matter, since we can currently stick with the older System.Drawing.Common, but at some point this is going to change. When it does, it would be nice to have a solution ready.

Regards,
Erkki Holttinen

  Re: Support for .Net Core
Posted by Terry Tutt on Dec-06-2019 22:36
Thank you Peter...

It is now working great in my .Net Core application with no code changes.

  Re: Support for .Net Core
Posted by Peter Kwan on Nov-01-2022 16:27
Hi Terry,

Internally, ChartDirector uses System.Drawing.Common only to access fonts.

Several years ago, we have tried to eliminate the dependency on System.Drawing.Common by using another library to access fonts. At that time, it does not work well enough. The main issues is that on Linux, the GUI and the fonts are optional and there is no universal standard.

We will try again to see if the situation has improved.

Best Regards
Peter Kwan

  Re: Support for .Net Core
Posted by Erkki Holttinen on Feb-17-2023 15:12
Hi Peter,

Is there any new information for the System.Drawing.Common issue?

Regards,
Erkki Holttinen

  Re: Support for .Net Core
Posted by Peter Kwan on Feb-20-2023 12:42
Hi Erkki,

Yes, we have solved the technical problems and now has an internal version that does not need System.Drawing.Common. It can display all the charts. We are still working on PDF support.

System.Drawing.Common always works on Windows. On Linux, I think it works up to .NET 6. In the .NET 6, the default is to disable System.Drawing.Common, but it can be re-enabled by setting a flag:

https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only

In .NET 7, the flag is removed so it cannot work with System.Drawing.Common on non-Windows platform.

Do you have a timeline on when will you need it?

Best Regards
Peter Kwan

  Re: Support for .Net Core
Posted by Erkki Holttinen on Feb-27-2023 18:29
hi Peter,

No, there is no timeline currently defined when we are going to need this. Might be that after couple of months there will be a need for this. I'll get back to you in case there is no publicly available version at the time when this starts to progress on our side.

Regards,
Erkki Holttinen

  Re: Support for .Net Core
Posted by Peter Kwan on Jun-03-2023 01:46
There is now a new ChartDirector for .NET 7.1 release that does not have dependency on System.Drawing.Common for cross platforms projects that target .NET 5 or later. There is no change for Windows only projects or projects that target earlier .NET versions.

To upgrade to that release, simply replace the ChartDirector NuGet package with the latest one available from the official Microsoft NuGet web site.