11
votes

Quels sont les principaux points de friction lorsque vous passez de WPF en Silverlight et comment remplissez-vous les lacunes dans la fonctionnalité?

D'accord, donner un petit fond, j'ai appris WPF il y a environ 3 ans et nous sommes restés raisonnablement à jour avec ce qui s'est passé depuis dans diverses versions différentes. J'ai examiné (et mis en œuvre) MVVM sur quelques projets, j'ai un bon coup d'œil aux cadres comme Prism, donc je pense que je suis assez bien versé dans la plupart des régions du cadre. J'ai également travaillé brièvement sur quelques petits projets Silverlight 2.0.

Mon problème, je suis sur le point de commencer un travail de Silverlight lors d'une nouvelle entreprise et que je suis très à l'aise que je peux bien faire le travail, j'ai l'impression que mes connaissances WPF peuvent me causer des problèmes. Je suis allé sur le WPF / Silverlight White-Papier sur CodePlex, ce qui est excellent et vraiment utile, mais bien que cela puisse met en évidence les différences qui me laisse encore me demander comment se contenter de ces différences.

Par exemple, je sais que DataTriggers est manquant, comme les multiples et une gamme complète d'autres trucs. Ce que je suis intéressé à lire n'est pas les différences en soi, mais comment vous obtenez de l'arondu ces différences ou quels autres modèles sont utiles à Silverlight. Et si je BESOIN A Datatriggiggiggiggiggentrez ? Clairement, ma conception devrait prendre en compte ces éléments.

Alors, la question est, .. Si vous avez traversé cette transition, quelles différences vous ont causé le plus de problèmes et comment avez-vous eu l'arrivée?


0 commentaires

4 Réponses :


2
votes

Donner un port Silverlight en soi pour notre application WPF, les deux points "Douleur" que nous avons rencontrés.

  1. Splitting Up et regroupant les modules / modules de XAML pour améliorer les performances et la demande XAP téléchargement en utilisant du MEF.
  2. Défi de la réalisation de la compatibilité binaire en utilisant la même base de code pour WPF / Silverlight.
  3. Quelques-unes de nos fonctionnalités ont nécessité une oob et une acceptation de l'utilisateur.
  4. Nous avons optimisé un peu de fonctionnalité qui s'appuie sur IsolateStorage.

    Hope this helps.

    [Maintenant que Silverlight 4.0 a une version stable, nous avons eu quelques hoquets Visual Studio au cours des dernières versions qui se forme des heures supplémentaires. (Nous avons collé à Silverlight 3.0 et quelque part à la mi-mars a sauté à SL 4.0 bêta et la version finale)].

    n.b. : J'ai essayé de garder les choses de manière abstraite pour ne pas révéler l'identité du client.


0 commentaires

3
votes

Premièrement, alors que cela est daté de Silverlight 3, ce papier blanc passe par les différences entre WPF et Silverlight en détail:

Différences Microsoft WPF-Silverlight Livre blanc http://wpfslguidance.codeplex.com/relases/view/30311

C'est une excellente première étape pour vous familiariser avec les différences.

Vous voudrez peut-être aussi jeter un coup d'œil au projet Prism. L'un des objectifs de ce projet consiste à créer un ensemble de fonctionnalités interopérables entre Silverlight et WPF afin de créer essentiellement des applications d'entreprise qui ciblent les plates-formes et réutiliser la majorité du code. Se familiariser avec le projet aidera également à mettre en évidence les différences:

http://compositewpf.codeplex.com/

Enfin, tandis que Silverlight n'a peut-être pas de déclencheurs de données, vous pouvez utiliser une combinaison de fonctionnalités telles que des comportements et des déclencheurs:

http://www.silverlightshow.net /items/behaviors-and-triggers-in-silverlight-3aspx

et le gestionnaire Visual State (VSM):

http: / /timheuer.com/blog/archive/2008/06/04/Silverlight-IntroCès-Visual-State-Manager-vsm.aspx

Pour accomplir la plupart de ce dont vous avez besoin.


0 commentaires

2
votes
  • Markupextension
  • imultivalueconverter
  • template.triggers
  • style.triggers
  • Reliing RelateSource = {RelateSource Ancestortype ...
  • Binding.ISASYNC
  • {x: statique ...
  • {dynamicresource ...
  • Grid.issharedsizescope / SharedSizeGroup

    Tous ces éléments ne sont pas pris en charge en Silverlight et vous devez les entraîner. Chaque cas nécessite son propre jugement sur la manière de "combler les lacunes"

    Pour la partie des déclencheurs, la seule solution consiste à utiliser VisuelleStatManger. L'article suivant donne un bon exemple de la transition des déclencheurs à VSM: http://blogs.msdn.com/b/wpfsdk/archive/2009/02/27/Le-visualstaemanager-and-triggers.aspx


    Ensuite, OnApplyTemplate est tiré dans une commande différente, ce qui pourrait affecter les commandes personnalisées ou les usercontrols que vous auriez pu créer.

    WPF:

    1. Constructeur USERCONTROL
    2. Constructeur MyControl
    3. mycontrol.onapplyTemplate
    4. USERCONTROL CHARGÉ
    5. MyControl chargé

      Silverlight:

      1. Constructeur USERCONTROL
      2. Constructeur MyControl
      3. MyControl chargé
      4. USERCONTROL CHARGÉ
      5. mycontrol.onapplyTemplate

        Et bien sûr, Microsoft dispose d'un article sur cela, appelé "Compatibilité WPF" et donne une vue d'ensemble plus approfondie des différences et des modifications entre WPF et Silverlight:

        http://msdn.microsoft.com/ EN-US / Bibliothèque / CC903925 (vs.95) .aspx

        J'espère que cela aide


0 commentaires

0
votes

Silverlight vous oblige à apporter des modifications à vos habitudes de conception, qui, si elles sont omniprésentes sur tout votre logiciel, peuvent rendant la réutilisation de code assez moot.

Par exemple, les sélecteurs de modèle de données sont manquants - j'ai trouvé que ceci soit un choc.


0 commentaires