Tutte cose buone a cui pensare, ma quando inizi questa strada sono sicuro che avrai più domande che risposte molte volte!
Suppongo che tu stia utilizzando Windows Form quando menzioni Desktop e Linq-To-SQL, che ti daranno alcune sfide nell'implementare qualcosa come un pattern MVP.
Mentre ci sono framework MVP pre-adattati per WinForms (mi viene in mente MVC#), se non stai sviluppando app su larga scala, potresti iniziare con delicatezza e implementare alcuni concetti usando il tuo codice.
L'eccellente serie di articoli Build Your Own CAB di Jeremy Miller è un'ottima risorsa qui, poiché puoi prendere alcune delle prime idee da lì e ottenere una separazione delle preoccupazioni tra le tue forme (Presentazione) e la logica aziendale (Presentatori e Classi di servizio).
Jeremy utilizza principalmente un progetto di Controller di supervisione nel suo lavoro (che adoro), ma vale la pena guardare ad altri modelli come Passive View e Model-View-ViewModel (che è inserito nel modo di lavorare WPF, quindi vale la pena comprensione), per vedere cosa ti senti più a tuo agio.
Per quanto riguarda la tua domanda sulle classi di servizio o sui repository, penserei che i due principali livelli di logica che desideri siano Presenter o ViewModel e quindi Entità di servizio al di sotto di ciò che può contenere cose come il tuo Linq-To- Query SQL.Quindi potresti già avere molta della logica per il tuo livello di servizio, ma è più un caso di refactoring in una forma coerente.
sì, sto cercando coerenza. In particolare, per ottenere il codice linq-to-sql in classi di servizio (il codice linq è diffuso in tutto) –
Ho già refactato un paio di moduli in stile MVP. –