Move Interfaces in Separate Package #1437
Replies: 2 comments 4 replies
-
To be honest, for the version 8 release of this library we might remove all public interfaces from the API. Why? Because you should not be mocking things like I can be convinced otherwise, of course. Moving them to a separate library, probably not. I'll leave this discussion open because I'm sure there will be a lot of feedback. |
Beta Was this translation helpful? Give feedback.
-
Following a pattern of Microsoft is great when you have a comparable amount of resources to Microsoft, which most teams do not. This is the first time I remember seeing a request like this in my close to 14 years in this community. I'd say we should hold off on any changes before 7.0 is done, and even then, wait for more interest and comments. |
Beta Was this translation helpful? Give feedback.
-
Is your feature request related to a problem? Please describe.
It's nice that you hide everything behind interfaces like IConnection and others. However, including them in the main package ties them to their implementation. When the client library is used, you have to reference the interfaces and their implementation in order to write code against the interfaces.
Describe the solution you'd like
Follow a pattern similar to Microsoft. Release a
RabbitMQ.Client.Abstractions
package with the interfaces. Then release aRabbitMQ.Client
package that is dependant on theRabbitMQ.Client.Abstractions
package.Describe alternatives you've considered
No response
Additional context
This would be the perfect time to do this as you prop for the 7.0 release of your library.
Beta Was this translation helpful? Give feedback.
All reactions