7
votes

Écrire API en C # pour mon application

Je vais écrire une application, mais je n'ai jamais expérimenté pour permettre aux gens d'utiliser mon interface de programmation d'application avant.Je signifie comment un design un peu je devrais faire pour laisser les gens utiliser mes méthodes du monde extérieur comme API.

S'il vous plaît quelqu'un montrez-moi une voie. Je suis un peu nouveau à cela.


0 commentaires

6 Réponses :


3
votes

Faites de vos méthodes que vous souhaitez exposer au monde extérieur public .


6 commentaires

Drôle, Mcwafflestix. (Vous essayiez d'être drôle, n'est-ce pas?)


Ok Bro, j'ai apprécié vos efforts pour répondre mais je dis que je suis nouveau à cette chose :)


@atarikg, j'espère que vous savez ce que le mot clé public signifie. Si vous ne le faites pas, vous avez une longue route à venir.


@RoberTharvey: Oui, sa réponse signifie que je ne suis pas entièrement sûr d'essayer d'être drôle ... :-)


Je sais ce que cela signifie, mais je pense que l'écriture de l'API est plus que cela.


Eh bien, Ataikg, Mcwafflestix a raison d'une chose. Les propriétés et les méthodes que vous marquez publiques sont l'API. Tout le reste est des meilleures pratiques, et Mike's (nouvelle et améliorée) post à peu près couvre cela.



5
votes

Ce n'est peut-être pas la lecture la plus drôle, et certainement pas la seule lecture à faire sur le sujet, mais lors de la conception de votre bibliothèque de classe (votre API), enregistrez-vous avec le Directives de conception pour le développement de bibliothèques de classe de temps en temps, c'est une bonne idée d'avoir un design qui correspond un peu avec le .NET Framework Iteself.


0 commentaires

1
votes

Si vous voulez voir quelles sont les nouvelles dans cette zone, consultez la Cadre d'extensibilité géré . C'est un nouveau / "Unifié (voir les commentaires ...)" Méthode d'exposition des fonctionnalités pour les compléments et autres extensibilité / modularité.


3 commentaires

CMN! Pourquoi ce commun? Think Thik que les utilisateurs qui utilisent déjà des solutions de CIO ou d'autres solutions de composition souhaiteraient avoir une dépendance encore une autre solution? API devrait être ioc agnostique. Attends, je vais ajouter ceci à ma réponse.


Êtes-vous heureux maintenant que j'ai changé "commun" à "unifié"? Je voulais simplement souligner son existence et ce qu'ils veulent. De plus, il a des concepts soignés qui le rendent au moins de travail à parcourir.


Eh bien, il y a quelques mois, j'ai eu l'occasion d'intégrer à notre composante d'application basée sur Windsor basée sur le MEF. J'ai terminé avec la mise en œuvre de mes propres abstractions sur ce composant. Je pense que l'API publique devrait fournir une API indépendante. Les interfaces simples sont les meilleures. Tout y compris le MEF les soutient. C'est logique?




18
votes
  1. expose aussi peu que possible. Chaque morve que vous publiez, vous retournera sur vous X100 dans la prochaine version. Maintenir la compatibilité est très difficile.
  2. Créez des abstractions pour tout ce que vous publiez. Vous allez certainement changer vos internes, mais vos utilisateurs existants devraient rester compatibles.
  3. Tout marquer comme interne. Même la méthode principale de votre application. Chaque méthode qui pourrait être utilisée, sera utilisée.
  4. Testez votre API publique de la même manière que vous le feriez pour les interfaces. Tests d'intégration et ainsi de suite. Notez que votre API sera utilisée de manière imprévisible.
  5. Maximisez la convention sur la configuration. Ceci est nécessaire. Même si votre API est une méthode unique, vous aurez toujours besoin de l'appuyer. Rend votre vie plus facile.
  6. signe et nom fort de vos assemblées, c'est une bonne pratique.
  7. résolvez autant de telles erreurs FXCOP et stylécop.
  8. Vérifiez que votre API est compatible avec les directives de dénomination de votre plate-forme.
  9. Fournissez autant d'exemples que vous pouvez, et rappelez-vous que la majeure partie de l'utilisation de votre API sera CTRL + C et CTRL + V de ces exemples.
  10. essayer de fournir une documentation. Vérifiez que vous n'avez pas de documentation générée automatiquement au style GhostDoc. Tout le monde déteste ceci.
  11. Indiquez des informations sur la façon de vous trouver.
  12. Ne vous embêtez pas avec l'obfuscation. Cela vous aidera à vous et à vos utilisateurs.

    ajouté

    1. API devrait avoir comme moins de dépendances que possible. Par exemple, les dépendances sur les conteneurs de la COI devraient être interdites. Si votre code l'utilise en interne. Il suffit de les installer dans vos assemblages.

4 commentaires

Merci c'est une réponse cool, pourriez-vous me donner un petit exemple simple de code.


EMM, exemple de quel code? Vous pouvez trouver de nombreux exemples sur des sites Open Source comme codeProject.com, codépleplex.com, code.google.com, sourceforge.com. Je pense que c'est la meilleure façon d'apprendre les choses.


Il est clairement emballé, maintenant que quelques-uns d'entre nous ont fait des modifications majeures sur le poste.


@ROBERT: Parfois, ce serait bien avec une fonction "réputation partagée". Même si c'est un manuel, que l'auteur d'origine puisse diffuser le représentant gagné parmi les éditeurs ou quelque chose.



2
votes

Un moyen de le faire est de créer une DLL pour votre fonctionnalité principale que d'autres utiliseront et un exe qui appelle les méthodes de la DLL. Si vous souhaitez que votre application soit prise en charge des plug-ins, consultez le System.addin Espace de noms.


1 commentaires

Joli lien. Je cherche un article sur System.addin;)