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                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Highsoft.Highcharts" Version="11.4.6.5" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Highsoft.Highcharts --version 11.4.6.5                
#r "nuget: Highsoft.Highcharts, 11.4.6.5"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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

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.

  1. Download json file https://api.highcharts.com/highcharts/tree.json
  2. Remove highcharts_old.json file from SourceCodeGenerator project from JsonFiles folder, rename highcharts.json on highcharts_old.json
  3. Add downloaded json file to SourceCodeGenerator project to JsonFiles as highcharts.json.
  4. Set SourceCodeGenerator project as Startup Project
  5. Build and execute SourceCodeGenerator
  6. Generated code goes to \bin\Debug or \bin\Release
  7. Use WinMerge to compare \bin\Debug\CodeGeneration\Highcharts and source code for current version from \HighchartsStandard\CodeGeneration
  8. 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
  9. When issue is fixed make a copy of project HighchartsStandard on side
  10. Remove files from HighchartsStandard\CodeGeneration
  11. Copy files from \bin\Debug\CodeGeneration\Highcharts to \HighchartsStandard\CodeGeneration
  12. Build HighchartsStandard in Visual Studio if that fails fix the issue or just go back to 5
  13. Run unit tests from Visual Studio
  14. Update release notes and version on properties for HighchartsStandard
  15. Change configuratin solution on Release
  16. Build HighchartsStandard
  17. Take the latest (for current build) nupkg file (Highsoft.Highcharts.X.Y.Z.nupkg) and upload on NuGet
  18. 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
  19. 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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,375 12/4/2024
11.4.6.4 15,478 8/18/2024
11.4.6.3 9,602 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,932 8/24/2023
11.0.1.1 28,417 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.