2010-08-29 11 views
4

Lors du test localhost des applications Silverlight modulaires basées sur Prism, les modules XAP se téléchargent trop rapidement pour avoir une idée du résultat final. Cela rend difficile la visualisation des progrès, des splash-screens ou d'autres états visuels. Quelle est la meilleure (ou la plus standard) méthode pour ralentir intentionnellement le chargement des modules XAP et d'autres contenus dans une configuration de développement locale?Meilleure/méthode standard pour ralentir le chargement des modules Silverlight Prism (pour les tests)

J'avons ajouté le délai de temporisation de temps en temps (via un story-board à base de code), mais je préférerais quelque chose que je peux placer sous le capot (en dire le chargeur de l'unité?) Pour ajouter un retard important à tous les modules chargent et dans les versions de débogage seulement.

Suggestions accueilli *

* Note: Je l'ai étudié l'option « grand fichier » et il est impraticable pour les grands projets (et ne parvient pas à créer XAP avec des fichiers très grands avec erreur de dépassement de mémoire). La solution doit être basée sur un code et, de préférence, s'intégrer dans les coulisses pour ralentir le chargement du module dans un environnement hôte local.

**** Remarque:. Pour clarifier, nous cherchons spécifiquement une réponse compatible avec le modèle PRISM Microsoft & PRISM/CAL Bibliothèques **

Répondre

0

N'ajoutez aucun fichier à vos projets de module. Cela ajoute des tests de régression inutiles à votre module puisque vous modifiez la disposition du module en étendant la partie non exécutable. Les chances sont que vous ne ferez pas ce test de régression, et qui sait si cela va causer un problème. Mieux vaut être paranoïaque. Au lieu de cela, venez avec une procédure Delay (int millisecondes) que vous passez dans un rappel qui matérialise le rappel que vous utilisez pour récupérer l'assembly distant. En d'autres termes, découpler l'acquisition des ressources d'assemblage de l'utilisation des ressources d'assemblage. Entre ces deux phases, insérez arbitrairement des quantités aléatoires de temps d'attente. Je vous recommande également de consigner le temps réel nécessaire aux utilisateurs distants pour obtenir l'assemblage, et de l'utiliser pour les points de test futurs afin que votre équipe d'assurance qualité UI Designers ait des informations précieuses sur la durée d'attente des utilisateurs. Cela vous permettra de simuler à moindres frais l'expérience de l'utilisateur final dans votre environnement d'assurance qualité. Assurez-vous simplement que votre journal contient des informations pertinentes, telles que la taille de l'assemblage demandé.

J'ai posé une question sur StackOverflow il y a quelques semaines à propos de something related to this, et j'ai dû traiter la question que vous avez posée, donc je suis confiant que c'est la bonne réponse, née de l'expérience, pas de l'intelligence.

+0

@ user429921: La clé de cette question est que * nous utilisons PRISM *. Cela signifie que nous avons déjà toute la séparation des préoccupations que nous pourrions souhaiter. Nous recherchons une solution qui s'intègre bien avec la couche CAL Microsoft existante et nous permet d'afficher les transitions qui ne prennent qu'une fraction de seconde lorsqu'elles sont exécutées localement. La réponse devra être compatible PRISM/conscient/conforme pour être acceptable. Merci –

+0

@HiTech Magic: Il y a une raison pour laquelle je ne recommande pas d'utiliser Prism :), mais un peu de googling rapide m'a orienté vers un article qui vous permettra de mettre en œuvre mon conseil: http://wildermuth.com/2009/07/ 20/Prism_s_Plugin_Architecture C'est à partir du 29 juillet 2009, donc si tout va bien l'API Shawn Wildermuth utilise l'API de votre version actuelle de Prism. – user429921

+0

@ user429921: ne cognez pas Prism sans suggérer une meilleure alternative :) J'explorerai le lien que vous avez fourni en détail demain. Semble intéressant. Nous utilisons le dernier Alpha of Prism 4, mais nous pouvons généralement comprendre les changements apportés par les guides plus anciens. Merci –

0

Vous pouvez simplement ajouter des fichiers énormes (tels que des vidéos) à votre projets de modules. Cela prendra plus de temps pour construire de tels projets, mais ils seront aussi plus gros et donc plus longs à télécharger localement. Lorsque vous passez en production, supprimez simplement les fichiers volumineux.

+0

J'avais envisagé de gros fichiers, mais cela me paraissait trop coûteux en temps et en espace. Ils devraient être vraiment énormes pour prendre 5-10 secondes à télécharger à partir d'un disque dur local. Merci à –

+0

En fait, je viens de regarder un tutoriel sur le changement de l'écran de démarrage des applications Silverlight hier, un fichier d'environ 120 Mo était suffisant pour retarder le téléchargement à environ 5 ou 6 secondes afin que vous puissiez voir l'écran de démarrage. – SirDemon

+0

Ajout physique d'un fichier volumineux, à un seul module, lié pendant longtemps à VS 2010 (et entraîné une exception de mémoire insuffisante lors de la construction du fichier XAP!).Je vais continuer à chercher une option basée sur le code sympa car j'ai beaucoup de dizaines de modules pour l'appliquer (seulement en cours d'exécution localement). Merci quand même –