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

Create detailed article on C# tuples #1284

Merged
merged 4 commits into from
Nov 29, 2016
Merged

Create detailed article on C# tuples #1284

merged 4 commits into from
Nov 29, 2016

Conversation

BillWagner
Copy link
Member

Fixes #1113

Still a WIP, need to do a full proofread once the build finished.

@dotnet-bot
Copy link
Contributor

✅ Validation status: passed

File Status Preview URL Details
docs/csharp/csharp-7.md ✅Succeeded View
docs/csharp/tuples.md ✅Succeeded View

For more details, please refer to the build report.

Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@BillWagner BillWagner removed the WIP label Nov 23, 2016
@BillWagner
Copy link
Member Author

This is now ready for review.

/cc @jaredpar @stevehoag @mairaw @rpetrusha

@dotnet-bot
Copy link
Contributor

✅ Validation status: passed

File Status Preview URL Details
docs/csharp/csharp-7.md ✅Succeeded View
docs/csharp/tuples.md ✅Succeeded View
docs/toc.md ✅Succeeded View

For more details, please refer to the build report.

Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@svick
Copy link
Contributor

svick commented Nov 26, 2016

In related text that you didn't change (so I can't review-comment):

 > The new tuples features require the @System.ValueTuple type. For Visual Studio 15

Here, @System.ValueTuple is not linked, it shows as "@System.ValueTuple". It should probably be changed to use backticks for now, assuming the link won't work anytime soon:

 > The new tuples features require the `System.ValueTuple` type. For Visual Studio 15

@svick
Copy link
Contributor

svick commented Nov 26, 2016

The new article does not mention the need for the System.ValueTuple package. It does link to a section of What's new in C# 7, which does mention it, but I think this is an important point that bears repeating.

@@ -116,6 +116,13 @@ with the names on the left side, `first` and `second`.
The examples above show the basic syntax to declare tuples. Tuples are
most useful as return types for `private` and `internal` methods. Tuples
provide a simple syntax for those methods to return multiple discrete values:
You save the work of authoring a `class` or a `struct` that
defines the type returned. There is no need for creating a new symbol.
Copy link
Contributor

Choose a reason for hiding this comment

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

Will readers understand what a "symbol" is? Maybe just say "type"?

(The term is also already used elsewhere in this article.)

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed


. Consider examples where a LINQ query returns a subset of the columns for a database record.
The new language features for tuples, combined with a new set of generic
classes in the framework address thease deficiencies. These new tuples
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo: thease → these

that give better names to each field. Doing so creates a *named tuple*.
Named tuples still have fields named `Item1`, `Item2`, `Item3` and so on.
But they also have synonyms for any of those fields that you have named.
You creat a named tuple by specifying the names for each field. One way
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo: creat → create

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed

// The 'arity' and 'shape' of all these
// tuples are compatible. The only
// difference is the field names being
// used.
Copy link
Contributor

Choose a reason for hiding this comment

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

Why does this comment (and also other comments in this file) have such short lines?

There should be plenty space to make this comment 2 lines instead of 4 (without introducing scrollbars).

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed.


> [!NOTE]
> These examples compute the uncorrected sample standard deviation.
> The corrected sample standard deviation would formula would divide
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo: "standard deviation would formula would" → "standard deviation formula would"

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed


The deconstruct method enables assignment from a `Person` to a
tuple with two strings, representing the `FirstName` and
`LastName` properties.
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think this is true. According to this paragraph, this should be legal:

Person p =;
(string, string) t = p;

But it's not:

CS0029 Cannot implicitly convert type 'Person' to '(string, string)'

What it enables is to deconstruct the type, e.g.:

Person p =;
var (first, last) = p;

Copy link
Member Author

Choose a reason for hiding this comment

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

Great catch. Fixed.

and that enables a `Student` to be deconstructed into a tuple with either two fields or three.
If you assign a student to a tuple with three fields, the first name, last name, and GPA are
all returned. If you assign a student to a tuple with two fields, only the first name and
the last name are returned.
Copy link
Contributor

Choose a reason for hiding this comment

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

Same issue as above: talking about assigning to tuples instead of deconstruction into variables.

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed.

not be able to easily call the desired `Deconstruct` method.

In this example, there is minimal chance for an ambiguious call because the
`Deconstruct` method for `Person` has two output fields, and the `Deconstruct`
Copy link
Contributor

Choose a reason for hiding this comment

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

