20

I am trying to introduce decent reference management to my organisation. Having used Nexus with Maven before, I know it to be far superior to the method of building everything locally. As this is a .Net shop I want to use NuGet instead of Maven. I know the binary repository will be the most important bit to get right, but have no experience of hosting a NuGet repository in a binary repository.

Is there any reason to favour Nexus or Artifactory in this situation? We are using Jenkins with svn as our CI, if that makes any difference.

Aidan
  • 4,783
  • 5
  • 34
  • 58
  • Just and update on this since the questions a few years old, there's now ProGet which started as a NuGet package manager but is now a universal artifact repository manager like Jfrog's Artifactory. Check out a comparison of the two tools for a bit more background: http://inedo.com/support/kb/1115/a-comparison-artifactory-vs-proget – Karl Harnagy Jun 27 '16 at 20:43

2 Answers2

25

This is what we found out last time we compared the NuGet support in Artifactory vs. Nexus (disclaimer - I'm with JFrog):

  1. In Artifactory the NuGet support is naturally integrated into the product, which makes management much easier - just mark a local repository as NuGet enabled or set the remote URL for a remote repo. Multiple NuGet repositories can be easily aggregated under a single virtual NuGet repo - same approach used with any other repo in Artifactory; In Nexus, you will need to define a new type of repository, set up a new dedicated security realm, and if you need an existing repository to also answer NuGet requests you have to add a special facade to it. This is a general approach in Nexus where every new type of repository (such as P2) requires multi-level configuration changes.

  2. There is absolutely no integration for NuGet packages in the Nexus UI. You cannot even search for NUGet artifacts, which is crucial for management and maintenance (which is why searching only from Visual Studio cannot be enough). This is mainly due to the fact that Nexus is highly oriented towards Maven and the Maven layout; In Artifactory, you can search and manage NuGet packages like any other artifacts. You can view information from the nuspec metadata in the UI and even drill down into the content of individual files under a NuPkg package, and inspect their content.

  3. Security integration is also easier in Artifactory - there is no need to manually generate a special key, but the key is just the combination of the username and password or a secure password. This is great if you want your users NuGet passwords to be synced with Artifactory's MS-AD/LDAP integration; In Nexus NuGet uses an isolated security realm.

  4. Artifactory implements the complete range of NuGet searches, including the more esoteric but useful use-cases, and the underlying implementation uses a combination of in-memory caches and persistent, pre-calculated, searchable properties to make sure NuGet queries are very fast and scalable even for a huge repository; Not sure if Nexus uses similar optimizations.

I hope that helps.

PS. NuGet support is part of the Pro versions of Artifactory, and included for free in Nexus OSS since september 2014.

Yoav Landman
  • 1,195
  • 8
  • 11
  • 1
    +1: While I appreciate your answer quite a bit (as a person from the company which develops Artifactory), I have a small remark: it doesn't immediately become clear if the NuGet support is free or not. Perhaps you could amend your reply to reflect this? – carlspring Mar 08 '13 at 12:49
  • 3
    Thanks, I added this to my answer. – Yoav Landman Mar 08 '13 at 14:18
  • Is it still true that NuGet support is only part of the pro version of Artifactory ? It looks like it's free as of version 2.9 of Nexus, according to http://books.sonatype.com/nexus-book/reference/_introduction_6.html – antwarpes Aug 12 '14 at 20:53
  • 3
    NuGet support still seems to be only be available in Artifactory Pro. Unfortunately, the cost of Pro is prohibitively high for a small software shop. We have been using ProGet for NuGet support and it works reasonably well. Now that Nexus OSS supports NuGet we are switching everything to Nexus OSS. Too bad since there is much to like about Artifactory. I wish JFrog would adopt a licensing model like TeamCity. – David Taylor Dec 19 '14 at 03:26
9

Nexus has support for NuGet and you can host or proxy your NuGet repositories directly in it. Have a look here.

I am a Maven and Nexus fan, so I am biased. I have used Artifactory. It's a good tool, but I found Nexus to be much better at the time. I believe the NuGet feature is also available in the OSS version, but you might want to double-check that.

I will not argue why and if Nexus is better than Artifactory, as it would not be fair and would only cause flame wars. My own reasoning is this: the Sonatype guys are the ones behind Maven, Nexus and Maven Central. This puts them at the heart of things and therefore their knowledge would always be deeper in regards to the internals of these tools and their inter-operability.

If you are familiar and comfortable with Nexus, I frankly see no reason for you to switch. However, you can decide for yourself. Have a look here.

carlspring
  • 31,231
  • 29
  • 115
  • 197
  • 7
    Artifactory always provided filesystem storage option (and it always was the recommended one). Sonatype's deep involvement with Maven is actually holding them back when it comes to supporting different technologies and tools. E.g. they still allow maven layout only for Gradle and Ivy! Maven expertise it's not something to wave with when talking about NuGet suppory. – JBaruch Mar 06 '13 at 16:18
  • @JBaruch I don't believe it was so. Initially, (if I recall correctly, but please feel free to correct me), all the artifacts were stored in the database. Later on they changed it. – carlspring Mar 06 '13 at 16:19
  • 4
    I correct you, you are wrong. Just don't take any FUD you read on Sonatype blog for granted. – JBaruch Mar 06 '13 at 16:21
  • 1
    Well, seeing that you work for JFrog, I take your answer is correct. Thanks for the clarification. – carlspring Mar 06 '13 at 16:24
  • 3
    NuGet support is part of Nexus Professional only, and you can just give it a try with the trial installer. I work with Sonatype and encourage you to try both tools and ask other enterprise and open source groups what they use and recommend at scale and for the uses cases you want to support. – Manfred Moser Mar 06 '13 at 22:26
  • 6
    BTW, the link to John Smart's blog is really outdated - Wakaleo Consulting (John's company) switch to using Artifactory Online, long time ago: http://wakaleo.artifactoryonline.com/ Also note that blog post says nothing about NuGet support which is what the question is about. – JBaruch Mar 08 '13 at 12:27
  • 2
    +1 -> @JBaruch: True, the first link is just an outdated comparisson that doesn't mention NuGet. However, it still compares the two repository managers. Furthermore, the feature matrix link does a much more thorough comparison. – carlspring Mar 08 '13 at 12:39
  • @carlspring I am not sure how that comparison is valid when the author is now happily using and recommending the tool he concluded against - http://weblogs.java.net/blog/johnsmart/archive/2012/10/18/combining-continuous-delivery-practices-maven-and-jenkins?goback=.gde_3768419_member_177851171. I'd call it outdated and invalid indeed. The matrix is good, though. – JBaruch Mar 08 '13 at 13:44
  • 1
    Ok, due to all the controversy, I have removed the link to John's page. :) – carlspring Mar 08 '13 at 14:44
  • 2
    Wow, you have to censor your posts on this topic now? – Brian Fox Mar 08 '13 at 21:42
  • @brian-fox No one has to censor anything; link to John's old post doesn't make much sense now, considering his current views. Anyhow, it was carlspring's sole decision, he wasn't forced to remove it. – JBaruch Mar 10 '13 at 22:30