Skip to content

Update live with current master #6954

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 13 commits into from
Aug 11, 2018
Merged
2 changes: 1 addition & 1 deletion docs/core/additional-tools/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The WCF (Windows Communication Foundation) Web Service Reference is a Visual Stu
## [WCF dotnet-svcutil tool](dotnet-svcutil-guide.md)

The WCF (Windows Communication Foundation) dotnet-svcutil tool is a .NET Core CLI tool that retrieves metadata from a web service on a network location or from a WSDL file, and generates a source file compatible with .NET Core, defining a WCF proxy class with methods that you can use to access the web service operations.
The **dotnet-svcutil** tool is an alternative option to the [**WCF Web Service Reference**](/dotnet/core/additional-tools/wcf-web-service-reference-guide) Visual Studio connected service provider which first shipped with Visual Studio 2017 v15.5. The **dotnet-svcutil** tool as a .NET Core CLI tool, is available cross-platform on Linux, macOS, and Windows.
The **dotnet-svcutil** tool is an alternative option to the [**WCF Web Service Reference**](wcf-web-service-reference-guide.md) Visual Studio connected service provider which first shipped with Visual Studio 2017 v15.5. The **dotnet-svcutil** tool as a .NET Core CLI tool, is available cross-platform on Linux, macOS, and Windows.

## [XML Serializer Generator](xml-serializer-generator.md)

Expand Down
8 changes: 4 additions & 4 deletions docs/core/docker/docker-basics-dotnet-core.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ ms.custom: mvc

# Learn Docker Basics with .NET Core