Correction: output fields → output parameters

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed.

to work with designs that use data structures that store multiple fields
but do not define behavior, as classes and structs do. It's
easy and concise to use tuples for those types. You get all the benefits
static type checking, without needing to author types using the more
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo: "benefits static type checking" → "benefits of static type checking"

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed.

@@ -253,7 +253,7 @@
### [Basic Types](csharp/basic-types.md)
### [Classes](csharp/classes.md)
### [Structs](csharp/structs.md)
### [🔧 Tuples and unnamed types](csharp/tuples.md)
### [Tuples and unnamed types](csharp/tuples.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

The article does not mention "unnamed types", so I think the TOC shouldn't either.

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed

@@ -16,7 +16,7 @@ ms.assetid: ee8bf7c3-aa3e-4c9e-a5c6-e05cc6138baa
# C# Tuple types

C# Tuples are types that you define using a lightweight syntax. The advantages
include a simpler syntax, rules for conversions based on arity and types, and
include a simpler syntax, rules for conversions based on arity and types of fields, and
Copy link
Contributor

Choose a reason for hiding this comment

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

Instead of arity, I'd use number -- I'm not sure how many potential readers know what arity means.

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed. I also pointed out that readers will see "arity" in other documents.

@@ -26,24 +26,26 @@ different ways to use them, and initial guidance on working with Tuples.

Let's start with the reasons for adding new Tuple support. Methods return
a single object. Tuples enable you to package multiple values in that single
object more easily.
object more easily. You don't need behavior on these types, but you want to
Copy link
Contributor

@rpetrusha rpetrusha Nov 28, 2016

Choose a reason for hiding this comment

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

Understanding the sentence requires that you know that tuples don't allow you to define custom methods. I'm not sure how many readers will have the necessary context. I think I'd delete that part here, or else reference the discussion later.

Copy link
Member Author

Choose a reason for hiding this comment

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

Fixed.

reference type. Using the `Tuple` type means allocating objects. On hot
information. Using these `Tuple` types does not enable communicating the
meaning of each of the fields. Another concern is that the `Tuple` classes are
reference types. Using one of the `Tuple` types means allocating objects. On hot
paths, this can have a measurable impact on your application's performance.
Copy link
Contributor

Choose a reason for hiding this comment

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

There's one other issue: although static factory methods made it easier, one of the ways to instantiate a tuple is by calling its class constructor, which is extremely cumbersome. Feel free to ignore my comment, though, if you don't think that's worth mentioning.

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 agree, but I wanted to concentrate on the other two benefits.


The .NET Framework already had a `Tuple` generic classes. These classes,
however, suffered from two limitations. For one, the `Tuple` classes named
The .NET Framework already had `Tuple` generic classes. These classes,
Copy link
Contributor

Choose a reason for hiding this comment

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

Tuple generic classes, or generic Tuple classes?
Also, I don't like the use of "had" (past perfect); better "has" (present perfect), since they still exist.

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed.

and it obscures your design intent. Making a `struct` or `class` implies
that you are defining a type with both data and behavior.
that you are defining a type with both data and behavior. Many times, you
simply want to store multiple values in a single object.

The new language features for tuples, combined with a new set of generic
classes in the framework address thease deficiencies. These new tuples
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 framework
Also, new set of classes in the framework, since not all (i.e. TupleExtensions) are generic.

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed.


The language features and the `ValueTuple` generic structs enforce the rule that
these tuple types do not have any behavior (methods) associated with them.
Copy link
Contributor

Choose a reason for hiding this comment

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

They do have the set of methods (Equals, GetHashCode, CompareTo, ToString, and some IEEs) defined on the individual ValueType<> types, so that's not completely true.

## Named and unnamed tuples

The `ValueTuple` struct has fields named `Item1`, `Item2`, `Item3` and so on,
just like the existing `Tuple` types.
Copy link
Contributor

Choose a reason for hiding this comment

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

Except that in the Tuple types, they're properties.

Copy link
Member Author

Choose a reason for hiding this comment

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

Great catch. Fixed.

The compiler must communicate those names you created for tuples that
are returned from public methods or properties. In those cases, the compiler
adds a `TupleElementNames` attribute on the method. This attribute contains
a `TransformNames` list property that contains the names give to each of
Copy link
Contributor

Choose a reason for hiding this comment

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

give --> given

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed

## Tuples as method return values

