it-swarm-fr.com

ASP.NET ou WPF (C #)?

Notre équipe est divisée sur cela et je voulais obtenir des opinions tierces.

Nous construisons une application et ne peut pas décider si nous voulons utiliser l'application de bureau WPF .NET avec un serveur WCF ou une application Web ASP.NET utilisant JQuery. Je pensais que je poserais la question ici, avec certaines spécifications, et voir ce que les avantages/inconvénients de l'utilisation des deux parties seraient. J'ai mon propre favori et je sens que je suis biaisé.

Idéalement, nous voulons créer la version initiale du logiciel aussi rapide que possible, puis ralentissez et prenez le temps de construire dans les fonctionnalités/composants supplémentaires que nous souhaitons plus tard. Surtout, nous voulons que le logiciel soit rapide. Les utilisateurs passent par des enregistrements toute la journée et les retards dans le chargement des enregistrements ou des écrans rafraîchissants tuent leur productivité.

Détails de la demande:

  • J'estime environ 100 écrans différents pour la version initiale, avec des plans pour de nombreux écrans supplémentaires ajoutés ultérieurement après la version initiale.
  • Nous cherchons à utiliser une communication bidirectionnelle pour les systèmes de rappel et d'événement
  • Il doit actuellement supporter environ 100 utilisateurs, bien que nous ayons été informés de permettre une croissance jusqu'à 500 utilisateurs.
  • Nous avons plusieurs endroits

Articles à considérer (peut-être pas dans certains cas, mais dans les prochains versions):

  • Chambre pour ajouter des composants supplémentaires après la libération initiale (il y a beaucoup de ceux-ci ... peut-être travailler ici que la demande initiale)
  • Navigation clavier
  • La performance est un must
  • Vitesse de production à la version initiale
  • Faible entretien
  • Soutien futur
  • Intégration de téléphone logiciel/scanner

Nos développeurs:

  • Nous avons 1 programmeur qui apprenait WPF les derniers mois et a été celui qui a suggéré que nous utilisions WPF pour cela.
  • Nous avons un 2e programmeur qui connaît ASP.NET et qui peut aider avec le projet à l'avenir, bien qu'il ne fonctionnera pas beaucoup jusqu'à la sortie initiale depuis son temps à maintenir notre logiciel actuel.
  • Il y a moi, qui a travaillé avec les deux et je suis confortable dans
  • Nous avons une entreprise extérieure à la gestion de projet et est une société ASP.NET.
  • Nous prévoyons de recruter 1-2 autres, mais nous devons savoir quelle orientation nous allons en premier lieu

Environnement:

  • Les utilisateurs généraux sont sur Windows 2003 Server avec des services de terminal. Ils se connectent à l'aide de clients minces WYSE sur une connexion RDP. Le personnel de l'administrateur a ses propres pcs avec XP ou supérieur. Les utilisateurs sont autorisés à spécifier leur propre résolution bien qu'ils soient limités à l'utilisation IE comme navigateur Web.
  • Autres emplacements se connecte à notre réseau sur une connexion MPLS

Basé sur cela, que choisiriez-vous et pourquoi?

31
Rachel

Cela me semble certainement comme une application WPF, avec beaucoup d'interaction utilisateur et potentiellement interagissant avec le matériel. Vous pouvez livrer l'application via Click-Une fois, le déploiement est donc surtout un problème. Votre application WPF peut accéder à un service WCF et livrer les données comme binaires afin que les spectacles soient excellents. Je commencerais à lire sur WPF et à vous familiariser avec cela le plus tôt possible.

17
Walter

Réponse de la frange lunatique: les deux. Obtenez la couche de service à droite, il est facile d'avoir un client épais qui fait tout (WPF) et un client Web rapide pour faire des choses les plus courantes (ASP.NET). Laisse la porte ouverte au client mobile, etc., sur la route.

15
Wyatt Barnett

Si vous n'avez qu'un seul programmeur d'apprentissage du WPF et que vous envisagez d'avoir votre équipe, prenez le saut à WPF, alors pourquoi ne pas utiliser Silverlight à la place? Vous obtenez de nombreux avantages du WPF, mais vous maintenez toujours la possibilité de laisser votre projet en tant qu'application Web. Puisque vous envisagez d'avoir un grand projet modularisé, il serait logique d'utiliser [~ # ~ # ~] [~ # ~] avec WPF ou Silverlight pour rendre MVVM plus simple.

Mon équipe a récemment fait le choix d'utiliser Silverlight sur ASP.NET. Cela a été un choix fantastique pour nous. Nous n'avons initialement eu qu'un seul développeur qui connaissait n'importe quel Silverlight. Ensuite, nous avons tous pris une classe de formation une semaine qui était principalement inutile, mais au moins eu nos pieds mouillés. En fin de compte, nous avons dû embaucher deux entrepreneurs pour nous aider à créer la création de la majeure partie de notre cadre d'interface utilisateur. La majorité de notre équipe n'est toujours pas confiante dans leurs compétences de Silverlight. Moi-même, le membre de l'équipe initiale avec la connaissance de Silverlight et les deux entrepreneurs sont ceux qui font la majeure partie du développement SL. Après cela, nous avons deux membres back-ends dédiés. Je dirais que cela nous a pris environ 2 mois après avoir pris la décision de déménager à Silverlight que nous avions vraiment quelque chose de concret. Cependant, nous avons maintenant un produit merveilleux qui ressemble beaucoup à une application côté client qui fonctionne à l'intérieur d'un navigateur Web et ne peut être installé sur aucune machine localement. Le développement a été en moins d'une année au total et nous sommes proches de la libération ou du premier candidat de publication.

Certaines choses à considérer:

  • WPF ou Silverlight, quel que soit votre choix, vous aurez un montant équitable que vos développeurs devront apprendre.

  • Silverlight peut manquer de navigateur si nécessaire. Si vous faites cela, il est assez facile de la configurer de sorte que si vous déployez une nouvelle version, le programme de navigateur SL installé sera automatiquement mis à jour.

  • Silverlight n'inclut pas toutes les commandes que WPF a.

Ma note finale est que si vous voulez récupérer le code aussi rapidement que possible, c'est assez évident que vous devriez aller avec ASP.NET. Mes hautes qualités avec ASP sont-ils que si vous discipliez votre équipe, il est facile pour un projet ASP.NET de devenir encombré et désordonné. Si vous pensez que vous pourrez traiter avec les frais généraux initiaux de Se mettre à la hausse des technologies, puis Silverlight ou WPF vous permettra de nombreuses possibilités merveilleuses.

8
Kavet Kerek

Cette partie est tout à fait concernant:

Les utilisateurs généraux sont sur Windows 2003 Server avec des services de terminal. Ils se connectent à l'aide de clients minces WYSE sur une connexion RDP. Le personnel de l'administrateur a ses propres pcs avec XP ou supérieur. Les utilisateurs sont autorisés à spécifier leur propre résolution bien qu'ils soient limités à l'utilisation IE comme navigateur Web.

WPF n'est pas génial sur des connexions de bureau/mince à distance. Les animations ne seront pas lisses et des images complexes (même des gradients) ralentiront la réponse de l'interface utilisateur à une rampe. Le personnel de l'administrateur avec typique rétro XP Machines aura également probablement des problèmes de performance avec des applications de WPF complexes (en raison de minuscules quantités de RAM et mauvais GPU).

Si vous allez la route WPF pour riches graphiques, préparez-vous aux hacks de performance de dernière minute lorsque vous découvrez que les machines cible ont dix ans. Collez sur des écrans statiques et utilisez .NET 4.0 Lorsque la performance WPF s'est considérablement améliorée depuis 3,5.

7
Ed Andersen

Techniquement, je pense que la combinaison WPF/WCF est la meilleure solution.

Cependant, je ne suis pas convaincu que votre programmeur WPF existant a vraiment l'expérience de ce projet. Le document WPF est tout à fait possible dans les processus de planification de la programmation de la programmation WinForm et vous devrez donc réfléchir longuement et difficile à propos de faire suffisamment de compétences suffisantes dans l'équipe pour livrer cet itinéraire.

2
Michael Shaw

Intéressant. Cela semble familier à une application que nous avons Juste Début de mon entreprise (téléphone SIP et intégration du scanner et tout).

Nous avons choisi Silverlight avec une mise au point sur SOA afin qu'une application WPF puisse être faite après si le besoin se pose.

Chambre pour ajouter des composants supplémentaires après la libération initiale (il y a beaucoup de ceux-ci ... peut-être travailler ici que la demande initiale)

Nous utilisons Mef dans la couche de service et construisons des points d'extension (interfaces de plug-in décrivant certains points où nous planifions l'extensibilité ou l'intégration avec d'autres systèmes)

