2010-10-09 5 views
3

J'ai regardé quelques cadres pour un très grand projet comme plus de 200 pages avec plus de 50 tables etc., à développer en Silverlight. Existe-t-il des meilleures pratiques ou une suggestion de cadre pour développer une application aussi vaste? Espérons que ce sera plusieurs technologies qui composent l'application finale et intéressés à connaître vos opinions à ce sujet. Un de mes amis m'a indiqué Caliburn comme l'un des meilleurs cadres. Est-ce que quelqu'un l'a utilisé pour développer une telle application?calibrer un cadre Silverlight viable pour le grand développement?

Répondre

1

Nous avons un projet légèrement plus petit (environ 30 pages) construit sur Caliburn. Comme je le vois, la seule complication avec plus de pages serait la consommation de mémoire, puisque le calibrage dans son comportement prêt-à-l'emploi initialise toutes les pages (écrans/viewmodels) et les garde en mémoire. Nous avons créé notre façon personnalisée de gérer ce type de "conducteurs d'écran paresseux" qui crée viewmodel seulement quand sa page est demandée et il y a aussi un moyen de la fermer (et ainsi laisser le garbage collector s'en débarrasser). Alors maintenant, peu importe s'il y avait 30 ou 300 pages dans la demande. Il consomme autant de mémoire que nécessaire pour les pages ouvertes (en supposant qu'un utilisateur n'aura pas besoin des 300 pages ouvertes à la fois). Btw: Je prévois de passer à Caliburn.Micro, donc je vais devoir le déplacer vers ce framework. D'autre part, Caliburn.Micro est beaucoup plus propre (et je l'ai aussi bien mieux compris que lors de la création de la solution pour le vieux Caiburn) donc je m'attends à ce que ce soit une bonne idée de refactoriser la solution.

+0

Avez-vous regardé @ PRISM/MEF pour votre solution? Pensez-vous aussi que vous avez besoin d'utiliser vos 'conducteurs d'écran paresseux' dans caliburn.micro ou est-il fixé en micro? – Nair

+0

Nous utilisons le prisme et l'unité dans le projet Caliburn. En ce moment j'ai presque fini avec un autre, beaucoup plus petit, projet basé sur Caliburn.Micro avec MEF + Unity. Je n'utilise plus PRISM car les fonctionnalités principales (comme je le vois) ne sont plus nécessaires. Le chargement paresseux des modules applicatifs ne s'est pas avéré être une bonne solution (les utilisateurs doivent attendre quand ils ne s'y attendent pas) et les régions de prisme sont remplacées par les contextes de vue de Caliburn.Micro. – gius

+1

Si vous ajoutez des pages/écrans à leur parent/conducteur (shell, etc.), ils sont chargés dans la mémoire. Le problème est s'il y a beaucoup de ces pages. Mais ce n'est pas la principale préoccupation de CB/C.M. C.M ne résout pas cela non plus alors je vais devoir le porter aussi. – gius

2

Nous utilisons Caliburn sur tous nos projets (mais c'est trompeur parce que nous avons développé ceux-ci). :-)

Le nombre de tables n'aura aucun impact, car Caliburn n'a rien à voir avec l'accès aux données. Le nombre de "pages" n'a pas nécessairement d'impact. L'utilisation du terme «page» m'amène à penser que vous avez en tête une métaphore de l'interface utilisateur de navigation (style navigateur). Si c'est le cas, vous pouvez toujours bénéficier de Calbiurn lors de l'utilisation de cette approche, mais ce n'est pas la "voie Caliburn" naturelle. En résumé, la taille de l'application et la complexité n'ont pas d'importance. En résumé, la taille de l'application et la complexité importent peu. Afin d'avoir une meilleure idée de la raison pour laquelle Caliburn serait utile, je recommande de lire la série de messages de Rob Eisenberg, beginning here.

Notez que nous encourageons de nouveaux projets à utiliser Caliburn Micro, au lieu de l'original Caliburn. Une ressource supplémentaire pour aider pourrait être video from MIX 10 de Rob, nous discute comment rouler votre propre cadre (indépendant de Caliburn).

Questions connexes