One of the most common uses for Tuples is as a method return
value. It may often be natural for a method to compute more than
Copy link
Contributor

Choose a reason for hiding this comment

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

It may often be... is a tortuous construct. I'd deleted the sentence.

Copy link
Member Author

Choose a reason for hiding this comment

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

Good point. Deleted.

This final version can be used for any method that needs those three
values, or any subset of them.

The langauge supports other options in managing the names of the fields
Copy link
Contributor

Choose a reason for hiding this comment

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

sp: language

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed.

values, or any subset of them.

The langauge supports other options in managing the names of the fields
in these tuple returning methods.
Copy link
Contributor

Choose a reason for hiding this comment

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

tuple-returning

Copy link
Member Author

Choose a reason for hiding this comment

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

fixed.


You can unpackage all the items in a tuple by *deconstructng* the tuple
returned by a method. Therer are two different approaches to deconstructing
tuples. First, you can expelicitly declare the type of each field inside
Copy link
Contributor

Choose a reason for hiding this comment

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

expelicitly --> explicitly

Outline and start on first draft.
Ready for a final proofread
This is now ready for review.
@dotnet-bot
Copy link
Contributor

✅ Validation status: passed

File Status Preview URL Details
docs/csharp/csharp-7.md ✅Succeeded View
docs/csharp/tuples.md ✅Succeeded View
docs/toc.md ✅Succeeded View

For more details, please refer to the build report.

Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@dotnet-bot
Copy link
Contributor

✅ Validation status: passed

File Status Preview URL Details
docs/csharp/csharp-7.md ✅Succeeded View
docs/csharp/tuples.md ✅Succeeded View
docs/toc.md ✅Succeeded View

For more details, please refer to the build report.

Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@stevehoag
Copy link
Contributor

LGTM :shipit:

@BillWagner
Copy link
Member Author

Thanks @stevehoag Merging now.

