TABLE OF CONTENTS
- Reason for Availability of Two Formats
- Core Znode Libraries
- SDK Format
- Source Code Format
- Developing with Both Formats
Znode is distributed in two formats, an SDK* format, and a Source Code* format. This page describes the differences between the two formats to help a Znode developer decide which format is right for their use case.
*Note that the links on this page may show 404 not found, as the SDK and Source Code repositories require Amla's permission to access.
Reason for Availability of Two Formats
Znode is a large platform with lots of functionality that covers most standard use cases encountered in eCommerce stores. At the same time, Znode can be easily extended with custom behavior to handle additional use cases.
The availability of the two formats offers the transparent debuggability of the full source code, while also enforcing clean implementation practices in the SDK. Implementing custom work in the SDK ensures easier upgrade paths to newer versions of Znode.
Core Znode Libraries
Core Znode libraries are maintained within the full source code and then referenced from the SDK.
Note that regardless of whether working with the full source code or the SDK, the output build artifacts have the same Znode application functionality. Subsequent sections in this document compare/contrast the two formats of Znode in more detail.
SDK Format
One format in which Znode is distributed is as an SDK, available in the SDK repository.
The SDK Visual Studio Solution contains ~15 projects. Many core Znode libraries are pre-packaged as NuGet packages and referenced from this solution.
Do use the SDK to implement all customizations for specific customers/implementations.
Don't use the SDK to try to debug errors originating from the core Znode libraries.
Source Code Format
The other format in which Znode is distributed is the full source code, available in the Source Code repository.
The full source code Visual Studio Solution contains ~40 projects. There are more projects in this solution than the SDK solution due to the core Znode libraries' source code residing in the solution as opposed to being published through NuGet.
Do use the full source code if necessary to debug errors originating from the core Znode libraries.
Do use the full source code to debug API methods when necessary to learn more about the API method's inputs/outputs/behavior.
Do use the full source code to implement potential fixes to submit pull requests for bugs or undesirable behavior found in the core Znode libraries.
Don't use the full source code to implement any custom functionality for customers.
Developing with Both Formats
When developing a Znode implementation for a customer, it is common to have both the SDK and full source code setup on the developer's machine.
Both Visual Studio solutions may be open simultaneously, but only one solution should be run at a time. To efficiently switch between solutions, the same key configuration settings can be mirrored between the two solutions so that Elasticsearch, MongoDB, and SQL databases are shared between both the SDK and Full Source solution.