MVC .NET APP Struttura del programma [chiusa]

1

Sto solo costruendo un'applicazione MVC .NET, eventualmente userò il framework di entità e il pattern di repository per strutturare il programma. La prima versione tuttavia chiamerà solo altri lavori che eseguono rapporti.

Per questo ho realizzato l'interfaccia iReport di cui un altro progetto (che può chiamare Matlab) implementerà e in questo modo ho astratto questo report e posso rimuovere Matlab e sostituirlo se necessario con un altro sistema in grado di produrre il rapporto in questione.

La mia domanda quindi è, presumendo che questa sia una buona architettura, come strutturarla, dove mettere questa interfaccia? Lo metto semplicemente in una cartella separata sul progetto della web app?

Questa sembra una domanda semplice, ma io tendo a lottare con il layout del progetto perché voglio assicurarmi che sia corretto.

    
posta Simon Nicholls 22.09.2015 - 11:17
fonte

1 risposta

0

È bene mettere l'interfaccia con gli oggetti dominio a cui fa riferimento.

Quindi, se hai Report, ReportLine, ReportType ... etc e IReportGenerator, li inserirò tutti in un progetto di libreria di classi, con una cartella / spazio dei nomi 'Interfacce' per l'interfaccia.

In questo modo, tutto può fare riferimento al progetto del dominio e implementare le cose usando gli oggetti e le interfacce, ma può quindi scegliere l'implementazione dell'interfaccia che vorrebbero utilizzare senza dover fare riferimento a qualcosa di extra.

Se si finisce per avere molti servizi separati, ad esempio IReportGenerator, IReportEmailer ecc. ecc. a un certo punto si potrebbe voler dividerli dalla classe di dominio modello lib, solo perché hanno responsabilità così diverse, o forse devono fare riferimento altre librerie (anche se dovresti provare ad evitarlo nelle tue interfacce)

In questo caso, metterei l'interfaccia con la prima implementazione che scrivi. Diciamo che hai ReportGenerator_MatLab, puoi inserirlo in quella classe lib. Dato che hai solo l'implementazione (più una simulazione !!) i tuoi progetti lo faranno comunque.

    
risposta data 22.09.2015 - 18:07
fonte

Leggi altre domande sui tag