Ciao,
StefanoM ha scritto:
In C# non esiste questo concetto di moduli ma solo classi
E' vero, non si chiamano
moduli ma
classi statiche. A parte la differenza nel nome, assolvono lo stesso compito.
StefanoM ha scritto:
Ho visto che in .NET 4 (provenendo dal 2.0) le cartelle hanno un loro spazio nomi.
Sì, è una buona pratica di sviluppo quella di raggruppare classi in namespace, allo stesso modo in cui i file sorgenti che le contengono sono raggruppati in cartelle. Non sei obbligato a rispettare questa convenzione ma, di certo, ti aiuta ad organizzare meglio il codice e a renderlo un pochino più accessibile a chi lo guarda per la prima volta.
StefanoM ha scritto:
E' corretto o va modificato applicando un solo spazio nomi per tutta l'applicazione ?
Non c'è corretto o sbagliato... i namespace sono uno strumento che risponde ad una tua necessità. Se l'applicazione diventa molto grande, sentirai il bisogno di creare dei "comparti". Ad esempio, dato che hai un'applicazione a tre livelli potresti, al minimo, inserire le classi che si occupano dell'accesso ai dati e quelle della logica business in due namespace propri (TuoNamespace.DAL e TuoNamespace.BLL).
Qual è il punto più indicato, all'interno di un'applicazione tre-livelli, dove sistemare una classe generica .cs per le funzioni generali ?
Dipende... se sono funzioni di utilità generale (anche chiamate
helper methods) che vengono usate dal livello business, crea una classe statica con metodi statici in un file .cs che posizionerai all'interno dello stesso namespace/cartella del livello business.
Considera di implementare quelle funzioni, quando possibile, come
extension methods (<- ricerca questo argomento, semplificherà il modo in cui invocherai le tue funzioni generali).
Invece, se non si tratta solo di funzioni ma di intere classi, allora potrebbe aver senso dedicare un intero namespace a questo scopo. Potresti dunque inserirle all'interno di TuoNamespace.Utility.
ciao