Estoy trabajando en un proyecto de biblioteca .NET, que contiene un conjunto de interfaces que pueden ser consumidas por un servicio, que también estoy creando. Los usuarios del servicio proporcionarán implementaciones de las interfaces de la biblioteca, que luego se inyectarán en la aplicación de servicio.Cuándo incluir/copiar código de terceros, en lugar de referencia/vincularlo?
Mi biblioteca se basa en una biblioteca de terceros, que por supuesto necesitaré hacer referencia. Una de las interfaces en mi biblioteca utiliza tipos de terceros en sus firmas de métodos. Esto significa que los implementadores de esta interfaz particular también necesitarán hacer referencia a la biblioteca de terceros. Mi preocupación es que esto agrega fricción, lo que distrae al usuario de hacer el trabajo que realmente debe hacer, implementar esa interfaz.
Una solución a este problema sería incluyen los archivos de origen de la biblioteca de terceros de construcción, en lugar de que hacen referencia a ella como un conjunto separado. Soy consciente de que esto podría hacer que sea un poco más difícil para mí integrar las actualizaciones del código de terceros en el futuro, pero aparte de eso, ¿hay alguna razón por la que no deba considerar esta opción? ¿Cuándo incluye código de terceros en lugar de referenciarlo?
Notas: La biblioteca de terceros en cuestión es bastante pequeña (menos de 10 clases, total 1500 SLOC), y está disponible bajo la licencia de código abierto como mi proyecto (Apache License 2.0).