probar - Conversión de una aplicación MVP ASP.NET a Silverlight 3: ayúdame a elegir una arquitectura
habilitar silverlight (4)
Es posible que desee echarle un vistazo al marco CSLA, aunque no es para todos, es un marco agradable, fácil de usar y poderoso.
El autor, Rockford Lhotka, también escribió una versión para Silverlight y ofrece una serie de videos sobre cómo crear aplicaciones usando CSLA y Silverlight, para ayudar a los desarrolladores a ponerse al día rápidamente.
Algunos enlaces para que revises:
Me han pedido que convierta una aplicación MVP ASP.NET a Silverlight. Esta será mi primera aplicación de Silverlight y estoy luchando para determinar la mejor manera de organizar la arquitectura.
La aplicación es en gran medida una aplicación CRUD LOB estándar. También usaré un componente SIG, pero no creo que esto haga una diferencia en la arquitectura general (corrígeme si lo hace). Usaré Subsonic como DAL, pero una vez más, no creo que esto haga una diferencia en mi arquitectura.
La aplicación original es bastante grande, por lo tanto, si es posible, me gustaría reutilizar la mayor cantidad posible del modelo y la vista.
Leer en la web es un poco confuso en cuanto a lo que se considera ''mejores prácticas'' para la arquitectura de las aplicaciones Silverlight 3 LOB. Microsoft parece estar impulsando este marco de RIA, pero es solo en vista previa ... ¿está listo para producción? Me da la impresión de que Microsoft está impulsando diferentes pautas arquitectónicas con Silverlight 3, ¡pero estoy luchando por descubrir qué son exactamente estas arquitecturas!
También hay Prism y el proyecto Caliburn.
Luckliy Aquí tengo una fecha límite muy flexible, por lo que me gustaría acercarme a las mejores prácticas, aunque al principio signifique una pequeña curva de aprendizaje.
Agradecería muchísimo un empujoncito amistoso en la dirección correcta.
editar en respuesta a las respuestas hasta el momento
La solución será una aplicación Silverlight al 100% a pantalla completa. No estoy interesado en una interfaz mixta de Silverlight-Asp.net.
Con esto en mente, quiero maximizar la reutilización del modelo y ver parte de la base de código, pero solo si esto es posible sin sacrificios mayores a la nueva arquitectura .
La solución debe venir de Microsoft o al menos tener un buen soporte.
Si RIA es susceptible de cambiar antes de la publicación, está totalmente fuera de conflicto.
segunda edición
Gracias a todos por sus excelentes respuestas. He votado por todos, pero la respuesta tiene que ir a Steve porque su respuesta fue en realidad la serie de preguntas que debería haberme estado haciendo a mí mismo.
Actualizaré el hilo una vez que haya visto bien tanto a Prism como a CSLA.
Los amo a todos.
Hemos estado yendo por un par de meses ahora. Estamos usando Prism y servicios de RIA. Creo que hay una pequeña curva de aprendizaje, pero disfruto Prism y hay algo de apoyo en línea.
Los servicios de RIA son un poco más dudosos, pero creo que vale la pena usarlos. Empezamos a tratar de usarlo poco después de la Vista previa de julio, y no había mucha documentación en línea para mirar. A medida que pasaron los últimos meses, logramos que haga lo que queremos, y hay más ejemplos y soluciones en línea que ayudan. Microsoft lo está presionando, y creo que se solucionará al final.
Tantas opciones :-) Tu elección probablemente depende de varios factores:
- Cuánto quiere reutilizar de la solución actual
- Ya sea que desee una aplicación SL a pantalla completa, o simplemente reemplace partes del sitio con contenido "más rico"
- Cómo está estructurada su aplicación actual, tanto visualmente como a qué están regresando sus ActionMethods
- Escalas de tiempo
Los servicios de RIA pueden ser un ajuste decente, ya que le permitirían, al menos, reutilizar su modelo y validación (si está utilizando anotaciones de datos), pero está un poco lejos y es probable que cambie antes de la publicación.
La otra opción es una aplicación Silverlight básica, por lo que recomiendo echar un vistazo a PRISM y MVVM para estructurarla (¡aunque solo sea para mantener baja la carga inicial!). Probablemente puedas reutilizar tu modelo, y hay soporte para anotaciones de datos en Silverlight, pero no estarías lejos de recrear una nueva aplicación.
La tercera opción, que te puede encantar u odiar, sería construir "islas" de una gran funcionalidad en SL para las áreas de tu sitio. Podría usar su aplicación MVC existente y posiblemente tener ActionMethods devolver JSON (o XML, si lo prefiere) que sus áreas SL podrían consumir y procesar. Tendría una reutilización de código decente y podría mejorar áreas del sitio de forma aislada.
Una respuesta abierta a una pregunta abierta :-)
EDITAR : A juzgar por sus respuestas, si fuera yo, estaría creando una aplicación PRISM. Si actualmente es una aplicación web, debería "sentarse" bastante bien con el modelo regional (aunque en realidad no reutilizaría ningún código de vista), y la carga dinámica XAP ayudará con su carga inicial si desea una sola aplicación a pantalla completa. . Si se trata de una aplicación basada en CRUD, es posible que desee echar un vistazo a XAML Power Toys para juntar rápidamente formularios de datos.
Datawise podría reutilizar su modelo y exponerlo a través de los servicios de datos WCF o ADO.Net, esperar a que los servicios de RIA se estabilicen (según sus escalas de tiempo) o seguir utilizando los métodos de acción de MVC, pero devolver los JSON para que la aplicación SL consuma.
Yo personalmente votaría por prisma para una aplicación de tamaño considerable, RIA tiene una licencia de "activación" pero aún así confío en eso. Recuerda que puedes mezclar y combinar.
Consulte http://compositewpf.codeplex.com/