Notre équipe est divisée à ce sujet et je voulais obtenir des opinions de tiers.
Nous construisons une application et ne pouvons pas décider si nous voulons utiliser l'application de bureau .Net WPF avec un serveur WCF ou une application Web ASP.Net utilisant jQuery. J'ai pensé poser la question ici, avec quelques spécifications, et voir quels seraient les avantages / inconvénients de l'utilisation de chaque côté. J'ai mon propre favori et je me sens biaisé.
Idéalement, nous voulons créer la version initiale du logiciel aussi vite que possible, puis ralentir et prendre le temps de créer les fonctionnalités / composants supplémentaires que nous voulons plus tard. Nous voulons avant tout que le logiciel soit rapide. Les utilisateurs parcourent les enregistrements toute la journée et les retards dans le chargement des enregistrements ou les écrans rafraîchissants tuent leur productivité.
Détails de la demande:
- J'évalue environ 100 écrans différents pour la version initiale, avec des plans pour beaucoup d'écrans supplémentaires ajoutés plus tard après la sortie initiale.
- Nous cherchons à utiliser la communication bidirectionnelle pour les systèmes de rappel et d'événement
- Doit actuellement prendre en charge environ 100 utilisateurs, bien qu'on nous ait dit de permettre une croissance jusqu'à 500 utilisateurs
- Nous avons plusieurs emplacements
Éléments à considérer (peut-être pas initialement dans certains cas mais dans les versions futures):
- Possibilité d'ajouter des composants supplémentaires après la version initiale (il y en a beaucoup ... peut-être fonctionner ici que l'application initiale)
- Navigation au clavier
- La performance est un must
- Vitesse de production jusqu'à la version initiale
- Frais généraux réduits
- Support futur
- Intégration softphone / scanner
Nos développeurs:
- Nous avons 1 programmeur qui a appris WPF au cours des derniers mois et qui a suggéré d'utiliser WPF pour cela.
- Nous avons un 2ème programmeur qui connaît bien ASP.Net et qui pourrait aider avec le projet à l'avenir, bien qu'il n'y travaillera pas beaucoup jusqu'à la version initiale car son temps est consacré à la maintenance de notre logiciel actuel.
- Il y a moi, qui a travaillé avec les deux et qui est à l'aise dans les deux
- Nous avons une entreprise extérieure qui gère le projet et c'est une entreprise ASP.Net.
- Nous prévoyons d'embaucher 1 ou 2 autres personnes, mais nous devons d'abord savoir dans quelle direction nous allons
Environnement:
- Les utilisateurs généraux sont sur le serveur Windows 2003 avec les services Terminal Server. Ils se connectent à l'aide de clients légers WYSE via une connexion RDP. Le personnel administratif a son propre PC avec XP ou supérieur. Les utilisateurs sont autorisés à spécifier leur propre résolution bien qu'ils se limitent à utiliser IE comme navigateur Web.
- D'autres emplacements se connectent à notre réseau via une connexion MPLS
Sur cette base, que choisiriez-vous et pourquoi?
Réponses:
Cela me ressemble certainement à une application WPF, avec beaucoup d'interaction utilisateur et potentiellement interagissant avec du matériel. Vous pouvez fournir l'application via Click-Once, le déploiement n'est donc généralement pas un problème. Votre application WPF peut accéder à un service WCF et fournir les données sous forme binaire afin que les performances soient excellentes. Je commencerais à lire sur WPF et à me familiariser avec lui dès que possible.
la source
Réponse marginale lunatique: les deux. Obtenez la bonne couche de service, il est facile d'avoir un client lourd qui fait tout (WPF) et un client Web rapide pour faire les choses les plus courantes (ASP.NET). Laisse la porte ouverte au client mobile, etc., sur la route.
la source
Si vous n'avez qu'un seul programmeur qui a appris WPF et que vous envisagez de faire passer votre équipe à WPF, alors pourquoi ne pas utiliser Silverlight à la place? Vous bénéficiez de nombreux avantages de WPF tout en conservant la possibilité de quitter votre projet en tant qu'application Web. Puisque vous cherchez à avoir un grand projet modulaire, il serait logique d'utiliser PRISM avec WPF ou Silverlight pour simplifier MVVM.
Mon équipe a récemment fait le choix d'utiliser Silverlight sur asp.net. Ce fut un choix fantastique pour nous. Au départ, nous n'avions qu'un seul développeur qui connaissait le Silverlight. Ensuite, nous avons tous suivi un cours de formation d'une semaine qui était pour la plupart inutile, mais au moins nous avons mouillé les pieds. En fin de compte, nous avons dû embaucher deux entrepreneurs pour nous aider à créer la majeure partie de notre cadre d'interface utilisateur. La majorité de notre équipe n'a toujours pas confiance en ses compétences Silverlight. Moi-même, le premier membre de l'équipe connaissant Silverlight, et les deux sous-traitants sont les principaux responsables du développement de SL. Après cela, nous avons deux membres back-end dédiés. Je dirais qu'il nous a fallu environ 2 mois après avoir pris la décision de passer à Silverlight pour que nous ayons vraiment mis en place quelque chose de concret. cependant, nous avons maintenant un produit merveilleux qui ressemble beaucoup à une application côté client qui s'exécute à l'intérieur d'un navigateur Web et qui n'est installée sur aucune machine localement. Le développement a duré moins d'un an au total et nous sommes presque prêts à publier ou à proposer la première version.
Quelques points à considérer:
WPF ou silverlight, selon votre choix, vos développeurs devront en apprendre beaucoup.
Silverlight peut manquer de navigateur si nécessaire. Si vous faites cela, il est assez facile de le configurer de sorte que si vous déployez une nouvelle version, le programme SL installé hors du navigateur se mettra automatiquement à jour.
Silverlight n'inclut pas tous les contrôles dont dispose WPF.
Ma dernière remarque est que si vous souhaitez produire du code aussi rapidement que possible, il est évident que vous devriez utiliser ASP.NET. Mon principal scrupule avec ASP est qu'à moins de discipliner votre équipe, il est facile pour un projet ASP.NET de devenir encombré et désordonné. Si vous pensez que vous serez en mesure de faire face aux frais généraux initiaux liés à la mise à niveau des technologies, Silverlight ou WPF vous offrira de nombreuses possibilités merveilleuses.
la source
Cette partie est assez préoccupante:
WPF n'est pas génial sur les connexions client Bureau à distance / Thin. Les animations ne seront pas fluides et toutes les images complexes (même les dégradés) ralentiront la réponse de l'interface utilisateur à une analyse. Le personnel administratif avec des machines XP rétro typiques aura également très probablement des problèmes de performances avec des applications WPF complexes (en raison de petites quantités de RAM et de mauvais GPU).
Si vous optez pour la route WPF pour des graphiques riches, préparez-vous aux hacks de performance de dernière minute lorsque vous découvrez que les machines cibles ont dix ans. Restez fidèle aux écrans statiques et utilisez .NET 4.0 car les performances WPF se sont considérablement améliorées depuis la version 3.5.
la source
Techniquement, je pense que la combinaison WPF / WCF est la meilleure solution.
Cependant, je ne suis pas convaincu que votre programmeur WPF existant ait vraiment l'expérience de ce projet. WPF est tout à fait un changement dans la programmation des processus de pensée de la programmation Winform et vous devrez donc réfléchir longuement à ce que vous avez vraiment des compétences suffisantes dans l'équipe pour fournir cette route.
la source
Intéressant. Cela semble étonnamment familier à une application que nous venons de démarrer dans mon entreprise (intégration de téléphones SIP et de scanners et tout).
Nous avons choisi silverlight en mettant l'accent sur SOA afin qu'une application WPF puisse être créée par la suite si le besoin s'en fait sentir.
Nous utilisons MEF dans la couche service et construisons des points d'extension (interfaces de plugin décrivant certains points où nous planifions l'extensibilité ou l'intégration avec d'autres systèmes)
Pas de problème.
Quel genre de performance? Performances perçues (snappy-ness) ou performances de calcul des nombres? Ce dernier pourrait être un problème avec une application web / silverlight. Pour les premiers, notre application passe par de nombreux enregistrements, comme le vôtre, mais nous sommes en mesure de les prédire et de pré-récupérer les enregistrements pendant que les utilisateurs travaillent sur les enregistrements actuels. Les temps de «chargement» sont nuls pour cette section de notre application.
Dépend de la compétence. Mais en réalité, tout le monde veut toujours arriver sur le marché le plus rapidement possible, c'est donc un non-argument.
Comme la vitesse de production, c'est aussi un non argument et cela va se résumer à des pratiques de conception et de codage. Si vous parlez de maintenance matérielle, vous voudrez peut-être opter pour une application cloud.
Je ne sais pas ce que cela signifie.
Silverlight 4 permet maintenant d'accéder à la webcam / au micro (nous espérons faire de la vidéoconférence inter-applications ainsi que de l'intégration SIP), donc si vous utilisez un serveur téléphonique, vous pouvez en écrire un vous-même. Je n'en connais aucun, mais cela pourrait aider.
Sinon, vous devrez peut-être faire un piratage laid (ne faites plus référence aux articles, désolé) ou vous n'avez pas d'autre choix que d'avoir une application WPF qui peut interagir avec le système de fichiers. SL4 peut sortir du navigateur, mais il ne peut accéder qu'à certaines parties du système de fichiers. Aucun d'entre eux ne sera probablement les pièces dont vous avez besoin pour interagir avec un téléphone SIP.
Vous voulez dire, scanner de documents? Je ne suis pas sûre de ça. Nous utilisons des scanners manuels / codes à barres, et ils fonctionnent comme n'importe quel autre périphérique d'entrée et ne posent aucun problème.
la source
avez-vous besoin d'une application très réactive pour les gens à utiliser toute la journée? utiliser WPF; vous trouverez également plus facile de réutiliser les composants GUI dans WPF sur ASP / MVC (IMHO)
oui, jquery et al sont excellents, silverlight est cool, mais les applications de bureau sont toujours plus efficaces
pour le back-end, WCF va bien
la source
Je vais devoir vous recommander d'utiliser WCF pour votre couche de service en raison de l'évolutivité et de la sécurité. Pour la couche de présentation, vous pouvez utiliser Silverlight ou ASP.NET, Silverlight est comme Flash, mais il est difficile à comprendre et à avoir une courbe d'apprentissage élevée au début, surtout lorsque vous travaillez avec des données. ASP.NET est plus facile à utiliser, mais vous aurez besoin de beaucoup de réglages et de javascript pour l'utiliser efficacement.
la source