51 votes

ASP.Net ou WPF C#)?

Notre équipe est divisée sur cette question et je voulais obtenir quelques tiers des opinions.

Nous sommes la construction d'une application et ne peut pas décider si nous voulons utiliser .Net WPF Application de Bureau avec un serveur WCF, ou ASP.Net web app à l'aide de jQuery. J'ai pensé que je voudrais vous poser la question ici, avec quelques spécifications, et de voir quels sont les avantages/inconvénients de l'utilisation de chaque côté serait. J'ai mon propre favori et de sentir que je suis partial.

Idéalement, nous voulons construire la version initiale du logiciel aussi vite que nous le pouvons, puis ralentir et prendre le temps de construire dans les fonctionnalités supplémentaires/composants que nous voulons plus tard. Nous voulons surtout que les logiciels rapide. Les utilisateurs passent par des enregistrements tout au long de la journée et de retards dans le chargement des enregistrements ou de l'actualisation d'écrans tue leur productivité.

Détails De La Demande:

  • Je suis d'estimation d'environ 100 différents écrans de la version initiale, avec des plans pour un grand nombre d'écrans supplémentaires ajoutés plus tard après la publication initiale.
  • Nous sommes à la recherche pour l'utilisation de deux voies de communication pour rappel et de systèmes à événements
  • Dispose actuellement d'un soutien autour de 100 utilisateurs, bien que nous ayons été dit pour permettre la croissance jusqu'à 500 utilisateurs
  • Nous avons de multiples endroits

Éléments à prendre en compte (peut-être pas, au départ, dans certains cas, mais dans les versions futures):

  • Salle pour les composants supplémentaires pour être ajoutée après la première version (il y en a beaucoup de ces... peut-être travailler ici que la demande initiale)
  • La navigation au clavier
  • La Performance est un must
  • Vitesse de Production à la version initiale
  • Faible frais de maintenance
  • L'avenir
  • Softphone/Scanner intégration

Nos Développeurs:

  • Nous avons 1 programmeur qui a été l'apprentissage de WPF depuis quelques mois et a été celui qui nous a suggéré d'utiliser WPF pour cela.
  • Nous avons un 2ème programmeur qui est familier avec ASP.Net et qui peut aider avec le projet dans l'avenir, bien qu'il ne sera pas travailler 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 je suis à l'aise dans les deux
  • Nous disposons d'une entreprise de l'extérieur, faire de la gestion de projet, et ils sont un ASP.Net de l'entreprise.
  • Nous comptons sur l'embauche 1-2 autres, cependant, nous avons besoin de savoir vers quelle direction nous allons en premier

Environnement:

  • Générale des utilisateurs sont sous Windows 2003 server Terminal Services. Ils se connectent à l'aide de WYSE thin clients sur une connexion RDP. Le personnel administratif a leur propre Pc avec XP ou supérieur. Les utilisateurs sont autorisés à spécifier leur propre résolution, même s'ils sont limités à l'utilisation d'IE comme navigateur web.
  • D'autres endroits se connecte au réseau via une connexion MPLS

Sur cette base, que choisiriez-vous et pourquoi?

Je suis particulièrement intéressé par des développeurs qui ont de l'expérience avec les deux ASP.Net et WPf.

40voto

Ray Burns Points 38537

Raisons de choisir WPF:

  • Beaucoup plus rapide et plus facile le développement de ASP.NET et jQuery
  • Beaucoup plus facile à mettre en œuvre rapide différentiels arrière-plan de chargement de données
  • Beaucoup plus facile à mettre en œuvre mise en cache côté client de données communément utilisées (important pour les bureaux distants)
  • Plus efficace le transfert de données à partir du serveur (utilisation avancée de la WCF fonctionnalités inaccessibles pour navigateur web)
  • La navigation au clavier mieux, puisque vous pouvez facilement définir des raccourcis, etc, et ne pas être limité par navigateur
  • Frais de Maintenance beaucoup mieux en utilisant le pattern MVVM
  • Softphone intégration facile

Raisons de choisir ASP.NET et jQuery:

  • Aucun que je peux voir

Dans votre scénario, je n'hésiterais pas à choisir WPF.

9voto

Dean Chalk Points 7935

Pourquoi ne pas envisager une solution hybride - Silverlight

Avec Silverlight, vous obtenez plus de la bonté et de la statefullness de WPF (avec presque exactement la même XAML et le code), vous obtenez en plus le déploiement des caractéristiques de ASP.NET

Beaucoup de gens considèrent Silverlight l'étape suivante après ASP.NET/AJAX et il serait certainement offrir tous les avantages de WPF pertinents pour votre scénario.

8voto

Artemiy Points 1239

Tout d'abord, je voudrais s'asseoir et d'écrire les exigences et les spécifications. Il n'a vraiment pas d'importance ce tech vous utilisez, une bonne planification aura une incidence sur votre calendrier de projet plus que de la technologie de choix. Cela est particulièrement vrai pour une maison construite sur mesure d'application.

