2009-04-21 12 views
6

Tengo tres semanas para diseñar una aplicación Silverlight 3 LOB y he decidido incorporar Entity Framework, RIA Services y el patrón MVVM.¿Hay algún valor en el uso de un marco de Silverlight?

Ahora estoy investigando todo el pegamento. Estoy comprobando comportamientos, ICommand, propiedades de dependencia, IoC, etc.

Hay una serie de marcos para Silverlight a partir de este escrito.

Silverlight.FX
Silverstone
CSLA for Silverlight
Prism
Caliburn

Son estas necesaria?
¿Tiene experiencia con alguno de estos marcos?
¿Estos marcos siguen siendo aplicables para Silverlight 3?
¿Cuáles son los pros y los contras del trabajo con cualquiera de estos marcos?

Para ser sincero, no estoy tan interesado en CSLA porque no lo usamos hoy pero lo incluí para completarlo.

Respuesta

4

Falta una de las cosas (que es importante para MVVM). De modo que estarás rodando al menos una parte de lo que te proporciona el marco.

Personalmente, no utilizo ningún marco de terceros, pero sí uso un marco interno de la empresa que me proporciona comandos y tiene clases base para la parte de ViewModel de MVVM.

+0

El comando es algo que sé que definitivamente necesito. –

+1

Para ser sincero, lo que haría es echar un vistazo a los marcos de código abierto y tomar el comando que es necesario y luego agregar los otros bits cuando los necesite. –

+0

Eso es en realidad lo que estaba pensando a menos que alguien aquí me dijera que X framework era esencial. –

1

No tengo ninguna experiencia con esos frameworks, pero basándome solo en YAGNI y la novedad de Silverlight 3 y RIA Services, solo me quedaría con Silverlight 3 y RIA Services hasta que pueda probar que tiene una necesidad de un marco adicional.

Supongo (pura especulación) que las nuevas características de Silverlight 3, junto con .NET RIA Services, abordan muchas de las mismas deficiencias de Silverlight que abordan esos marcos.

+0

Parte de mí está de acuerdo y la otra parte quiere algo un poco más simple. Ahora que me estoy familiarizando con MVVM, RIA Services y Silverlight 3, no puedo evitar sentir que falta algo, pero no tengo la comprensión suficiente para saber qué es eso. Esta pregunta fue más para mí para averiguar qué es ese "algo". –

1

ciertamente he tiene un sesgo personal, basada en lo que hago en el trabajo pero las características que encuentro muy útil en cualquier proyecto de Silverlight ...

  1. datos
  2. autenticación/seguridad
  3. disparadores/Acciones (para mantener la mayor parte de sus declaraciones)
  4. Comportamientos (para encapsular la funcionalidad de vista en componentes reutilizables que puede adjuntar a controles)
  5. Ver modelo/MVVM (para ver por separado del código)
  6. simple COI - para conseguir dependencias inyecta en sus modelos de vista
  7. Efectos y transiciones

Si su aplicación es compleja/tiene múltiples pantallas ... 8. Navegación y posiblemente algún MVC

1 y 2 - Esperamos tratar con .NET RIA Services.

Los otros, estoy tratando de proporcionar una implementación a través de Silverlight.FX ... inicialmente como una implementación que las personas pueden usar como están o como punto de partida, y con el tiempo llevarlas a la plataforma/SDK.

Por lo que a sí mismo va, es ciertamente útil, pero no esencial en mi opinión, si tienes la funcionalidad básica de encuadernación y la capacidad de unir eventos a métodos de vanilla a través de acciones.

2

Me gusta el Silverlight.FX de Nikhil, ya que incluye comandos, mvvm y algunos elementos "divertidos" como el comportamiento de desplazamiento de la rueda del mouse. Prism también es bastante bueno y creo que su sistema de publicación/suscripción de eventos es más poderoso que el de Silverlight.FX. En general, considero que Prism es un poco engorroso (y no totalmente relevante si planea construir una aplicación de navegación SL3). Ninject es mi favorito actual para DI.

+0

¿De verdad crees que Prism es más engorroso? Ninject es muy popular, pero la unidad se veía pequeña y simple. ¿Qué tan grande es el ensamblaje SilverLight.fx resultante? y la Asamblea Ninject? –

+0

Prisma me parece más pesado porque no es fácil de comprar en una parte del sistema. Ahora tengo un proyecto que realmente podría usar el sistema de eventos, pero para usarlo debes usar su marco DI (para obtener un EventAggregator). La solución de Nikhil es agradable porque puedes usar los comandos con muy poca sobrecarga. Para ser sincero, eso es realmente un pequeño golpe en Prism; es un marco poderoso si tienes una aplicación grande en la que estás trabajando. Mi aplicación es más pequeña, así que prefiero los marcos livianos y fáciles de digerir. No estoy seguro sobre el tamaño dll - ¡descárgalos! –

Cuestiones relacionadas