RSS Feed
Latest Updates
Nov
24
SciChart WPF v5.2.1.11757 Released
Posted by Andrew on 24 November 2018 03:04 PM

We are pleased to announce the release of SciChart v5.2.1. Build 11757 . This is maintenance version which includes a number of  bug fixes and improvements. It is strongly advised for users of SciChart v5.x to upgrade to this version, which is a drop-in replacement. 

What’s New in SciChart WPF v5.2.1?

Bug Fixes and Improvements
  • SC-4730 Fixes SciChart WPF Licensing Wizard not found in Start menu after installation
  • SC-4742 AccessViolationException in WriteableBitmapExtensions.FillRectangle
  • SC-4740 Heatmap crash with export and colormap defined inside of series
  • SC-4738 Huge font for superscript axis labels for certain regions
  • SC-4736 SciChart.ExternalDependencies resources don’t work from NuGet
  • SC-4721 When AxisBinding MVVM API used, and HorizontalGroupHelper.HorizontalGroup, XAxis is blank
  • SC-4687 Rarely broken bindings due to ElementName bindings
  • SC-4728 ExportToStream ignores size parameter,
  • SC-4724 Add handling of SetBasePoint nullreference exception
  • SC-4725 Fixed Fix SetBasePoint for DrawingTools
  • SC-4654 Fixed DrawingTools: PitchFork fill outside the annotation
  • SC-4653 Fixed DrawingTools: PitchFork disappearing fill
  • SC-4652 Fixed DrawingTools: Head & Shoulders disappearing fill
  • SC-4663 Fixed DrawingTools: FreeDraw – quite hard to hit-test for dragging
  • SC-4678 Fixed FreeDraw DrawingTool – cannot delete or change it when selected second ime
  • SC-4661 DrawingTools: add FontSize to PaletteControl for Fibonacci annotations
  • SC-4680 Contours With Heatmap – tooltip always report ZValue as NaN
  • SC-4658 DrawingTools: hit-test should work when clicked on a filled area of an annotation
  • SC-4668 Realtime Waterfall 3D crash
  • SC-4677 Fixed CursorModifier SnappingMode stopped working
  • SC-4060 Application crash after multiple load & export
  • SC-4607 always pass in texture width and height of sprites, wo when sampling the offsets are taken properly
  • Fixed the issue when RenderableSeries.GetXRange() would throw if the DataSeries wasn’t assigned
  • SC3D-481 ColumnRenderableSeries3D won’t draw if PointMetadata is not provided and XyzDataSeries3D used
  • SC3D-480 PointLineRenderableSeries3D line color does not respond to PaletteProvider
  • SC3D-479 Camera3D properties have DependencyProperty Precidence issue and cannot be bound when SciChart3DSurface inside a control template
  • SC3D-478 When Theme Changes series are sometimes removed in SciChart 3D
  • Fixed incorrect 3D text rendering, where string contains characters from different Unicode pages
  • Added ContextMenu binding from internal annotations to DrawingTools annotations
  • VHN-744-33548 Fixes PointLine 3D line color
  • Made the GetIndicesRange method virtual
  • In WaterfallSceneEntity switched coordinates calculation from float type to double, to increase a precision
  • [SVW-595-49808] Error in Gradient Fill Direction Along Y Axis
  • [QTL-387-74220] 3D charts with DateTime Z axis issues
  • Fixed the issue when an OHLC data series has all data points as NaNs and AutoRange would not work correctly for all other series
  • Improved SciScrollBar when with DiscontinuousAxis
  • Added missing XML comments on AnnotationCreationModifierForMVVM
  • Fixes binding errors in DefaultAxisTitle in some systems which use SciChart with MVVM API. Improves performance of SeriesBinding MVVM API
  • Added MVVM Series Performance Test to TestSuite
  • [VTL-700-11872] Assertion Failed – Matrix Stack overflow
  • [SKX-960-39374] Waterfall _heightsTexture wasn’t recreating on data series dimensions change
  • Avoided using ElementName in data binding that causes some issues in the Simple Waterfall Example (known WPF bug)

Where to Get SciChart WPF v5.2.1?

SciChart WPF v5.2.1 is available from:

Please ensure you uninstall the previous version(s) of SciChart before installing v5.2.1 as this can prevent some issues in the upgrade process!

GET SCICHART WPF v5.2.1

 

