99 messaggi dal 05 ottobre 2006
Secondo voi, nella realizzazione di una web application complessa è meglio gestire la connessione in una classe esterna (metodi Open e Close... altro?) oppure non ne vale la pena e basta creare la connection recuperando la connstring dal DB in ogni pagina? Nel caso in cui sia meglio gestire la connessione in una classe esterna, quali metodi inserireste?

Grazie
>Connessione al DB in una classe esterna? inutile?
Assolutamente no.

È sempre bene separare l'accesso hai dati dalla UI.

Secondo me in un'applicazione web complessa (e anche in quelle meno) conviene appoggiarsi ad un sistema ntier, di conseguenza separare la connessione in una classe esterna è obbligaotria.

Per agevolarti le chiamate puoi utilizzare Microsoft.ApplicationBlocks.Data che ha già tutte le funzioni che ti necessitano.

ciauz
Modificato da imperugo il 24 ottobre 2006 10.19 -

imperugo
Microsoft MVP
myblog : http://www.tostring.it
130 messaggi dal 19 maggio 2006
Mi ero posto la stessa domanda sulla realizzazione di un applicazione web, alla fine ho optato per effettuare la connessione in una classe esterna, anche perchè è più manegevole e molto utile nel richiamarla, se ti serve qualche esempio in c# posso postartelo io.
99 messaggi dal 05 ottobre 2006
Grazie ad entrambi per l'aiuto


imperugo ha scritto:

Per agevolarti le chiamate puoi utilizzare Microsoft.ApplicationBlocks.Data che ha già tutte le funzioni che ti necessitano.


Mai sentito parlare :D, mi sto documentando ora a riguardo:

<< The Data Access Application Block is a .NET component that contains optimized data access code that will help you call stored procedures and issue SQL text commands against a SQL Server database.>>

Che vantaggi porta?? Consente di creare applicazini a 3 livelli (ovvero facilita questa operazione) oppure non c'entra nulla???



angelo.recca ha scritto:
Mi ero posto la stessa domanda sulla realizzazione di un applicazione web, alla fine ho optato per effettuare la connessione in una classe esterna, anche perchè è più manegevole e molto utile nel richiamarla, se ti serve qualche esempio in c# posso postartelo io.


Mi farebbe piacere, ovviamente non per avere la "pappa pronta" ma per capire la logica corretta da adottare nella gestione della connessione e dei relativi errori... quindi se preferisci trasformare il codice in "metalinguaggio" per me va bene uguale
Modificato da sciamano il 24 ottobre 2006 18.48 -
>Che vantaggi porta??
Ti evita la riscrittura del codice per l'accesso al DB,
del tipo

Basta che fai SqlDataHelper.ExecuteNonQuery(parametri,ecc) e lui pensa a costruire una connessione, chgiuderla, ecc.
Ovviamente ti ho fatto un esempio molto spicciolo della cosa ma diciamo che il suo utilizzo serve per evitare riscrittura di codice più volte.

Ovviamente in rete troverai tantissimi esempio sul suo utilizzo, nel caso puoi chiedermi senza problemi.

>Mi farebbe piacere, ovviamente non per avere la "pappa pronta" ma per capire la
>logica corretta da adottare nella gestione della connessione e dei relativi
>errori...

Beh diciamo che la pappa pronta per queste cose non esiste in quanto ognuno ha le proprie esigenze che spesso non combaciano con quelle di altri.
Sulla corretta implementazione non è una cosa rapida e semplice da dire qui in due righe :), però in linea di massima a me piace parecchio il lavoro che hanno fatto Ricky, Andrea, ecc per NSK (NorthWind Start Kit), trovi l'implementazione secondo me più corretta su un'applicazione che deve "Rullare".

Ovviamente è un 'implementazione onerosa, ma per un'applicazione che deve spingere direi che è un ottimo sistema.
Poi all'interno trovi anche l'utilizzo di Microsoft.ApplicationBlocks.Data.

Trovi tutto qui:
http://download.manageddesigns.it/nsk.aspx

Per il logging presto posterò qualcosa (secondo me estremamente interessante) nel mio blog.

ciauz alla prox.

P.S. Ho scritto di corsa potrei aver fatto numerosi errori,nel caso scusami

imperugo
Microsoft MVP
myblog : http://www.tostring.it
99 messaggi dal 05 ottobre 2006
Grazie per la risposta! Il mio riferimento alla "pappa pronta" era in merito al post di angelo ;-)

Sto scaricando il Northwind Starter Kit come da te suggerito... un info: il Data Access Application Block genera anche le classi con la struttura delle mie tabelle del DB??

Grazie
>il Data Access Application Block genera anche le classi con la struttura delle mie
>tabelle del DB??

Beh direi proprio di no, lui non fa altro che creare aprire chiudere, ecc una connessione con un comando e dei parameter, tutto qui.

Beh non è mai corretto riportare le classi come le tabelle del db, forse quello che cerchi tu è più un ORM tipo Hibernate.

imperugo
Microsoft MVP
myblog : http://www.tostring.it
99 messaggi dal 05 ottobre 2006
Si esatto, forse per il mio caso è piu adatto un ORM.

Quindi riassumendo, il data access app block gestisce solo la connessione al DB

in aggiunto potrei utilizzare un ORM (o in sostituzione??)

tra gli ORM free quale credi che sia il migliore dal punto di vista del rapporto potenzialità/semplicità?? Io conosco MyGen e Hibernate.

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.