6
votes

Documentation et système de construction pour mono / c #

Je commence sur un nouveau projet et un membre de l'équipe a décidé d'utiliser C # comme langue de mise en œuvre. Je n'ai pas beaucoup d'expérience dans C #, mais une brève lecture montre qu'il est très capable d'être une machine virtuelle multiplate-forme complète. Au-delà de la langue, j'ai eu du mal à sélectionner des outils et des flux de travail pour gérer le code au fur et à mesure de la croissance du projet. Cela devrait être assez petit (<10k lignes) mais j'aimerais avoir la capacité de générer de la documentation à mesure que le projet augmente, gérer toutes les dépendances externes que nous décidons d'utiliser et automatiser les constructions et les tests. Je me demande quels outils sont couramment utilisés ou considérés comme des pratiques optimales pour cette langue.

Je suis principalement préoccupé par la manière dont un système de construction fonctionnerait potentiellement sur * Nix ainsi que des fenêtres? Y a-t-il des outils spécifiques ou est plus fréquent? De plus, j'aimerais utiliser un DVCS, mais cela ne ressemble pas à Visual Studio et au monodéveloppel Soutenir les mêmes. Quels sont les VC communs de choix pour C #? Pour tester un type de test unitaire est disponible pour C # / Mono? Enfin, je sais qu'il y a de bons générateurs DOC, mais avec la question du système de construction, j'aimerais vraiment avoir une seule étape dans la construction similaire à la manière dont le test est une étape. Normalement, j'étais automatiserais avec Hudson, mais je me demande s'il y a quelque chose de plus spécifique à la plate-forme.

Globalement, j'aimerais voir une solution qui fournit un flux de travail décent sur Windows et * Nix sans fardeau administrateur lourd. Je suis sûr que c'est le Saint Graal de la gestion de projet, alors tout ce qui me met sur ce chemin est génial.


1 commentaires

Je jetterais un coup d'œil à Clake, c'est au moins une plate-forme multiplate-forme et peut déjà avoir des scripts pour aider les projets C # / Mono.


5 Réponses :


1
votes

Vous pouvez utiliser des DVC que vous voudriez avec elle. Monodevelop (au moins dans le coffre, je ne sais pas si elle a été relâchée encore) comme support GIT intégré. Il y a quelques plug-ins pour Visual Studio qui vous donnent un git.

Toutefois, vous n'avez pas besoin de votre contrôle source à intégrer dans l'IDE, je préfère que cela ne préfère pas être et utilisez Git de TortoiseGit si je suis sous Windows ou à partir de la ligne de commande sur OS X ( Bien que je regarde Gitti pour le côté OS X).

Pour la construction, je suggérerais d'une équipe, car il prend en charge jusqu'à trois agents distants vous permettant de construire sur Windows / Linux / Mac avec la version gratuite.

Pour la construction, j'utilise Nant, bien que Xbuild sous Mono fonctionne avec des fichiers de solutions afin que cela puisse être plus facile plutôt que de maintenir deux scripts de construction. J'aime le nant pour CI simplement parce que je trouve plus facile de se séparer dans la construction, le test, la couverture, le paquet, le déploiement, etc.

J'ai constaté que la combinaison de monodevelop, Git, TeamCity et Nant vous donne quelques belles plateformes de développement croisé.


0 commentaires

1
votes

Je vous suggère d'essayer d'utiliser un IDE principalement. La plupart des IDes mono prennent en charge les formats Visual Studio, je suppose. Au moins SharpdeveBlop fait.

http://mono-tools.com semble être correct de développer pour .NET et mono uniquement dans Windows (pas gratuit). Je pense que c'est la meilleure option si je prends jamais de développement pour un environnement commercial au sérieux au sérieux, mais pas à 1005.

http://sharpdevelop.com semble aussi prometteur, mais tombe toujours comme l'option de pauvre homme.

http://monodevelop.com/ est la voie à suivre pour le développement de Mono sous Linux.

Pour les DVC, vous pouvez toujours utiliser des trucs de tortue et être indépendant des IDE. Git fonctionne bien sous Linux et Tortoisegit sur Windows est très agréable. Cependant, les termes de la renommée, SVN (pas de DVCS bien sûr) sont toujours dominants, en particulier son client peut se connecter à TFS via le pont. Mercurial et Git commencent à se dérouler dans la communauté C #.


1 commentaires

Pourquoi utiliser un IDE? Monodevelop peut ouvrir des solutions et des projets VS.



0
votes

Cruisecontrol.net est une très bonne construction / Système d'intégration continue. Il peut intenter une charge de Applications dans le processus de construction; Nous utilisons Nant pour les constructions, les tests unitaires de Nunit et FXCop pour l'analyse de code.


0 commentaires

4
votes

Dans un projet que je travaille, nous utilisons Visual Studio 2010, Monodevelop / Xbuild, Git et Monodoc. Les fichiers de projet créés par Visual Studio 2010 peuvent facilement être lus par monodevelop et Xbuild. En outre, Git est une excellente VCS pour le développement distribué (j'aime particulièrement sa ramification). Monodoc, avec quelques paramètres de ligne de commande, peut générer une documentation à partir de commentaires XML dans le code.


1 commentaires

Bon appel, nous expérimentons avec cette approche et cela semble fonctionner. Nous pourrions finir par choisir d'utiliser Mono comme VM sur toutes les plateformes.



0
votes

gâteau (c # make) est un système d'automatisation de construction open source avec une langue spécifique de domaine basée sur c # pouvant faire des choses Comme le code de compilation, copiez des fichiers / des dossiers, des tests d'unité d'exécution, des fichiers compressez et construisez des packages Nuget. Il a des tonnes d'autres fonctionnalités intégrées et peut facilement être étendue avec le code personnalisé. Il est disponible pour Windows, Linux et OS X et peut être utilisé avec plusieurs systèmes d'intégration continue tels que l'Appwyor, TeamCity, TFS, VSTS ou JENKINS.


0 commentaires