Domanda

Non ho svolto molta programmazione .NET, ma ho esaminato alcuni dei blocchi applicativi pubblicati dal gruppo Patterns and Practices di Microsoft.Mi chiedevo come vengono generalmente utilizzati:

  • Collegato direttamente alle applicazioni
  • Sorgente aggiunto alle applicazioni e creato con esse, forse con qualche personalizzazione
  • Codice di esempio utilizzato come riferimento durante la scrittura del codice specifico dell'applicazione

Sono sicuro che tutti e tre questi usi siano comuni, ma quali sono i modelli di utilizzo più tipici?

Esistono alcuni blocchi applicativi particolari utilizzati da "tutti"?

Nota:Questa domanda è correlata a, ma non è la stessa di Blocchi applicativi della libreria aziendale O Framework sviluppato internamente?.

È stato utile?

Soluzione

Di solito inserisco il codice sorgente nel mio progetto e quindi posso ottenere una migliore intelligenza (e una migliore comprensione di essi).Tuttavia non tendo affatto a personalizzarli.Mi piace averli in stock, così posso semplicemente distribuire i file binari in stock ogni volta che ne ho bisogno.

Altri suggerimenti

Ho utilizzato ampiamente la libreria Enterprise di Microsoft.In genere non dovrebbero mai essere inclusi nel progetto, se possibile.Il costo aggiuntivo della compilazione può essere elevato.Inoltre, non c'è motivo di avere il codice sorgente nel tuo progetto per utilizzare le classi.Otterrai comunque informazioni durante la codifica purché aggiungi un riferimento alle DLL nei tuoi progetti.È inoltre consigliabile evitare di avere più codebase fluttuanti nell'ambiente di sviluppo.Se hai bisogno di personalizzare le classi, aprile nella loro soluzione e mantieni una versione attiva.Naturalmente consiglio sempre vivamente di utilizzare il controllo della versione (VSS o Subversion) nel caso in cui sia necessario ripristinare le modifiche.

Esistono anche alternative open source alle classi Microsoft che di solito sono codificate meglio (ad es.Log4Net, nUnit, ecc.).Il codice Microsoft tende ad essere gonfio e inefficiente.

Ho provato diversi blocchi applicativi di Enterprise Lib 3.1 (maggio 2007) ed ecco alcuni commenti:

Blocco applicazione di memorizzazione nella cache:Meno interessante di System.Web.Caching in scenari semplici (come la memorizzazione nella memoria) Gestione e registrazione delle eccezioni:Troppo complicato.NLog o Log4Net sono soluzioni migliori.

Ho guardato gli altri Blocchi ma non sembravano adatti ai nostri progetti.

Alla fine abbiamo abbandonato completamente EntLib perché era doloroso personalizzarlo...Ti consiglierei di considerare davvero una soluzione meno monolitica di EntLib.

Inseriamo semplicemente i binari EntLib 3.1 nella global assembly cache e aggiungiamo riferimenti nei nostri progetti.Tuttavia, in genere utilizziamo solo il framework di registrazione.

Penso che il modo più conveniente sia aggiungere Blocchi app\EntLib come elementi della soluzione.In questo modo non verranno ricompilati ogni volta che crei il tuo progetto (non parteciperanno affatto al processo di creazione) e potrai accedere facilmente al loro codice sorgente\imposta punto di interruzione ecc.

Utilizziamo i blocchi aggiungendo riferimenti alle DLL, assicurandoci che "copia locale" sia impostato in modo che vengano distribuiti con l'app nella cartella bin dell'app.Ciò significa che non dobbiamo perdere tempo con il GAC: è molto più semplice!

Durante il debug, Visual Studio può comunque accedere al codice sorgente anche se non è direttamente incluso nel progetto, purché sia ​​presente il codice sorgente EntLib sul disco rigido da qualche parte.Ti verrà richiesta la posizione al primo utilizzo e la ricorderà in seguito.

Attualmente utilizziamo i blocchi Caching, Exception e Logging.Non abbiamo ancora pensato a un caso d'uso per il resto.

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