Reference Designs and Reuse Code are code components and templates useful in the development of new applications and systems, and are developed and published by various teams at National Instruments.
Reference Designs provide programming guidelines and illustrate best practices for the design and development of application components or whole applications. They are intended to be used as a template or starting point for your application design and architecture, and to be customized in the process of developing your application. They may also be used as a educational tool to teach or learn specific recommended design practices.
Reuse Code, which includes libraries and frameworks, are programming components that provide common application functionality and can be used without customization in your application. Reuse code components are generally provided with source code and are licensed such that developers can customize and adapt them to meet their application-specific needs.
We organize reference design by Type, Application Segment and Development Topic to make it easier to find the content applicable to your needs. These categories are shown on the main Reference Design Portal page.
Reference Design Types
Application Architectures and Frameworks include reference designs and reuse components that address the design of complete applications. They address application-level design concerns such as inter-process communication, error handling, startup and shutdown procedures, etc.
Design Patterns and Templates address common design decisions for subsystems of an application and may provide alternative design choices to your current methodologies.
Libraries and Components are reuse components that can directly be used in your application without modification. They normally address more specific aspects of an application such as data communication, data logging, processing, timing, etc. While these reuse libraries are not considered products, they are similar in scope to toolkits or other product add-ons.
Tools and Utilities provide enhancements to the programming experience, either by adding functionality to your programming or configuration environment, or by providing turn-key utilities useful during the development process.
authored by Christian L, CLA Systems Engineering Manager - Automotive and Transportation NI - Austin, TX