Consiglio operativo

mercoledì 04 novembre 2009 - 11.06

manuelericci Profilo | Newbie

Ciao a tutti
sono alcuni giorni che sto cercando di capire quale è il metodo migliore per sviluppare un'applicazione ingrado di scrivere, modificare e cancellare dati all'interno di un db, e sto provando diverse soluzioni, ma non riesco a decidere quale possa essere il metodo migliore per fare tutto questo. Mi spiego meglio...premesso che provengo da ASP 3.0, quindi per realizzare questo dovevo operare in questo modo:
1 - Pagina Form.asp per Modifica e Nuovo inserimento
2 - Pagina Table.asp per Visualizzazione e Cancellazione dei Dati
3 - Engine.asp per la gestione di tutti e 3 gli eventi
adesso un pò per abitudine un pò perche forse non ho ancora chiaro certi passaggi sto cercando di rifare la stessa cosa con ASP.NET - ma non credo che si giusto.
Vi chiedo quindi un'idea di quale strada intraprendere, o quale metodo adottare da subito...scrivere il codice a mano o utilizzare IDE in larga misura etc. etc.

FrancescoGuadagno Profilo | Senior Member

Ciao,
la domanda che stai facendo capisci bene che è alla base di chi voglia cominciare a sviluppare in ambiente .net per cui la risposta non può essere esaustiva. Il consiglio generale è chiaramente quello di seguire un manuale entry level. In ogni caso l'approccio allo sviluppo in asp.net è molto "simile" a quello windows forms invece che a quello ASP 3.0.
Secondo l'esempio che tu hai fatto, un approccio tipico è avere una pagina Form.aspx per la modifica e l'inserimento e una pagina Table.aspx per mostrare l'elenco e cancellare gli elementi. La parte relativa all'engine viene divisa tra le due pagine aspx appena dette. La logica di visualizzazione e cancellazione va nella table.aspx mentre la logica di inserimento e modifica va nella Form.aspx. Per passare da una pagina all'altra utilizzerai il già conosciuto Redirect.
Altre informazioni al momento mi sembrano superflue ma sappi che in asp.net esistono parecchi controlli studiati apposta per facilitarti in queste operazioni di routine.
In definitiva lega sempre la logica alla pagina e non ti affidare più a un "terzo essere" ovvero l'engine. Se proprio vuoi, un pò piu avanti il "terzo essere" diventa il tuo business/data layer.

manuelericci Profilo | Newbie

ti ringrazio per la risposta, in effetti e devo essere sincero ero già giunto a tale considerazione, aggiungo anche di aver notato che l'IDE stessa offre diverse possibilità per ottenere questo risultato. Ho dovuto fare la domanda a cui tu hai risposto, in questo modo per farmi eliminare definitivamente ogni dubbio sull'engine, detto questo lo scopo della stessa era ottenere una logica opertiva su quali passi adottare, nel caso in cui esistesse uno standard di programmazione, ma mi sembra di capire che dovro decidere da solo quale metodo utilizzare. Ti faccio un'altra domanda secondo te/voi è giusto o logico realizzare una pagina unica dove poter modicare, visualizzare, cancellare e inserire nuovi dati ?, o e meglio separare le 2/3 operazioni ? - mi suggerisci un libro o manuale operativo per queste semplici operazioni, se ne esiste uno ?

FrancescoGuadagno Profilo | Senior Member

>Ti faccio un'altra domanda secondo te/voi è giusto o logico realizzare una pagina unica dove poter modicare, visualizzare, cancellare e inserire nuovi dati ?, o e meglio separare le 2/3 operazioni ?
Normalmente l'approccio è master/detail ma essenzialmente dipende dalla complessità di dati che devi gestire.
Se i dati che mostri in griglia sono tutti e soli quelli da modificare, allora potresti sfruttare le gridview, che ti permettono di effettuare tutte le operazioni che tu elenchi e quindi fare tutto in un'unica pagina. Se invece la griglia mostra solamente i dati sintetici, allora puoi utilizzare l'approccio master/detail, ossia l'approccio che tu stesso hai ipotizzato. Seguono esattamente questo approccio FormView e DetailView.

