Pregunta

Estoy tratando de aprender Asp.net Mvc, así que estoy probando este Tutorial.

Hablan sobre el patrón de repositorio y cómo es fácil cambiar a otra tecnología de acceso a datos en lugar de simplemente llamar a Linq a SQL directamente.

Usar LINQ to SQL dentro de una clase de controlador hace que sea difícil cambiar las tecnologías de acceso a datos en el futuro. Por ejemplo, puede decidir cambiar de usar Microsoft LINQ a SQL por usar Microsoft Entity Framework como su tecnología de acceso a datos. En ese caso, deberá volver a escribir cada controlador que acceda a la base de datos dentro de su aplicación.

Nota: Nunca entendí realmente cómo funcionaba una interfaz antes de leer este tutorial y todavía no está 100% claro. Ahora lo veo como una especie de 'plantilla' para una clase.

Después de usar con éxito Linq para SQL, pensé que sería bueno probar Ado.net Entity Framework ya que he estado leyendo mucho sobre esto. Dijeron que usar el Patrón de repositorio facilitaría el cambio, así que pensé en probarlo.

Mi pregunta es: ¿qué debo hacer para cambiar a Ado.net EF?

Esto es lo que creo que debería hacer.

  • Agregar el archivo Movie.edmx y configurarlo (agregar mi tabla de películas).
  • Escriba una nueva clase basada en IMovieRepository y tal vez lo llame MovieEFRepository.
  • Cambie el parámetro en el constructor del controlador a MovieEFRepository. Esto es lo primero que encuentro extraño porque en el tutorial dicen que no usar el repositorio te obligará a cambiar todos los controladores si cambias a otra fuente de datos. ¿No necesito cambiar todos los controladores de todos modos ya que estoy especificando la clase MovieRepository?
  • El último ajuste que creo que debo hacer es cambiar la Vista. Porque está usando la clase Product que fue creada por el diseñador Linq to Sql. No estoy seguro de cómo voy a hacer esto. ¿Supongo que debería haber usado algún objeto que no dependiera del archivo dbml?

Perdóname si tengo una vista ligeramente simplista de Asp.net Mvc. Soy un diseñador web con mucho interés para el desarrollo web de Asp.net.

¿Fue útil?

Solución

Podría tener su repositorio desacoplado debido a la inyección, no si siguió solo los ejemplos debido a

public MoviesController (): esto (nuevo ** MovieRepository ** ())

Te recomiendo que leas sobre el COI, es fácil y muy interesante, puedes usar un contenedor de ioc como el castillo de windsor.

Con eso, su controlador tendrá un solo constructor, el que tiene la interfaz, y no será necesario cambiarlo.

Con sus entidades puede hacer lo mismo que con los controladores, crear una interfaz para cada entidad y usar el patrón ioc también, con lo que solo tendrá que cambiar su archivo de configuración para su contenedor ioc.

Si no haces estas cosas, tienes razón, tendrás que cambiar todo lo que dijiste.

¡Espero que te sirva de ayuda! ¡perdón por mi inglés!

Otros consejos

Entonces, después de unos días de lectura y de buscar en Google, lo puse a trabajar. Primero intenté averiguar qué significaba realmente IoC (Inversión de control).

Uno de los primeros sitios que encontré fue un sitio web con un screencast sobre Unity. Cuál es un marco DI / IoC para .Net.

Mirándolo ahora, este es realmente un muy buen screencast y un ejemplo de lo fácil que es usar Unity e IoC / DI. En ese momento no lo entendí completamente, así que seguí y busqué en Google.

Un sitio web con el que seguía encontrándome era el de Martin Fowler.

Para mí, una persona que es un novato en codificación de este sitio web es un poco abstracto. Además, esto puede sonar extraño, pero la fuente, la altura de la línea y la tipografía en ese sitio web fueron realmente horribles, lo que hizo que fuera aún más difícil de leer.

El siguiente sitio web que leí fue sobre el Castillo de Windsor desde que Alfredo Fern & # 225; ndez dijo que era fácil de usar.

La documentación no estaba tan mal, pero tuve algunos problemas para convertir su " empezar " ejemplo básico de mi aplicación Asp.net Mvc. También faltaban las partes 2 y 3 desde su inicio.

Después de esto, comencé a buscar los diferentes marcos para ver si podía encontrar un ejemplo realmente básico. Si volviera a mirar el primer screencast, lo habría solucionado mucho antes, pero de alguna manera lo perdí de vista.

Tuve muchos problemas con los archivos de configuración xml y parecía que no podía hacerlos funcionar. Intenté Windsor, Structure Map y Spring.net pero siempre me quedé atascado con los archivos xml.

Así que decidí ir al sitio Asp.net Mvc porque allí es donde comencé a aprender sobre Asp.net Mvc. Los primeros screencasts y las presentaciones MIX09 me parecieron muy claros y entendí la mayoría de lo que la gente hablaba. Me quedé atrapado en el segundo screencast de Rob Conery cuando construí la aplicación Storefront. Debido a que ahora sabía un poco más sobre el repositorio y el COI / DI, pensé que sería una buena idea comenzar a ver los screencasts de Rob Conery nuevamente. En uno de los screencasts, habla sobre subir todas las muestras a codeplex.

Fui a codeplex y descubrí que puedes navegar a través de

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top