Asp.net

domenica 02 marzo 2008 - 00.19

lanfra Profilo | Senior Member

Buona sera,
non sò + che fare, leggo mi documento... niente appena mi sembra di capire qualcosa subito dopo inizio a perdermi nei meandri della confusione.

Stò parlando di ASP.NET 2.0 e del mondo .net in generale.
Ho sviluppato 1 anno in vb.net utilizzandolo come se fosse vb7...
una figata facevo cose fantastiche, utilizzavo ado, ho convertito i miei muduli classe e le mie funzioni e tutto sembra funzionare. Sfrutto al massimo le potenzialità dei nuovi controlli e continua a lavorare sugli eventi di questi...

3 settimane fa mi cimento nella programmazione 3-tier... tra DAL e BLL e PL, mi crolla il mondo. Di colpo mi sento alle prime armi. PEr non parlare di ASP.NET un modo a parte.

Cerco di un semplice accesso al db ma ho problemi, i DataTable/DataSet leggo che è il modo + sbagliato per connettersi al DB e che ObjectDataSource è la strada migliore, ma la costruzione delle classi? Cosa bisogna fare?

Mi sapete indicare dei tutorial semplici che ti prendono per mano e ti fanno capire?

grazie in anticipo per ogni risposta

Lanfra

alx_81 Profilo | Guru

>Buona sera,
Ciao!

>Cerco di un semplice accesso al db ma ho problemi, i DataTable/DataSet
>leggo che è il modo + sbagliato per connettersi al DB
>e che ObjectDataSource
>è la strada migliore,
non puoi paragonare ObjectDataSource con DataSet/DataTable.. sono proprio cose differenti. Puoi infatti immaginare un DataSet come un database disconnesso in memoria, il quale a sua volta contiene n DataTable che sono le tabelle del tuo database, e che di conseguenza contengono i dati veri e propri.
Un ObjectDataSource, così come un SqlDataSource, è un controllo che istanzia un oggetto i cui metodi tornano e/o fanno qualcosa.
Diciamo che l'utilizzo dei DataSet e DataTable andrà via via tralasciato per lasciar spazio alle "entities" che potremo utilizzare con le nuove versioni del .net framework.

>ma la costruzione delle classi? Cosa bisogna
>fare?
Ti consiglio di partire da questo link:

ObjectDataSource Class
http://msdn2.microsoft.com/en-us/library/9a4kyhcx.aspx

da qui potrai vedere tutte le caratteristiche del controllo, compresa la sua definizione qui:
http://msdn2.microsoft.com/en-us/library/ms227436.aspx

Poi c'è un tutorial qui:

http://msdn2.microsoft.com/en-us/library/aa581784.aspx

>grazie in anticipo per ogni risposta
di nulla!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

freeteo Profilo | Guru

ciao,
concordo con quanto detto da Alex, usare dataset è un metodo "poco corretto" che ci ha dato ms per velocizzarci lo sviluppo di applicazioni.
Non è da odiare, è solo che se stai lavorando ad applicazioni di una certa grandezza e logica, usare dataset tipizzati, è qualcosa di poco produttivo, conviente usare una struttura ad oggetti (Entita) e pensare alla rappresentazione web come un solo modo di visualizzare una serie di entita'.
Per applicazioni piccole e da dover sviluppare velocemente, usare dataset ti aiuta molto, quindi potrebbe essere una scelta corretta.

Quindi SqlDataSource è ottimo se sai che la tua app si attacca a sql e da quel database non cambiera' mai e non hai voglia/bisogno di farti delle logiche dietro, quindi un canale diretto ai dati da portare sulla pagina aspx.
Se invece i dati hanno delle gerarchie, hanno dei valori da maneggiare prima di arrivare al browser, devi metterci in mezzo qualcosa di tuo che faccia questo codice "di business".
Questo strato, sara' una classe, avra' un metodo, che tu chiamerai e ti tornera qualcosa, ovvero un "oggetto" quindi è una "sorgente di oggetti" (ObjectDataSource appunto).

Vedi te qual'e' la strada che piu' ti si addice, pero' io ti posso dire che la mia esperienza ha portato a partire da access/sqldatasource per arrivare ad avere quasi solo ObjectDataSource, che chiama un metodo di una classe mia, che prende i dati dal db (o da altre sorgenti come puo' esser xml o file di testo) e poi mi torna Collection<T>, dove T è una mia classe.

Esempio:
Per il db NorthWind, la classe è "Customer" con le sue proprieta' (come CustomerID etc...) che leggono e scrivono sul db, ma nella pagina web chiamo un metodo di questo tipo:
public stati IEnumerable<Customer> GetCustomers() { List<Customer> lista = .... ... return lista; }
Ma potevi anche tornare un DataTable, non è un problema, solo che se domani cambi l'implementazione di qualcosa e vai meglio a tornare che ne so, un Array di Customer, della pagina web non cambi niente, se invece hai sqldatasoruce devi cambiare la pagina perche' non ti attacchi piu' a sql ma a qualcosa che ti da sto array...

Se poi usi Linq, hai una facilita' ancora in piu' a lavorare "Slegato dal db", e a modellare di piu' le tue applicazioni...se poi ci aggiungi addirittura Entity Framework di cui ti accennava Alex, beh dataset non saranno piu' nel tuo vocabolario

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

lanfra Profilo | Senior Member

Vi ringrazio per l'aiuto.

E mi consolate, nel senso che io sono un tipo che da sempre è abiltuato a scrivere il proprio codice... così potro creare i miei Menager che utilizzano DataProvidere e da lì eleborare i metodi degli oggetti utilizzando le mie collection...

Sto entrando nella logica.... o per lo meno ci provo.

grazie ancora
Lanfra
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5