This tutorial teaches the Docker container build and deploy tasks for a .NET Core application. During the course of this tutorial, you learn:
This tutorial teaches the Docker container build and deploy tasks for a .NET Core application. The [Docker platform](https://docs.docker.com/engine/docker-overview/#the-docker-platform) uses the [Docker Engine](https://docs.docker.com/engine/docker-overview/#docker-engine) to quickly build and package apps as [Docker images](https://docs.docker.com/glossary/?term=image). These images are written in the [Dockerfile](https://docs.docker.com/glossary/?term=Dockerfile) format to be deployed and run in a [layered container](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/#container-and-layers).

During the course of this tutorial, you learn:

> [!div class="checklist"]
> * How to create a Dockerfile
> * How to create a .NET Core app.
> * How to deploy your app into a Docker container.

The [Docker platform](https://docs.docker.com/engine/docker-overview/#the-docker-platform) uses the [Docker Engine](https://docs.docker.com/engine/docker-overview/#docker-engine) to quickly build and package apps as [Docker images](https://docs.docker.com/glossary/?term=image). These images are written in the [Dockerfile](https://docs.docker.com/glossary/?term=Dockerfile) format to be deployed and run in a [layered container](https://docs.docker.com/engine/userguide/storagedriver/imagesandcontainers/#container-and-layers).

## .NET Core: Easiest way to get started

Before creating the Docker image, you need an application to containerize. You can create it on Linux, MacOS, or Windows. The quickest and easiest way to do that is to use .NET Core.
Expand Down Expand Up @@ -284,4 +284,4 @@ The following Docker images are used in this sample
* [ASP.NET Core on DockerHub](https://hub.docker.com/r/microsoft/aspnetcore/)
* [Dockerize a .NET Core application - Docker Tutorial](https://docs.docker.com/engine/examples/dotnetcore/)
* [Working with Visual Studio Docker Tools](https://docs.microsoft.com/aspnet/core/publishing/visual-studio-tools-for-docker)
* [Deploying Docker Images from the Azure Container Registry to Azure Container Instances](https://blogs.msdn.microsoft.com/stevelasker/2017/07/28/deploying-docker-images-from-the-azure-container-registry-to-azure-container-instances/)
* [Deploying Docker Images from the Azure Container Registry to Azure Container Instances](https://blogs.msdn.microsoft.com/stevelasker/2017/07/28/deploying-docker-images-from-the-azure-container-registry-to-azure-container-instances/)
6 changes: 3 additions & 3 deletions docs/core/testing/unit-testing-published-output.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ dotnet vstest out/MyProject.Tests.dll
> Note: If your app is targeting a framework other than `netcoreapp` you can still run the `dotnet vstest` command by passing in the targeted framework with a framework flag. For example, `dotnet vstest <MyPublishedTests>.dll --Framework:".NETFramework,Version=v4.6"`. In Visual Studio 2017 Update 5 the desired framework is automatically detected.

## See also
[Unit Testing with dotnet test and xUnit](unit-testing-with-dotnet-test.md)
[Unit Testing with dotnet test and NUnit](unit-testing-with-nunit.md)
[Unit Testing with dotnet test and MSTest](unit-testing-with-mstest.md)
- [Unit Testing with dotnet test and xUnit](unit-testing-with-dotnet-test.md)
- [Unit Testing with dotnet test and NUnit](unit-testing-with-nunit.md)
- [Unit Testing with dotnet test and MSTest](unit-testing-with-mstest.md)
2 changes: 1 addition & 1 deletion docs/core/testing/unit-testing-with-dotnet-test.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,4 +166,4 @@ Continue to iterate by adding more tests, more theories, and more code in the ma

### Additional resources

[Testing controller logic in ASP.NET Core](/aspnet/core/mvc/controllers/testing)
- [Testing controller logic in ASP.NET Core](/aspnet/core/mvc/controllers/testing)
4 changes: 2 additions & 2 deletions docs/core/whats-new/dotnet-core-2-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ Using the .NET Core 2.0 SDK, self-contained applications are published with the

## Windows Compatibility Pack

When you port existing code from the .NET Framework to .NET Core, you can use the [Windows Compatibility Pack](https://www.nuget.org/packages/Microsoft.Windows.Compatibility). It provides access to 20,000 more APIs than are available in .NET Core. These APIs include types in the <xref:System.Drawing?displayProperty="nameWithType"> namespace, the <xref:System.Diagnostics.EventLog> class, WMI, Performance Counters, Windows Services, and the Windows registry types and members.
When you port existing code from the .NET Framework to .NET Core, you can use the [Windows Compatibility Pack](https://www.nuget.org/packages/Microsoft.Windows.Compatibility). It provides access to 20,000 more APIs than are available in .NET Core. These APIs include types in the <xref:System.Drawing?displayProperty=nameWithType> namespace, the <xref:System.Diagnostics.EventLog> class, WMI, Performance Counters, Windows Services, and the Windows registry types and members.

## JIT compiler improvements

Expand Down Expand Up @@ -189,7 +189,7 @@ The <xref:System.IO.Compression.BrotliStream> behavior is the same as <xref:Syst

- <xref:System.Security.Cryptography.CryptographicOperations.ZeroMemory%2A> is a memory-clearing routine that cannot be optimized.

- The static <xref:System.Security.Cryptography.RandomNumberGenerator.Fill%2A?displayProperty=fullName> method fills a <xref:System.Span%601> with random values.
- The static <xref:System.Security.Cryptography.RandomNumberGenerator.Fill%2A?displayProperty=nameWithType> method fills a <xref:System.Span%601> with random values.

- The <xref:System.Security.Cryptography.Pkcs.EnvelopedCms?displayProperty=nameWithType> is now supported on Linux and maxOS.

Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/expression-classes.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ ms.assetid: e9c85021-0d36-48af-91b7-aaaa66f22654

There is a large list of classes in the .NET Core framework that work with Expression Trees.
You can see the full
list [here](/dotnet/core/api/System.Linq.Expressions).
list at <xref:System.Linq.Expressions>.
Rather than run through the full list, let's understand how the framework classes have been designed.

In language design, an expression is a body of code that evaluates and returns a value. Expressions
Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/expression-trees-interpreting.md
Original file line number Diff line number Diff line change
Expand Up @@ -581,7 +581,7 @@ capabilities.
Even the last example recognizes a subset of the possible node types.
You can still feed it many expressions that will cause it to fail.
A full implementation is included in the .NET Standard
under the name [ExpressionVisitor](/dotnet/core/api/System.Linq.Expressions.ExpressionVisitor)
under the name <xref:System.Linq.Expressions.ExpressionVisitor>
and can handle all the possible node types.

Finally, the library I used in this article was built for demonstration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ This option specifies which codepage to use during compilation if the required p

If the source code files were created with the same codepage that is in effect on your computer or if the source code files were created with UNICODE or UTF-8, you need not use **-codepage**.

See [GetCPInfo](https://msdn.microsoft.com/library/dd318078(VS.85).aspx) for information on how to find which code pages are supported on your system.
See [GetCPInfo](/windows/desktop/api/winnls/nf-winnls-getcpinfo) for information on how to find which code pages are supported on your system.

This compiler option is unavailable in Visual Studio and cannot be changed programmatically.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ By using the `-preferreduilang` compiler option, you can specify the language in

## Arguments
`language`
The [language name](https://msdn.microsoft.com/library/windows/desktop/dd318696(v=vs.85).aspx) of the language to use for compiler output.
The [language name](/windows/desktop/Intl/language-names) of the language to use for compiler output.

## Remarks
You can use the `-preferreduilang` compiler option to specify the language that you want the C# compiler to use for error messages and other command-line output. If the language pack for the language is not installed, the language setting of the operating system is used instead, and no error is reported.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ The **-win32icon** option inserts an .ico file in the output file, which gives t
The .ico file that you want to add to your output file.

## Remarks
An .ico file can be created with the [Resource Compiler](https://msdn.microsoft.com/library/aa381042.aspx). The Resource Compiler is invoked when you compile a Visual C++ program; an .ico file is created from the .rc file.
An .ico file can be created with the [Resource Compiler](/windows/desktop/menurc/resource-compiler). The Resource Compiler is invoked when you compile a Visual C++ program; an .ico file is created from the .rc file.

See [-linkresource](../../../csharp/language-reference/compiler-options/linkresource-compiler-option.md) (to reference) or [-resource](../../../csharp/language-reference/compiler-options/resource-compiler-option.md) (to attach) a .NET Framework resource file. See [-win32res](../../../csharp/language-reference/compiler-options/win32res-compiler-option.md) to import a .res file.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ namespace SampleNamespace
{
class SampleClass { }

interface SampleInterface { }
interface ISampleInterface { }

struct SampleStruct { }

Expand All @@ -15,4 +15,4 @@ namespace SampleNamespace.Nested
{
class SampleClass2 { }
}
}
}
2 changes: 1 addition & 1 deletion docs/csharp/language-reference/keywords/for.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ The following example defines the infinite `for` loop:

## See also

[The for statement (C# language specification)](/dotnet/csharp/language-reference/language-specification/statements#the-for-statement)
[The for statement (C# language specification)](../language-specification/index.md)
[C# Reference](../index.md)
[C# Programming Guide](../../programming-guide/index.md)
[C# Keywords](index.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/language-reference/keywords/foreach-in.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Beginning with C# 7.3, if the enumerator's `Current` property returns a [referen

## See also

[The foreach statement (C# language specification)](/dotnet/csharp/language-reference/language-specification/statements#the-foreach-statement)
[The foreach statement (C# language specification)](../language-specification/index.md)
[Using foreach with Arrays](../../programming-guide/arrays/using-foreach-with-arrays.md)
[for](for.md)
[Iteration Statements](iteration-statements.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/language-reference/keywords/namespace.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ The `namespace` keyword is used to declare a scope that contains a set of relate
[!code-csharp[csrefKeywordsNamespace#1](../../../csharp/language-reference/keywords/codesnippet/CSharp/namespace_1.cs)]

## Remarks
Within a namespace, you can declare one or more of the following types:
Within a namespace, you can declare zero or more of the following types:

- another namespace

Expand Down
4 changes: 1 addition & 3 deletions docs/csharp/language-reference/keywords/ref.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ The `ref` keyword indicates a value that is passed by reference. It is used in f
- In a method signature and in a method call, to pass an argument to a method by reference. See [Passing an argument by reference](#passing-an-argument-by-reference) for more information.
- In a method signature, to return a value to the caller by reference. See [Reference return values](#reference-return-values) for more information.
- In a member body, to indicate that a reference return value is stored locally as a reference that the caller intends to modify or, in general, a local variable accesses another value by reference. See [Ref locals](#ref-locals) for more information.
- In a `struct` declaration to declare a `ref struct` or a `ref readonly struct`. See [ref struct declarations](#ref-struct-declarations) for more information.
- In a `struct` declaration to declare a `ref struct` or a `ref readonly struct`. For more information, see [Reference semantics with value types](../../reference-semantics-with-value-types.md).

## Passing an argument by reference

Expand Down Expand Up @@ -117,8 +117,6 @@ When the caller stores the value returned by the `GetBookByTitle` method as a re

[!code-csharp[csrefKeywordsMethodParams#6](../../../../samples/snippets/csharp/language-reference/keywords/in-ref-out-modifier/RefParameterModifier.cs#5)]

## Ref struct declarations

## C# Language Specification

[!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)]
Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/programming-guide/concepts/async/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ For more information about control flow, see [Control Flow in Async Programs (C#
## <a name="BKMK_APIAsyncMethods"></a> API async methods
You might be wondering where to find methods such as `GetStringAsync` that support async programming. The .NET Framework 4.5 or higher and .NET Core contain many members that work with `async` and `await`. You can recognize them by the "Async" suffix that’s appended to the member name, and by their return type of <xref:System.Threading.Tasks.Task> or <xref:System.Threading.Tasks.Task%601>. For example, the `System.IO.Stream` class contains methods such as <xref:System.IO.Stream.CopyToAsync%2A>, <xref:System.IO.Stream.ReadAsync%2A>, and <xref:System.IO.Stream.WriteAsync%2A> alongside the synchronous methods <xref:System.IO.Stream.CopyTo%2A>, <xref:System.IO.Stream.Read%2A>, and <xref:System.IO.Stream.Write%2A>.

The Windows Runtime also contains many methods that you can use with `async` and `await` in Windows apps. For more information, see [Threading and async programming](/windows/uwp/threading-async/) for UWP development, and [Asynchronous programming (Windows Store apps)](/previous-versions/windows/apps/hh464924(v=win.10)) and [Quickstart: Calling asynchronous APIs in C# or Visual Basic](/previous-versions/windows/apps/hh452713(v=win.10)) if you use earlier versions of the Windows Runtime.
The Windows Runtime also contains many methods that you can use with `async` and `await` in Windows apps. For more information, see [Threading and async programming](/windows/uwp/threading-async/) for UWP development, and [Asynchronous programming (Windows Store apps)](https://docs.microsoft.com/previous-versions/windows/apps/hh464924(v=win.10)) and [Quickstart: Calling asynchronous APIs in C# or Visual Basic](https://docs.microsoft.com/previous-versions/windows/apps/hh452713(v=win.10)) if you use earlier versions of the Windows Runtime.

## <a name="BKMK_Threads"></a> Threads
Async methods are intended to be non-blocking operations. An `await` expression in an async method doesn’t block the current thread while the awaited task is running. Instead, the expression signs up the rest of the method as a continuation and returns control to the caller of the async method.
Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/programming-guide/concepts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ This section explains programming concepts in the C# language.

|||
|---|---|
|[Performance Tips](https://msdn.microsoft.com/library/ms173196(VS.110).aspx) | Discusses several basic rules that may help you increase the performance of your application.|
|[Performance Tips](../../../../docs/framework/performance/performance-tips.md) | Discusses several basic rules that may help you increase the performance of your application.|
2 changes: 1 addition & 1 deletion docs/csharp/programming-guide/types/boxing-and-unboxing.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Boxing is the process of converting a [value type](../../../csharp/language-refe
[!code-csharp[csProgGuideTypes#47](../../../csharp/programming-guide/nullable-types/codesnippet/CSharp/boxing-and-unboxing_3.cs)]

## Performance
In relation to simple assignments, boxing and unboxing are computationally expensive processes. When a value type is boxed, a new object must be allocated and constructed. To a lesser degree, the cast required for unboxing is also expensive computationally. For more information, see [Performance](https://msdn.microsoft.com/library/ms173196(VS.110).aspx).
In relation to simple assignments, boxing and unboxing are computationally expensive processes. When a value type is boxed, a new object must be allocated and constructed. To a lesser degree, the cast required for unboxing is also expensive computationally. For more information, see [Performance](../../../../docs/framework/performance/performance-tips.md).

## Boxing
Boxing is used to store value types in the garbage-collected heap. Boxing is an implicit conversion of a [value type](../../../csharp/language-reference/keywords/value-types.md) to the type `object` or to any interface type implemented by this value type. Boxing a value type allocates an object instance on the heap and copies the value into the new object.
Expand Down
2 changes: 1 addition & 1 deletion docs/csharp/tuples.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ Beginning with C# 7.3, tuple types support the `==` and `!=` operators. These op

[!code-csharp[TupleEquality](../../samples/snippets/csharp/tuples/tuples/program.cs#Equality "Testing tuples for equality")]

There are several rules that make tuple equality tests more convenient. Tuple equality performs [lifted conversions](/dotnet/csharp/language-reference/language-specification/conversions#lifted-conversion-operators) if one of the tuples is a nullable tuple, as shown in the following code:
There are several rules that make tuple equality tests more convenient. Tuple equality performs [lifted conversions](language-reference/language-specification/index.md) if one of the tuples is a nullable tuple, as shown in the following code:


[!code-csharp[NullableTupleEquality](../../samples/snippets/csharp/tuples/tuples/program.cs#NullableEquality "Comparing Tuples and nullable tuples")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ There are two ways to install a strong-named assembly into the global assembly c
> [!IMPORTANT]
> Only strong-named assemblies can be installed into the GAC. For information about how to create a strong-named assembly, see [How to: Sign an Assembly with a Strong Name](../../../docs/framework/app-domains/how-to-sign-an-assembly-with-a-strong-name.md).

- Using [Windows Installer](http://msdn.microsoft.com/library/windows/desktop/cc185688.aspx).
- Using [Windows Installer](/windows/desktop/Msi/windows-installer-portal).

You do this in Visual Studio 2012 and Visual Studio 2013 by creating an InstallShield Limited Edition Project.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ There are two ways to remove an assembly from the global assembly cache (GAC):

- By using the [Global Assembly Cache tool (Gacutil.exe)](../../../docs/framework/tools/gacutil-exe-gac-tool.md). You can use this option to uninstall assemblies that you've placed in the GAC during development and testing.

- By using [Windows Installer](http://msdn.microsoft.com/library/windows/desktop/cc185688.aspx). You should use this option to uninstall assemblies when testing installation packages and for production systems.
- By using [Windows Installer](/windows/desktop/Msi/windows-installer-portal). You should use this option to uninstall assemblies when testing installation packages and for production systems.

### Removing an assembly with Gacutil.exe

Expand Down
Loading