Share via


Your Feedback about the Roslyn CTP NuGet Package?

As part of the Roslyn CTP in October 2011 we’ve published the core compiler and services binaries as a NuGet package:

https://nuget.org/packages/roslyn

Right now the Roslyn package adds references to the six core assemblies:

  1. Roslyn.Compilers
  2. Roslyn.Compilers.CSharp
  3. Roslyn.Compilers.VisualBasic
  4. Roslyn.Services
  5. Roslyn.Services.CSharp
  6. Roslyn.Services.VisualBasic

I’d like to gather suggestions and other feedback about this package. How can we improve?

The main piece of feedback we’ve heard so far is more fine-grained definition of what layers are needed:

  1. consumers don’t always need both C# and Visual Basic support
  2. consumers don’t always need the Services layer (Compiler layer is enough)

Hence it would probably make sense to split the main package into several dependent packages, but then it gets a little complicated. We’d have to publish 8 packages and then the consumer could pick one “top” package which would then pull down all the dependencies it needs and nothing else):

image

It looks like we’re not the first to ask these questions:

The consensus on this one seems to be that fine-granular is OK and as long as we publish updates to all subpackages simultaneously there shouldn’t be a problem.

Your feedback and ideas about this issue and other suggestions are welcome!

Comments

  • Anonymous
    April 16, 2012
    What exactly is saved by splitting into the dlls?  A few hundred kilobytes of disk space in some obscure scenarios?  Just keep it simple and put everything in a single DLL.  You're always going to be shipping them together anyways. Where is the benefit of splitting them?  Does .net really perform better when there's less meta-data to scan thru at run time or something? The extra complexity can only cause trouble.

  • Anonymous
    April 17, 2012
    I could see why people might want to break each compiler up but if you want the services you get the whole enchilada. So maybe:

  1. [Everything]
  2. [Roslyn.Compilers.CSharp]
  3. [Roslyn.Compilers.VisualBasic]
  4. [Roslyn.Compilers]