Domanda

Sto cercando di imparare Asp.net Mvc, quindi sto provando questo Tutorial.

Parlano del modello di repository e di come sia facile passare a un'altra tecnologia di accesso ai dati invece di chiamare direttamente Linq a Sql.

L'uso di LINQ to SQL all'interno di una classe di controller rende difficile cambiare le tecnologie di accesso ai dati in futuro. Ad esempio, è possibile decidere di passare dall'utilizzo di Microsoft LINQ a SQL all'utilizzo di Microsoft Entity Framework come tecnologia di accesso ai dati. In tal caso, è necessario riscrivere tutti i controller che accedono al database all'interno dell'applicazione.

Nota: non ho mai veramente capito come funzionasse un'interfaccia prima di leggere questo tutorial e non è ancora chiaro al 100%. Lo vedo ora come una sorta di "modello" per una classe.

Dopo aver usato con successo Linq to Sql, ho pensato che sarebbe stato bello provare Ado.net Entity Framework poiché ho letto molto su questo. Hanno detto che usare il modello di deposito renderebbe facile il passaggio, quindi ho pensato di provarlo.

La mia domanda è: cosa devo fare per cambiare Ado.net EF?

Questo è quello che penso che dovrei fare.

  • Aggiungi il file Movie.edmx e configuralo (aggiungi la mia tabella dei filmati).
  • Scrivi una nuova classe basata su IMovieRepository e forse chiamala MovieEFRepository.
  • Cambia il parametro nel costruttore del controller in MovieEFRepository. Questa è la prima cosa che trovo strana perché nel tutorial dicono che non usare il repository ti costringerà a cambiare tutti i controller se passi a un'altra fonte di dati. Non ho bisogno di cambiare ogni controller comunque poiché sto specificando la classe MovieRepository?
  • L'ultima modifica che penso di dover fare è cambiare la vista. Perché utilizza la classe Product creata dal designer Linq to Sql. Non sono sicuro di come lo farò. Immagino che avrei dovuto usare qualche oggetto che non dipendesse dal file dbml?

Perdonami se ho una visione leggermente semplicistica di Asp.net Mvc. Sono un web designer con molto interesse per lo sviluppo web di Asp.net.

È stato utile?

Soluzione

Potresti avere il tuo repository disaccoppiato a causa dell'iniezione, non se hai seguito solo gli esempi a causa di

public MoviesController (): questo (nuovo ** MovieRepository ** ())

Ti consiglio di leggere il CIO, è facile e molto interessante, puoi usare un contenitore di ioc come il castello di Windsor.

Con ciò, il tuo controllore avrà un solo costruttore, quello con l'interfaccia, e non dovrà essere cambiato.

Con le tue entità puoi fare lo stesso che con i controller, creare un'interfaccia per ogni entità e usare anche lo schema ioc, con ciò dovrai solo cambiare il tuo file di configurazione per il tuo contenitore ioc.

Se non fai queste cose, il tuo diritto, dovrai cambiare tutto quello che hai detto.

Spero che ti aiuti! scusa per il mio inglese!

Altri suggerimenti

Quindi, dopo alcuni giorni di lettura e molti google, sono riuscito a farlo funzionare. Per prima cosa ho cercato di scoprire cosa significasse effettivamente IoC (Inversion of Control).

Uno dei primi siti che ho trovato è stato un sito Web con uno screencast su Unity. Che è un framework DI / IoC per .Net.

Guardandolo ora, questo è in realtà un ottimo screencast ed esempio su quanto sia facile usare Unity e IoC / DI. Al momento non l'ho capito completamente, quindi sono andato avanti e ho continuato a cercare su Google.

Un sito web in cui mi sono imbattuto è stato quello di Martin Fowler.

Per me, una persona che è un novizio di programmazione di questo sito Web è un po 'astratta. Anche questo potrebbe sembrare strano ma il carattere, l'altezza della linea e la tipografia su quel sito Web erano davvero orribili, il che rendeva ancora più difficile la lettura.

Il prossimo sito web che ho letto riguardava il Castello di Windsor da quando Alfredo Fern & # 225; ndez ha detto che era facile da usare.

La documentazione non era male, ma ho avuto dei problemi nel convertire il loro "inizio". esempio di base per la mia applicazione Asp.net Mvc. Anche le parti 2 e 3 mancavano all'inizio.

Dopo questo ho iniziato a cercare i diversi framework per vedere se riuscivo a trovare un esempio davvero semplice. Se avessi appena guardato di nuovo il primo screencast lo avrei risolto molto prima, ma in qualche modo l'ho perso.

Ho avuto molti problemi con i file di configurazione XML e non riuscivo a farli funzionare. Ho provato Windsor, Structure Map e Spring.net ma mi sono sempre bloccato con i file xml.

Quindi ho deciso di visitare il sito Asp.net Mvc perché è lì che ho iniziato a conoscere Asp.net Mvc. Ho trovato i primi screencast e le presentazioni MIX09 molto chiari e ho capito la maggior parte di ciò di cui la gente parlava. Mi sono bloccato al secondo screencast di Rob Conery durante la creazione dell'applicazione Storefront. Dato che sapevo qualcosa di più sul repository e IOC / DI ora ho pensato che sarebbe stata una buona idea ricominciare a guardare gli screencast di Rob Conery. In uno degli screencast parla del caricamento di tutti i campioni su codeplex.

Sono andato su codeplex e ho scoperto che puoi sfogliare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top