First and foremost, forgive the ignorance that will be revealed should you choose to read on. I've been using LLBLGen with Self Servicing for about a year now. I've got the oppurtunity to start fresh and refactor my application to make it more robust. I've ordered Ingo's book on remoting as this is where most of my ignorance lies. What I really need help getting my head around is some fundamental stuff.
I want to create a server application that will use LLBLGen for the Logic and Persistence Layers. So, I use the adapter template and generate my persistence layer. Specifically, I have the two generated projects com.mycompany.myapp.persistence and com.mycompany.myapp.persistenceDBSpecific. For some entities, I need additional properties, methods, etc... So, I create a new class library, com.mycompany.myapp.businesslayer. In here, I have two namespaces; businessobjects and adapters. In businessobjects, I have various classes that inherit their corresponding entity class (i.e. User inherits UserEntity) In adapters, I have classes that inherit from DataAccessAdapter (i.e. UserAdapter inherits DataAccessAdapter). I do this so I can intercept events such as OnFetchEntityComplete.
So now, I have the first iteration of my business and persistence layer working (working quite well actually). At this point, I am only testing with a console app that references the dll's. But the time has come to start talking about the client. I know I want to use remoting. I know that if I want to use remoting I am supposed to use the Adapter templates... which I am. I also know that based on almost everything I read, I should use Interfaces to "build the contract" between the client and server application. The term factory keeps popping up as well.
Here's where I start getting really lost.... what's next?
Where do Interfaces come into play? Specifically, if I have an OrderIntity class that I want a windows form application to be able to interact with by way of remoting do I need to create an IOrderEntity interface?
Can anyone draw me a clearer picture or if you have a similar scenario, let me know how you are doing this?