TeeChart for Microsoft Visual Studio .NET, Xamarin Studio (Android, iOS & Forms) & Monodevelop.
-
bairog
- Advanced
- Posts: 128
- Joined: Fri Dec 07, 2018 12:00 am
Post
by bairog » Mon Nov 09, 2020 7:17 am
Hello.
I'm trying to convert my WinForms (.NEt Framework 4.
application with some 3D charts to ASP Core 3.1 Web Application.
So I performed the following:
- Downloaded your .NET Web Examples repo - TeeChart-for-.NET-CSharp-Web-samples
- Opened TeeChartMVCCore project
- Retargeted it to .NET Core 3.1 (because .NET Core 3.0 is outdated and reached EOL)
- Updated all nuget packages to latest versions (including Steema.TeeChart.NetCore to latest 4.2020.9.16)
- Replaced
Code: Select all
var wChart3 = new Steema.TeeChart.Chart();
with
Code: Select all
var wChart3 = new Steema.TeeChart.Chart();
wChart3.Aspect.View3D = true;
inside public void GetHTML5Chart(int? type)
But chart is still 2D.
Is that by design or a bug? Does your web component have functional parity with WinForms or where can I read abiut all it's limitations?
-
Christopher
- Guru
- Posts: 1603
- Joined: Fri Nov 15, 2002 12:00 am
Post
by Christopher » Mon Nov 09, 2020 9:36 am
bairog wrote: ↑Mon Nov 09, 2020 7:17 am
But chart is still 2D.
Is that by design or a bug? Does your web component have functional parity with WinForms or where can I read abiut all it's limitations?
It's by design. In that example you will see that the Chart is being exported as a JavaScript Chart which renders to HTML5. The JS/HTML5 Chart works slightly differently, as you can see in this demo
here - if you move down the left menu to the 3D section you can see that it works quite differently. On the other hand, if you were to set Aspect.View3D to true and then export to image (PNG, JPEG etc.), you would see a Chart in 3D - this is because image export (as opposed to JS/HTML5 export) uses the same GDI+ graphics as the Windows Forms version.
-
bairog
- Advanced
- Posts: 128
- Joined: Fri Dec 07, 2018 12:00 am
Post
by bairog » Mon Nov 09, 2020 9:46 am
Christopher wrote: ↑Mon Nov 09, 2020 9:36 am
On the other hand, if you were to set Aspect.View3D to true and then export to image (PNG, JPEG etc.), you would see a Chart in 3D - this is because image export (as opposed to JS/HTML5 export) uses the same GDI+ graphics as the Windows Forms version.
Where I can find an example of exporting to image?
What is difference in functionality (legend, mouse interaction, etc.) or performance between JS/HTML5 export and image export?
Thank you in advance.
-
Christopher
- Guru
- Posts: 1603
- Joined: Fri Nov 15, 2002 12:00 am
Post
by Christopher » Mon Nov 09, 2020 9:55 am
Hello,
bairog wrote: ↑Mon Nov 09, 2020 9:46 am
Where I can find an example of exporting to image?
Although it uses a different version of TeeChart, the TeeChart syntax is the same as that shown
here.
bairog wrote: ↑Mon Nov 09, 2020 9:46 am
What is difference in functionality (legend, mouse interaction, etc.) or performance between JS/HTML5 export and image export?
Thank you in advance.
Exporting as an image produces a static image with no mouse (click, zoom, scroll) functionality - if you want such functionality then using the HTML/JS Chart is your best option.
-
bairog
- Advanced
- Posts: 128
- Joined: Fri Dec 07, 2018 12:00 am
Post
by bairog » Mon Nov 09, 2020 10:20 am
Christopher wrote: ↑Mon Nov 09, 2020 9:55 am
Although it uses a different version of TeeChart, the TeeChart syntax is the same as that shown
here.
What do you mean by "different version"?
From my point of view
TeeChartMVCCore project uses
Steema.TeeChart.NETCore 4.2020.9.16 nuget package,
TeeChartWithBlazor project also uses
Steema.TeeChart.NETCore 4.2020.9.16 nuget package.
Christopher wrote: ↑Mon Nov 09, 2020 9:55 am
Exporting as an image produces a static image with no mouse (click, zoom, scroll) functionality - if you want such functionality then using the HTML/JS Chart is your best option.
So if I need an ASP .NET Core 3.1 web application with 3D pie chart and mouse functionality (tooltip, click, zoom, scroll, etc.) - what is the option for me? No options with your library?
-
Christopher
- Guru
- Posts: 1603
- Joined: Fri Nov 15, 2002 12:00 am
Post
by Christopher » Mon Nov 09, 2020 10:29 am
Hello,
bairog wrote: ↑Mon Nov 09, 2020 10:20 am
What do you mean by "different version"?
You're right, my mistake, they are the same version.
bairog wrote: ↑Mon Nov 09, 2020 10:20 am
So if I need an ASP .NET Core 3.1 web application with 3D pie chart and mouse functionality (tooltip, click, zoom, scroll, etc.) - what is the option for me? No options with your library?
I'm not sure - I'll check with the team and get back to you.
-
Marc
- Site Admin
- Posts: 1272
- Joined: Thu Oct 16, 2003 4:00 am
- Location: Girona
-
Contact:
Post
by Marc » Mon Nov 09, 2020 11:40 am
Hello,
If you require a 3D Pie then the current version of TeeChart will need to render the Pie as an image. Here's some example code, in this case an Equalizer series, simply replace it for Pie where required:
Taken from:
https://github.com/Steema/TeeChart-for- ... troller.cs
Code: Select all
public ActionResult GetEqualizerChart(int? w, int? h)
{
lock (s_renderLock)
{
var width = (w > 0) ? (int)w : 400;
var height = (h > 0) ? (int)h : 300;
var wChart2 = new Steema.TeeChart.Chart();
Steema.TeeChart.Utils.UseCaches = false;
wChart2.Header.Text = "Equalizer Gauge";
var rpTheme = new Steema.TeeChart.Themes.BlackIsBackTheme(wChart2);
rpTheme.Apply();
wChart2.Aspect.View3D = false;
wChart2.Series.Add(new Steema.TeeChart.Styles.Equalizer());
wChart2.Series[0].FillSampleValues(40);
wChart2.Panel.Bevel.Inner = Steema.TeeChart.Drawing.BevelStyles.None;
wChart2.Panel.Bevel.Outer = Steema.TeeChart.Drawing.BevelStyles.None;
_tempStream2 = new System.IO.MemoryStream();
wChart2.Export.Image.PNG.Width = width;
wChart2.Export.Image.PNG.Height = height;
wChart2.Export.Image.PNG.Save(_tempStream2);
_tempStream2.Position = 0;
return base.File(_tempStream2, "image/png");
}
}
If you require mouse interactivity for that, you could use an ASP.NET webform. Example (this is a 2D chart but could be rendered 3D with Aspect.View3D = true)
https://github.com/Steema/TeeChart-for- ... troller.cs
This chart supports interactivity via ASP.NET code-behind and Ajax front-end enablement. Examples:
http://www.steema.net/TeeChartForNET/In ... Chart.aspx
http://www.steema.net/TeeChartForNET/In ... Chart.aspx
http://www.steema.net/TeeChartForNET/In ... Chart.aspx
There are coded examples for all of these in the project residing here:
https://github.com/Steema/TeeChart-for- ... %20WebDemo
Regards,
Marc Meumann
Steema Support
-
bairog
- Advanced
- Posts: 128
- Joined: Fri Dec 07, 2018 12:00 am
Post
by bairog » Mon Nov 09, 2020 11:46 am
Thank you, I will test that approach.
As far as i know
ASP .NET Core 3.x (and upcoming ASP .NET Core 5) doesn't support
ASP.NET WebForms..
-
Marc
- Site Admin
- Posts: 1272
- Joined: Thu Oct 16, 2003 4:00 am
- Location: Girona
-
Contact:
Post
by Marc » Mon Nov 09, 2020 12:31 pm
Re.
As far as i know ASP .NET Core 3.x (and upcoming ASP .NET Core 5) doesn't support ASP.NET WebForm
Yes, you're right, sorry for the misdirection; I should have cross-checked Framework features before the last answer.
One option would be to stay with Framework 4; it will continue to be supported.
What level of interactivity is required and to what extent is 3D a necessary requirement for your project?
With thanks.
Regards,
Marc
Steema Support
-
bairog
- Advanced
- Posts: 128
- Joined: Fri Dec 07, 2018 12:00 am
Post
by bairog » Mon Nov 09, 2020 12:49 pm
Marc wrote: ↑Mon Nov 09, 2020 12:31 pm
What level of interactivity is required and to what extent is 3D a necessary requirement for your project?
For now I use showing tooltips when cursor is above pie segment/line point (
tChart_MouseMove event). Customer would also like to use Scroll and Zoom features.
3D for now is mostly needed as a chart display enhancement - I understand that it's a matter of taste, looks like we will need to sacrifice 3D for interactivity..
Marc wrote: ↑Mon Nov 09, 2020 12:31 pm
One option would be to stay with Framework 4; it will continue to be supported.
Correct, but it will obtain only security fixes and still be outdated (it's stuck on .NET Standard 2.0) - so no new APIs, no latest C# version, no modern CLR features, etc.. Looks like poor choice.
Last edited by
bairog on Mon Nov 09, 2020 1:28 pm, edited 1 time in total.
-
Marc
- Site Admin
- Posts: 1272
- Joined: Thu Oct 16, 2003 4:00 am
- Location: Girona
-
Contact:
Post
by Marc » Mon Nov 09, 2020 1:18 pm
Hi,
Yes, I think the route using TeeChart's javascript render would be the surer option going forward and it is fully interactive. New features will be added to strengthen the JS render support as standalone and for NET as time moves forward. I don't think 3D will be added in the near term though; TeeChart JS does include a WebGL 3D option (
https://www.steema.com/files/public/tee ... sic_3d.htm) but it's quite complex to use in a business application and we would recommend to stay with 2D.
Regards,
Marc
Steema Support