@BillWagner BillWagner merged commit c48f486 into dotnet:master Nov 29, 2016
@BillWagner BillWagner deleted the csharp-tuples branch December 2, 2016 15:12
alexinea added a commit to dotnetcore-internal/core-doc-cn that referenced this pull request Dec 29, 2016
* Basic types, classes and structs (dotnet#1134)

* Basic types, classes and structs

Split Types topic and added C# 7 literala features

* Fixed snippet links

* Fixed two more links

* Addressed all review comments

* Removed wrenches again

after esolving conflict

* simplify getting IP address (dotnet#1107)

* Grammar error (dotnet#1145)

I suppose that "to compile and the code" is wrong, it should be "to compile the code"

* Don't rely on `docker exec` for getting ip address (dotnet#1108)

* Update index.md (dotnet#1146)

* adding some new links (dotnet#1139)

* Patch 1 (dotnet#1147)

* Update generating-fsharp-types-from-edmx.md

Removed erroneous ) from the select statement in the example demonstrating a where clause

* Update generating-fsharp-types-from-edmx.md

Correcting the join statement in the example for joining two tables

* Update generating-fsharp-types-from-edmx.md

Under the section "Creating an EDMX file," adding the link to the "Configuring the Entity Data Model" section.

* Update generating-fsharp-types-from-edmx.md

Correcting indentation for the changeHireDate function

* Fix title and metadata (dotnet#1149)

* Reviewed the CLI topic (dotnet#1124)

* Reviewed the CLI topic

* added version

* undoing a small change

* Fix missing link

Fix missing link for raw markdown template.

* 🔧 small fixes (dotnet#1153)

* Updates to the CLI commands reference (dotnet#1129)

* reviewed cli commands topics

* removed byline

* minor fixes

* fixed broken links

* addressed feedback

* clarified language

* fixed typo

* Feature/fsharp app service (dotnet#1156)

* Add F# App Service API example

* Add Hosting F# in a web application on Azure link

* Update native dependencies section to specify RID correctly (dotnet#1144)

* Update native dependencies section to specify RID correctly

* Address feedback

* Address @mairaw feedback I missed

* adding new video (dotnet#1154)

* Adding images for getting started VS Code doc

* Fix <- in markdown (dotnet#1159)

* Corrected typo

* Added F# with Mobius for Spark on Azure (dotnet#1161)

* Wrong place for image

* Wrong place for image

* Wrong place for image

* Wrong place for image

* fix broken link (dotnet#1166)

* fix broken link

* fixed another broken link

* Fix Binary Search Tree insert function (dotnet#1167)

* remove redundant "*" (dotnet#1168)

* Update portability-analyzer.md (dotnet#1155)

* Update portability-analyzer.md

Made some improvements to the topic

* updates

* Update index.md (dotnet#1163)

* Update index.md

Fix links for dotnet-apiport.

* Update index.md

* adding macOS Sierra support (dotnet#1164)

* adding sierra support

* added missing word

* Hello World with Visual Studio 2015

* Fix extension docs (dotnet#1178)

See dotnet/fsharp#1670

* excluding tokens from ops validation (dotnet#1182)

* renamed repo/fixed headings (dotnet#1186)

* Corrected publishing warnings (dotnet#1189)

* Corrected publishing warnings

* Fixed two more broken links.

* fixed broken link

* Update README.md

* Remove pointer to github.com/microsoft/docs/readme.md (dotnet#1191)

* updated netstandard version (dotnet#1169)

* fixed repo name (dotnet#1193)

* added missing H1 (dotnet#1192)

* Update toc.md

* Updating languages used in sample article (dotnet#1199)

* Methods topic ported from MSDN and revised.

* Incorporated comments.

* Corrected publishing errors

* Added changes lost during merge.

* Update toc.md

* fixed broken anchors (dotnet#1194)

* fixed broken anchors
* fixed more links

* fixed more links

* fixed links

* fixed more links

* fixed casing

* more fixes

* more fixes

* Update index.md

* reverting to previous index structure.

* fix broken-links for app-types document (dotnet#1203)

* fix broken-links for app-types document

Responding to a user comment on
https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/using-wi
th-xplat-cli

* fix edit paste error of .md.md

* fixing links again

The index.md cannot be part of the url. The build removes ‘.md’, but
keeps ‘index’. That fails.

* fix typo in links

* Propose VS Code Getting Started

Getting started page for .NET Core, C# extension, and VS Code.

* Deleted "Next Steps" Section

Let's assume the surrounding documentation on the .NET Docs is where users will want to browse next.

* Deleted Wrench, Added VS Code Install Step

* Deleted "blazing" and "fun"

* Add images

* Fixed Pic links

* Fixed old commits

* fixing typo (dotnet#1202)

* Update global-json.md (dotnet#996)

* Update global-json.md

* removing unkown properties

* updated topic

* Two edits, and modified TOC

* Config tweak for PDF.

* Change the format

* respond to remaining feedback on 1077

Also, update the date and add the ms.author metadata.

indent sample to preserve one list

I’ll examine the build output on staging and then squash.

* Update expressions.md

Update expressions.md

* Respond to feedback on PR dotnet#1076

Also, updated the publish date, and add ms.author metadata.

* Formatting for the config.

* Fix formatting console-teleprompter.md

Update console-teleprompter.md

Update console-teleprompter.md

Update console-teleprompter.md

* respond to remaining feedback on PR dotnet#1073

Also, updated the freshness date, and add the ms.author metadata tag.

Respond to updated feedback

Respond to @rpetrusha feedback.

Fix a few broken links

* clean up first sentence (dotnet#1214)

* Recommend snippet syntax (dotnet#1209)

* update template to recommend code snippets

We prefer them to inline code that doesn’t run through the CI build.

* Fix contributing link

* update list of languages to the correct smaller set.

* respond to feedback

* respond to feedback.

* Add link to and sample code application to post (dotnet#1215)

* add link to and sample code application to post

* remove unneeded files

* Kick off live build again.

* create initial contributing.md for fast releases. (dotnet#1206)

* create initial contributing.md for fast releases.

* fix markdown syntax issue.

* fix the link to the main docs folder.

* one more time, fixing the link.

* add note about contributing.md location.

* Add any contributing.md files to the exclude list

We don’t want them on the live site.

* stashing to switch branches.

* update the link in the warning include.

* update with correct current release terms.

* Update for feedback.

* new hub page design (dotnet#1220)

* new hub page design

* adding svg extension

* 🐤 Config change.

* fix typo (dotnet#1217)

* November changes (dotnet#1157)

* Updates for november release

* Add getting-started to About .NET

* Change links

* Update to Platform as the name

* fix links

* Fix links in tour

* Fix link

* Update names

* Update Framework Name

* Remove About and replace with .NET Platform Guide

* Fixes

* Change .NET Framework to .NET Framework on Docker

* Remove about article and make it the index

* Update title in index file

* Updates

* Updates

* fix link

* fix link

* fix link

* Redirects don't support folder renames

* fix links

* Move files

* feedback

* fix link

* Undo GUID change

* Updates

* fix broken link (dotnet#1222)

* Adding MASTER to PDF build.

* Hubpage (dotnet#1227)

* testing image location

* changing image links

* fix more image links

* Update attributed.md: Pre -> Previous (dotnet#1224)

The button text only shows "Pre", which is different from the "Previous" button in other articles in this section.

* Add git to prerequisites for getting started with F# on vscode article (dotnet#1180)

* Add git to prerequisites

* Update getting-started-vscode.md

* Update getting-started-vscode.md

* fixing some links (dotnet#1228)

* Fix heading in F# vscode article (dotnet#1229)

Was missing 'with'.

* New in csharp7 (dotnet#1188)

* Create What's new in C# 7 content

* fix a merge mistake.

* update per editorial feedback.

* Fixing OPS build

* address review comments.

From @jaredpar

* updates for the hub page

* VS page conflict fix

* testing hover image link

* fixing link

* updating Hub image urls

* changed links

* trying to fix build warnings

* Spelling error (dotnet#1234)

* 📚 migration changes (dotnet#1235)

* migration files

* checkin changes

* more fixes

* last fixes

* fixed broken links

* ran link fix tool again

* Removed Wrench -- Issue dotnet#1213

* Removed wrench -- issue dotnet#1213

* Removed wrench -- Issue dotnet#1213

* The C# MicroServices tutorial left out an install of node.js's npm manager; added link to node.js. (dotnet#1219)

* Updated the tutorial to help any user who is not coming from a javascript background who may not have npm installed; provided link to npm for their download

* Grammar changes

* Moved the instruction to install npm into its own paragraph and changed the logical structure of the instructions to follow.

* Removed to be installed

* fixing broken link (dotnet#1223)

* fixing broken link

* Update warning.md

* Update index.md (dotnet#1151)

add link to simple introduction to creating an azure function in f# on azure

* updated featured png fallbacks, hiding breadcrumb (dotnet#1238)

* updated featured png fallbacks, hiding breadcrumb

* updated panel images

* remove dead wood and market speak (dotnet#1183)

* remove dead wood and market speak

see https://msdnstage.redmond.corp.microsoft.com/en-us/ce-csi-docs/contributors-guide-internal/style-and-voice?branch=master

For such a high visibility topic can't we run it by an editor?

* removed Core

* adding new CLI nuget commands (dotnet#1218)

* adding new CLI nuget commands

* small change

* addressed feedback

* last updates and renamed folder

* Update CLI golden path tutorial for Preview 3.

* macOS images (dotnet#1240)

* Remove Syntax Reference and point to Language Reference (dotnet#1225)

* Finish CLI golden path.

* Fix missed project.json occurrences.

* Move new preview3 docs under the cli-preview3 folder.

* Add .NET Components article (dotnet#1232)

* Add .NET Components article

* Add to TOC and metadata fixes

* Fix error in paragraph

* More fixed

* Reword awkward targeting sentence

* Fix links

* Better picture

* Feedback

* .NET Architectural components as the name name

* Add .NET Platform getting started (dotnet#1241)

* Add .NET Platform getting started

* feedback

* Feedback

* Update hub page to have correct name and link for components (dotnet#1245)

* Add Core vs Framework for server apps article (dotnet#1239)

* Add Core vs Framework for server apps article

* Feedback

* Feedback

* Feedback

* Revised Tour of .NET (dotnet#1236)

* First changes

* Finish up draft of revised tour

* Fix links

* Fix links

* Fix note

* Feedback

* Feedback

* Feedback

* Fix bad link

* redirecting old topics (dotnet#1246)

* readded files to proper redirect them

* added missing toc entry

* fixed redirect url

* Update toc.md

Removed top-level wrenches.

* Initial draft of Hello World app.

* Checkin for class library tutorial.

* Consuming a class library check-in

* Updated for final RC build (dotnet#2)

* Updated for final RC build

Updated screenshots, addressed accessibility, other minor changes

* Updated library topics

* Revised publishing topic, plus corrected typo

* Corrected bad verb tense.

* Addressed comment, added context and additional explanation, corrected title omission

* Addressed additional comments

* fix one build error.

* fix the link URL for a code snippet

* Update toc.md

Updated TOC for new VS 2015 content, removed VS Code wrench and corrected title.

* fixing TOC issue

* Corrected bad links in VS 2017 RC topics.

* Corrected title of library topic in TOC

* top-level getting started portal page

* Fix broken connect links (dotnet#1250)

* fix a bad link

* fix broken links

these came in 3 cases.
1. Some links used ... instead of .. to navigate up a folder.
2. Some links were off by one directory up in navigation.
3. Some links used back-slash instead of slash.
4. Typos.

1 and 2 might be significant if we run the migration script again.

* rename getting started with libraries and fix links

The name had an '_ ' and should have '-' instead

* fix build warnings

* wrong API name:  IsUpperCase -> IsUpper

* Update hub links to actual content (dotnet#1251)

* Update links to actual content

* Add '/'

* Corrected errors, added library topic, fixed typo in another topic

* CLI Preview 3 docs (dotnet#1233)

Add CLI Preview 3 documentation

This will add Preview 3 CLI documentation in a separate folder under docs/core/preview3. The CLI Preview 3 bits 
are the first released bits to contain the MSbuild support and have no support for working with project.json projects. 

Changes done:

* Modified the extensiblity document to add extending the tools via targets in NuGet packages
* Added dependency management documetn that explains how to do package management manually in the new csproj format
* Added csproj reference guide (NOTE: this needs completing)
* Added dotnet-migrate command docs
* Fixed all of the other command references to be correct as to Preview 3 bits

* Add VS 2017 getting started topics.

* Cleanup links and reconcile folder structure with other PRs.

* Add TOC.

* Updated warning (dotnet#1256)

* Update warning.md

* Update warning.md

* fixed toc

* fixing GH alias (dotnet#1260)

* fixing GH alias 

/cc @bleroy

I'm adding myself as the ms.author so I get the incoming feedback and so forth. let me know if you disagree with that.

* fixing broken link

* fixing toc links

* fixed links and some typos (dotnet#1259)

* fixed links and some typos
* more fixes

* Remove about .NET article (dotnet#1249)

* Fix preview 3 download link.

* Fixed merge conflict (dotnet#1265)

Also fixed couple of typos.

* Fix typo (dotnet#1267)

* Update index.md (dotnet#1271)

* Update index.md

* Removing extra a

* fixing broken links (dotnet#1263)

* fixing broken links

* more fixes

* adding missing extension

* Fixed links to preview 2 CLI code (dotnet#1274)

* Fixed included notes (dotnet#1275)

* Remove extraneous brackets

* Fixes miscellaneous issues in VB content (dotnet#1268)

Fixed broken links, removed invalid links, etc.

* Preview 3 edits (dotnet#1273)

* Preview 3 edits

* Added migrate to the list of commands
* Used docfx syntax for notes
* Fixed heading levels in new articles
* Made pseudo-variables in csproj consistent in dependencies
* Remove references to project.json sections from deploying
* Remove F# from dotnet new, since it's not supported
* Added back missing --framework to dotnet test
* Typos, grammar and other small fixes

* Removed unnecessary Overview headings

* fixed TOC (dotnet#1280)

* fixed TOC

* removed wrench

* Fixing broken links (dotnet#1276)

* Fixing broken links

* Attempted to fix cross reference warning

* Link to docs.ms instead of MSDN

Also simplified relative paths

* Absolute urls and other fixes (dotnet#1281)

* absolute urls and other link fixes

* fixed broken link

* fixed issues causing formatting problems

* removed extra parentheses

* fixed broken link

* fixed xref warnings

* Added links to Visual Studio 2017 topics (dotnet#1282)

* Revisions to lambda expressions topic.

* Small syntax fixes

YOu'll => You'll
IgnoreDatamember => IgnoreDataMember

* Fixed bad code snippet tags.

* Minor TOC improvements

* Addressed comments from @shoag

* Additional revisions from Bill and Maira.

* Create detailed article on C# tuples (dotnet#1284)

* Create Tuples content in C# 7 content
Outline and start on first draft.

* finish tuples article and samples

Ready for a final proofread

* proofread, remove wrenches

This is now ready for review.

* respond to all feedback.

Reviews from @svick and @rpetrusha

* fixed typo (dotnet#1296)

* clarify wording of "Functions as First-Class Values" (dotnet#1290)

* custom operators using `?` (dotnet#1291)

added an additional rule for custom operators from the F# 4.0 Spec Section 3.7

* added missing links (dotnet#1295)

* added missing links

* changed links to absolutely links

Thanks @mairaw

* fixed api links

* update input file names for case sensitive file systems (dotnet#1299)

Fixing a customer reported issue.

* remove 'wrench' articles that have been ported (dotnet#1298)

* remove 'wrench' articles that have been ported

Several not-yet-written articles have been covered by the port of the
C# content from MSDN.  These still need to be reviewed and updated, but
they are all now present.

* configure redirects for deprecated articles.

* don't include the file extension on redirects.

* update the path for redirection

* find and replace links to content that moved.

* Add documented example of using a webjob in f# (dotnet#1289)

* f# webjob doc and example

* fix grammar

* added new line

* Updating WebApiClient (dotnet#1304)

Adding missing `using` statements

* Small fixes (dotnet#1303)

* Added keywords metadata field.

* added default values for api ref metadata (dotnet#1300)

* added default values for api ref metadata

* fixing path

* changing to an alias

* Adding Search Scope

* Update docfx.json to add search scope

* removing broken links (dotnet#1312)

* Text, images, code for inheritance tutorial

* Fixed bad code reference

* Corrected another bad code snippet tag.

* Metadata updates (dotnet#1313)

* first round of metadata updates

* secound round of updates

* small update

* Update debugging-with-visual-studio-2017.md

Corrected spelling...

* Add Debug section to VS Code Getting Started (dotnet#1314)

* Add Debug instructions

* Additional changes to inheritance in programming guide.

* Fix broken sentence in discriminated-unions.md (dotnet#1322)

* Updated LINQ topics for C# Concepts section (dotnet#1302)

* Updated LINQ topics for C# Concepts section

Phase one - additional topics will be moved from the Programming Guide
later

* Fixed build errors

* Addressed feedback

* Created a LINQ folder and moved the files; updated links

* Updated TOC with new path

* Updated redirect URLs

* Fixed one more redirect

* Use S110 build tool version for building (dotnet#1328)

* Use 1.22.3 packages and plugin

* Update .openpublishing.publish.config.json

* Revisions to inheritance topic.

* Addressed additional comments

* turning off build comments on PRs (dotnet#1327)

/cc @BillWagner

* fixing tip (dotnet#1320)

* fixed tip style

* test

* readded tip

* content review

* added missing changes

* few more fixes

* rezising asset image

* addressed feedback

* Fixed broken links to LINQ topic (dotnet#1331)

* Fixed broken links to LINQ topic

* fixed merge issues

* Update .openpublishing.publish.config.json

* rid-catalog.md: Add rhel.7-x64 rid (dotnet#1324)

* make readable (dotnet#1325)

* make readable

* rpetrusha feedback

* typo

* Final corrections, corrected code snippet tag.

* Updated TOC to add inheritance topic.

* Changed wrong installation path in documentation. (dotnet#1323)

* Corrected lowercase 'i'

* Updated hub page images from Design (dotnet#1337)

* dotnet#275 string interpolation tutorial for C# (dotnet#1317)

* dotnet#275 string interpolation tutorial for C#

* dotnet#275 move code examples into snippets so they can be run by DocFx

* dotnet#275 corrects and fixes of string interpolation tutorial per review from BillWagner

* dotnet#275 forgot namespace for CultureInfo

* dotnet#275 typo fix

* dotnet#275 remove intro header per recommendation

* update metadata and TOC for tutorial (dotnet#1340)

* update metadata and TOC for tutorial

Also, add a reference to the inheritance tutorial (which was missing at
the time)

* Update string-interpolation.md

* Removed incorrect semocolons from operators (dotnet#1338)

* Fix code without right space. (dotnet#1342)

Fix code without right space.

* Add missing parenthesis (dotnet#1344)

* Update how-to-define-value-equality-for-a-type.md

spelling error

* Update how-to-define-value-equality-for-a-type.md (dotnet#1349)

public and non-public fields is the same thing as fields

e.g.,  x || !x == true

* corrected typo (dotnet#1352)

* fixing warning message (dotnet#1353)

* fixing warning message

* re-added part of the sample

* Update What's new for C# 7 (dotnet#1351)

* Update What's new for C# 7

* re-word a few awkward sentences.

* improve formatting.

* respond to review comments.

* Update F# XML documentation (dotnet#1357)

Removed extraneous stars (bad formatting).

* Fix date format to be mm/dd/yyyy (dotnet#1360)

It was causing the wrong publication date.

* fix typo in class name (dotnet#1361)

As reported on PR dotnet#1351
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

7 participants