The MVP pattern will give you this logical separation, but basically I believe that the power of MVP is to write test code.
I would recommend reading Uncle Bob's book, Robert C Martin, entitled Agile Principles, Patterns and practice.
I also think that you do not have to use a template like MVP to logically separate your business logic from your user interface level. If structured correctly, all of your business logic will then be in a business layer that is completely disconnected from your user interface level. You can then use several interfaces, such as WinForms, WebForms or WebService, or even WPF, to the same business layer without rewriting any business logic, verification, authorization, etc.
In this case, I would recommend reading a Rocky Lhotka book called Expert C # Business Objects. This book is easy to read, and it explains how to separate logical layers. Also its purpose is to keep the minimum user interface code.
source share