- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [ASP.NET] Conversione Libreria ASP in VB.NET
-
[ASP.NET] Conversione Libreria ASP in VB.NET
Un altro quesito mi affligge... (e per questo vi scoccio):D
Lavoro ormai da tempo con ASP e PHP, ma sono nuovo a .NET
Per ASP avevo sviluppato delle librerie (meglio dire una serie di funzioni e procedure) che mi accelleravano la scrittura del codice, ad esempio:
1 funzione per aprire le connessioni
1 funzione per inviare comandi SQL
1 funzione per recuperare IDENTITY
1 funzione di browsing filesystem
1 funzione di validazione dei form con REGEXP, con recupero dei valori in automatico (come il postback di .net)
etc etcSono tutte Sub o Function pubbliche che, inserite nella pagina con degli include. Sono fatte benino, molto generali che si adattano praticamente a qualsiasi situazione.
Domanda:
Come mi consigliate di riscriverle?
**Utilizzando una classe, un controllo utente, un controllo personalizzato o cosa? Non avendo esperienza in merito chiedo consiglio.:D **La mia necessità sarebbe quella di poter adoperare delle porzioni di codice nelle pagine .net.
Per adesso ho fatto questo:PublicClass connected : Inherits Page Public conn_string AsString = "Database=xx;Port=xx;Data Source=localhost;User Id=xx ;Password=xx" Public conn AsNew MySql.Data.MySqlClient.MySqlConnection(conn_string) Public rs As MySqlDataReader PublicSub apriRS(ByVal sql AsString) Dim comando AsNew MySqlCommand(sql) comando.Connection = conn conn.Open() rs = comando.ExecuteReader EndSub PublicSub chiudiRS() rs.Close() rs = Nothing conn.Close() EndSub PublicSub esegui(ByVal sql AsString) Dim comando AsNew MySqlCommand(sql, conn) comando.Connection.Open() comando.ExecuteNonQuery() conn.Close() EndSub
ma già a spanne capisco che "non è bello"; modificherò facendo anche qualche property, ma ora non ho tantissimo tempo...
Grazie
-
io personalmente mi sono scritto delle classi che poi ho assemblato in dll e che metto nella cartella bin.
Molto pratico e ho tutte le funzioni e sub comuni a portata di mano
-
Si, anche io sono per fare la classe.
P.s. Ma quel codice che hai incollato funziona?
-
si, è una parte di codice, ma funzia...
perchè?
Farà schifo (e ne sono consapevole) ma sono i miei primi passaggi al .NET.....
miglioreròPer Legolas:
anch'io avevo pensato classe -> compilo -> poi adopero dll
per adesso faccio esperimenti in code-behind così provo tutto.
Se funzia compilo.
E' la strada giusta? (sapete nn ci capisco tanto in Oop e mi sto sforzando)
-
ah una cosa... (anzi 3 )
se faccio una classe devo per forza farla derivare dalla classe page?
la direttiva Inherits si può specificare anche in fase di Import?
tutta la nuova classe che scrivo deve essere racchiusa in un namespace?(scusate le eventuali cacchiate che scrivo )
-
Mi riferivo alla sintassi
PublicSub esegui(ByVal sql AsString)
Come fa a funzionare?
Dovrebbe essere scrittoPublic Sub esegui(ByVal sql As String)
-
me l'ha incollato senza spazi... boh :bho:
nn ci avevo fatto caso.
-
@hwlab123 said:
ah una cosa... (anzi 3 )
se faccio una classe devo per forza farla derivare dalla classe page?Assolutamente no ;), dipende da cosa devi fare ...se la tua classe lavora sui controlli della pagina (datagrid, label, ecc...) allora è probabile che deriverà da Page. Se la tua classe serve da interfaccia tra il Db è il mondo esterno (anche detta una Business Class) può o non derivare da nulla (è una classe "padre") o deriverà dalla classe che gli sta più vicina (semanticamente parlando): DataSet, Connection, DataTable ecc...
Il processo di derivazione si fa se devi utilizzare metodi (funzioni e Sub) ed attributi (Properties) di una classe padre ed in più ci vuoi aggiungere i tuoi metodi ed attributi che specializzano la classe padre. Ottenendo una classe "figlia".la direttiva Inherits si può specificare anche in fase di Import?
???
tutta la nuova classe che scrivo deve essere racchiusa in un namespace?
Se si tratta si classi business allora conviene raggrupparle in NameSpaces per motivi di logistica del codice. Pensa ad esempio al perchè esistono Namespace annidati del tipo:
System;
System.Web;
System.Web.Mail;Allo stesso modo protesti definire un tuo namespace annidato del tipo:
MioProgetto;
MioProgetto.DBConnections;
MioProgetto.DBConnections.Backup;
MioProgetto.DBConnections.Exports;
MioProgetto.Utility;
MioProgetto.UserInterface;
MioProgetto.UserInterface.Print;
ecc...
-
grazie tantissimo,
un pò di teoria è quello che mi serve...:D
sto studiando sui libri, ma a volte sono così astratti che si perde il filo.
grazie ancora.