Highsoft.Highcharts
11.4.6.5
dotnet add package Highsoft.Highcharts --version 11.4.6.5
NuGet\Install-Package Highsoft.Highcharts -Version 11.4.6.5
<PackageReference Include="Highsoft.Highcharts" Version="11.4.6.5" />
paket add Highsoft.Highcharts --version 11.4.6.5
#r "nuget: Highsoft.Highcharts, 11.4.6.5"
// Install Highsoft.Highcharts as a Cake Addin #addin nuget:?package=Highsoft.Highcharts&version=11.4.6.5 // Install Highsoft.Highcharts as a Cake Tool #tool nuget:?package=Highsoft.Highcharts&version=11.4.6.5
Highcharts .NET and Highstock .NET General Info
- Official website: dotnet.highcharts.com
- Documentation page: https://dotnet.highcharts.com/Highcharts/Demo/Docs?section=ServerSideRequirements
- Highcharts .NET API page: https://dotnet.highcharts.com/Help/Highcharts/html/index.html
- Highstock .NET API page: https://dotnet.highcharts.com/Help/Highstock/html/index.html
Project structure and dependencies
.NET solution file which contains all projects is located in _HC7\HighSoft.sln
Highcharts .NET source code is located in project HighchartsStandard. Highstock .NET source code is located in project HighstockStandard. Both above projects have dependency on Newtonsoft.Json 13.0.3 and NETStandard.Library v2.0.3 - information about which technologies and versions are supported is located here: https://dotnet.highcharts.com/Highcharts/Demo/Docs?section=ServerSideRequirements SourceCodeGenerator project contains solution for generating source code which is later placed in HighchartsStandard\CodeGeneration and HighstockStandard\CodeGeneration folders MVC_Demo_Standard project contains entire website which is located on dotnet.highcharts.com UnitTests_HC and UnitTest_HS (xUnit) contain unit test
Overall architecture and philosophy of the technical approach
Highcharts .NET and Highstock .NET are based on .NET Standard 2.0.3 which allows to use those wrappers across many other .NET technologies like: .NET Framework (MVC, WinForms, WPF), .NET Core, .NET, Mono, Xamarin.iOS, Xamarin.Android, Universal Windows Platform, Unity Wrappers have classes generated based on json file downloaded from https://api.highcharts.com/highcharts/tree.json. For every element in json file is generated separated class, which causes that multiple classes have the same logic but different names. Class Names depend on the element name and parent full name.
To use wrappers user needs to add information about location of highcharts.js and needed modules like here:
<script src="https://code.highcharts.com/highcharts.js"></script>
define aliases to namespaces like here:
using Highsoft.Web.Mvc.Charts
using Highsoft.Web.Mvc.Charts.Rendering;
define options by defining properties in Highcharts/Highstock object and at the end call a proper method from HighchartsRenderer/HighstockRenderer (depends on technology) - which generates and executes JS script on the client side. JS script contains only properties which were defined earlier in Highcharts/Highstock object.
Instructions for building, testing, etc.
- Download json file https://api.highcharts.com/highcharts/tree.json
- Remove highcharts_old.json file from SourceCodeGenerator project from JsonFiles folder, rename highcharts.json on highcharts_old.json
- Add downloaded json file to SourceCodeGenerator project to JsonFiles as highcharts.json.
- Set SourceCodeGenerator project as Startup Project
- Build and execute SourceCodeGenerator
- Generated code goes to \bin\Debug or \bin\Release
- Use WinMerge to compare \bin\Debug\CodeGeneration\Highcharts and source code for current version from \HighchartsStandard\CodeGeneration
- There may be new, updated or removed parts of code (each from all of those may be correct or incorrect) - if you figure out that something is incorrect you must investigate why is that. 8.1. Verify if json file has correct values 8.2. SourceCodeGenerator compares json from current and new versions. In the past default logic in case of any updates was to keep an old solution (f.e. property type), because of many incorrect values in json. Currently it is set to keep new changes but there is still an option to overwrite change by defined value in specific file. You can use this file to fix issue if something is off in json file. 8.3. If above doesn't help then you can use services (classes: TypeService, MultiplicationService, JsonUpdateService, FilterService). If you identify that updating the source code in those services will help then do so. 8.4. If above doesn't help - update classes which are responsible for generating C# source code for .NET wrappers - Generator or HighchartsGenerator 8.5. Go back to point 5 if issue is not fixed
- When issue is fixed make a copy of project HighchartsStandard on side
- Remove files from HighchartsStandard\CodeGeneration
- Copy files from \bin\Debug\CodeGeneration\Highcharts to \HighchartsStandard\CodeGeneration
- Build HighchartsStandard in Visual Studio if that fails fix the issue or just go back to 5
- Run unit tests from Visual Studio
- Update release notes and version on properties for HighchartsStandard
- Change configuratin solution on Release
- Build HighchartsStandard
- Take the latest (for current build) nupkg file (Highsoft.Highcharts.X.Y.Z.nupkg) and upload on NuGet
- Run DoxyWizard, specify working directory (click Select and Select Folder). Define: Project name, Project version, Source code directory - select \HighchartsStandard\CodeGeneration, Destination folder, Documented Entities Only, Optimized for C#, HTML with navigation panel, turn off LaTeX, No diagrams and click Run Doxygen to generate API documentation
- Go back to point 5 and repeat all steps for Highstock .NET
List project standards/conventions
C# most common naming convention.
List commit and PR standards, and generating a ChangeLog
No pull requests. ChangeLog is updated in properies of projects: HighchartsStandard and HighstockStandard.
Write instructions for contributors
SourceCodeGenerator folders:
- CodeAddOns contains unique classes
- CodeTemplates contains templates used to generate classes, enums, properties
- Generators contains main classes which are responsible for generating C# code for Highcharts .NET and Highstock .NET
- JsonFiles contains json files downloaded from https://api.highcharts.com/highcharts/tree.json
- Logs contains files used to updated changes in comparison to previous version
- Parser contans classes responsible for parsin json file
- Services contains classes responsible for update objects after parser
Write instructions for writing tests
Old tests are written using nUnit and newer with using xUnit. Most of tests are spread between UnitTests_HC and UnitTests_HS to be able build and test f.e. only Highcharts library or only Highstock library. Proper test may be found easly by naming convention of classes and testing methods.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
11.4.6.5 | 1,356 | 12/4/2024 |
11.4.6.4 | 15,457 | 8/18/2024 |
11.4.6.3 | 9,594 | 7/28/2024 |
11.4.6.2 | 1,737 | 7/28/2024 |
11.4.6.1 | 1,935 | 7/25/2024 |
11.4.6 | 2,064 | 7/23/2024 |
11.4.1 | 20,164 | 4/30/2024 |
11.3.0 | 18,209 | 2/26/2024 |
11.2.0 | 32,245 | 12/3/2023 |
11.1.0.2 | 15,568 | 9/19/2023 |
11.1.0.1 | 7,931 | 8/24/2023 |
11.0.1.1 | 28,413 | 6/2/2023 |
Updates in JS libraries affect the Highcharts.NET and Highstock.NET. Review first: https://www.highcharts.com/documentation/changelog
#11.4.6.5
Fix Chart
#11.4.6.4
Fix ExportingMenuItemDefinitions, ExportingButtonsContextButton.MenuItems
#11.4.6.3
Fix GetJavascript and GetJavascriptFunction.
#11.4.6.2
Used CustomFields must be initialized.
#11.4.6.1
Fix rendering for Blazor.
#11.4.6
Every used object must be initialized. Fix ColumnSeries.
#11.4.3
Fix MinorTickInterval, TitleAlign, RangeSelectorButtonDataGrouping
#11.1.0.2
Fix multiple Marker, DataLabel, DragDrop, Tooltip objects
#11.1.0.1
Fix PinchType, PlotShadow, Position3d, Chart.Height, Breaks, PlotOptionsSunburstDataLabels, PlotOptionsPyramidDataLabels, PlotOptionsPieDataLabels, OrganizationSeriesNodes, StatesHover, StatesInactive, StatesNormal, StatesSelect
#10.3.3.2
Add solution for JS v11
#10.3.3.1
Add Custom Fields to Highstock .NET
#10.2.0.1
Fix Legend.Enabled
#9.2.2.2
Add solution for Blazor
#9.1.2.2
MenuItem fix.
#9.1.2.1
Add support for multithreading
# 8.2.2.3
Fix Animation and PointPlacement
#Version 8.2.2.2
Fix Opacity, YAxisLabels, MenuItem, functions
#Version 8.1.2.4
Fix States objects
#Version 8.0.0.3
Product key is no required
#Version 8.0.0.2
Fix events
#Version 8.0.0.1
Fix YAxisLabels
#Version 7.2.1.1
Performance improvements
#Version 7.2.0.2
Add serial key management for .NET Core
#Version 7.1.3.1
Fix multiple the same type events bug
Please note that upgrading the wrapper to version 7.1.1.1 may require some changes in your application. Please see http://dotnet.highcharts.com/Highcharts/Demo/Docs?section=UpgradeToStandard for more details.