Skip to content

Commit de0dab1

Browse files
authored
fixed absolute and msdn links (dotnet#1001)
* fixed absolute and msdn links * added missing space
1 parent c40c28d commit de0dab1

25 files changed

+54
-54
lines changed

docs/core/docker/building-net-docker-images.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ To achieve the goals above, we provide image variants under [microsoft/dotnet](h
3737

3838
- `microsoft/dotnet:<version>-sdk` : that is **microsoft/dotnet-preview2-sdk**, this image contains the .NET Core SDK which includes the .NET Core and Command Line Tools (CLI). This image maps to the **development scenario**. You would use this image for local development, debugging and unit testing. For example, all the development you do, before you check in your code. This image can also be used for your **build** scenarios.
3939

40-
- `microsoft/dotnet:<version>-core` : that is **microsoft/dotnet:1.0.0-core**, image which runs [portable .NET Core applications](https://docs.microsoft.com/en-us/dotnet/articles/core/app-types) and it is optimized for running your application in **production**. It does not contain the SDK, and is meant to take the optimized output of `dotnet publish`. The portable runtime is well suited for Docker container scenarios as running multiple containers benefit from shared image layers.
40+
- `microsoft/dotnet:<version>-core` : that is **microsoft/dotnet:1.0.0-core**, image which runs [portable .NET Core applications](../app-types.md) and it is optimized for running your application in **production**. It does not contain the SDK, and is meant to take the optimized output of `dotnet publish`. The portable runtime is well suited for Docker container scenarios as running multiple containers benefit from shared image layers.
4141

4242
## Alternative images
4343

docs/core/porting/libraries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ The best way to make sure everything works when you've ported your code is to te
332332
* [NUnit](http://www.nunit.org/)
333333
- [Getting Started](https://github.com/nunit/docs/wiki/Installation)
334334
- [Blog post about migrating from MSTest to NUnit](http://www.florian-rappl.de/News/Page/275/convert-mstest-to-nunit)
335-
* [MSTest](https://msdn.microsoft.com/en-us/library/ms243147(v=vs.90).aspx)
335+
* [MSTest](https://msdn.microsoft.com/library/ms243147.aspx)
336336

337337
## Recommended Approach to Porting
338338

docs/core/windows-prerequisites.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,10 @@ Verify that you're running [Visual Studio 2015 Update 3.3](https://www.visualstu
5050

5151
* On the **Help** menu, choose **About Microsoft Visual Studio**.
5252
* In the About Microsoft Visual Studio dialog, the version number should be 14.0.25424.00 or higher, and include "Update 3".
53-
* If you don't have Update 3, you can download and install [Visual Studio 2015 Update 3](https://www.visualstudio.com/en-us/news/releasenotes/vs2015-update3-vs).
54-
* If you have Update 3, you download and install [Visual Studio 2015 Update 3.3](https://msdn.microsoft.com/en-us/library/mt752379.aspx).
53+
* If you don't have Update 3, you can download and install [Visual Studio 2015 Update 3](https://www.visualstudio.com/news/releasenotes/vs2015-update3-vs).
54+
* If you have Update 3, you download and install [Visual Studio 2015 Update 3.3](https://msdn.microsoft.com/library/mt752379.aspx).
5555

56-
You can read more about the changes in Update 3.3 in the [release notes](https://www.visualstudio.com/en-us/news/releasenotes/vs2015-update3-vs).
56+
You can read more about the changes in Update 3.3 in the [release notes](https://www.visualstudio.com/news/releasenotes/vs2015-update3-vs).
5757

5858
## NuGet Manager extension for Visual Studio
5959

docs/csharp/async.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ms.assetid: b878c34c-a78f-419e-a594-a2b44fa521a4
1616

1717
If you have any I/O-bound needs (such as requesting data from a network or accessing a database), you'll want to utilize asynchronous programming. You could also have CPU-bound code, such as performing an expensive calculation, which is also a good scenario for writing async code.
1818

19-
C# has a language-level asynchronous programming model which allows for easily writing asynchronous code without having to juggle callbacks or conform to a library which supports asynchrony. It follows what is known as the [Task-based Asynchronous Pattern (TAP)](https://msdn.microsoft.com/en-us/library/hh873175%28v=vs.110%29.aspx).
19+
C# has a language-level asynchronous programming model which allows for easily writing asynchronous code without having to juggle callbacks or conform to a library which supports asynchrony. It follows what is known as the [Task-based Asynchronous Pattern (TAP)](https://msdn.microsoft.com/library/hh873175.aspx).
2020

2121
## Basic Overview of the Asynchronous Model
2222

docs/csharp/codedoc.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ The compiler generated XML file can be distributed alongside your .NET assembly
2020
Additionally the XML file can be run through tools like [DocFX](https://dotnet.github.io/docfx/) and [Sandcastle](https://github.com/EWSoftware/SHFB) to generate full on API reference websites.
2121

2222
XML documentation comments like all other comments are ignored by the compiler, to enable generation of the XML file add `"xmlDoc":true` under `buildOptions` in your `project.json` when using .NET Core or use the `/doc` compiler option for the .NET framework.
23-
Go [here](https://msdn.microsoft.com/en-us/library/3260k4x7.aspx) to learn how to enable XML documentation generation in Visual Studio.
23+
See the [/doc](https://msdn.microsoft.com/library/3260k4x7.aspx) article on MSDN to learn how to enable XML documentation generation in Visual Studio.
2424

2525
XML documentation comments are characterized by triple forward slashes (`///`) and an XML formatted comment body.
2626

@@ -1239,11 +1239,11 @@ An there you have it, our code is back to being readable and no documentation in
12391239

12401240
The `filename` attribute represents the name of the XML file containing the documentation.
12411241

1242-
The `path` attribute represents an [XPath](https://msdn.microsoft.com/en-us/library/ms256115(v=vs.110).aspx) query to the `tag name` present in the specified `filename`
1242+
The `path` attribute represents an [XPath](https://msdn.microsoft.com/library/ms256115.aspx) query to the `tag name` present in the specified `filename`.
12431243

1244-
The `name` attribute represents the name specifier in the tag that precedes the comments
1244+
The `name` attribute represents the name specifier in the tag that precedes the comments.
12451245

1246-
The `id` attribute which can be used in place of `name` represents the ID for the tag that precedes the comments
1246+
The `id` attribute which can be used in place of `name` represents the ID for the tag that precedes the comments.
12471247

12481248
### User Defined Tags
12491249

docs/fsharp/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ The [Tutorials](tutorials/index.md) also have step-by-step guides for various sk
3232

3333
## If You're Experienced with F# #
3434

35-
If you know your way around F#, you'll find a lot of use in the [Language Reference](language-reference/index.md), which documents each aspect of the language thoroughly, supplemented by numerous code samples. You'll also find a lot of use in the [F# Core Library Reference](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/fsharp-core-library-reference).
35+
If you know your way around F#, you'll find a lot of use in the [Language Reference](language-reference/index.md), which documents each aspect of the language thoroughly, supplemented by numerous code samples. You'll also find a lot of use in the [F# Core Library Reference](https://msdn.microsoft.com/visualfsharpdocs/conceptual/fsharp-core-library-reference).
3636

3737
## The F# Software Foundation
3838

@@ -48,7 +48,7 @@ To learn more and get involved, check out [fsharp.org](http://fsharp.org).
4848
* [Introduction to Functional Programming](introduction-to-functional-programming/index.md)
4949
* [Tutorials](tutorials/index.md)
5050
* [Language Reference](language-reference/index.md)
51-
* [F# Core Library Reference](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/fsharp-core-library-reference)
51+
* [F# Core Library Reference](https://msdn.microsoft.com/visualfsharpdocs/conceptual/fsharp-core-library-reference)
5252

5353
## Further Resources
5454

docs/fsharp/language-reference/arrays.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ You can access array elements by using a dot operator (`.`) and brackets (`[` an
4848

4949
[!code-fsharp[Main](../../../samples/snippets/fsharp/arrays/snippet5.fs)]
5050

51-
Array indices start at 0.
51+
Array indexes start at 0.
5252

5353
You can also access array elements by using slice notation, which enables you to specify a subrange of the array. Examples of slice notation follow.
5454

@@ -192,13 +192,13 @@ You can also use the function [`Array2D.init`](https://msdn.microsoft.com/librar
192192

193193
[!code-fsharp[Main](../../../samples/snippets/fsharp/arrays/snippet21.fs)]
194194

195-
Array indexing and slicing syntax is supported for arrays up to rank 4. When you specify an index in multiple dimensions, you use commas to separate the indices, as illustrated in the following code example.
195+
Array indexing and slicing syntax is supported for arrays up to rank 4. When you specify an index in multiple dimensions, you use commas to separate the indexes, as illustrated in the following code example.
196196

197197
[!code-fsharp[Main](../../../samples/snippets/fsharp/arrays/snippet22.fs)]
198198

199199
The type of a two-dimensional array is written out as `<type>[,]` (for example, `int[,]`, `double[,]`), and the type of a three-dimensional array is written as `<type>[,,]`, and so on for arrays of higher dimensions.
200200

201-
Only a subset of the functions available for one-dimensional arrays is also available for multidimensional arrays. For more information, see [`Collections.Array Module`](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/collections.array-module-%5bfsharp%5d), [`Collections.Array2D Module`](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/collections.array2d-module-%5bfsharp%5d), [`Collections.Array3D Module`](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/collections.array3d-module-%5bfsharp%5d), and [`Collections.Array4D Module`]https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/collections.array4d-module-%5bfsharp%5d).
201+
Only a subset of the functions available for one-dimensional arrays is also available for multidimensional arrays. For more information, see [`Collections.Array Module`](https://msdn.microsoft.com/visualfsharpdocs/conceptual/collections.array-module-%5bfsharp%5d), [`Collections.Array2D Module`](https://msdn.microsoft.com/visualfsharpdocs/conceptual/collections.array2d-module-%5bfsharp%5d), [`Collections.Array3D Module`](https://msdn.microsoft.com/visualfsharpdocs/conceptual/collections.array3d-module-%5bfsharp%5d), and [`Collections.Array4D Module`](https://msdn.microsoft.com/visualfsharpdocs/conceptual/collections.array4d-module-%5bfsharp%5d).
202202

203203
### Array Slicing and Multidimensional Arrays
204204

docs/fsharp/language-reference/asynchronous-workflows.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ One example of using asynchronous workflows is included here; there are many oth
5959

6060
This example shows how to use asynchronous workflows to perform computations in parallel.
6161

62-
In the following code example, a function fetchAsync gets the HTML text returned from a Web request. The fetchAsync function contains an asynchronous block of code. When a binding is made to the result of an asynchronous primitive, in this case [`AsyncDownloadString`](https://msdn.microsoft.com/library/8a85a9b7-f712-4cac-a0ce-0a797f8ea32a), let! is used instead of let.
62+
In the following code example, a function `fetchAsync` gets the HTML text returned from a Web request. The `fetchAsync` function contains an asynchronous block of code. When a binding is made to the result of an asynchronous primitive, in this case [`AsyncDownloadString`](https://msdn.microsoft.com/library/8a85a9b7-f712-4cac-a0ce-0a797f8ea32a), let! is used instead of let.
6363

6464
You use the function [`Async.RunSynchronously`](https://msdn.microsoft.com/library/0a6663a9-50f2-4d38-8bf3-cefd1a51fd6b) to execute an asynchronous operation and wait for its result. As an example, you can execute multiple asynchronous operations in parallel by using the [`Async.Parallel`](https://msdn.microsoft.com/library/aa9b0355-2d55-4858-b943-cbe428de9dc4) function together with the `Async.RunSynchronously` function. The `Async.Parallel` function takes a list of the `Async` objects, sets up the code for each `Async` task object to run in parallel, and returns an `Async` object that represents the parallel computation. Just as for a single operation, you call `Async.RunSynchronously` to start the execution.
6565

@@ -73,4 +73,4 @@ The `runAll` function launches three asynchronous workflows in parallel and wait
7373

7474
[Computation Expressions](computation-expressions.md)
7575

76-
[Control.Async Class](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/control.async-class-%5bfsharp%5d)
76+
[Control.Async Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.async-class-%5bfsharp%5d)

docs/fsharp/language-reference/code-quotations.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ The F# PowerPack provides support for evaluating and executing F# expression obj
4747

4848

4949
## Expr Type
50-
An instance of the `Expr` type represents an F# expression. Both the generic and the non-generic `Expr` types are documented in the F# library documentation. For more information, see [Microsoft.FSharp.Quotations Namespace](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/microsoft.fsharp.quotations-namespace-%5bfsharp%5d) and [Quotations.Expr Class](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/quotations.expr-class-%5bfsharp%5d).
50+
An instance of the `Expr` type represents an F# expression. Both the generic and the non-generic `Expr` types are documented in the F# library documentation. For more information, see [Microsoft.FSharp.Quotations Namespace](https://msdn.microsoft.com/visualfsharpdocs/conceptual/microsoft.fsharp.quotations-namespace-%5bfsharp%5d) and [Quotations.Expr Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/quotations.expr-class-%5bfsharp%5d).
5151

5252

5353
## Splicing Operators
@@ -83,7 +83,7 @@ let f = fun (x:System.Int32) -> x + 10 in f 10
8383
## Example
8484

8585
### Description
86-
You can also use the three active patterns in the [ExprShape module](https://msdn.microsoft.com/library/7685150e-2432-4d39-9338-57292eff18de) to traverse expression trees with fewer active patterns. These active patterns can be useful when you want to traverse a tree but you do not need all the information in most of the nodes. When you use these patterns, any F# expression matches one of the following three patterns: `ShapeVar` if the expression is a variable, `ShapeLambda` if the expression is a lambda expression, or `ShapeCombination` if the expression is anything else. If you traverse an expression tree by using the active patterns as in the previous code example, you have to use many more patterns to handle all possible F# expression types, and your code will be more complex. For more information, see [ExprShape.ShapeVar&#124;ShapeLambda&#124;ShapeCombination Active Pattern](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/exprshape.shapevarhshapelambdahshapecombination-active-pattern-%5bfsharp%5d).
86+
You can also use the three active patterns in the [ExprShape module](https://msdn.microsoft.com/library/7685150e-2432-4d39-9338-57292eff18de) to traverse expression trees with fewer active patterns. These active patterns can be useful when you want to traverse a tree but you do not need all the information in most of the nodes. When you use these patterns, any F# expression matches one of the following three patterns: `ShapeVar` if the expression is a variable, `ShapeLambda` if the expression is a lambda expression, or `ShapeCombination` if the expression is anything else. If you traverse an expression tree by using the active patterns as in the previous code example, you have to use many more patterns to handle all possible F# expression types, and your code will be more complex. For more information, see [ExprShape.ShapeVar&#124;ShapeLambda&#124;ShapeCombination Active Pattern](https://msdn.microsoft.com/visualfsharpdocs/conceptual/exprshape.shapevarhshapelambdahshapecombination-active-pattern-%5bfsharp%5d).
8787

8888
The following code example can be used as a basis for more complex traversals. In this code, an expression tree is created for an expression that involves a function call, `add`. The [SpecificCall](https://msdn.microsoft.com/library/05a77b21-20fe-4b9a-8e07-aa999538198d) active pattern is used to detect any call to `add` in the expression tree. This active pattern assigns the arguments of the call to the `exprList` value. In this case, there are only two, so these are pulled out and the function is called recursively on the arguments. The results are inserted into a code quotation that represents a call to `mul` by using the splice operator (`%%`). The `println` function from the previous example is used to display the results.
8989

docs/fsharp/language-reference/import-declarations-the-open-keyword.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ Some namespaces are so frequently used in F# code that they are opened implicitl
6161
|`Microsoft.FSharp.Text`|Contains functions for formatted IO, such as the `printf` function.|
6262

6363
## AutoOpen Attribute
64-
You can apply the `AutoOpen` attribute to an assembly if you want to automatically open a namespace or module when the assembly is referenced. You can also apply the `AutoOpen` attribute to a module to automatically open that module when the parent module or namespace is opened. For more information, see [Core.AutoOpenAttribute Class](https://stage.docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/core.autoopenattribute-class).
64+
You can apply the `AutoOpen` attribute to an assembly if you want to automatically open a namespace or module when the assembly is referenced. You can also apply the `AutoOpen` attribute to a module to automatically open that module when the parent module or namespace is opened. For more information, see [Core.AutoOpenAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.autoopenattribute-class-%5bfsharp%5d).
6565

6666

6767
## RequireQualifiedAccess Attribute
68-
Some modules, records, or union types may specify the `RequireQualifiedAccess` attribute. When you reference elements of those modules, records, or unions, you must use a qualified name regardless of whether you include an import declaration. If you use this attribute strategically on types that define commonly used names, you help avoid name collisions and thereby make code more resilient to changes in libraries. For more information, see [Core.RequireQualifiedAccessAttribute Class](https://stage.docs.microsoft.com/en-us/dotnet/articles/fsharp/language-reference/core.requirequalifiedaccessattribute-class).
68+
Some modules, records, or union types may specify the `RequireQualifiedAccess` attribute. When you reference elements of those modules, records, or unions, you must use a qualified name regardless of whether you include an import declaration. If you use this attribute strategically on types that define commonly used names, you help avoid name collisions and thereby make code more resilient to changes in libraries. For more information, see [Core.RequireQualifiedAccessAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.requirequalifiedaccessattribute-class-%5Bfsharp%5D).
6969

7070

7171
## See Also

docs/fsharp/language-reference/lists.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ The `List` module provides functions for converting to and from both sequences a
437437

438438

439439
### Additional Operations
440-
For information about additional operations on lists, see the library reference topic [Collections.List Module](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/collections.list-module-%5bfsharp%5d).
440+
For information about additional operations on lists, see the library reference topic [Collections.List Module](https://msdn.microsoft.com/visualfsharpdocs/conceptual/collections.list-module-%5bfsharp%5d).
441441

442442

443443
## See Also

docs/fsharp/language-reference/literals.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,4 @@ In pattern matching expressions, identifiers that begin with lowercase character
7777

7878
## See Also
7979

80-
[Core.LiteralAttribute Class](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/core.literalattribute-class-%5bfsharp%5d)
80+
[Core.LiteralAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.literalattribute-class-%5bfsharp%5d)

0 commit comments

Comments
 (0)