Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/core/getting-started.md → docs/core/get-started.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Getting started with .NET Core
title: Get started with .NET Core
description: Find resources to learn how to build .NET Core applications on Windows, Linux and macOS.
keywords: .NET, .NET Core
author: mairaw
Expand All @@ -11,7 +11,7 @@ ms.devlang: dotnet
ms.assetid: d1453a0d-317c-4da6-b68e-422a2c0bfe49
---

# Getting started with .NET Core
# Get started with .NET Core

.NET Core runs on [Windows](#windows), [Linux](#linux), and [macOS / OS X](#os-x--macos).

Expand Down
2 changes: 1 addition & 1 deletion docs/core/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ ms.assetid: f2b312cb-f80c-4b0d-9101-93908f06a6fa

# .NET Core

> Check out the ["Getting Started" tutorials](getting-started.md) to learn how to create a simple .NET Core application. It only takes a few minutes to get your first app up and running.
> Check out the ["Getting Started" tutorials](get-started.md) to learn how to create a simple .NET Core application. It only takes a few minutes to get your first app up and running.

.NET Core is a general purpose development platform maintained by Microsoft and the .NET community on [GitHub](https://github.com/dotnet/core). It is cross-platform, supporting Windows, macOS and Linux, and can be used in device, cloud, and embedded/IoT scenarios.

Expand Down
14 changes: 7 additions & 7 deletions docs/csharp/getting-started/index.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
title: Getting Started | C# Guide
description: Simple tutorials that let you quickly build an application using C# and .NET Core.
keywords: C#, Getting Started, Acquisition, Install

title: Get Started | C# Guide
description: Get Started with C#
keywords: C#, Get Started, Acquisition, Install
author: rpetrusha
ms.author: ronpet
ms.date: 04/17/2017
ms.date: 05/02/2017
ms.topic: article
ms.prod: .net
ms.technology: devlang-csharp
ms.devlang: csharp
ms.assetid: b77c7263-7cbf-4729-9626-8fbc3f5f14d9
---

# Getting started with C#
# Get started with C# #

This section provides short, simple tutorials that let you quickly build an application using C# and .NET Core. There are getting started topics for Visual Studio 2017 and Visual Studio Code. You can build either a simple Hello World application or, if you have Visual Studio 2017, a simple class library that can be used by other applications.

Expand All @@ -28,7 +28,7 @@ The following topics are available:

A class library lets you define types and type members that can be called from another application. This topic lets you create a class library with a single method that determines whether a string begins with an uppercase character. Once you've finished building the library, you can develop a [unit test](testing-library-with-visual-studio.md) to ensure that it works as expected, and then you can make it available to [applications that want to consume it](consuming-library-with-visual-studio.md).

* [Getting started with Visual Studio Code](with-visual-studio-code.md)
- [Get started with Visual Studio Code](with-visual-studio-code.md)

Visual Studio Code is a free code editor optimized for building and debugging modern web and cloud applications. It supports IntelliSense and is available for Linux, macOS, and Windows.

Expand Down
8 changes: 4 additions & 4 deletions docs/csharp/getting-started/with-visual-studio-code.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
---
title: Getting started with Visual Studio Code | C# Guide
title: Get started with Visual Studio Code | C# Guide
description: Learn how to create and debug your first .NET Core application in C# using VS Code.
keywords: C#, Getting Started, Acquisition, Install, Visual Studio Code, Cross Platform
keywords: C#, Get Started, Acquisition, Install, Visual Studio Code, Cross Platform
author: kendrahavens
ms.author: mairaw
ms.date: 03/07/2017
ms.date: 5/02/2017
ms.topic: article
ms.prod: .net
ms.technology: devlang-csharp
ms.devlang: csharp
ms.assetid: 76c23597-4cf9-467e-8a47-0c3703ce37e7
---

# Getting Started with Visual Studio Code
# Get Started with Visual Studio Code

.NET Core gives you a fast and modular platform for creating server applications that run on Windows, Linux, and macOS. Use Visual Studio Code with the C# extension to get a powerful editing experience with full support for C# IntelliSense (smart code completion) and debugging.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
---
title: Getting Started with .NET
title: Get Started with .NET
description: Lists various articles for getting started with .NET, both from a language and platform perspective.
keywords: .NET, Getting Started, C#, F#, Visual Basic
author: cartermp
ms.author: mairaw
ms.date: 11/16/2016
ms.date: 05/01/2017
ms.topic: article
ms.prod: .net
ms.technology: dotnet-standard
ms.devlang: dotnet
ms.assetid: 81c07080-acdf-4aef-a66d-0ab52fab2c04
---

# Getting Started
# Get Started

There are a number of ways to get started with .NET. Because .NET is a massive platform, there are multiple articles in this documentation which show how you can get started with .NET, each from a different perspective.

## Getting started using .NET languages
## Get started using .NET languages

* The [C# Getting Started](../csharp/getting-started/index.md) articles and [C# Tutorials](../csharp/tutorials/index.md) provide a number of ways to get started in a C#-centric way.

* The [F# Getting Started](../fsharp/tutorials/getting-started/index.md) tutorials provide three primary ways you can use F#: with Visual Studio, Visual Studio Code, or command-line tools.

* The [Visual Basic Getting Started](../visual-basic/getting-started/index.md) articles provide guides for using Visual Basic in Visual Studio, and provide a number of other learning resources.

## Getting started using .NET core
## Get started using .NET core

* [Getting Started with .NET Core](../core/getting-started.md) provides an overview of articles which show how to get started with .NET Core on different operating systems and using different tools.
* [Getting Started with .NET Core](../core/get-started.md) provides an overview of articles which show how to get started with .NET Core on different operating systems and using different tools.

* The [.NET Core Tutorials](../core/tutorials/index.md) detail a number of ways you can get started with .NET Core using your operating system and tooling of choice.

## Getting started using Docker on .NET Framework
## Get started using Docker on .NET Framework

The [Docker on .NET Framework](../framework/docker/index.md) shows how you can use .NET Framework on Windows Docker containers.
76 changes: 32 additions & 44 deletions docs/standard/index.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: About .NET
title: .NET Platform Guide
description: Learn about the .NET Platform.
keywords: .NET, .NET Core
author: richlander
author: cartermp
ms.author: ronpet
ms.date: 10/31/2016
ms.date: 05/02/2017
ms.topic: article
ms.prod: .net
ms.technology: dotnet-standard
Expand All @@ -14,63 +14,51 @@ ms.assetid: bbfe6465-329d-4982-869d-472e7ef85d93

# .NET Platform Guide

> [!NOTE]
> Check out the ["Getting Started with .NET Core" tutorials](../core/getting-started.md) to learn how to create a simple .NET Core application. It only takes a few minutes to get your first app up and running.
The .NET Platform Guide provides a large amount of information about the .NET Platform. Depending on your familiarity with .NET, you may wish to explore different sections of this guide and other sections of the .NET documentation.

.NET is a general purpose development platform. It can be used for any kind of app type or workload where general purpose solutions are used. It has several key features that are attractive to many developers, including automatic memory management and modern programming languages, that make it easier to efficiently build high-quality applications. .NET enables a high-level programming environment with many convenience features, while providing low-level access to native memory and APIs.
## New to .NET

C#, F# and Visual Basic are popular languages that target and rely on the .NET platform. The .NET languages are known for key features such as their asynchronous programming model, language-integrated query, generic types and type system reflection. The languages also provide great options for both object-oriented and functional programming paradigms.
If you're new to .NET, check out the [Get Started](get-started.md) article.

There is great diversity across these languages, in philosophy and syntax, but also symmetry provided by a shared type system. This type system is provided by the underlying runtime environment. .NET was designed around the idea of a "common language runtime" that could support the requirements of diverse languages -- for example, dynamic and statically typed languages -- and enable interoperability between them. For example, it's possible to pass a collection of `People` objects between languages with no loss in semantics or capability.
If you prefer to have a guided tour through major features of .NET, check out the [Tour of .NET](tour.md).

Multiple [.NET implementations and products](components.md) are available, based on open [.NET Standards](https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/dotnet-standards.md) that specify the fundamentals of the platform. They are separately optimized for different application types (for example, desktop, mobile, gaming, cloud) and support many chips (for example, x86/x64, ARM) and operating systems (for example, Windows, Linux, iOS, Android, macOS). Open source is also an important part of the .NET ecosystem, with multiple .NET implementations and many libraries available under OSI-approved licenses.
You can also read about [.NET Architectural Components](components.md) to get an overview of the various "pieces" of .NET and how they fit together.

- Learn about [C#](../csharp/index.md)
- Learn about [F#](../fsharp/index.md)
- Browse the [.NET API Library](../../api/index.md)
- [Introduction to the Common Language Runtime](https://github.com/dotnet/coreclr/blob/master/Documentation/botr/intro-to-clr.md)
## New to .NET Core

Fundamentals
------------
If you're new to .NET Core, check out [Get Started with .NET Core](../core/get-started.md).

**Multi-Language** -- .NET provides a well-defined type system, file formats, runtime, framework and tools that can be used by multiple languages, both for their own execution and also to interoperate with other languages using those same components of .NET as their shared currency.
## New to .NET Standard

**Managed Memory** -- .NET automatically manages memory for you via a garbage collector. It ensures that you always reference live objects, guaranteeing that you avoid nasty problems like buffer overruns and access violations. This includes array bounds checking.
If you're new to .NET Standard, check out [.NET Standard Library](library.md).

**Type Safety** -- The primary .NET model for functionality and memory representation is "types". Types define shape and optionally behavior. The runtime ensures that calling code can only operate on types according to their definition and specified visibility of members, providing consistent, reliable and secure results.
## Porting .NET Framework Code to .NET Core

Features
--------
If you're looking to port an application, service, or some component of a system to .NET Core, check out [Porting to .NET Core from .NET Framework](../core/porting/index.md).

**User-defined Value Types** -- Value types are a useful category of types since they offer the semantic of "pass by value" instead of "pass by reference", as is the case for classes. Value types are most obviously usefully for numeric data. .NET enables value types for both primitive types, like integers, and user-defined types.
## Porting a NuGet package from .NET Framework to .NET Standard or .NET Core

**Generic types** -- Generic types are types with one or more type parameters that can be specified on a per-instantiation basis. This is useful for many types, which otherwise would expose contents as the Object type or require multiple type definitions. For example, a given instantiation of a collection type can be made specific to People, GPS locations or strings.
If you're looking to port a NuGet package to .NET Standard, check out [Porting to .NET Core from .NET Framework](../core/porting/index.md). Tooling for .NET Standard and .NET Core are shared, so the content will be relevant for porting to .NET Standard as well as .NET Core.

**Reflection** -- .NET defines a metadata format that describes the types within a binary. The reflection subsystem uses this data, exposing APIs for both reading and instantiating types at runtime. This facility is very useful for dynamic scenarios where it is not convenient to know the exact implementation of a program ahead of time.
## Interested in Major .NET Concepts

**Flexible code generation** -- .NET does not prescribe a specific approach to transforming .NET binaries into machine code. Many approaches have been used successfully, including interpretation, just-in-time (JIT) compilation, ahead-of-time (AOT) compilation with JIT fallback and AOT compilation with no JIT fallback. Each of these strategies can be valuable and there are opportunities for using them together.
If you're interested in some of the major concepts of .NET, check out:

**Cross-platform** -- .NET was intended to be cross platform from its inception. The binary format and the instruction set are operating system, CPU and pointer-size agnostic. A given .NET binary built in 2000 to run on a 32-bit Windows machine can run on the ARM64 iOS device on 2016 without modification.
* [.NET Architectural Components](components.md)
* [.NET Standard Library](library.md)
* [Native Interoperability](native-interop.md)
* [Garbage Collection](garbagecollection/index.md)
* [Base Types in .NET](base-types/index.md)
* [Collections](collections/index.md)
* [Dates, times, and time zones](datetime/index.md)
* [Asynchronous Programming](async.md)
Copy link
Member

Choose a reason for hiding this comment

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

Some of these feel a bit advanced for a heading that says "fundamentals". I like that you've included them, but we might want to consider splitting into two lists. I'll suggest "fundamentals" and "major concepts", but I'm really not thrilled with that term.

Specifically I'm thinking the interop, GC and async are more advance and more specialized.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I decided to split out the languages from here and just call them Major concepts.


Open source
-----------
Additionally, check out each language guide to learn about the three major .NET languages:

The [.NET Core](https://github.com/dotnet/core) and [Mono](https://github.com/mono/mono) implementations of .NET are open source, using the MIT license. Documentation uses the [Creative Commons CC-BY](https://creativecommons.org/licenses/by/4.0/) license. .NET Core and Mono are sponsored by Microsoft and have many contributors from the community.
* [C# Guide](../csharp/index.md)
* [F# Guide](../fsharp/index.md)
* [Visual Basic Guide](../visual-basic/index.md)

These general purpose runtimes can be used as the basis of academic research or teaching/learning or commercial products. Their open nature also means that anyone can contribute back to the upstream product code given a bug or the desire for a new feature.

Projects
--------

- [CoreCLR](https://github.com/dotnet/coreclr) - .NET runtime, used by .NET Core.
- [Mono](https://github.com/mono/mono) - .NET runtime, used by Xamarin and others.
- [CoreFX](https://github.com/dotnet/coreclr) - .NET class libraries, used by .NET Core and to a degree by Mono via source sharing.
- [Roslyn](https://github.com/dotnet/roslyn) - C# and Visual Basic compilers, used by most .NET platforms and tools. Exposes APIs for reading, writing and analyzing source code.
- [F#](https://github.com/microsoft/visualfsharp) - F# compiler.
- [Xamarin SDK](http://open.xamarin.com) - Tools and libraries needed to write Android, iOS and macOS in C# and F#.

Standardized
------------

.NET is specified via open [ECMA standards](https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/dotnet-standards.md) that outline its capabilities and that can be used to make a new implementation. There are other .NET implementations, with Mono and Unity being the most popular beyond the Microsoft ones.
## API Reference

Check out the [.NET API Reference](../../api/index.md) to see the breadth of APIs avaialable.
2 changes: 1 addition & 1 deletion docs/standard/toc.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# [Getting Started with .NET](getting-started.md)
# [Get Started with .NET](get-started.md)
# [Tour of .NET](tour.md)
# [.NET Architectural Components](components.md)
# [.NET Standard Library](library.md)
Expand Down
4 changes: 2 additions & 2 deletions docs/standard/tour.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ See the [.NET Architectural Components](components.md) to learn about each of th

## How to run the code samples

To learn how to set up a development environment to run the code samples, check out [Getting Started](getting-started.md). You can copy and paste code samples from this page into your environment to execute them.
To learn how to set up a development environment to run the code samples, check out [Getting Started](get-started.md). You can copy and paste code samples from this page into your environment to execute them.

> [!NOTE]
In the future, this documentation site will have the ability to run these code samples in your browser.
Expand Down Expand Up @@ -145,6 +145,6 @@ If you're interested in a tour of C# features, check out [Tour of C#](../csharp/

If you're interested in a tour of F# features, check out [Tour of F#](../fsharp/tour.md).

If you want to get started with writing code of your own, check out [Getting Started](getting-started.md).
If you want to get started with writing code of your own, check out [Getting Started](get-started.md).

To learn about important components of .NET, check out [.NET Architectural Components](components.md).
14 changes: 7 additions & 7 deletions docs/toc.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<!-- .NET Core Content -->
# [.NET Core Guide](core/index.md)
## [Getting started](core/getting-started.md)
## [Get started](core/get-started.md)
## [Windows Prerequisites](core/windows-prerequisites.md)
## [macOS Prerequisites](core/macos-prerequisites.md)
## [Tutorials](core/tutorials/index.md)
Expand Down Expand Up @@ -83,7 +83,7 @@
<!-- .NET Framework Content -->
# [.NET Framework Guide](framework/index.md)
## [What's New](framework/whats-new/)
## [Getting Started](framework/get-started/)
## [Get Started](framework/get-started/)
## [Migration Guide](framework/migration-guide/)
## [.NET Framework on Docker Guide](framework/docker/index.md)
### [Running Console Apps in Containers](framework//docker/console.md)
Expand Down Expand Up @@ -121,7 +121,7 @@

<!-- Start of C# Content -->
# [C# Guide](csharp/index.md)
## [Getting Started](csharp/getting-started/)
## [Get Started](csharp/getting-started/)
## [Tutorials](csharp/tutorials/)
## [Tour of C#](csharp/tour-of-csharp/)
<!-- The "What's New" section is short, and one level
Expand Down Expand Up @@ -187,10 +187,10 @@
### [Functions as First-Class Values](fsharp/introduction-to-functional-programming/functions-as-first-class-values.md)

<!--## [Tutorials](fsharp/tutorials/index.md)-->
### [Getting Started](fsharp/tutorials/getting-started/index.md)
#### [Getting Started with Visual Studio](fsharp/tutorials/getting-started/getting-started-visual-studio.md)
#### [Getting Started with Visual Studio Code and Ionide](fsharp/tutorials/getting-started/getting-started-vscode.md)
#### [Getting Started with Command-line Tools](fsharp/tutorials/getting-started/getting-started-command-line.md)
### [Get Started](fsharp/tutorials/getting-started/index.md)
#### [Get Started with Visual Studio](fsharp/tutorials/getting-started/getting-started-visual-studio.md)
#### [Get Started with Visual Studio Code and Ionide](fsharp/tutorials/getting-started/getting-started-vscode.md)
#### [Get Started with Command-line Tools](fsharp/tutorials/getting-started/getting-started-command-line.md)
### [F# Interactive](fsharp/tutorials/fsharp-interactive/index.md)
#### [F# Interactive Options](fsharp/tutorials/fsharp-interactive/fsharp-interactive-options.md)
### [Type Providers](fsharp/tutorials/type-providers/index.md)
Expand Down
Loading