Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Accesso ai dati con ASP.NET
sabato 15 novembre 2014 - 00.58
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
Visual Studio 2010
stefano1856
Profilo
| Junior Member
100
messaggi | Data Invio:
sab 15 nov 2014 - 00:58
Ciao,
sto da poco sviluppando per il web e devo capire come si gestiscono i dati di un db Sql Server all'interno del sito.
In particolare volevo chiedere se è necessario usare il pattern MVC anche per piccoli progetti, e se si possono usare i dataset come per le Form Windows.
Ci sono molti concetti e francamente devo fare un po' di ordine
Grazie
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
sab 15 nov 2014 - 02:04
>Ciao,
ciao
>In particolare volevo chiedere se è necessario usare il pattern
>MVC anche per piccoli progetti, e se si possono usare i dataset
>come per le Form Windows.
CONCETTI WEB
in effetti mi duole dirti che di concetti ce ne sono proprio tanti, ma in questi casi è l'esperienza che ti aiuta ad ambientarti in un mondo che è molto dinamico. Proviamo tuttavia a partire piano piano. Per prima cosa, come hai detto tu, MVC è un pattern e quindi è un insieme di regole e di naming convention che ti permettono di utilizzare un comodissimo approccio per lo sviluppo dei tuoi siti web. Il vantaggio che hai con questo modo di procedere è il disccoppiamento tra le tre parti fondamentali, ovvero il modello, il controller (delle logiche di business) e le viste (che poi sono i render delle pagine). Uno degli svantaggi, per chi viene però dal modo delle web forms (altro tipo di progetto web con Visual Studio) è che perdi completamente (e a mio avviso, meglio così
) la possibilità di utilizzare i controlli aspnet (DataGrid, Repeater, e compagnia bella).
Ad ogni modo, hai Razor con MVC, ovvero un metalinguaggio molto semplice e potente (pieno di estensioni, anche disponibili come aggiunta sul web) che ti aiuta molto nella fase di render. Tuttavia, vista la direzione in cui va il web oggi, molto spesso avrai a che fare con "single page application", e con applicazioni altamente responsive e automaticamente adattabili alle risoluzioni dei device in commercio (vedi smartphone e tablet).
Per gestire semplicemente questa visione, ci sono dei framework javascript e css che praticamente ti "vestono" l'applicazione semplicemente includendoli nei tuoi website. Per non parlare dei controlli js già preconfezionati (plugin di jQuery ad esempio) e dei framework per il template e il binding delle viste con i relativi modelli (AngularJs, EmberJs, Mustache, KnockoutJs).. c'è pieno.
SOMMARIO
Se devi fare un'applicazione web, per cominciare, ti consiglio di dimenticare le webform e di seguire i tutorial per MVC qui:
http://www.asp.net/mvc
Una volta fatto il tuo sito, puoi tranquillamente già giocare con jQuery e le chiamate asincrone, per avere interfacce responsive che non devono per forza ricaricare sempre la pagina per intero, ma solo delle are di essa. E già qui sei a buon punto.
ACCESSO AI DATI
Parlando invece di DataSet, essi fanno parte delle librerie di accesso ai dati del framework, non hanno nessun legame stretto o dipendenza nei confronti del modello col quale vuoi fare l'applicazione, sia essa desktop, web con mvc, asp.net, servizio, ecc. La classe DataSet è tutt'ora presente nel framework anche se ormai, l'approccio è un po' cambiato. Si preferisce ragionare con modelli scritti come semplici classi (POCO objects) con proprietà altrettanto semplici. E si preferisce utilizzare List ed Enumerable piuttosto che DataSet o DataTable, poiché nella maggior parte dei casi queste ultime classi non vengono utilizzate nemmeno al 30%. Hanno e danno un sacco di funzionalità, molto spesso ignorate. Alla fine, più che leggere e ciclare la "tabella", poche volte ci capita di salvarla in XML o su file, oppure di fare una vista ordinata, o ancora di lavorare con set disconnessi (se non sul client). Per farti capire, immagina di avere una classe Persona ed una chiamata a SQL Server che torna le persone, il metodo che chiama quel comando si chiamerà ListaLePersone e sarà di tipo List<Persona>, in cui persona è una semplice classe con, ad esempio, 5 proprietà come età, altezza, peso, razza e sesso. Questo, non solo spreca meno risorse (un DataTable di persone, ad esempio, è VERAMENTE pesante in confronto ad una List<Persona>) ma ti dà la possibilità di avere oggetti ben conosciuti e, di conseguenza, aumenta anche il debug e la testabilità/leggibilità del tuo codice. Il che non è da sottovalutare.
SOMMARIO
Cerca di disegnare i tuoi modelli facendo una bella analisi su come organizzarli. Falli semplici e poi utilizza le collezioni e gli enumerable per ottenere le tue "tabelle". Nel caso in cui tu volessi avere un'immagine precisa del tuo database sul codice, valuta seriamente la possibilità di usare Entity Framework, il quale, oltre ad usare POCO objects nella definizione dello schema del database, ti consente di gestire chiavi primarie e relazioni, e anche indici se serve.
Per EF:
http://msdn.microsoft.com/it-it/library/bb399567
(v=vs.110).aspx
>Grazie
Spero di non averti fatto ancora più confusione.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222
stefano1856
Profilo
| Junior Member
100
messaggi | Data Invio:
sab 15 nov 2014 - 02:49
Ti ringrazio per le linee guida che mi hai dato.
Le studierò sicuramente con calma,
ma devo chiudere in poco tempo un progetto e dato che provengo dalle applicazioni windows,
pensavo per il momento di usare gli SqlDataSurce, anche se forse non sono l'ultimo grido,
può essere una strada accettabile anche se non ottimale ?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
sab 15 nov 2014 - 03:15
>può essere una strada accettabile anche se non ottimale ?
Questo ti obbliga ad usare le web form. Quindi, una volta che sai che dovrai affrontare un tipo di problematiche un po' diverse da quello che troverai spesso "in giro", sei a cavallo. Quelli sono controlli forniti con le web form, puoi utilizzarli e non ci sono particolari problemi, se non il fatto che la tua applicazione web così è fortemente accoppiata al database. Valuta bene quest'ultima cosa, perché poi nel tuo codebehind (o comunque a server) avrai la connessione diretta al database. Ciò significa che se devi ripetere logiche anche altrove (ad esempio una windows application) dovrai riscrivere le logiche.
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/en-us/mvp/Alessandro%20Alpi-4014222
andrestu
Profilo
| Expert
772
messaggi | Data Invio:
ven 5 dic 2014 - 11:05
ciao a tutti,
scusate se mi inserisco nella discussione ma volevo sapere se qualcuno di voi ha mai usato MVC con Nhibernate (invece di EF) per strutturare il livello dati, qualche suggerimento o consiglio in merito...
Grazie
Andrea Restucci - Web Developer
Torna su
Stanze Forum
Elenco Threads
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 !