Sto lavorando a un progetto che coinvolge un'applicazione di tipo "team builder", se si utilizzerà C #.
Per semplicità, diciamo che coinvolge l'utente nella creazione di una "Squadra". Ci sono tre squadre tra cui scegliere.
Ogni squadra ha "posizioni", ad esempio, come Capitano, Sparatutto e Corridore.
Ogni Capitano ha 3 possibili scelte, con attributi diversi come "Nome", "Abilità" e "Età".
Per dare più di una rappresentazione visiva di questo:
- Team1
- = > CaptainATeam1
- === > Nome
- === > Skill
-
=== > Età
-
= > CaptainBTeam1
- === > Nome
- === > Skill
-
=== > Età
-
= > CaptaniCTeam1
- === > Nome
- === > Skill
-
=== > Età
-
Team2
- = > CaptainATeam2
- === > Nome
- === > Skill
-
=== > Età
-
= > CaptainBTeam2
- === > Nome
- === > Skill
-
=== > Età
-
= > CaptaniCTeam2
- === > Nome
- === > Skill
- === > Età
Ora, tutti questi attributi sarebbero predefiniti e non cambiano mai. Quindi, CaptainATeam1 sarà SEMPRE "James", "Abile", "22".
Con tutto ciò detto, questa informazione dovrebbe essere lì per l'utilizzo in fase di esecuzione. Questa applicazione non sarebbe connessa a nessun tipo di database di qualche tipo, e verrebbe eseguita rigorosamente come applicazione indipendente.
La mia domanda è qual è il modo corretto per farlo?
Il pensiero corrente che ho è di memorizzare i dati in un pacchetto con l'applicazione sotto forma di un file flat per ogni squadra e posizione e di avere l'applicazione leggerli in memoria in fase di runtime quando necessario.
Ma ho anche pensato di creare i set di dati all'interno delle singole classi, con qualcosa di simile a questo (non testato e scritto rapidamente su Blocco note, ma il concetto è lì):
class Team1
var Captain;
var Shooter;
var Runner;
DataSet ds_team1 = new DataSet();
//used to populate a dataset to be used for a DropDown style selection list
public void PopulateCaptains()
{
DataTable dt_caps = new DataTable("Capitans");
dt_caps.Columns.Add("Name");
dt_caps.Columns.Add("Skill");
dt_caps.Columns.Add("Age");
DataRow dr_cap1 = new DataRow("Cap1");
DataRow dr_cap2 = new DataRow("Cap2");
DataRow dr_cap3 = new DataRow("Cap3");
dt_caps.Rows.Add(dr_cap1);
dt_caps.Rows.Add(dr_cap2);
dt_caps.Rows.Add(dr_cap1);
dr_cap1["Name"] = "James";
dr_cap1["Skill"] = "Skillfull";
dr_cap1["Age"] = "22";
//so on and so forth.
}
Ovviamente l'esempio sopra sarebbe una codifica molto ingombrante, invece di scrivere semplicemente un ciclo foreach
attraverso file flat memorizzati nella cartella dell'applicazione. Tuttavia, ciò consente all'utente di manipolare le informazioni in questo file, causando la rottura del programma.
Quindi, quale sarebbe l'approccio corretto per affrontare questo?
C'è un modo corretto per affrontare questo?
Nota Se questa è considerata una domanda troppo ampia o soggettiva, faccelo sapere, così posso andare a cercare ulteriori informazioni, fornire maggiori informazioni o chiarire qualsiasi cosa.
Grazie per il tuo tempo.