Pregunta

Estoy buscando desarrollar una aplicación ASP.NET MVC, que debería tener la capacidad de ejecutarse en Azure en el futuro. La aplicación usará el patrón de diseño CQRS, al que soy bastante nuevo. El modelo de escritura utilizará nHibernate con mapeos. No estoy seguro de qué tipo de base de datos usar para el modelo de lectura. El modelo de lectura debe tener las siguientes propiedades:

  • No necesita estar basado en SQL, pero podría estarlo. NHibernate también podría usarse allí para crear un modelo de vista simple -> Tipo de tabla de asignaciones, sin claves extranjeras. SQL CE o SQLite en la base de datos de memoria podría usarse como proveedor de datos. Esto también da un poco más de flexibilidad cuando se trata de consultar los datos.

  • Simplemente podría ser un objeto serializado / deserializador que almacena los objetos del modelo de vista tal como son. Debería hacer esto fácil de usar y podría utilizar cosas como Azure Blob Storage en el futuro. ¿Hay algún buen marcos que manejen esto en el buen sentido?

Me encantaría recibir algunos comentarios de algunas personas que han construido este tipo de aplicaciones antes.

¿Fue útil?

Solución

Estamos utilizando el almacenamiento Blob para las vistas CQRS que respalda el cliente web ASP.NET MVC 2 (y el cliente de escritorio). Algunos detalles más Esto está en producción y es una gran mejora sobre la versión anterior de vistas (nHibernate sobre SQL Azure)

Maneja la indexación y consulta simples también. Para escenarios más complejos, estoy considerando usar un subconjunto de funcionalidad de almacenamiento de tabla (solo para conjuntos realmente grandes que no pueden dividirse).

Otros consejos

Para el modelo de lectura, utilizamos SQL Server 2008 R2 con servicios de datos WCF en la parte superior. El servicio de datos de WCF se configura para permitir solo leer. Los datos en la base de datos SQL Server 2008 R2 son una tabla por entidad, con vistas especializadas creadas sobre ellos.

La aplicación ASP.NET MVC no accede directamente a las entidades, solo consulta las vistas.

Un escenario como este se puede indexar bien y las vistas le brindan flexibilidad final.

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