Autant que de développement, je voudrais prendre les exigences et de jeter le backend de la fonctionnalité. Je voudrais réellement mettre en œuvre le backend dans WCF, indépendamment de la technologie de client - cette façon, vous pouvez utiliser le meilleur des deux mondes si nécessaire (par exemple pour l'intégration de téléphone que vous pourriez écrire un stand-alone application WPF). ASP.NET avec jQuery pouvez facilement utiliser les services WCF (JSON ou XML version) en collaboration avec le bureau du client.

Autant que le développement de la client formulaires, cela dépend fortement de développeurs expérience et vos plans pour l'avenir. Je ne vais pas aller dans les avantages/inconvénients de développement de logiciels web ici - il y a une tonne d'articles dans les 10 dernières années sur le cloud/web basée sur le logiciel (par exemple salesforce). Je me concentre plutôt sur les livrables - qu'est-ce que votre équipe favorite aujourd'hui et dans l'avenir. Il y a une énorme différence entre WPF et de développement web, de développement, de point de vue, et il exige expérience complètement différente.

5voto

Richard Harrison Points 14891

WPF est la voie à suivre, sans aucun doute. Je suis d'accord avec tout ce que @Ray Burns a dit.

Parce que:

  • Vous obtiendrez un son plus riche, plus lisse, plus rapide des applications.
  • Il sera plus facile de construire1.
  • Softphone/Scanner (c'est à dire du matériel) intégration va nécessiter des plugins du navigateur, etc. et cela peut être un cauchemar avec un navigateur de base de l'application.
  • La navigation au clavier est encore mieux avec les applications natives.
  • IME l'Entretien est plus facile avec des applications WPF.

Certainement utiliser WCF pour fournir le backend via Entity Framework, consultez Le Cadre de l'Entité Dans architecture en Couches. Vous pouvez faire une meilleure intégration avec le back-end dans une application native, car il peut être appelé inline - pas besoin de rappels ou d'ajax. J'ai construit des composants WPF, qui sont liés par l'intermédiaire de EF à la logique d'entreprise à fournir des contrôles connaissance pour des choses simples comme la validation. Il est étonnamment bonne pour supprimer un champ nom du client sur un formulaire et il fonctionne, tout simplement.

Pour ajouter des composants supplémentaires, vous avez besoin de le construire avec un bon bien pensé architecture de plugin. C'est le même dans les deux environnements. J'ai quelques idées sur ce point, je notais dans mon journal intitulé de la Conception d'une architecture de plugin pour une application

Lors de la construction d'une application WPF, vous allez écrire dans une langue (par exemple C#) + balisage (XAML). Lors de la construction de asp.net vous endup avec deux langues + de balisage, comme vous avez toujours à du code Javascript.

Ainsi, selon vos besoins, il doit être à WPF / WCF (EF). Une application basée sur le web sera beaucoup plus de travail, plus de complexité, et de ne pas être aussi gentil.

Sur 12 mois, j'ai eu la chance d'être libre de choisir la technologie pour une nouvelle application. J'ai passé près d'un mois de l'évaluation de toutes les options et est venu à la conclusion qu'il devait être C#, WPF, Entity Framework. Après l'écriture de l'application, je peux confirmer que c'était le bon choix...


1. Il sera toujours plus facile même si votre programmeurs ont à apprendre WPF premier. WPF est beaucoup mieux pensé, grande et belle. très beau. Il marche droit.

4voto

Rev Points 965

Salut
Je pense que The question at issue is Windows-application or Web application(WPF pour gagner de l'app VS asp pour le web-app), Qui est la meilleure pour vous et votre projet?. Dans ce cas, votre plateforme de réseau et de votre programme doit travailler sur le net. donc, pour cela l'utilisation de la Web-app est mieux, mais il y a beaucoup de points existants qui peuvent prendre des décisions difficiles. Plate-forme de réseau a un grand défi.(d'après mon expérience personnelle)

Travailler avec web-app par asp.net est presque dur. vous devez essayer de faire face à beaucoup de chose pour le web-app(le temps de la demande, gestion de session, même les pauvres de l'INTERFACE utilisateur en comparaison à WPF, j-query, etc ). Rappelez-vous, ce n'est pas aussi facile que de simple site web.

Mais la victoire de l'application est la bonne pour le réseau avec cette condition: "réseau local"(mpls est presque la même). Absolument développement gagnant-app est plus facile que de la web-app ("Au moins, le nombre d'utilisateurs d'experts dans net-programme de développement"). pour ce cas WPF a beaucoup de bonnes choses(de l'INTERFACE utilisateur , de la commande, etc) a également de nombreux point difficile(comme le multi-threading et le manque de développeur expert dans ce domaine ) . I'm rather with wpf than asp but decisions is yours

Et la craie point de bonne chose Silverlight, mais si vous voulez l'utiliser, vous devez regarder prisme cadre : http://compositewpf.codeplex.com/
J'ai récemment développé un projet séparément avec l'asp et silverlight(prisme cadre). développement d'argent-light version est trop difficile et prend plus de temps que asp.net version but at the end SL-ver have great look nothing else!

Burns a souligné les bonnes questions à propos de wpf. également envisager de Artemiy du post. vos conditions de l'environnement est de même pour les deux. WPF/ASP peut travailler avec scanner et doux au téléphone, cuz the base of both is on C# and .net library
Enfin, ce que jamais vos décisions, vous devez embaucher à l'avance développeur au moins développer un business-app pour la plate-forme de réseau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X