Possiedo un'applicazione Webforms ASP.NET 3.5 SP1. Io uso il pattern MVP (controller di supervisione) con DI (autofac). I miei relatori chiamano i contratti di deposito definiti nel mio dominio (DDD) che sono implementati in un progetto di infrastruttura.Consigli su AOP con C#
I metodi di repository che la chiamata del relatore può eseguire, quindi è necessario registrare le eccezioni e quindi impostare un messaggio di errore nella vista.
In passato avrei aggiunto un altro parametro ai costruttori di Presenter, memorizzato il riferimento in un Presenter di base e chiamato un metodo Log nei miei blocchi Catch. Non mi piace molto, ma ha fatto il lavoro.
Potrei seguire il percorso di utilizzo di una fabbrica per ottenere la classe di registrazione as described here, ma mi piacerebbe esplorare prima AOP, in quanto sembra piuttosto interessante.
ho fatto la lettura sul tempo di compilazione vs AOP runtime, e mi piacerebbe sapere quali esperienze popoli sono con le diverse soluzioni, vantaggi, svantaggi, parole di consiglio, ecc
Dalla scavo ho fatto sembra che ci sono 4 quadri principali per AOP in .NET
- Castello di Windsor - io sono rimasto lontano da questo, in generale, perché un sacco di cose che in realtà non hanno bisogno
- Spring.net - sembra che abbia una buona reputazione ma ispira paura attraverso la sua configurazione xml (io non come non-fluente configurazioni)
- PostSharp - Abilità guidate (mi piace questo), ma ad un certo punto avuto some line number issues, non so se esistono ancora
- unità - un sacco di roba che non ha realmente bisogno
Vedo another question che ha alcune buone risposte ma è da un anno e mezzo fa. Ci sono strutture nuove, "migliori" che sono state sviluppate nel frattempo o miglioramenti apportati a soluzioni esistenti che dovrebbero essere prese in considerazione?
Per riferimento, ho scelto Autofac per DI perché è fluente, semplice da usare, non è stato in grado di trovare commenti negativi e funziona.
Ci sono raccomandazioni su quale framework AOP dovrei provare? Grazie per aver letto tutto questo e per aver aggiunto qualche idea.
Sarei interessato a dettagli del perché si desidera utilizzare AOP. Devo ancora trovare uno scenario in cui è stato abbastanza buono per soddisfare le mie esigenze. Ad esempio, la registrazione. I logger AOP possono dirmi quando viene colpito un metodo specifico, ma non sono mai abbastanza informazioni. Ho sempre bisogno di usare un logger ** all'interno ** del metodo e ** intorno a ** esso. Sarei interessato a come AOP ti avrebbe aiutato. Non mi sto basando su AOP - Sono solo scettico e sto cercando gli scenari del mondo reale che sono davvero avvincenti per intraprendere la follia di AOP. –
Ho accennato alla domanda per le eccezioni di registrazione per adesso. – blu
Il tuo punto è ben ripensato. Ho finito per utilizzare una factory con un delegato per creare il logger mappato al mio contenitore IoC. Nel lasso di tempo indicato non ho seguito il percorso AOP, ma sono comunque interessato a vedere quanto possa essere utile. – blu