Visualizzazione dei risultati da 1 a 9 su 9

Discussione: buona programmazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144

    buona programmazione

    Ciao ragazzi, eccomi qui a chiedere ancora qualcosa, questo però non è un aiuto, ma più una richiesta di spiegazione.
    Se voglio creare, con C#, un'applicazione che utilizza, in code-behind, varie funzioni, ha senso utilizzare solo files .cs(con all'interno le classi che contengono le funzioni chiamate dalle pagine .aspx) oppure no?(nel senso che è molto meglio precompilare i files, si possono precompilare giusto? Cioè le dll di cui parlate sono delle classi compilate, vero?)
    Attendo fiducioso una delucidazione, perchè temo di non aver capito molto della programmazione a oggetti con asp.net(e forse anche in generale )

    conte06

  2. #2
    Se non utilizzi Visual Studio l'utilizzo del Code Behind è uno spreco di tempo inutile a mio avviso. L'utilizzo del codice "in-line" ha le stesse prestazioni e non comporta problemi.

    Se per file ".cs" intendi classi da includere, in una pagina le puoi includere banalmente inserendo ad inizio pagina:
    codice:
    <%@ Assembly src="nomefile.cs" %>
    Quando la tua pagina sarà richiamata, sarà compilato automaticamente anche quel file (solo la prima volta che è chiamato) e le classi, propriertà e funzioni presenti saranno utilizzabili dall'interno di quella pagina. Questa tecnica comporta che per ogni pagina che vuoi includere tale classe devi inserire quella direttiva ad inizio pagina, se da questo lato è uno svantaggio, dall'altro per eventuale modifiche ti è sufficiente aprire quel file anche con il blocco note (Aaahhh, vecchio amore... ) per avere il tutto funzionamente immeditamente con le modifiche.

    Se tale file .cs viene compilato con il compilatore e inserito nella cartella "bin" della tua webapplication, tu potrai richiamare eventuali classi, proprietà e funzioni da qualsiasi pagina senza dover "includere" quel file di classe. Lo svantaggio qui è che per eventuali modifiche dovrai modificare il file ".cs", quindi ricompilare e inserire la dll prodotta nella cartella bin per avere le modifiche nella tua webapplication (con l'ulteriore svantaggio del riavvio di tutta l'applicazione).

    La seconda strada è da preferire.

    Se ho ben capito la tua domanda...

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    quindi posso mettere quanti <%@ Assembly src="nomefile.cs" %> voglio? coi vari nomefile1, nomefile2 e così via?
    io comunque uso solo il blocco note...eh già, sono pazzo vero?
    come si fa a compilare un cile .cs e farlo diventare .dll? Cioè se lo compilo normalmente mi salta fuori un .exe
    nel frattempo grazie per gli aiuti!

  4. #4
    Io ho imparato l'asp.net con il blocco note!

    Per includere più file sorgenti puoi creare più direttive Assembly:
    codice:
    <%@ Assembly src="nomefile.cs" %>
    <%@ Assembly src="nomefile2.cs" %>
    <%@ Assembly src="nomefile3.cs" %>
    ...
    Per compilare un file cs come dll, è sufficiente utilizzare l'opzione "Target" come "Library" nel compilatore, per esempio:
    codice:
    csc.exe /t:library /r:system.dll /r:system.Data.dll /r:system.xml.dll /out:tua_lib.dll tua_lib.cs
    Personalmente quando non utilizzo Visual Studio creo un file batch che compila per me i vari file interessati:
    codice:
    csc.exe /t:library /r:system.dll /r:system.Data.dll /r:system.xml.dll /out:lib.dll primo.cs secondo.cs terzo.cs
    pause
    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    ho provato, ma non funziona, scusa, ma da dove posso digitare il comando csc.exe? intendo da quale directory?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    cioè, io per esempio vorrei mettere la funzione per la connessione in una dll, posso, no? Una volta compilata come faccio a richiamarla? il file sarà:
    using System.Data;
    using System.Data.SqlClient;

    public class connection : Page{
    public SqlConnection connect(){
    SqlConnection sqlconnDb = new SqlConnection("server=localhost;uid=sa;pwd=ghgh;da tabase=db");
    return sqlconnDb;
    }
    }

    se riuscissi a compilarlo dovrebbe funzionare, no? il file si chiama connection.cs quindi ho provato a lanciare dal prompt:
    csc.exe /t:library /r:system.dll /r:system.Data.dll /r:system.xml.dll /out:connection.dll connection.cs

    ho sbagliato qualcosa?(oltre al fatto che ho provato a compilare nella directory errata?)

  7. #7
    Perché crei una classe ereditandola dalla classe Page? In questo caso non serve a nulla. E' sufficiente scrivere:
    codice:
     using System.Data;
    using System.Data.SqlClient;
    
    public class connection {
    public connection() {} // <- costruttore
    public SqlConnection connect(){
    SqlConnection sqlconnDb = new SqlConnection(" server=localhost;uid=sa;pwd=ghgh;databas
    e=db");
    return sqlconnDb;
    }
    }
    Quindi, una volta compilata con:
    codice:
    csc.exe /t:library /r:system.dll /r:system.Data.dll /r:system.xml.dll /out:lib.dll questaclasse.cs
    Sposta il file prodotto, lib.dll, nella cartella bin della tua webapplication. Dalle tue pagine sarà ora possibile scrivere:
    codice:
    connection c=new connection();
    SqlConnection sc=c.Connect();
    Il compilatore csc.exe è presente nella cartella del framework.

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    dunque riesco a compilare, ho giusto ancora un paio di domande

    1)
    a cosa serve il costruttore? non basta fare:

    SqlConnection sc=connect();

    avendo omesso la stringa:
    public connection() {} // <- costruttore

    dal codice che hai scritto?

    2) come faccio a importare la dll che ho creato? basta inserirla nella directory bin? ma soprattutto quale directory bin?

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    144
    Mi sono reso conto che questa discussione è andata un po' fuori tema, quindi volevo comunicare ai moderatori che se vogliono possono chiuderla o eliminarla.
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.