Skip to content

Update .NET Core porting document to VS2017 #1768

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Apr 7, 2017
Merged

Update .NET Core porting document to VS2017 #1768

merged 11 commits into from
Apr 7, 2017

Conversation

conniey
Copy link
Member

@conniey conniey commented Mar 21, 2017

Update .NET Core porting document to VS2017

Summary

Fixes #1680

Details

  • Removes content related to project.json and xproj
  • Removes suggestion about using PCLs since csproj supports all complex msbuild logic.
  • Updates examples to VS2017

Suggested Reviewers

@mairaw

@mairaw
Copy link
Contributor

mairaw commented Mar 22, 2017

@guardrex can you help review this one?

@guardrex guardrex requested review from guardrex and removed request for guardrex March 22, 2017 22:42
@@ -4,7 +4,7 @@ description: Organizing Your Project to Support .NET Framework and .NET Core
keywords: .NET, .NET Core
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Put the title into sentence case:

Organizing your project to support .NET Framework and .NET Core

Use a real description line, such as:

Help for project owners who want to compile their solution against .NET Framework and .NET Core side-by-side.

... ☝️ lifted from the doc. It doesn't need to be that, of course. That's just a suggestion.

Add keywords (not necessarily these ... just suggestions):

, .NET Framework, project layout, multiple frameworks

@@ -13,38 +13,24 @@ ms.assetid: 3af62252-1dfa-4336-8d2f-5cfdb57d7724

# Organizing Your Project to Support .NET Framework and .NET Core
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Match casing of title

@@ -13,38 +13,24 @@ ms.assetid: 3af62252-1dfa-4336-8d2f-5cfdb57d7724

# Organizing Your Project to Support .NET Framework and .NET Core

> [!WARNING]
> This topic hasn't been updated to the latest version of the tooling yet.

This article is to help project owners who want to compile their solution against .NET Framework and .NET Core side-by-side. It provides several options to organize projects to help developers achieve this goal. Here are some typical scenarios to consider when you are deciding how to setup your project layout with .NET Core. They may not cover everything you want; prioritize based on your project's needs.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This article helps project owners ...

They use the word "topic" quite a bit around here, but "article" isn't forbidden by the style manual.

Remove one space after the period ...

... this goal. Here are ...

I wonder about "Here" here. 😀 Would it be better as ...

The following list provides some typical scenarios ...

Use contraction ...

... when you're deciding ...

Remove a space after the period ...

... .NET Core. They may ...

"The list" over "They" ? ...

The list may not cover ...

* [**Combine existing projects and .NET Core projects into single projects**][option-xproj]
* [**Combine existing projects and .NET Core projects into single projects**][option-csproj]

*What this is good for:*
* Simplifying your build process by compiling a single project rather than compiling multiple projects, each targeting a different .NET Framework version or platform.
* Simplifying source file management for multi-targeted projects because you have to manage a single project file. When adding/removing source files, the alternatives require you to manually sync these with your other projects.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a fan of "must" over the state "have to" ...

... because you must manage a single project ...

Remove one space after the period ...

... project file. When ...

* Continuing to support development on existing projects without having to upgrade for developers/contributors who may not have Visual Studio 2015.
* Decreasing the possibility in creating new bugs in existing projects because no code churn is required in those projects.
*Unsupported scenarios:*
* Does not allow developers without Visual Studio 2017 to open existing projects. To support older versions of Visual Studio, [keeping your project files in different folders](#support-vs) is a better option.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use contraction ...

Doesn't allow developers ...

"Doesn't" ... "without" ... double-negative-ish. How about? ...

Requires developers to use Visual Studio 2017 to open existing projects.

<PropertyGroup>
<TargetFrameworks>net45;net451;netstandard1.6</TargetFrameworks>
<AssemblyName>Car</AssemblyName>
<PackageId>Car</PackageId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest dropping the AssemblyName and PackageId.

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net45;net451;netstandard1.6</TargetFrameworks>
Copy link
Contributor

@guardrex guardrex Mar 23, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems unusual to target net45 and net451. They're supported TFM's, but they're unsupported frameworks. Can it be net452;netstandard1.6? Also, I've noted that the dev repos have all gone net46. I'm not sure what the standard is for samples tho.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to show that the existing solution, which targeted net45 could still be built. I can do net45;net46;netstandard1.6?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about net452 (still supported), net46, netstandard1.6? ... net45 falls out of the security update window.


<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this ItemGroup ... it's an artifact. microsoft/vstest#472

<Reference Include="System.Collections.Concurrent" />
<Reference Include="System" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For something like this, it might be more convenient to set it up with a negative conditional expression ...

<ItemGroup Condition=" '$(TargetFramework)' != 'netstandard1.6' ">
  <Reference Include="System.Collections.Concurrent" />
  <Reference Include="System" />
  <Reference Include="Microsoft.CSharp" />
</ItemGroup>

... if the net45 and net451 remain. Then, you only need this one ItemGroup.


<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of the comments above also apply to this file.

@guardrex
Copy link
Contributor

Hi @conniey Let me know if any of my remarks don't make sense ... I speak "dinosaur" sometimes. 😀

@conniey
Copy link
Member Author

conniey commented Mar 23, 2017

I love your thoroughness. 👍 I'll start looking through these. :)

@svick
Copy link
Contributor

svick commented Mar 25, 2017

In project.csproj.png, shouldn't Car.Tests be Car.Tests.csproj?

@guardrex
Copy link
Contributor

Also along those lines regarding the folder icons, are they from one of the official sets? I show this one from the CnE_GeneralSymbols and CnE_Enterprise sets ...

folder

@mairaw mairaw removed this from the March 2017 milestone Mar 29, 2017
@conniey
Copy link
Member Author

conniey commented Apr 6, 2017

@guardrex hey, I fixed all the issues you mentioned for the PR. Does this look alright now?

@guardrex
Copy link
Contributor

guardrex commented Apr 6, 2017

@conniey Excellent. I'm headed off to 💤 get some sleep 🛌 ... I'm a few time zones behind you ... but I'll give it a look first thing in the morning.

author: conniey
ms.author: mairaw
ms.date: 07/18/2016
ms.date: 03/21/2017
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update to today's date 04/06/2017.

@guardrex
Copy link
Contributor

guardrex commented Apr 6, 2017

@conniey Awesome ... just update the ms.date and we're good to go! 🚀

@conniey
Copy link
Member Author

conniey commented Apr 6, 2017

@guardrex Updated! 👍

@guardrex
Copy link
Contributor

guardrex commented Apr 7, 2017

Thanks @conniey and to @svick!

@guardrex guardrex merged commit 9fd4e03 into dotnet:master Apr 7, 2017
@conniey conniey deleted the issue1680 branch April 16, 2017 01:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants