Domanda

Qualcuno là fuori ha utilizzato Postsharp framework AOP in un ambiente di produzione? Ci sono delle insidie? Per effettuare alcune registrazioni, ecc. Postsharp può essere utilizzato insieme a Log4Net?

Qualsiasi tutorial sull'uso di Postsharp con le app Web e / o Log4Net sarà molto apprezzato.

Grazie in anticipo.

È stato utile?

Soluzione

Io e un altro compagno di squadra utilizziamo PostSharp in diversi modi su diversi progetti che sono in produzione e sono stati per mesi. Ad esempio, in un caso, lo uso per registrare i valori dei parametri del metodo in caso di un'eccezione. PostSharp Laos (incluso in PostSharp) è un modo facile da usare per iniettare chiamate di metodo (ad esempio sull'inserimento di metodi, sull'uscita e su eccezioni) e puoi facilmente aggiungere chiamate di registro ai logger registrati log4net.

Ha aumentato i tempi di costruzione, abbastanza da cambiare leggermente le mie abitudini di costruzione, ma certamente non troppo per i benefici che offre, IMO. Durante la scrittura del codice, potresti voler escluderlo dalla tua build locale, il che è abbastanza facile da fare, quindi puoi continuare a compilare frequentemente e rapidamente, quindi includerlo sul tuo server di build ecc.

Ecco un buon tutorial su PostSharp di Gael (il creatore di PostSharp) ... anche se è vecchio, è bello vederlo passare in rassegna. Non c'è davvero alcuna differenza nell'usarlo in una console, winforms, WPF o WebApp che ho incontrato finora.

Direi anche che una volta capito come aggiungere gli aspetti del Laos a un progetto, ripetere l'esercizio è molto semplice. E c'è una relazione tra il numero di assiemi / classi a cui applichi gli aspetti e quanto tempo PostSharp aggiunge alla tua build. Quindi puoi persino controllare un po 'i problemi di tempo di costruzione.

Per quanto riguarda il codice, sono molto impressionato dal modo in cui PostSharp funziona ... non ha mai rovinato una build, reso un assembly non valido o altrimenti incasinato il codice. E l'ho persino usato nelle app ASP.NET, con copertura del codice e strumentazione delle prestazioni (quindi si gioca bene con gli strumenti di strumentazione di MS Assembly).

Tutto sommato, vorrei def. ti consiglio di provarlo per i tuoi requisiti log4net.

Altri suggerimenti

Uso Postsharp e mi piace. Mi fa risparmiare un sacco di codice duplicato che dovevo aggiungere altrimenti.

Non avevo bisogno di funzionalità avanzate per log4Net e google è sufficiente per scoprire come funziona. Fa solo il lavoro. Finora non ho riscontrato alcun vantaggio.

Per Postsharp, è sufficiente la guida introduttiva sul sito Web, il blog e la navigazione attraverso la fonte. Uno svantaggio principale è l'aumento dei tempi di costruzione. Odio aspettare che il mio computer funzioni. Ci vogliono circa 8 secondi per premere ctrl-shift-b in Visual Studio (su un PC veloce) per la soluzione loc + -60K con 2 progetti usando l'azione di compilazione postsharp. Se puoi, prova a utilizzare Postsharp nel minor numero possibile di progetti.

Se davvero non vuoi usare postsharp, puoi creare una soluzione con 20 progetti e aggiungere il comando post-build a ognuno di essi. Il tempo di costruzione sarà abbastanza lungo da infastidire il resto della squadra.

Personalmente probabilmente continuerò a utilizzare Postsharp per progetti futuri. I vantaggi prevalgono sui tempi di costruzione aggiuntivi.

Abbiamo provato a usare post sharp per una o due cose, il problema era che il tempo di costruzione è scaduto troppo a lungo. Se stai usando CI e hai una frequente metodologia di check-in, è meglio avere un dannato buon server di build e macchine workstation.

Apparentemente .net 4.0 avrà un sacco di hook del compilatore per rendere le cose come AOP più facili da fare. La nostra conclusione finale è stata quella di aspettare che.

Uso post sharp, lo adoro. Il tempo di costruzione post sharp è fastidioso ma è assolutamente in grado. Nella modalità debug, utilizzo il SKIPPOSTSHARP condizionale che elimina postsharp.

Secondo il PostSharp Community Survey , molte aziende usano PostSharp nella produzione. La cosa frustrante è che si rifiutano di essere identificati :-(.

Utilizziamo PostSharp in produzione, sia per il runtime 3.5 che per il runtime Silverlight. Per velocizzare un po 'le build puoi usare / m: switch per msbuild (google per build parallele con msbuild). Promettono anche di accelerare drasticamente nella prossima versione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top