Progettazione di un sistema con regole aziendali diverse per clienti diversi

4

La mia azienda sta riscrivendo la nostra applicazione aziendale proprietaria. L'architettura attuale è mal fatta e poco flessibile. È codificato in modo più procedurale rispetto a quello orientato agli oggetti. È diventato difficile da mantenere.

Il nostro sistema è un'applicazione Web scritta in. Webforms .Net. Sto considerando ASP.Net MVC per la riscrittura.

Intendiamo riscriverlo con una buona e solida architettura con l'obiettivo di manutenibilità e classi riutilizzabili per alcuni dei nostri altri sistemi e servizi. Vorremmo anche che il sistema fosse personalizzabile per diversi clienti nel caso in cui commercializzassimo il sistema.

Sto prendendo in considerazione la riprogettazione del sistema in base all'architettura a strati (Presentazione, Business, Livelli di accesso ai dati) descritta nella Guida all'architettura delle applicazioni di Microsoft Patterns and Practices. link

Si spera che questo non sia troppo aperto, ma come consiglieresti di consentire diverse regole / regole di business per diversi clienti? Sono a conoscenza di Windows Workflow Foundation, ma da quello che ho letto al riguardo, sembra che molte regole di business potrebbero essere troppo complicate da gestire lì.

Inoltre, qualcuno può indicarmi dove posso scaricare un esempio di una soluzione .net basata sulla Guida all'architettura dell'applicazione? Ho già scaricato Guidance di Layered Architecture Solution e Expense Sample su codeplex. Stavo cercando qualcosa di un po 'più grande e più robusto che potessi esaminare il codice e vedere come funziona.

Se ritieni che ci siano architetture migliori su cui basare la nostra riprogettazione, non esitare a condividere.

Apprezzo il tuo aiuto!

    
posta Ken 21.09.2012 - 15:59
fonte

1 risposta

4

Ti suggerisco di esaminare qualcosa come il Framework di estensibilità gestita da .NET 4. Se lo usi, definirai determinati punti di estensione nel tuo software e poi adempirai i punti di estensione con le DLL che farai cadere nell'applicazione in fase di esecuzione.

Quindi potresti avere un punto di estensione per un UserListService che ha un'implementazione predefinita che utilizza un database interno, ma se trova un'altra implementazione nella directory, finirebbe con CustomerXYZUserListService che va ed entra un elenco utenti dal loro sistema ERP.

    
risposta data 21.09.2012 - 16:19
fonte

Leggi altre domande sui tag