> mi suggerisci un libro o manuale operativo per queste semplici operazioni, se ne esiste uno ?
io mi son trovato abbastanza bene con il libro "ASP.NET 2.0 per tutti"

manuelericci Profilo | Newbie

>Ti faccio un'altra domanda secondo te/voi è giusto o logico realizzare una pagina unica dove poter modicare, visualizzare, cancellare e inserire nuovi dati ?, o e meglio separare le 2/3 operazioni ?
Normalmente l'approccio è master/detail ma essenzialmente dipende dalla complessità di dati che devi gestire.
Se i dati che mostri in griglia sono tutti e soli quelli da modificare, allora potresti sfruttare le gridview, che ti permettono di effettuare tutte le operazioni che tu elenchi e quindi fare tutto in un'unica pagina. Se invece la griglia mostra solamente i dati sintetici, allora puoi utilizzare l'approccio master/detail, ossia l'approccio che tu stesso hai ipotizzato. Seguono esattamente questo approccio FormView e DetailView.

> mi suggerisci un libro o manuale operativo per queste semplici operazioni, se ne esiste uno ?
io mi son trovato abbastanza bene con il libro "ASP.NET 2.0 per tutti" Quale Casa

Cosa intendi per Master/Detail
ti faccio un esempio
ho un db con 3tabelle
1^ Tabella
1 Nomi con 3 campi idNomi, Nome, idCitta

2 Citta con 2 campi idCitta, NomeCitta

voglio realizzare un form per la 1^ Tabella di inserimento che mi faccia vedere una textbox per il nome e una DropDownList per le città -
NAturalmente devo poter Scrivere uno nuovo record, e modificarne uno esistente dallo stesso form ?

ASP.NET 2.0 per tutti" Quale Casa

FrancescoGuadagno Profilo | Senior Member

L'approccio Master/Detail è quello che hai ipotizzato tu. Hai un elenco di dati sintetici (MASTER). Un utente accede all'elenco di questi dati sintetici per vederne il dettaglio (DETAIL).
Ad esempio, per l'anagrafica di un utente hai una pagina MASTER in cui visualizzi nome e cognome e un pulsante (per ogni riga) per accedere ad esempio in visualizzazione/modifica. Quando fai click su questi pulsanti passi una pagina di dettaglio in cui oltre che mostrare nome e cognome, mostri tutta un'altra serie di informazioni (residenza, data nascita...).

Non ho capito l'esempio che fai. Ti prego di scrivere meglio la richiesta e attenzione ai "quote"

Di seguito un link al libro
http://store.aspitalia.com/libro/p-1559-ASP.NET-2.0-per-tutti.htm con i miei rispetti per dotnethell

ciao

manuelericci Profilo | Newbie

Nell'esempio che facevo intendevo dire:
Ho una DataBase con 2 Tabelle nella prima tabella ho 3 valori id, Nome e idCitta, nella seconda tabella ho 2 valori id e citta vorrei postochè all'interno della seconda tabella ci siano già dei valori, realizzare un modulo inserimento e modifica dati nella seconda tabella con queste caratteristiche, un campo testo TextBox per l'inserimento del nome ed una DropDownList per la scelta della città, la quale preleva i dati dalla prima tabella - questo modulo naturalmente dovrà darmi la possibilità di scrivere e modificare i dati. Spero di essere riuscito a spiegarmi, ti ringrazio in anticipo.

FrancescoGuadagno Profilo | Senior Member

