Dove devo inserire i miei metodi di utilità?

6

Sono molto nuovo a Visual Studio e C # e mi chiedo come sia meglio creare un repository di ordinamenti per i metodi di utilità.

Ad esempio, abbiamo bisogno di un metodo che restituisca l'anno fiscale corrente e altri valori specifici dell'azienda.

Sarebbe meglio creare un file di classe di utilità che sia importato in ogni progetto? Oppure, creare un nuovo progetto con questi metodi e aggiungerlo alla soluzione corrente?

In Python, ad esempio, ho creato un egg con tutti i metodi di utilità che poi installo nei pacchetti del sito.

    
posta Mike Partridge 02.11.2011 - 16:09
fonte

7 risposte

13

Crea un nuovo progetto e importalo nelle soluzioni necessarie. In questo modo puoi lasciare che abbia la propria soluzione e aggiungere un progetto aggiuntivo per i test unitari.

    
risposta data 02.11.2011 - 16:13
fonte
3

Mi piace creare dll "Framework" in un progetto / soluzione separato e fare riferimento quando necessario, tenerlo retrocompatibile con i propri test di unità ecc. Se i requisiti sono specifici del dominio, creare un altro progetto all'interno della soluzione corrente.

    
risposta data 02.11.2011 - 16:15
fonte
2

Creerei un progetto che abbia tutte le utilità e lo fai riferimento in altri progetti.

Metterei di nuovo le cose specifiche della compagnia in un progetto separato.

Puoi includere gli stessi progetti in molte soluzioni; devi solo stare attento a fare cambiamenti che potrebbero rompere usi in altre soluzioni.

    
risposta data 02.11.2011 - 16:14
fonte
1

Il mio suggerimento è di non preoccupartene fino a quando non è necessario.

Crea i tuoi metodi di utilità e inseriscili in una classe appropriata nel progetto che li richiede. Potrei creare una classe FiscalYear e classi separate per ogni area all'interno dei "valori specifici dell'azienda". Non creare una singola classe solo per contenere "valori specifici dell'azienda", poiché l'unica cosa che quei valori avranno in comune è che sono "specifici dell'azienda".

Quando ottieni un secondo progetto che richiede anche l'accesso alle stesse classi, allora è il momento di creare un terzo progetto per contenere quelle classi che sono in comune tra loro.

    
risposta data 02.11.2011 - 16:14
fonte
0

Abbiamo una vasta suite di applicazioni web nel nostro team e abbiamo affrontato lo stesso problema. Abbiamo creato una libreria generica di "Application Utilities" di alto livello. Questo contiene le funzioni / classi agnostiche del progetto. Quindi (come hai suggerito) date le utlity, cose che hanno replicato alcune delle vecchie funzioni VB che ho perso (String.Left, String.Right ecc.) E quel tipo di cose.

Per ogni progetto specifico abbiamo un assembly BusinessLayer che contiene varie logiche specifiche del progetto. Non è raro trovare uno spazio dei nomi "Utilità" all'interno di questo progetto. Questo conterrebbe varie funzioni specifiche per il contesto dell'applicazione.

    
risposta data 02.11.2011 - 21:18
fonte
0

Se i dati cambieranno, dovrebbero essere memorizzati in un archivio dati (database, XML, CSV, ecc.) e non nel codice. Ad esempio, l'anno fiscale continua a cambiare e se lo memorizzi in codice o DLL, dovrai cambiare la versione ogni anno per codificare il nuovo valore.

Puoi utilizzare questo suggerimento insieme alle note di @ marc's e @ Bond sopra per ottenere una risposta completa alla tua domanda.

    
risposta data 02.11.2011 - 22:07
fonte
-1

Non dimenticare che è un Anti-Pattern. Quindi meglio ripensare alla tua soluzione link

    
risposta data 03.11.2011 - 11:14
fonte

Leggi altre domande sui tag