title: .NET Core - solutions, frameworks, imports, runtimes
body: <p>I'm starting the process of reworking a framework set of libraries to use .NET Core.  Thought I'd wait for RC2 and keen to get stuck in.</p>
  
  <p>I'm taking the opportunity to get up close and personal with the build system, configs, code everything from scratch to get a deeper understanding and have no unnecessary baggage that I don't want/need.  However, the lack of documentation makes this quite difficult.. so I wanted to ask here, where no doubt clever .NET Core folks are hiding ;)</p>
  
  <p>I know this question is long and has lots of sub-questions.  But it could be answered I feel by a single link to documentation, or a few succint lines from someone in the know.  Thanks for bearing with me, and I hope that this might become a useful answer resource for others in the same boat, trying to understand a good approach for .NET Core.</p>
  
  <hr>
  
  <p>First, <code>global.json</code>.  I want multiple projects and components in the same 'solution'.   Through another SO question I found this hidden link: <a href="http://dotnet.github.io/docs/project-model/global-json-reference.html">http://dotnet.github.io/docs/project-model/global-json-reference.html</a> - but there seems to be no VS tooling for setting up or using this from scratch.</p>
  
  <p><strong>1) global.json questions</strong></p>
  
  <p>A) What build system do these docs refer to?  <code>dotnet build</code>?  (The help for that says it just builds a project - if it does 'solutions' - if that's still the name - does it just run <code>dotnet build</code> over all child folders?).</p>
  
  <p>B) Many examples around have an <code>"sdk"</code> property - but EF Core doesn't have it, and the new "single-sentence-style" docs don't refer to it.  <a href="https://docs.asp.net/en/latest/migration/rc1-to-rc2.html">The official RC2 migration guide for ASP.NET Core has it</a>  Is it still around or not?  If so, why is it needed?  What uses it?  What are the options for it?</p>
  
  <hr>
  
  <p>Next up, to <code>project.json</code> and frameworks.  I want to understand the options here for frameworks.  Is there a list?  Official guidance?  <code>dotnet new</code> uses <code>netcoreapp1.0</code>; <a href="http://dotnet.github.io/docs/project-model/project-json-reference.html">"official docs"</a> use an example of <code>dnxcore50</code> and <a href="https://github.com/aspnet/dnx/issues/3378">this GH discussion from last month</a> also raises the question of <code>netcore1.0</code> as a possibility for frameworks (vs apps).</p>
  
  <p>Furthermore, <code>imports</code>.  Am quite baffled on the naming - the docs talk about this being a list of other frameworks that the project is compatible with..</p>
  
  <p><strong>2) project.json framework questions</strong> - </p>
  
  <p>A) Where can I find an up-to-date or maintained list or set of advice around the framework options?</p>
  
  <p>B) If my understanding of the purpose of <code>import</code> is correct, why is it named so?  If not, what exactly does it import?</p>
  
  <p>C) Why is there an <code>import</code> property for every <code>framework</code> property?  If it's to indicate the whole project is compatible with another framework, that would seem to be best placed at the top level of <code>project.json</code>, no?</p>
  
  <p>D) How should I decide which <code>import</code> options should I use?  <code>dotnet new</code> has just <code>dnxcore50</code> - which packages is that to satisfy?  <a href="https://wildermuth.com/2016/05/17/Converting-an-ASP-NET-Core-RC1-Project-to-RC2">This guy</a> suggests <code>dotnet5.6</code>, <code>dnxcore50</code> and <code>portable-net45+win8</code>!</p>
  
  <hr>
  
  <p>Finally, I'm building class libraries, test projects, console utils.  So..</p>
  
  <p><strong>3) references and packages</strong></p>
  
  <p>A) Do I always want <code>Microsoft.NETCore.App</code> as per <code>dotnet new</code>?  Are there other baseline options?  Guidance on choosing?  A list?</p>
  
  <p>B) The docs don't mention anything about the <code>type</code> option (<code>build</code>, <code>platform</code>).  Is there any guidance available on these?</p>
  
  <p>C) Some of my projects will use ASP.NET.  Where's the best place to find the correct packages to reference?  There seem to be a million versions and packages on NuGet.  <a href="https://docs.asp.net/en/latest/tutorials/your-first-mac-aspnet.html">This tutorial</a> just talks about referencing <code>Microsoft.AspNetCore.Server.Kestrel</code> - and the only ASP.NETty thing that refs is <code>Microsoft.AspNetCore.Hosting</code>.  Does that mean that one package is most of ASP.NET?</p>