2009-02-05 5 views
2

La société pour laquelle je travaille développe une application C++ pour gérer les activités de service (dispatching, suivi GPS, CRM, etc.). Le problème est que le système est un peu trop limité. Étant une entreprise relativement petite, nous aimerions élargir les horizons et ajouter des fonctionnalités plus modernes telles qu'une interface web et des plugins pour diverses autres applications, comme Outlook, qui leur permettraient d'interagir avec les données de notre application.Utiliser WCF dans un nouveau projet ... est-ce faisable?

Actuellement, je développe une interface web dans ASP.NET MVC et ce depuis deux mois. Cependant, cette implémentation souffre du même type de limites que l'application C++, donc je voudrais aller un peu plus loin. C'est juste que je ne suis pas sûr si c'est une décision sage, ou comment je devrais convaincre la direction que le temps de développement considérablement accru signifiera de plus grandes possibilités dans le futur. Ce que je voudrais faire est implémenter une sorte d'API massive en utilisant WCF qui permettrait l'accès via les applications Web et de bureau. Mon interface web pourrait alors être juste cela ... et l'interface de cette API en utilisant un framework tel que Qooxdoo ou ExtJS. Mais d'autres interfaces pourraient être ajoutées, comme une application iPhone, une application Adobe AIR, un widget iGoogle, un plugin Outlook, etc.

Voici la chose, cependant ... en ce moment, je suis juste beaucoup de parler. J'ai une bonne connaissance des technologies C# et .NET comme WPF, WinForms, ASP.NET MVC, etc. Mais, je n'ai jamais utilisé WCF dans ma vie. Je suis assez sûr que je peux le ramasser, mais est-il possible de saisir quelque chose d'aussi vaste que WCF quand mon employeur veut voir des résultats rapides?

Une façon dont je crois que je peux montrer des résultats est de libérer l'API de manière incrémentielle. Par exemple, le premier «Community Technology Preview» comprendrait une fonctionnalité de répartition simple, le prochain CTP inclurait des fonctionnalités de vente et de marketing, etc. Je ne pense pas que les clients puissent le prendre très rapidement, mais cela nous permettrait de développer en interne des applications telles qu'une interface web et des plugins. Un problème que je vois avec cela passe tellement de temps à développer l'API que le développement d'applications qui utilisent réellement l'API serait extrêmement lent. Je veux dire, je pourrais montrer une URL à mon patron qui renvoie une liste de clients au format JSON, mais qu'est-ce que cela peut vraiment faire pour nous si les clients ne peuvent rien y faire? Je suppose que ce que j'essaye de demander est: comment est-il faisable d'abandonner le développement sur une application web limitée qui est presque finie et commencer à travailler sur une API basée sur WCF pour alimenter de futurs projets?

+0

Comment tech-saavy sont vos clients? Sont-ils d'autres développeurs? Utilisent-ils .NET ou d'autres technologies? En général, les développeurs peuvent ramasser tout ce que vous leur lancez. – davogones

+0

Très peu de nos clients sont des développeurs. L'API serait principalement à des fins internes (un back-end pour d'autres applications), mais serait disponible si un développeur tiers voulait en tirer parti. –

Répondre

2

Eh bien, j'ai construit un certain nombre d'applications WCF et il est pas très difficile d'entrer dans (a pièges irritants, mais c'est ce procès et les erreurs pour!)

Cela dit, étant donné ce que vous avez là-bas Outlined , Je vous déconseille si vous avez quelque chose qui s'approche de la finition, et votre patron est après des résultats rapides. Si c'est possible, pourquoi ne pas finir l'application sur laquelle vous travaillez, puis écrire un document sur ce que vous pourriez accomplir avec une API WCF en plus de ce que vous avez déjà avec l'application web et l'envoyer à votre patron/manager? Ce n'est pas une bonne solution car votre application web actuelle ne fonctionnerait pas contre elle, mais il me semble préférable de commencer par quelque chose, car la mise en place d'une bonne API n'est pas quelque chose Personnellement, je me plais à faire avec les délais de clôture et les attentes élevées ..

+0

Le seul problème que j'ai avec la finition de l'application actuelle est le fait qu'elle ne sera probablement jamais mise à jour si je commence à travailler sur l'API. Je déteste publier quelque chose et ensuite dire au client qu'il ne sera probablement pas pris en charge à l'avenir. –

+0

Eh bien cela dépend, une administration Web pour un système bien utilisé a tendance à s'utiliser beaucoup, donc vous ne pouvez pas simplement «laisser tomber» si les gens sont prêts à payer pour le développement ultérieur .. dans ce cas, il va juste rapidement Je deviens un système hérité que tout le monde déteste toucher car il n'utilise pas l'API .. – Sciolist

+0

Je m'en tiendrai à l'application actuelle si .. comme changer de direction dans un projet de travail à quelque chose que vous ne savez pas comment ça va fonctionner pour finir mal, les communiqués stressés et les bugs de production .. Juste en parlant de comment je m'y prendrais, avec les gestionnaires que je dois supporter. – Sciolist

0

Eh bien, pourquoi ne pas avoir les deux? Vous pouvez terminer sur le projet Web, puis développer la partie WCF, exposant les points de terminaison de service afin que vous puissiez avoir différentes applications qui s'y connectent à distance.Puis, si vous le voulez vraiment, vous pouvez refactoriser l'application web pour faire les appels aux points de terminaison WCF (ou, si possible, à l'implémentation derrière eux, car vous n'avez pas vraiment besoin d'ajouter ce réseau latence).

0

Vous donnez l'impression que votre développement Web devra être totalement vidé afin de générer votre contenu WPF. Selon la façon dont vous l'avez développé, est-ce vraiment le cas? Avant de vous lancer dans votre projet, je pense que vous devez faire beaucoup de recherches sur WCF et vous familiariser avec les applications plus petites et plus simples. Grok il avant d'imposer votre version API API sur vos clients, ou ce sera vraiment un fléau sur toutes vos maisons!

Encore une chose ... C'est vraiment le bon moment pour commencer à vraiment faire du TDD pour vos API. Partenariat avec quelqu'un qui veut interagir avec votre application et apprendre leurs cas d'utilisation et de conduire votre conception de l'API en conséquence. Rédaction d'une interface unilatérale sans un consommateur n'est probablement pas la meilleure idée IMO.

0

Si vous êtes déjà familier avec C#, je crois que vous pouvez utiliser WCF et implémenter un service WCF simple de preuve de concept en quelques jours. Il suffit de prendre un bon livre WCF de la librairie et d'apprendre les bases. Vous pouvez également essayer d'utiliser Microsoft Web Service Software Factory pour créer rapidement un service WCF suivant les meilleures pratiques.

Si vous voulez quelque chose d'encore plus simple et plus rapide, les services Web ASMX sont encore plus faciles à créer que les services WCF. Assurez-vous simplement que votre API utilise des objets sérialisables, appliquez un attribut [WebService] sur votre classe, [WebMethod] sur vos méthodes, créez un fichier ASMX, et voila, vous avez un service web! C'est vraiment facile.

Questions connexes