Alachisoft has offered a heavily stripped down version of their NCache product under the Apache 2 open source license. This version only supports .NET clients; unlike the full version while also has support for Java.

The feature list for NCache Enterprise edition is what you would expect from a leading cache provider. But once you get down to the open source version, there are some notable holes that make one wonder if the product is usable.

For the open source version, caches can be replicated or partitioned. Mirrored, bridged, and combinations of both replication and partitioning are reserved for the enterprise version.

For ASP.NET applications, session and view-state caching is supported, but output caching is an enterprise only feature. (As mentioned before, any kind of caching for Java including web sessions is also enterprise only.)

Cache dependencies are likewise enterprise only. This feature allows changes to monitored items such as file systems and database tables to automatically invalidate the cache. The choice to make this feature not open source seems unusual because the components needed to make it work were part of .NET 2.0’s built-in caching libraries.

Another strange choice was the decision to only support async operations in the enterprise edition. These days it is assumed that only unmaintained, legacy libraries don’t offer asynchronous operations.

The eviction policies are, for a lack of a better term, bizarre. The open source version of NCache only supports priority-based eviction. Standard policies such as least-recently-used and least-frequently-used, usually considered a college homework assignment, are considered to be enterprise only. The “Do Not Evict” option is also enterprise only, which seems like it could be a problem for scenarios such has storing session state.

The management and monitoring tools are available only for the professional and enterprise editions, which is typical for products like this.

Moving on, we find that any kind of authentication and authorization is an enterprise-only feature. For any company that is the least bit security conscious, this makes the open source version of the product a non-starter.

Conclusion. If you are interested in seeing how a distributed cache is implemented, the open source version of NCache is worth investigating. But for any kind of production use, NCache Enterprise or a competing product such as Memcached is preferable.