81 votes

Pourquoi n'y a-t-il pas besoin de Maven dans .NET?

J'ai l'impression, que dans le .NET-monde, il n'y a pas de réel besoin pour un Maven-comme l'outil.

Je suis conscient qu'il est Byldan et NMaven (est-il encore en vie?), mais je n'ai pas encore vu un projet du monde réel qui les utilise.

Aussi dans la plupart des .Projets NET j'ai travaillé, il n'a jamais été exprimé un besoin pour un Maven-comme l'outil. Les problèmes Maven maven est un adressage automatique de la dépendance à la résolution, les conventions de base de la construction ...) ne semblent pas être si important pour .NET.

Est ma perception correcte?

Pourquoi est-ce le cas?

Ce sont des gens vraiment avec dans .NET? Pas de gestion automatique de la résolution des dépendances à tous?

Sont-ils à écrire leurs propres outils de construction?

Est ce que quelqu'un à l'aide de Maven lui-même, à gérer leur .Projets NET? Est-ce un bon choix?

Quelles sont vos expériences?

50voto

8DH Points 640

Pour artefact dépendance de la résolution, je dirais Nuget est maintenant la solution privilégiée. Elle soutient et encourage le temps de construction de la résolution, c'est à dire pas besoin de vérifier binaires dépendance des artefacts dans les cv. Voir ces articles.

Depuis la version 2.7 de Nuget, le temps de construction de la résolution a même meilleure prise en charge avec la commande Nuget restaurer être l'une des options.

27voto

krosenvold Points 35979

Maven est poussé par les projets Apache, qui font partie intégrante de l’ immense infrastructure open source Java. L'adoption généralisée de Maven doit être liée à cela, et le niveau actuel de maturité (qualité) est également très bon.

Je ne pense pas que le monde open source .NET ait de gros acteurs open source pour faire passer un tel concept. D'une manière ou d'une autre, .NET semble toujours attendre Redmond pour ces choses.

23voto

Tinku Points 641

Bien que la question est vieux ici sont mes pensées . Maven n'est pas simplement un outil de construction, Il fait beaucoup plus que cela comme référentiel de management, gestion de projet, gestion de la dépendance, de construire, de gestion et ainsi de suite...

Mais l'attraction principale, à mon avis, est la gestion des dépendances. POT de l'enfer est un gros problème dans le Java Terre droite depuis le début et vous avez besoin de quelques outils pour y faire face. Dans l' .Monde Net il n'y a pas de problème comme ça (en fait, l'absence de l'enfer des DLL avait été annoncé comme une attraction majeure dans les premiers jours de la .Nette) de sorte que la plupart des gens sont beaux avec MSBuild. Plus tard, en raison de la disponibilité de beaucoup de bibliothèques tierces, il y avait des problèmes de gestion. Pour se débarrasser de ce problème, ils ont maintenant Nuget.

Donc En bref, MsBuild + Nuget est assez bon dans la .Net monde pour la plupart du projet , Maven est juste trop pour eux.

6voto

Kamiel Wanrooij Points 4944

Nous sommes à l'aide de NAnt, car il n'y a pas de véritable alternative qui est aussi mature. De travailler sur plusieurs projets en même temps, nous avons travaillé autour d'avoir plusieurs versions des bibliothèques et de la façon de traiter avec eux. Le Maven proposition est vraiment prometteur, mais pas assez mature pour être utile sur le .NET plate-forme.

Je pense que le besoin est moins évident, puisque la plupart des .NET des projets d'utilisation de Visual Studio, ce qui suggère automatiquement/applique une structure de répertoire, dépendances, etc. C'est une fausse "solution", car selon une IDE pour ces sortes de conventions limite la flexibilité de l'équipe de développement, et de vous enfermer dans une solution spécifique et le vendeur. Ce n'est évidemment pas le cas dans le monde Java, d'où la nécessité évidente d'une Maven comme outil.

2voto

ferventcoder Points 2703

Nous utilisons UppercuT. UppercuT utilise NAnt à construire et il est incroyablement facile à utiliser Build Cadre.

Automatisé s'appuie aussi facile que (1) le nom de la solution, (2) de la source chemin de contrôle, (3) nom de la société pour la plupart des projets!

http://projectuppercut.org/

Quelques bonnes explications ici: UppercuT

Plus d'informations


UppercuT est un classique de génération automatisée, ce qui signifie que vous configurez un fichier de configuration et puis, vous obtenez un tas de fonctionnalités gratuitement. Sans doute la fonction la plus puissante est la possibilité de spécifier les paramètres de l'environnement dans UN seul endroit et de les avoir appliquées partout, y compris de la documentation lors de la création de la source.

Documentation disponible: https://github.com/chucknorris/uppercut/wiki

Caractéristiques :

  • Simple d'installation
  • Mises à niveau simples
  • Extension personnalisée points (pre, post, et remplacer) pour chaque étape du processus de construction http://uppercut.pbworks.com/CustomizeUsingExtensionPoints
  • A la documentation pour l'intégration w/Équipe de la Ville, CruiseControl.NET et Jenkins (anciennement Hudson) https://github.com/chucknorris/uppercut/tree/master/docs
  • Fonctionne sur Linux w/Mono
  • Gestion des versions de Dll basé sur le numéro de build et de contrôle à la source des révisions (SVN, TFS, Git, HG)
  • Compiler des activités F5 ou Ctrl + Maj + B
  • Forte de nommage aussi facile que vrai/faux
  • Le Code de Test et d'Analyse
    • Les tests
      • NUnit
      • MbUnit v2
      • Gallio
      • xUnit
    • NCover
    • NDepend
    • Nitriq
    • Mono Migration De L'Analyseur
  • La dissimulation de l'
  • ILMerge
  • Environnement de création de modèles et de Construction (ConfigBuilder, DocBuilder, SQLBuilder, DeploymentBuilder) https://github.com/chucknorris/uppercut/blob/master/docs/ConfigBuilder.doc?raw=true
  • L'emballage de sortie de préparer le déploiement
  • Zips de sortie

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