Learn about significant new features in NCache 4.9 improving ease-of-use and integrating new .NET technologies. Importantly, NCache 4.9 stores ASP.NET Core Sessions as well as ASP.NET Session State, and caches ASP.NET View State in multi-server environments.
Latest features are in red. For a comprehensive list of all features in NCache, please read NCache Features.
Split-Brain is a situation where due to temporary network failures between cluster nodes result in multiple sub clusters. Each sub cluster, in this case, has its own coordinator node and does not know about the other sub clusters. This can eventually result in inconsistent data.
With NCache 4.9, users can enable the cache clusters to automatically recover from Split-Brain scenarios.
NCache's implementation of IDistributedCache utilizes Distributed Cache Tag Helper that provides the ability to dramatically improve the performance of your ASP.NET Core app by caching its responses.
There is 20-25% performance improvement in basic ADD, INSERT and GET cache operations.
Open Source and Community editions have now same client API as Enterprise edition has. That means, all Enterprise developer features are now also available in Open Source and Community editions.
NCache 4.8 introduces a FREE Community Edition. The Community Edition is the NCache Open Source Edition with optional, world class phone and email technical support, available during business hours.
To take advantage of the Community Edition with its optional Support, activate FREE cache server licenses on the download page (NCache clients need no license activation).
NCache provides a totally native .NET Core Client that can run on both Windows and Linux. The NCache .NET Core Client supports InProc and OutProc Client Cache, on both Windows and Linux.
On Windows, the NCache .NET Core client is installed through a Windows Installer (.msi). On Linux, the .NET Core client is provided through a .tar.gz installer.
NCache fully supports Docker for cache clients, in addition to cache servers. This enables .NET applications deployed in Docker to seamlessly include the NCache Client. Docker support enables deployment of all NCache servers in the caching tier in Docker and makes NCache deployment very easy.
NCache Server and NCache Client are both available in the Docker Hub to include in your Docker configuration.
NCache provides full ASP.NET Core support, in addition to the previously available ASP.NET in the .NET Framework.
NCache includes a powerful ASP.NET Core Session Provider that has more features than the regular ASP.NET Session Provider. And, it supports the IDistributedCache interface in ASP.NET Core.
The Publish/Subscribe (Pub/Sub) messaging paradigm is provided where a publisher sends messages into channels, without knowing the subscribers (if any). And subscribers receive only messages of interest, without knowing who the publishers are.
NCache provides named Topic support through which a publisher sends messages to multiple subscribers or to any one among them. And, subscribers can subscribe to a named Topic, and its callback is called by NCache when a message arrives against this Topic.
NCache has very easy to use EF Core 2.0 Extension Methods that cache application data fetched through EF Core 2.0. Although Extension Methods require some minimal coding, it is a small effort and it yields a lot of control over which data to cache and for how long.
All communication from NCache clients to NCache servers can now be optionally secured through TLS 1.2 (a newer specification than SSL 3.0). TLS is the same protocol used by HTTPS to ensure a secured connection between the browser and a web server.
TLS 1.2 ensures all data traveling between NCache clients and NCache servers is fully encrypted and secured. Please note that encryption/decryption on NCache clients and NCache servers has a slight performance impact.
NCache has a rich set of command line tools (along with powerful GUI-based management tools). With NCache 4.8, all NCache command-line cache management tools are implemented in PowerShell, allowing for very sophisticated cache management.
Traditionally, NCache provided client/server licensing, requiring both cache clients and cache servers to be licensed. Going forward, NCache provides a “server-only” license option, with the cache clients included in the server license. The server-only licensing option is available from your account manager.
Some firewalls break idle network connections, causing problems in cache client-to-cache server communication in NCache. The Cache Client Keep Alive feature, if enabled on a client node, automatically sends a lightweight packet to the cache servers at a configurable interval (a sort of heart-beat). These packets are sent only in case of “no activity” between clients and servers and therefore do not interfere with regular client/server traffic.
The GUI-based NCache management tool (called NCache Manager) used to retain cache configuration information inside its project file. This causes data integrity issues if multiple cache configuration modifications were input on different machines. To avoid this, NCache Manager no longer stores any cache configuration information inside its project files. Instead, all configuration information is kept on common cache servers, accessed from any location.
With NCache 4.6 SP3, the cache can distribute messages across all applications that use SignalR provider deployed on any combination of NCache servers and clients.
NCache now supports ASP.NET session storage provider for ASP.NET Core applications.
The client cache is optimized to synchronize itself with the clustered cache. Instead of receiving an event on each update made to the clustered cache, the client cache receives events in bulk at a configurable interval. This reduces traffic and memory usage.
A new API is introduced to monitor cache clients connected with a cluster. Using this API, a list of connected clients can be fetched, and notifications can be registered when any new client connects or any existing client disconnects.
The NCache bridge topology can now have caches with identical names.
The cache loader in NCache can now run on multiple nodes which speeds up cache loading.
FIPS-Compliant AES encryption is introduced in SP2.
NCache ASP.NET session storage provider for ASP.NET Core applications is now supported.
MapReduce in NCache will allow developers to write programs that process massive amounts of unstructured data in parallel across a NCache cluster. To distribute input data and analyze it in parallel, MapReduce operates in parallel on all nodes in a cluster of any size.
Aggregator processes data records and returns compiled results. It groups values from multiple sources and can perform variety of operations like sum up values, calculating averages, finding minimum/maximum values etc. and returns single result.
Entry Processor: NCache provides the ability to execute users' code on server side against a set of cache entries. Entry processors can modify cache entries on the server side without involving these entries to travel on the network for fetch and update operations.
NCache 4.4 SP2 can be upgraded to NCache 4.6 without losing any data using its Bridge topology.
Data Reader: Queries can now be executed on cache using data reader just like the databases do. Using data reader, result set can be retrieved from servers in multiple chunks of configurable size. This approach gives a better performance and uses less memory on client end.
Order-by-Clause: Select statements can now have orderby clause which will return the result set sorted on one or more specified attributes.
A GUI tool to view and monitor logs generated by NCache server and clients in one place. Log files of all servers can be viewed in same tool. The tool can filter log entries and important log entries can also be bookmarked.
Object Data Format: NCache cache can now be configured to store data in objects form. By default, all data is stored in binary form.
Separate Process for Cache: Each cache in NCache is now hosted in its own process which runs independent of all other caches. Management of this process is done via NCache service which has information about all the cache processes running on the machine.
Cache Level Default Expiration: User can now configure NCache with default named expirations. NCache server will use default expirations when items are either inserted into cache without any expirations or inserted explicitly with named default.
NCache now provides a tool through which a dump of the cache data can be written to a location specified by the user. This tool is designed for customers that need to restart their cache servers and they want to save their business critical data being held in the cache before restarting. The DumpCacheData tool enumerates cache data in a running cache and stores this data to any specified location. This data can then be reloaded to a new cache or the same cache.
NCache provides integration with the popular .NET utility, LINQPad so you can use LINQPad to query cache data. The resulting data is shown in the LINQPad console in tabular form. LINQPad is a software utility often used to interactively query SQL databases using LINQ, as well as to interactively write C# without the need for an IDE.
Some settings in NCache can now be changed on running caches without the need to restart the cache. We call this "HotApplicable". Previously, changing settings in the service configuration file, such as NCacheServer.LicenseLogging and NCacheServer.EnableDebuggingCounters required restarting the cache. The list of HotApplicable settings are provided here.
NCache can now be integrated with Visual Studio 2010/2012/2013 (Enterprise). Basic management and configuration operations can now be performed within the Visual Studio. NCache Developer installation now comes with an 'NCache Manager' extension which helps developers manage NCache from Visual Studio.
Entity Framework 6.0 and 6.1 integration is provided in NCache. NCache also provides caching extensions for Entity Framework 6.0 which allows developers more control over which entities to cache. This is available for developers who want greater control over the entities being cached, as an alternate to the 'no-code-change configuration' option.
NCache is certified for Windows Server 2012 R2. It has been tested by Microsoft's approved tester and passed all compatibility tests. Microsoft validated that NCache works in accordance with Microsoft's standards.
NuGet is a package manager for Microsoft Visual Studio development in .NET. The NuGet Gallery is a central repository of all NuGet packages.
A NuGet package is provided for developers to build applications using NCache without installing NCache on their machines. With this package, developers can write their applications using an NCache API and test them with InProc cache. This gives you full control to use NCache SDK without installing it.
NCache is also available as Open Source. NCache Open Source is released under the Apache 2.0 Open Source license. This provides the .NET developer community with unrestricted access to a truly elastic native .NET Distributed Cache. For more details please refer to the Edition Comparison page.