Secondo quanto mi hai detto, io ipotizzo una pagina Elenco.aspx (la MASTER) in cui in una griglia (Repeater, DataList o GridView) puoi visualizzare una colonna con i nomi e una colonna con la città selezionata. Per l'inserimento o per la modifica passerei su una seconda pagina dettaglio.aspx in cui hai la tua textbox e la tua dropdownlist per la scelta della città. La dropdown viene popolata da db.
Per discriminare l'inserimento dalla modifica, potresti includere nel querystring dell'indirizzo di redirect un id. Se presente sei in modifica, se non presente sei in creazione.

manuelericci Profilo | Newbie

mi spieghi meglio :

Per discriminare l'inserimento dalla modifica, potresti includere nel querystring dell'indirizzo di redirect un id. Se presente sei in modifica, se non presente sei in creazione.

FrancescoGuadagno Profilo | Senior Member

>mi spieghi meglio :
>
>Per discriminare l'inserimento dalla modifica, potresti includere
>nel querystring dell'indirizzo di redirect un id. Se presente
>sei in modifica, se non presente sei in creazione.

Sei nella pagina Elenco.aspx e fai click su un pulsante per un nuovo inserimento.
Potresti effettuare un redirect a:

Response.Redirect("dettaglio.aspx?id=new");

Se invece sei nella pagina Elenco.aspx e fai click su un pulsante di modifica di un elemento già presente, potresti effettuare:

Response.Redirect("dettglio.asxp?id=123");

dove evidentemente 123 è l'id dell'elemento associato al pulsante di modifica.

Chiaramente devi occuparti nella pagina di dettaglio di gestire tutti e soli i casi corretti, ovvero un codice valido e la parola chiave "new".

N.B. questa è solo una possibile modalità, forse la più semplice derivata da ASP 3.0.

manuelericci Profilo | Newbie

Grazie 1000, per il tuo suggerimento...ti confesso che nel frattempo avevo già adottato questa soluzione, anche se ancora non mi sembra molto elegante.
Avrei preferito, ed è poi quello che ho fatto, realizzare una pagina Table.aspx, con la visualizzazione dei dati ed affianco ad ogni riga un bottone - modifica che reindirizza ad una pagina modificaForm.aspx con un FormView che di default va in modifica rilevando l'id dalle Table.aspx ed una altra pagina addForm.aspx con un altro FormView che di default è in InsertNewItem.
Che ne pensi ?

FrancescoGuadagno Profilo | Senior Member

>Grazie 1000, per il tuo suggerimento...ti confesso che nel frattempo
>avevo già adottato questa soluzione, anche se ancora non mi sembra
>molto elegante.

guarda, non è mica detto... se i dati nel querystring non sono dati sensibili, questa soluzione è ancora MOLTO utilizzata e comunque una delle più adatte allo scopo. Considera anche che quando prenderai dimestichezza con controlli complessi di asp.net, se non sbaglio proprio formview e detailview, vedrai che alcuni sono proprio basati sull'automazione del passaggio di parametri sul querystring.

>Avrei preferito, ed è poi quello che ho fatto, realizzare una
>pagina Table.aspx, con la visualizzazione dei dati ed affianco
>ad ogni riga un bottone - modifica che reindirizza ad una pagina
>modificaForm.aspx con un FormView che di default va in modifica
>rilevando l'id dalle Table.aspx ed una altra pagina addForm.aspx
>con un altro FormView che di default è in InsertNewItem.

può andar bene... potresti giusto evitare di avere due pagine per modifica e insert.. ma passeresti praticamente alla soluzione che ti ho suggerito ;)

manuelericci Profilo | Newbie

se non ti dispiace ti manderei in e-mail i 3 file che ho realizzato, magari se per te non è troppo impegnativo li modifichi per farmi capire meglio ? posso ?

FrancescoGuadagno Profilo | Senior Member

non ho l'ide con me... prova a pubblicare qui

manuelericci Profilo | Newbie

non ti preoccupare quando potrai verifica con tutta calma, ti ho inviato i file.

FrancescoGuadagno Profilo | Senior Member

Non ho ricevuto messaggi
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5