A livello "materiale" non sono altro che un prefisso da anteporre al nome delle classi per qualificarle in modo univoco, quando vengono utilizzate, ad esempio per accedere a un metodo o per crearne una istanza.
Se parli di classi che non appartengono al framework, ossia quelle create da te, il namespace viene indicato usando la parola chiave Namespace.
Sì, esatto.
Non c'è nulla di particolare da "gestire": si tratta di un nome come quello che dai alla classe e che semplicemente la inserisce in un insieme.
Per convenzione, se il progetto ha un namespace "generale", le sottocartelle aggiungono una parte al nome separandola con un punto.
Se si parla di funzionalità di refactoring o del fatto che certi tool "forzano" l'uso di namespace senza consentire di configurarli, questo dipende dalle caratteristiche specifiche del tool che si sta usando.
Certo, perché cambiarli a posteriori vuol dire riverificare (a mano o in modo automatico) tutti i riferimenti alle classi che si trovano all'interno del namespace modificato, in modo che il codice continui a compilare.
Se vuoi leggere approfondimenti e soprattutto esempi per chiarire meglio, vedi questa pagina.
Ciao!![]()