Все хорошие вещи, о которых стоит подумать, но когда вы начнете идти по этому пути, я уверен, что у вас будет больше вопросов, чем ответов в большинстве случаев!
Я предполагаю, что вы используете Windows Forms, когда упоминаете Desktop и Linq-To-SQL, что даст вам несколько проблем при реализации чего-либо, например шаблона MVP.
Несмотря на то, что существуют предварительно адаптированные MVP-структуры для WinForms (MVC # приходит на ум), если вы не разрабатываете крупномасштабные приложения, вы можете начать осторожно и реализовать некоторые концепции, используя свой собственный код.
Превосходная серия статей Джереми Миллера Build Your Own CAB - отличный ресурс, поскольку вы можете взять некоторые из первых нескольких идей и получить некоторое разделение проблем между вашими формами (презентация) и бизнес-логика (ведущие и классы обслуживания).
Джереми использует в своей работе главным образом дизайн Supervising Controller (который мне нравится), но стоит взглянуть на другие шаблоны, такие как Passive View и Model-View-ViewModel (которые встроены в способ работы WPF, поэтому стоит разобраться ), чтобы увидеть, что вам наиболее удобно.
Что касается вашего вопроса о классах обслуживания или репозиториях, я бы подумал, что вам понадобятся два основных уровня логики - сущности Presenter или ViewModel, а затем сущности Service ниже уровня, который может содержать такие вещи, как ваш Linq-To-SQL. запросы. Таким образом, вы, возможно, уже имеете большую часть логики для своего уровня Service, но это скорее случай его преобразования в согласованную форму.