49 messaggi dal 29 dicembre 2003
nella realiazione del mio micro pgrogramma in linguaggio VB, mi sono accorto che ripetevo il codice di apertura e chiusura di un database o di un popolamento di una listbox presenti in piu' pagine.
come posso creare una unica funzione che mi permette di aprire o popolare una listbox da piu' pagine

si possono creare delle classi che servono a tale scopo?

Grazie
438 messaggi dal 04 agosto 2002
Contributi
delfino_cobalto ha scritto:

si possono creare delle classi che servono a tale scopo?


non si può, si deve ;)
Il problema per darti una risposta utile è che esistono veramente molti modi per gestire al meglio le chiamate al db: dataadapter, nhibernate, linq-to-sql, modellazione a mano del proprio DAL. Non esiste una risposta univoca.

Questi sono alcuni link raccolti da Beth Massi con ottimi articoli sullo sviluppo di applicazioni n-tier:
http://services.community.microsoft.com/feeds/feed/query/tag/n-tier/eq/tag/visual%20basic/eq/and/locale/en-us/eq/and

Gli articoli sono chiari e ben scriti ma se non hai mai sviluppato OOP rischiano di creare solo panico ...
Domandina: hai scritto ancora una funzione shared?

v
99 messaggi dal 12 novembre 2001
Anche io sono interessato alla cosa, e non solo per l'accesso ai dati....

G
438 messaggi dal 04 agosto 2002
Contributi
uly ha scritto:
Anche io sono interessato alla cosa, e non solo per l'accesso ai dati....

G


La prima indicazione che mi vien da dare è: se ancora non stai seguendo la programmazione ad oggetti, è il momento di farlo :P

Riassumere però l'argomento è al di là delle mie possibilità ;)

Provo a cercare alcuni tutorial introduttivi, ma non assicuro nulla. Il paradosso è che tutti dicono che programmazione ad oggetti, più tonnellate di pattern dagli acronimi più disparati sono must della buona programmazione; poi però esiste un salto fra manualistica introduttiva all'argomento (+ o - assente) e articoli di ogni genere di livello avanzato.

Un paio di libri che ho in casa sono:
http://www.amazon.com/Professional-Design-Patterns-NET-Applications/dp/1590592743
e
http://www.amazon.com/Expert-Visual-Basic-Business-Objects/dp/1590591453

In particolare il primo lo consiglio anche ai neofiti.

Non mi vorrà male aspitalia se indico anche:
http://www.guisa.org/

è una comunity italiana di .net solutin architect

UPDATE,dimenticanza madornale: http://tutorials.aspitalia.com/Architettura/

v
Modificato da vladimiro il 13 agosto 2008 13.25 -
49 messaggi dal 29 dicembre 2003
Grazie per il consiglio.
Non ho mai creato classi di un certo peso.. mi sono sempre limitato ad utilizzare quelle standard.
Mi potresti fare un esempio su come posso popolare una list box presente in piu' pagine?
Grazie
438 messaggi dal 04 agosto 2002
Contributi
Allora, ipotiziamo di dover inserire nella listbox un elenco di città che hai nel database.

1) crei la tua classe city:
Public Class City 
 
    Private m_Id As Integer 
    Private m_Name As String 
 
    Public Property Id() As Integer 
        Get 
            Return m_Id 
        End Get 
        Set(ByVal value As Integer) 
            m_Id = value 
        End Set 
    End Property 
 
    Public Property Name() As String 
        Get 
            Return m_Name 
        End Get 
        Set(ByVal value As String) 
            m_Name = value 
        End Set 
    End Property 
 
End Class


Insieme alle altre classi del tuo modello puoi compilarla in una Dll ad hoc.

2) crei le classi per gestire le operazioni di connessione al db:
Public Class MyDb 
 
    Public Shared Function GetCityList() As List(Of City) 
        Dim cmd As New SqlClient.SqlCommand("select Id, Name from cities") 
        Dim dr As SqlClient.SqlDataReader = cmd.ExecuteReader 
        Dim list As New List(Of City) 
 
        While dr.Read 
            Dim c As New City 
            c.Id = dr("id") 
            c.Name = dr("name") 
            list.Add(c) 
        End While 
 
        Return list 
    End Function 
End Class


3) a questo punto, nel codebehind delle tue pagine, ogni volta che devi popolare la tua listbox scriverai:
miaListBox.Datasource=db.GetCityList() 
miaListBox.DataBind()


Detto questo ...

Ora, imho, se hai intenzione di imparare bene la programmazione ad oggetti devi considerare che non puoi farlo con un esempietto o due. Bisogna mettersi di buzzo buono e con l'idea che serve studio e fatica, accompagnate se c'è passione anche da continue scoperte e perchè no divertimento.

Se invece l'obiettivo (assolutamente legettimo) è quello di risparmiare tempo nella scrittura del codice la cosa in assoluto migliore è utilizzare, ad esempio, i vari DataSource automatici che sono messi a disposizione dal visual studio. Con quelli, se l'applicazione è semplice, "rischi" veramente di non scrivere neppure una riga di codice

Sempre a dispo, ciao ciao,
v
49 messaggi dal 29 dicembre 2003
Grande!!!
scusa vladimiro forse la tropa fretta di voler applicrlo mi sta confondendo le idee.

In quale parte del codice si crea la connessione al database?
la devo creare nella classe o nel codice della pagina?

Ammetto la mia ignoranza.... ma ho desiderio di capire meglio il funzioanmento

Grazie
438 messaggi dal 04 agosto 2002
Contributi
delfino_cobalto ha scritto:
Grande!!!
scusa vladimiro forse la tropa fretta di voler applicrlo mi sta confondendo le idee.

In quale parte del codice si crea la connessione al database?
la devo creare nella classe o nel codice della pagina?

Ammetto la mia ignoranza.... ma ho desiderio di capire meglio il funzioanmento

Grazie


va in quella parte che gestisce lo strato di accesso ai dati, il Data Access Layer, per gli amici DAL :)
Leggi questo bellissimo articolo: http://www.aspitalia.com/articoli/architettura/layered-architecture-p-1.aspx

L'ultima parte contiene anche un esempio pratico (ma non correre subito lì, se i concetti ti sono nuovi fermati bene anche a capire le prime parti). Come vedrai non è per nulla banale; è possibile (è probabile) un momento di panico, non preoccuparti ;)
Prova a modellare il tuo codice secondo l'esempio proposto da Riccardo (l'autore dell'articolo). Poi se ti blocchi posta, e fai sapere su quale punto non sai proseguire.

Dai un occhio anche ai link proposti sempre da Riccardo Golia nel suo ultimo post a questo link: http://forum.aspitalia.com/forum/post/329514/.NET-Cominciare.aspx

ciao e scusa tu il tono eventualmente un po' pedante, non farci caso.

vladi

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.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC