156 messaggi dal 01 dicembre 2010
Con VBA ero ( pardom sono ) abituato ad avere un Modulo di codice
dove posso tenere quelle funzioni comuni a tutta la applicazione.


Vorrei trovare il corrispondente in ASP

per esempio ( ma e solo un esempio )

Devo calcolarmi che ora è adesso a Tokyo tenendo conto
dell'ora solare o legale italiana e/o giapponese che
NON cambiano nello stesso giorno dell'anno

Viene fuori un calcolo abbastanza complesso che poi potrei
dover utilizzare in più WebForm ma non vorrei ripetere
in ogni WebForm

Che tipo di oggetto/File potrei usare in ASP.net per
costruire quella funzione e che poi me la renda disponibile
in tutto il sito





Grazie
354 messaggi dal 13 marzo 2013
Portresti usare sempre un modulo.
156 messaggi dal 01 dicembre 2010
Si giusto,

ma i moduli che conosco io sono quelli allegati alla pagina aspx

Vuoi dirmi che se scrivo una funzione su un modulo qualunque di una pagina qualunque
allora quella funzione è GIA disponibile in tutto il sito ??

Adesso non ho sottomano ASPX per fare un test !!


In verita ieri sera dopo avere pubblicato la domanda ho tentato
creando una Classe ( per intenderci un file di nome "Class1.vb"
sembra che va bene ( ma sono troppo inesperto per essere sicuro )

ho avuto pero il problema che nella funzione che stavo costruendo
dovevo fare riferimento a Server.MapPath("")
e proprio in quel punto ricevevoun errore lavorando sulla Classe

Mentre se lavoro sui classici moduli allegati alle pagine aspx
vedo che possso usare tranquillamente il Server.MapPath("")


scusatemi se espongo in modo confuso, il problema è che la confusione è nelle mie scarse conoscenze di ASP


Grazie
178 messaggi dal 12 luglio 2007
ciao, in .Net si usano le classi denominate shared, cioè sono classi che non vengono istanziate con New e quindi sopperiscono all'idea di modulo in vb6. potresti anche inserire un modulo alla vecchia maniera ma il compilatore poi lo trasforma dietro le quinte in una shared.
ecco come si scrivono queste classi:
aggiungi una nuova classe al progetto, ad esempio Funzioni.vb

Public Class Funzioni
Private Sub New()
'questa funzione impedisce l'istanziamento
End Sub

Public Shared Function Somma(a As Int32, b As Int32) As Int32
Return a + b
End Function
End Class

a questo punto in un punto qualunque nelle tue pagine puoi usare la funzione

Dim risultato = Funzioni.Somma(1, 4)

ti consiglio anche, sulla definizione della funzione, di aggiungere un commento generandolo con i tre apici ''' in modo che venga acquisito da intellisence:


''' <summary>
''' restituisce la somma di due addendi
''' </summary>
''' <param name="a"></param>
''' <param name="b"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function Somma(a As Int32, b As Int32) As Int32
Return a + b
End Function

basta che metti i primi tre apici prima di public ed il resto lo genera visual studio
156 messaggi dal 01 dicembre 2010
Grazie, Questa sera provo e ti faccio sapere :)

.
156 messaggi dal 01 dicembre 2010

.......
ecco come si scrivono queste classi:
aggiungi una nuova classe al progetto, ad esempio Funzioni.vb
............
ti consiglio anche, sulla definizione della funzione, di aggiungere un commento generandolo con i tre apici ''' in modo che venga acquisito da intellisence .......

Perfetto, ha funzionato al 1° colpo
e soprattutto ho capito il significato


Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.