La domanda how-do-you-organiz-your-projects ha già qualche buona risposta. Mi piacerebbe avere una migliore comprensione di questa struttura suggerita :
MyApp.Core
MyApp.Model
MyApp.Presenter
MyApp.Persistence
MyApp.UI
MyApp.Validation
MyApp.Report
MyApp.Web
Supponendo che MyApp
sia un client rich winforms per amministrare studenti, corsi, stanze e insegnanti
Diciamo che ho un controllo utente winforms per modificare le informazioni sul corso (nome del corso, chi lo insegna, in quale stanza e quali studenti si sono registrati per il corso). La classe sottostante riflette tutte le informazioni di cui ho bisogno per il controllo utente
public class CourseDetails{
public int Id{ get; set;}
public Course Course{ get; set;}
public Teacher Teacher{get; set;}
public Room Room{get; set;}
public List<Student> StudentList{get; set;}
}
Dove metteresti questa lezione?
Metodi di MyApp.Model
Mi piacerebbe sapere quanto siano complesse o semplici le classi all'interno del namespace MyApp.Model
shoud.
Il progetto MyApp.Model
dovrebbe contenere solo classi molto semplici come
public class Course{
public int CourseId{ get; set;}
public string CourseName{ get; set;}
public int CategoryId {get; private set;}
}
public class Teacher{
public int TeacherId{ get; set;}
public string TeacherName{ get; set;}
}
o dovrebbe MyApp.Model
contenere anche
- classi complesse come
CourseDetails
- metodi aggiuntivi per ogni classe come
Save()
oGetById()
?
Argomenti aggiuntivi
Dove (in quale progetto) dovrebbero essere implementate le interfacce e dove dovrebbe essere usata la base class.
Quando questo metodo aggiuntivo ( Save()
, GetById()
) può essere ereditato da una classe base o essere contenuto nella classe che impone un'interfaccia che ha tutti i metodi per il salvataggio e la selezione.
public class CourseDetails: ModelBase{
...
}
public class ModelBase{
public bool Save() {
Console.WriteLine("do something clever to save each entity");
return true;
}
}
Ci scusiamo per non essere più chiari; Mi piacerebbe capire che tipo di cose (classi, interfacce, risorse, ecc.) Dovrebbero essere inserite in quale progetto e perché. Spero che tu abbia capito l'idea.