Navigation clavier

Pas de problème.

La performance est un must

Quel genre de performance? Performance perçue (snappy-ness) ou performance cruncheuse de nombre? Ce dernier pourrait être un problème avec une application Web/Silverlight. Pour le premier, notre application passe par beaucoup d'enregistrements, comme le vôtre, mais nous sommes en mesure de les prédire et de pré-récupérer des enregistrements pendant que les utilisateurs travaillent sur ceux actuels. Les temps de "charge" sont nul pour cette section de notre application.

Vitesse de production à la version initiale

Dépend de la compétence. Mais de manière réaliste, tout le monde veut toujours faire le marché aussi vite que possible. C'est donc un non-argument.

Faible entretien

Comme la vitesse de production, c'est aussi une non-dispute et cela va être descendu à la conception et aux pratiques de codage. Si vous parlez en termes de maintenance matérielle, vous voudrez peut-être utiliser une application en nuage.

Soutien futur

Je ne suis pas sûr de ce que cela signifie.

Intégration de téléphone logiciel/scanner

Silverlight 4 permet d'accéder à la webcam/micro (nous espérons effectuer une conférence vidéo inter-applications ainsi que l'intégration SIP), de sorte que si vous utilisez un serveur de téléphone, vous pouvez en écrire un vous-même. Je ne connais pas d'aucun élément existant, mais this pourrait vous aider.

Sinon, vous devrez peut-être faire du piratage laids (ne pas avoir de référence à l'article/s, désolé) ou vous n'avez pas d'autre choix que d'avoir une application WPF pouvant interagir avec le système de fichiers. SL4 peut aller hors de navigateur, mais il ne peut accéder que certaines parties du système de fichiers. Aucun d'entre eux n'aura probablement pas les parties que vous devez interagir avec un téléphone SIP.

Voulez-vous dire, scanner de documents? Je ne suis pas sûre de ça. Nous utilisons des scanners à la main/à barres, et ils fonctionnent comme tout autre dispositif d'entrée et sont un non-problème.

1
Steven Evers

avez-vous besoin d'une application respectueuse des personnes à utiliser toute la journée? Utilisez WPF; Vous trouverez plus facile de réutiliser les composants de l'interface graphique dans WPF sur ASP/MVC également (IMHO)

oui, JQuery et al sont super, Silverlight est cool, mais les applications de bureau sont encore plus efficaces.

pour le back-end, WCF va bien

1
Steven A. Lowe

Je devrai 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 de comprendre et d'avoir une courbe d'apprentissage élevée au début, principalement lorsque vous travaillez avec des données. ASP.NET est plus facile à utiliser, mais vous aurez besoin de beaucoup de peaufinage et de javascript pour l'utiliser efficacement.

0
Victor Gil