73

Is there a Maven alternative or port for the .NET world?

I would love to use a good dependency management system that the Java world has, but I don't find anything comparable for .NET projects...

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Georg Wächter
  • 970
  • 1
  • 8
  • 13

10 Answers10

33

NMaven has been the first/official effort to provide Apache Maven for .NET; the project failed to clear the high bar of requirements for an official Apache project and was retired from the Apache Incubator in November 2008. There have been several efforts to fork and survive the project, but only one of them (NPanday) managed to do so and has been able to rejoin the Apache Incubator in August 2010. Sadly also the NPanday project was retired in January 2015 because it is lacking active committers.

Lars Corneliussen
  • 2,513
  • 2
  • 26
  • 36
Sean McMillan
  • 10,058
  • 6
  • 55
  • 65
  • BTW, thanks for updating this with the current status of those projects! – Sean McMillan Oct 07 '10 at 19:45
  • People click on the first link, wich leads them to a dead tool :( May I remove the link to NMaven in the first line? – Lars Corneliussen Nov 09 '11 at 21:31
  • @Lars: edit away! I'm not currently working on a project that uses a maven-like tool, so I'm not sure what to put first, but a Lead-in like "X is the most popular maven-like tool for .net" would be awesome. – Sean McMillan Nov 10 '11 at 13:08
23

NuGet (formerly called NuPack) addresses some of the features of Maven. You can read about it at Phil Haack, Scott Hanselman and, of course, Scott Guthrie.

Andrei Rînea
  • 20,288
  • 17
  • 117
  • 166
  • 1
    I'm afraid NuGet only automates the process of installing a library in your project and actually adds more complexity and irritation rather than solving any problem. – Ivan G. Mar 24 '11 at 04:41
  • 2
    Right. NuGet does only adress the dependency resolution; but it has it's strength: the Nuget Gallery - This is why we look at integrating NPanday with Nuget (let NPanday resolve dependencies from Nuget Gallery) – Lars Corneliussen Nov 09 '11 at 15:48
  • 4
    Actually Microsoft is given support to NuGet so this'd be the definitive package control system used for .Net projects. – Guillermo Dec 04 '12 at 21:31
13

Byldan is a port of Maven, but it isn't a 100% analog to the tool. Shane Isbell has been working on this project for a while, you can read more about it here.

Even though the answer that references NMaven has some sort of green checkbox next to it, it is incorrect: there is nothing called Apache NMaven as the project never made it out of the ASF incubator. The trunk continues to live on as NMaven at Codeplex. NMaven is written in Java and Byldan is written in C#. Most people looking for something like Maven for the .NET platform are not going to want to deal with a tool writen in Java. Byldan, IMO, is the most appropriate tool as it is written in C#.

Tim O'Brien
  • 9,623
  • 5
  • 30
  • 36
8

It seems that while all appear to be lacking NPanday is the most mature and actively developed Maven dependency management for .NET and if I had to bet on one it would be that one. The way I see it ideally any .NET solution would be mostly compatible with Maven like Byldan so it could use the same maven repositories such as Maven central.

My problem with Byldan which initially looked more promising than NPanday is that it hasn't been actively developed since 2008, NPanday has a release as of Sep 8th, version 1.2.1 to Byldan's version 0.6 from 2008.

Update:

It seems that NuGet does indeed perform some of the Maven type functions in the .NET world. It also appears that Microsoft is implicitly endorsing NuGet if not explicitly doing so. In full disclosure I don't have experience using NuGet but based on the November 2011 MSDN Magazine article here it looks very promising. NuGet also has full Visual Studio 2010 integration and supports Windows Phone, Silverlight and Windows Presentation Foundation.

Chris T.
  • 81
  • 1
  • 3
  • One of the reasons I like Maven for Java is the code organization. I don't think this works well in .net world. – Bryce Fischer Oct 06 '10 at 21:08
  • The big problem with NPanday is it requires Maven to be installed (Java runtime overhead?) and doesn't integrate nicely enough. And as you said it's not actively developed. – Ivan G. Mar 24 '11 at 04:43
  • 1
    @aloneguid Actually ChristT said that the NPanday ''is'' actively developed. Also the "overhead" of running Java during a build is laughable. Even adding a minute to a full build would be tolerable and any overhead is not likely to be that large. – Sled Sep 01 '11 at 15:34
  • ArtB, it's not laughable on virtualised or non fat arse desktop environments. It is adding a huge pause for quick builds I do locally. Other that that it just looks like an ugly unstable glue. – Ivan G. Sep 05 '11 at 23:45
3

David Ebbo has done some additional work with NuGet. See his blogpost Using NuGet without committing packages for further details.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
8DH
  • 2,022
  • 23
  • 36
1

There's also a project called Refix. Thoughts?

Don Kirkby
  • 53,582
  • 27
  • 205
  • 286
Ivan G.
  • 5,027
  • 2
  • 37
  • 65
0

Naven seems to be a recent initiative for a declarative approach to the .NET build process.

Coming from a Java background, this is for me one of the most lacking part of the .NET ecosystem.

Michel
  • 2,454
  • 3
  • 20
  • 28
0

Another one on CodePlex is Crude.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Ivan G.
  • 5,027
  • 2
  • 37
  • 65
0

Gradle may be a possible alternative. It currently does not support C# natively - only Java and C++. However there are plugins for .Net - well at least one which seems still somehow active. Well latter is technically a wrapper and you still need to install the dot-net tooling.

papanito
  • 2,349
  • 2
  • 32
  • 60
0

Apache NMaven is a suite of plugins and integration allowing .NET code to be a player in Maven build scripts.

Matthew McCullough
  • 17,160
  • 7
  • 39
  • 38
  • 2
    NMaven is discontinued; use NPanday instead. http://startbigthinksmall.wordpress.com/2011/05/26/apache-npanday-1-4-0-incubating-released-net-for-maven/ – Lars Corneliussen Nov 09 '11 at 15:49