Skip to content
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

update .net standard topic #6556

Merged
merged 2 commits into from
Jul 20, 2018
Merged

update .net standard topic #6556

merged 2 commits into from
Jul 20, 2018

Conversation

mairaw
Copy link
Contributor

@mairaw mairaw commented Jul 19, 2018

Fixes #2927

@terrajobst @davidfowl can you please take a look and see if there's anything else that should be updated?

I've moved all the PCL info to the bottom.

Internal review URL

Copy link
Contributor

@rpetrusha rpetrusha left a comment

Choose a reason for hiding this comment

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

LGTM, @mairaw. I suggested a number of a changes and rewordings, but they're all nits.


## .NET Framework compatibility mode

Starting with .NET Standard 2.0, the .NET Framework compatibility mode was introduced. This compatibility mode allows .NET Standard projects to reference .NET Framework libraries as if they were compiled for .NET Standard. Referencing .NET Framework libraries doesn't work for all projects, such as if the library uses Windows Presentation Foundation (WPF) APIs.
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: such as if the library uses --> such as libraries that use


NuGet packages target one or more [frameworks](frameworks.md). The .NET Standard packages target the ".NET Standard" framework. You can target the .NET Standard Framework using the `netstandard` [compact TFM](frameworks.md) (for example, `netstandard1.4`). Libraries that are intended to run on multiple runtimes should target this framework.
NuGet packages target one or more [frameworks](frameworks.md). The .NET Standard packages target the ".NET Standard" framework. You can target the .NET Standard Framework using the `netstandard` [compact TFM](frameworks.md) (for example, `netstandard1.4`). Libraries that are intended to run on multiple runtimes should target this framework. If you want a broader set of APIs, you should target `netstandard2.0` since the number of available APIs more than doubled between .NET Standard 1.6 and 2.0.
Copy link
Contributor

Choose a reason for hiding this comment

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

  • nit: should framework in .NET Standard Framework be capitalized (I suspect not)
  • The "if you want" sentence seems out of place. I think a slight rewrite helps: "You can target the .NET Standard framework using the `netstandard` [compact target framework moniker](link) (TFM). Libraries that are intended to run on multiple platforms should target at least `netstandard1.4`. For the broadest set of APIs, target...


## .NET Standard libraries and Visual Studio

In order to build .NET Standard libraries in Visual Studio, make sure you have [Visual Studio 2017 version 15.3](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=button+cta&utm_content=download+vs2017) or later installed on Windows or [Visual Studio for Mac version 7.1](https://visualstudio.microsoft.com/vs/visual-studio-mac/) or later installed on macOS.
Copy link
Contributor

Choose a reason for hiding this comment

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

comma after Windows


Similarities:

- Defines APIs that can be used for binary code sharing.
Copy link
Contributor

Choose a reason for hiding this comment

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

Defines --> Define (they is the implicit subject)


- .NET Standard is a curated set of APIs, while PCL profiles are defined by intersections of existing platforms.
- .NET Standard linearly versions, while PCL profiles do not.
- PCL profiles represents Microsoft platforms while the .NET Standard is agnostic to platform.
Copy link
Contributor

Choose a reason for hiding this comment

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

agnostic to platform --> platform-agnostic

@mairaw
Copy link
Contributor Author

mairaw commented Jul 19, 2018

Thank you @rpetrusha for your feedback. Comments addressed.

Copy link
Contributor

@terrajobst terrajobst left a comment

Choose a reason for hiding this comment

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

LGTM!

@mairaw mairaw merged commit a7a713e into dotnet:master Jul 20, 2018
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.

3 participants