Best regards,
SciChart team

The post SciChart WPF v5.2.1.11757 Released appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Nov
23
SciChart is Hiring! WPF Developers x2, Fintech/Trading Server Side x1
Posted by Julia Skorobogata on 23 November 2018 01:00 AM

In February of next year, SciChart will complete it’s seventh year of providing high performance, flexible & visually impressive WPF charts to customers around the world. We’re really proud of what we’ve achieved as a startup which initially formed in 2010 by one person, with no capital, debt or investors, to serve now almost 6,000 customers worldwide, have a turnover in excess of a £1m pounds ($1.4mm USD) / year, high profitability margin and fiscal growth of 600% over the past 7 years.

It’s a fact that our company is continuing to grow and we’d like to expand our team, adding +3 headcount to our C# team for the following roles.

C# WPF / UWP Developers x2

WPF Custom Control Development

Job specification on Upwork

You will be joining our team of C# WPF developers to work on SciChart: High Performance Realtime Charts for Financial, Medical & Scientific Apps.

Over the next year we intend to be adding features including:

  • Multi-threaded rendering with async/await
  • Animations & Effects
  • New 2D & 3D Chart Types
  • .NET Core 3.0 Support

You will be part of the team responsible for delivering these features. Also you will work with customers in written English as we encourage direct contact with customers for tech support over email.

There are learning & development opportunities to cross over into our other technologies / business areas, including:

  • iOS 2D & 3D Charts (Objective-C, Swift)
  • Android 2D & 3D Charts (Java, Kotlin)
  • Xamarin & (Future) Xamarin.Forms Charts
  • (Future) WebGL based charts
  • Consultancy & application development for customers of SciChart

 

C# / .NET Core / Rx Developer

Fintech / Trading Server Side 

Job Specification on Upwork

SciChart is embarking on an ambitious multi-year project for one of our clients to develop a cross-platform, multi-asset trading system which will utilise our High Performance Charts in WPF, as well iOS & Android (mobile) platforms. This is a green field application with a chance to develop something incredible from the ground up.

Technologies will include:

  • C# / .NET Core Server application for cloud deployment
  • Live streaming of financial prices from multiple exchanges
  • SignalR / Websockets for push notifications
  • Rest / Swagger
  • Strong emphasis on Rx (Reactive Extensions) and Tpl (async/await)
  • MongoDB
  • SQL Server (T-SQL)

In addition, there may be opportunity later in the project to work on other aspects of the system including

  • Python trade scripting
  • Algorithmic Trading
  • Machine Learning
  • Mobile or Windows clients

A background in trading and knowledge of Rx / TPL is a must. For this position we’re looking at expert level developers who want to join a challenging, long term project.

 

How to Apply

Both jobs are listed on Upwork under SciChart, however we also encourage direct applications by contacting us with a CV and cover letter. If you do apply make sure to include relevant samples of work, as much evidence as possible as to why you’re the right candidate, and also why you want to work for us!

Where are we located?

Our offices are based south of London, U.K. as well as Lviv, Ukraine.

We welcome flexible work and remote work if the candidate is right!

 

Best regards,

[SciChart Team]

The post SciChart is Hiring! WPF Developers x2, Fintech/Trading Server Side x1 appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Nov
22
SciChart iOS v3 will support Metal, 2D & 3D Charts, OSX
Posted by Andrew on 22 November 2018 11:30 AM

SciChart iOS currently uses an in-house rendering engine which relies on OpenGL ES for hardware acceleration. While OpenGL ES is currently supported by iOS 12 devices, Apple has announced that they are deprecating OpenGL across all operating systems in the future. Exactly when that will occur we don’t know, but for now OpenGL ES and SciChart is compatible with all Apple devices.

We have been asked a few times by customers, and potential customers whether we intend to support Metal, the new proprietary graphics API by Apple, and the answer is yes, SciChart iOS v3 will support Metal on iOS and OSX.

This work to support Metal has been in progress for a while and is almost complete.

Our in-house rendering engine which uses C++ on Windows, Android and iOS and provides an abstraction layer to multiple underlying graphics APIs including OpenGL, OpenGL ES, DirectX and now Metal. The fact that we use an abstraction layer for drawing 2D & 3D Charts means we can also support new rendering technologies such as Vulkan should they become the only option on Android devices.

