I read a couple of threads concerning low coupling between layers etc. Maybe someone already discussed this idea already, but I have to give it a shot.
I will be using adapter scenario (I am new to LLBLGen Pro world) and I was thinking of not exposing complete Entity classes to GUI. My plan is to extract interface (for each) entity that contains all events and public properties that Entity classes already implement and to set each Entity class to implement interface (i.e. CustomerEntity : ICustomerEntity, ....). In addition, each interface has one extra method for Validate.
I constructed my templates for code generation. By doing this, I get three projects generated: two projects generated as before for adapter (with mentioned changes for Entity classes), and one with just interfaces. In templates I even change return types from EntityCollection to IList and do casting where it is needed. This way, BL public methods don't show anything that is "LLBLGen Pro specific", and client is unaware of what is behind.
I am looking for anyones opinion about this idea. Are there any "gotchas" I have overlooked?