2010-07-08 8 views
1

J'ai créé une enveloppe API appelée Chargify.NET et je commence à voir un modèle à développer qui pourraient être résolus en ciblant .NET 4.Comment simplifier ma bibliothèque tout en ciblant les différents frameworks?

Le problème est que comme ils améliorent l'API, je dois créer plus et des fonctions plus surchargées pour gérer une action spécifique (Créer un abonnement, dans ce cas). À l'heure actuelle, j'ai BEAUCOUP (je pense trop) de fonctions CreateSubscription surchargées, et il devient difficile de gérer les différentes signatures.

est-il possible (et/ou suggéré) pour construire la bibliothèque .NET contre 4 et utiliser des paramètres facultatifs et nous espérons que les utilisateurs de la bibliothèque peuvent utiliser la bibliothèque .NET 4? Ou devrais-je continuer sur le chemin que je suis avec 3.5? Ou en quelque sorte cibler les deux?

Besoin une discussion à ce sujet ..

Répondre

1

Les paramètres facultatifs ont été entièrement pris en charge par .NET bien avant la version 4.0. Cependant, ils ont récemment reçu un support linguistique de C#. Rappelez-vous que les paramètres facultatifs ne doivent pas être entièrement pris en charge par un langage compatible CLS - le compilateur est autorisé à ignorer les valeurs par défaut que vous fournissez.

1

Il n'y a vraiment pas de bonne réponse. Si vous commencez à utiliser les fonctionnalités .NET 4, vous voudrez probablement juste cibler .NET 4, car essayer de cibler les deux vous limitera aux anciennes fonctionnalités (ce qui signifie qu'il n'y a pas de raison de mettre à niveau) ou nécessitera deux chemins de code (mauvais pour la maintenance) . Utiliser .NET 4 limitera votre marché cible à ceux qui utilisent .NET 4. C'est à vous de décider si la flexibilité et la puissance supplémentaires associées aux nouvelles fonctionnalités et si l'API simplifiée (par exemple: optionnel) capacités de paramètre) vaut la peine de limiter votre auditoire. Si votre audience est constituée de boutiques commerciales, cela peut être un gros problème - si vos utilisateurs cibles sont de petits développeurs, ou principalement d'autres développeurs open source, il y a des chances pour qu'ils soient beaucoup plus disposés à utiliser .NET 4 pour utiliser votre emballage si nécessaire.

+0

C'est un wrapper API open-source pour une communauté qui avait besoin d'une version .NET, donc je ne sais pas vraiment si les utilisateurs seraient prêts à convertir. Il est utilisé dans un certain nombre de projets préexistants ainsi que de nouveaux projets .. cela pourrait donc être un problème pour eux. – Kori

0

Juste pour que vous le savez aussi, lorsque le compilateur C# compile votre programme et votre programme utilise des paramètres facultatifs, tout le compilateur ne remplace ces paramètres est en option pour les fonctions surchargées. Ainsi, vous ne bénéficierez d'aucun gain de vitesse ou de réduction de code en passant à des paramètres optionnels.

+0

La vitesse n'est pas vraiment un problème, mais merci pour le rappel. Je préfère le compilateur complètement mes fonctions surchargées que moi les écrivant. /paresseux – Kori