Be looking out for announcements and news on our site in the coming months! We are really excited to bring our 3D Charts to iOS/Android/OSX platforms and to continue building our vision of cross-platform native charts for the financial, scientific & engineering industries!

Our implementation of Metal for drawing will be packaged and published with SciChart iOS/Android v3, which will include 2D & 3D charts and is due for release in Spring 2019. 

The post SciChart iOS v3 will support Metal, 2D & 3D Charts, OSX appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Nov
7

A while ago we announced we had open sourced the small but useful WPF Transitionz library for Metro Style Animation effects in WPF applications. To our surprise this now has over 5,000 downloads on NuGet.org and even received a couple of questions & bug reports via the Github repository!

We’re using the four libraries in SciChart.Wpf.Ui in our SciChart WPF Examples Suite, and also starting to use them in consultancy projects, so we’ve updated them for 2018 to be compatible with .NET Standard 2.0 and .NET 4.6.1, plus fixed a number of bugs & added other improvements.

What’s in SciChart.Wpf.UI ?

So what’s in this mysterious collection of open source libraries? A quick run-down below.

SciChart.UI.Bootstrap

Supporting .NET Standard 2.0 / .NET Framework 4.6.1 and above, this library includes bootstrapper classes for WPF Applications using Unity and allowing automatic dependency discovery across a range of assemblies.

See the Bootstrap Library Overview page at SciChart.Wpf.UI.

To use it,

  1. Decorate your types with the [ExportType] attribute
    	public interface IFoo
    	{
    	}
    
    	// This type is automatically registered with the Unity Container
    	// Every time IFoo is resolved, you get a new instance
    	[ExportType(typeof(IFoo))]
    	public class Foo : IFoo
    	{
    		// Any other registered dependency can go in the constructor
    		public Foo(IUnityContainer container)
    		{
    		}
    	}
    
  2. Create a Bootstrapper and initialize public partial class App : Application
        public partial class App : Application
        {
            private AbtBootstrapper _bootstrapper;
    
            public App()
            {
                _bootstrapper = new AbtBootstrapper(new UnityContainer(), new AttributedTypeDiscoveryService(new AutoAssemblyDiscovery()));
                _bootstrapper.Initialize();
    
                 // At this point, your container now contains all the types decorated with [ExportType] attribute
                 // You may resolve them as normal in Unity 
            }
        }
    
  3. Now your application has UnityContainer powered dependency injection in just a few lines of code!

 

SciChart.UI.Reactive 

The SciChart.UI.Reactive library supports .NET Standard 2.0 / .NET Framework 4.6.1 and above provides observable viewmodels which combine INotifyPropertyChanged event notifications for WPF, and Reactive IObservable streams for observing individual, or combinations of properties.

See Reactive Library Overview and Reactive Library WhenPropertyChanged wiki pages.

The main benefit of this library is that it brings the incredible power of Reactive Extensions to MVVM in WPF applications. You declare a class like this:

public class WhenPropertyChangedTests : ObservableObjectBase
{        
    public string SearchText
    {
        get => GetDynamicValue();
        set => SetDynamicValue(value);
    }

    public SearchOptions SearchOptions
    {
        get => GetDynamicValue();
        set => SetDynamicValue(value);
    }
}

and now any of these properties raise both PropertyChanged events as well as a reactive stream (IObservable<T>). You also don’t have to create a backing field making all your properties, these are stored in the base class (ObservableObjectBase) in a dictionary.

Properties may now be observed using Reactive Extensions as follows:

void Foo()
{
	// Create the ViewModel
	WhenPropertyChangedTests vm = new WhenPropertyChangedTests();

	// Observe properties
	var observable1 = vm.WhenPropertyChanged(x => x.SearchText);
	var observable2 = vm.WhenPropertyChanged(x => x.SearchOptions);

	// Subscribe 
	var disposable = observable1.Subscribe(t => Console.WriteLine($"Search Text = '{t}'"));

	// Set properties 
	vm.SearchText = "Hello"; // -> Should output 'Search Text = 'Hello'' to console
	vm.SearchText = "World"; // -> Should output 'Search Text = 'World'' to console

	disposable.Dispose();

	vm.SearchText = "Not observed"; // nothing happens 
}

and multiple properties may be observed using Observable.CombineLatest

