This is kinda a general question for the development community, since there are lots of experienced devs here.
I'm currently building a developer utility addin module which requires code to exist in applications which will be adopting it. I'm looking to support at least native C++ and .NET applications initially, with support for other languages by demand. The target market will be Windows initially, but with Linux support ASAP afterwords. I want to make the client integration piece as seamless as possible, to facilitate maximum adoption. The interface itself is fairly simple.
What do you, as developers, need to have and/or like to see in third-party libraries you integrate with?
Some things I'm already going for:
- Supported configurations for static/dynamic linking of the C-runtime library
- Automatic selection of proper library to link to, with automatic linking through a header file (eg: #pragma comment( lib, "..." ))
- Minimal dependency configurations (eg: no MFC/ATL) supported, but also library-specific modules to ease integration with projects which use the libraries (eg: MFC-style interface)
- Documentation (obviously)
- Simple demo projects to show usage for as many configurations as feasible
My question is similar to this question about integrating with third-party libraries, but from the other side. As the library developer, I want to know what would make the best API/structure to integrate with.
What other things do you like to see in libraries you integrate with? What are the make/break elements?