Sounds like Model View Controller (or "shared gui manager" if you will) pattern... You'll have three projects 1. Shared project for model classes like SharedClass 2. Runtime project references Shared project so Manager has access to SharedClass 3. GUI project references Runtime and Shared project so Client can access SharedClass and Manager (though your requirments don't mention Manager access, it's part of MVC). So your view and your controller can see and use your model, and your view can also use your controller to act on the model. I'll leave it to you to decide how to restrict Client's write access. Visit BoneSoft.com