void Foo()
{
    // Create the ViewModel
    WhenPropertyChangedTests vm = new WhenPropertyChangedTests();

    // Observe properties
    var observable1 = vm.WhenPropertyChanged(x => x.SearchText);
    var observable2 = vm.WhenPropertyChanged(x => x.SearchOptions);

    // Subscribe 
    var disposable = Observable.CombineLatest(observable1, observable2, Tuple.Create)
        .Subscribe(t => Console.WriteLine($"Search Text = '{t.Item1}', Options = '{t.Item2}'"));

    // Set properties 
    // 

    // -> Should output 'Search Text = 'Hello', Options = 'AnOption'' to console
    vm.SearchText = "Hello";
    // -> Should output 'Search Text = 'Hello', Options = 'AnotherOption'' to console 
    vm.SearchOptions = SearchOptions.AnotherOption;
    // -> Should output 'Search Text = 'World', Options = 'AnotherOption'' to console
    vm.SearchText = "World";

    disposable.Dispose();

    vm.SearchText = "Not observed"; // nothing happens 
}

If you haven’t checked out Reactive Extensions yet and seen what it can do for your WPF applications, or even server-side applications, then do so. It’s brilliant!

Learning resources:

SciChart.WPF.UI.Transitionz

The Transitionz library seems pretty popular with WPF developers as it provides a very simple way to animate elements on the UI with just Xaml attached properties.

Transitionz supports WPF / .NET 4.6.1 and above and allows the following effects in your application:

  1. Fade / Animate Opacity
  2. Translate / Animate position
  3. Scale / Animate size
  4. Blur / Animate blur factor

All Transitionz animations may be triggered on:

  1. On Visibility (e.g. Animate opacity on visibility changed)
  2. On DataContextChanged (e.g. trigger an animation when new DataContext attached)
  3. On Loaded (e.g. when the control.Loaded event fires)
  4. or .. Once (e.g. consider OnLoaded will fire each time the control is loaded, wheareas once ensures just one-time operation)
  5. Explicity, by binding to or setting Transition Params

Head over to the Transitionz Library wiki page for more information. We also have a small test-app bundled with SciChart.WPF.UI which demonstrates this functionality.

Transitionz WPF Animation Library

 

SciChart.WPF.UI

The SciChart.Wpf.UI assembly supports WPF / .NET 4.6.1 and above, and brings a number of useful controls to WPF applications, and metro styles based on MahApps.Metro. Controls include:

  • BusyPanelA panel which displays a spinner / hides content while BusyMessage is not null, shows the content when BusyMessage is null.
  • PopupHostA control to host popups which can be shown inside a WPF app with animated show & hide. The background can be blurred out or made darker, similar to a web popup.
  • WarningDialogA Metro-style warning dialog which pops up to prompt the user, and provides some Yes/No/Ok/Cancel buttons
  • Miscellaneous controls and classes, such as the LabelControl, ExceptionViewer,

 

SciChart.WPF.UI BusyPanel and Popups

 

Where to Get it

The SciChart.WPF.UI libraries are free & open source and may be used in commercial projects under the Apache 2.0 license. Packages are published to NuGet.org and source code is available on Github.

 

About Us

SciChart is a self-funded and profitable startup based in London, U.K., which specialises in High Performance, Realtime Chart controls as well as expert consultancy in complex .NET UI / Server applications.

Connect with me on LinkedIn to find out more about our background and capabilities. If you have a bespoke requirement and want to hire our world-class consultants, then get in touch!

 

 

The post Open Source SciChart.UI.Reactive and SciChart.WPF.UI.Transitionz v2.1 Released appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »



Nov
2
Performance debugging: Improving the speed of charts when many NaN
Posted by Andrew on 02 November 2018 12:33 PM

In this video below we have taken an example provided by a customer and shown how to improve the performance of SciChart from stuck UI to real-time when there are several series with millions of points and a high proportion of NaN gaps.

The direct video link is here.

If you have a performance issue with SciChart, and you are in support-subscription, then feel free to contact our tech-support team and we will be glad to help!

Best regards,
Andrew

The post Performance debugging: Improving the speed of charts when many NaN appeared first on Fast, Native Chart Controls for WPF, iOS, Android and Xamarin.


Read more »




CONTACT US

Not sure where to start? Contact us, we are happy to help!


CONTACT US

SciChart Ltd, 16 Beaufort Court, Admirals Way, Docklands, London, E14 9XL. Email: Legal Company Number: 07430048, VAT Number: 101957725