passo1.
Un progetto aspnet è fatto da diverse pagine .aspx alle quali è collegata una pagina .cs che contiene la logica della pagina stessa che al 90% è fatta dai gestori evento dei controlli presenti nella pagina. Tu hai un bottone nella pagina aspx e nella cs scrivi cosa fa quel bottone (chi/aspx, cosa/cs).
Quando devi pubblicare un sito web invece di copiare di sana pianta tutti i file in remoto puoi usare lo strumento di pubblicazione di visual studio. Questo strumento raccoglie in automatico tutti i file cs del progetto e li compila in una dll che mette nella cartella /bin. Il prodotto di questo procedimento è cio che devi pubblicare: in "chiaro" ci saranno solo le pagine aspx che conterranno i controlli e puoi ci sarà una cartella bin con dentro il file dll.
passo 2, riutilizzare il codice dei calcoli.
Se hai una label e un pulsante dentro una pagina e vuoi che alla pressione del tasto la label mostri il risultato di un calcolo molto probabilmente scriverai un gestore evento del click nel file cs cosi:
codice:
label1.Text = 3 + 2 + 5 + 6; //una logica anche se mooolto semplice.
nel caso sopra la "logica" è molto semplice ma nella realtà molto spesso si creano degli handler pieni di codice. La cosa presenta due svantaggi: troppo codice = difficile manutenzione e impossibilita di riutilizzare la logica in un altro progetto (magari winform).
Generalmente un gestore evento dovrebbe essere cosi:
codice:
//raccolgo gli input dalla pagina
int a = Convert.ToInt32(labelA.Text);
int b = Convert.ToInt32(labelB.Text);
//Faccio i calcoli richiamando un metodo esterno
ClasseDiCalcolo c = new ClasseDiCalcolo(); //non uso una using per mantenere semplice l'esempio
int ris = c.Calcola(a,b);
//stampo i risultati
labelRis.Text = ris.ToString();
Pagine cosi rimangono sempre molto pulite anche quando le operazioni di calcolo sono complesse. Ma dove è definita la classe ClasseDiCalcolo che contiene il metodo Calcola? In una libreria esterna. Con visual studio puoi crearle con il progetto Libreria di Classi e li dentro ti crei tutte le classi e i metodi di calcolo. Il modo piu semplice (per ora) di operare è aggiungere il progetto libreria di classi nella stessa soluzione del progetto asp.net (file - nuovo progetto e spunta la voce aggiungi a soluzione) e aggiungere nei riferimenti del progetto asp.net il progetto libreria di classi (da esplora soluzione tasto destro su riferimenti del prog asp.net - aggiungi riferimento). A questo punto as.net referenzia il progetto esterno che puoi usare scrivendo la using in testa al file o facendoti aiutare da intellisense. Quando pubblicherai ci saranno due dll, una dei file cs del progetto aspnet e l'altra relativa al progetto libreria di classi.
passo3:
le dll sebbene non siano comprensibili aprendole con notepad possono facilmente essere decompilate. Se pensi che il tuo codice debba essere messo al sicuro puoi usare gli strumenti citati su (tipo dotfuscator) per nasconderle (ma non del tutto).