diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 589acee7efef8..5cfe7a6151215 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,12 +1,23 @@ # .NET Documentation Guidelines +## Disclosure + +For any Markdown files generated by AI, always disclose that they were created with the assistance of AI. Add the following frontmatter key/value pair: + +```markdown +ai-usage: ai-generated +``` + ## Terminology + - Unless otherwise specified, all .NET content refers to modern .NET (not .NET Framework). ## Writing Style + Follow [Microsoft Writing Style Guide](https://learn.microsoft.com/en-us/style-guide/welcome/) with these specifics: ### Voice and Tone + - Active voice, second person addressing reader directly. - Conversational tone with contractions. - Present tense for instructions/descriptions. @@ -16,6 +27,7 @@ Follow [Microsoft Writing Style Guide](https://learn.microsoft.com/en-us/style-g - Avoid "we"/"our" referring to documentation authors or product teams. ### Structure and Format + - Sentence case headings (no gerunds in titles). - Be concise, break up long sentences. - Oxford comma in lists. @@ -26,6 +38,7 @@ Follow [Microsoft Writing Style Guide](https://learn.microsoft.com/en-us/style-g - No consecutive headings without content between them. ### Formatting Conventions + - **Bold** for UI elements. - `Code style` for file names, folders, custom types, non-localizable text. - Raw URLs in angle brackets. @@ -33,6 +46,7 @@ Follow [Microsoft Writing Style Guide](https://learn.microsoft.com/en-us/style-g - Remove `https://learn.microsoft.com/en-us` from learn.microsoft.com links. ## API References + Use cross-references: ``. To find API doc IDs: @@ -43,6 +57,7 @@ To find API doc IDs: If unsure, use API browser: `https://learn.microsoft.com/api/apibrowser/dotnet/search?api-version=0.2&locale=en-us&search={API_NAME}&$skip=0&$top=5` and then use the `url` value from the results as a manual link. ## Code Snippets + For snippets >6 lines: 1. Create `./snippets/my-doc/language` folder in same directory as document (for a document named `my-doc.md`) where language is either vb (for visual basic) or csharp (for c#). Omit the `language` component when the document is in the `docs/visual-basic`, `docs/csharp`, or `docs/fsharp` folders. 1. Add snippet as separate code file. @@ -52,8 +67,10 @@ For snippets >6 lines: 1. When you add code, use code comments sparingly because they don't get localized. You can use them to briefly clarify code-specific details (such as logic, parameters, or edge cases). Put any critical information and context in the markdown text of the referencing article. ## File Naming + New Markdown files: lowercase with hyphens, omit filler words (the, a, etc.). ## Special Cases + - Breaking changes: Include directions from `.github/prompts/breaking-change.md`. - When you (Copilot) are assigned an issue in GitHub, after you've completed your work and the workflows (status checks) have run, check to make sure there are no build warnings under the OpenPublishing.Build status check. If there are, open the build report (under View Details) and resolve any build warnings you introduced. diff --git a/docfx.json b/docfx.json index a4a2fa1fc0dae..6c77df53449db 100644 --- a/docfx.json +++ b/docfx.json @@ -835,7 +835,7 @@ "_csharplang/proposals/csharp-14.0/null-conditional-assignment.md": "This proposal allows the null conditional operator to be used for the destination of assignment expressions. This allows you to assign a value to a property or field only if the left side is not null.", "_csharplang/proposals/csharp-14.0/extensions.md": "This proposal enables new kinds of extension members. These new extension members support extension properties, extension static members, including extension operators.", "_csharplang/proposals/csharp-14.0/user-defined-compound-assignment.md": "This proposal introduces user-defined compound assignment operators. Developers can override compound assignment, increment, and decrement operators.", - "_csharplang/proposals/csharp-14.0/ignored-directives.md": "This proposal allows a source file to include ignored directives. In most cases, ignored directives are used for file based programs, for example `#!`", + "_csharplang/proposals/csharp-14.0/ignored-directives.md": "This proposal allows a source file to include ignored directives. In most cases, ignored directives are used for file-based apps, for example `#!`", "_csharplang/proposals/csharp-14.0/extension-operators.md": "This proposal extends the proposal for extensions to include *extension operators*, where an operator can be an extension member.", "_csharplang/proposals/csharp-14.0/named-and-optional-parameters-in-expression-trees.md": "This proposal allows an expression tree to include named and optional parameters. This enables expression trees to be more flexible in how they are constructed.", "_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 7.md": "Learn about any breaking changes since the initial release of C# 10 and included in C# 11", @@ -902,20 +902,25 @@ "open_to_public_contributors": { "docs/standard/design-guidelines/**.md": false }, - "ms.custom": { - "docs/framework/**/*.md": "UpdateFrequency5", - "docs/visual-basic/**/*.md": "UpdateFrequency5" - }, "ms.collection": { - "docs/ai/**/**.md": "ce-skilling-ai-copilot", - "docs/ai/**/**.yml": "ce-skilling-ai-copilot" + "docs/ai/**/**.{md,yml}": "ce-skilling-ai-copilot" }, "ms.update-cycle": { "docs/ai/**/**.{md,yml}": "180-days", - "docs/csharp/whats-new/**/*.md": "1825-days", - "docs/framework/**/*.md": "1825-days", - "docs/visual-basic/**/*.md": "1825-days", - "docs/framework/additional-apis/pos-for-net/**/**.md": "1825-days" + "docs/csharp/whats-new/**/**.{md,yml}": "1095-days", + "docs/csharp/advanced-topics/interop/**/**.{md,yml}": "1825-days", + "docs/csharp/advanced-topics/reflection-and-attributes/**/**.{md,yml}": "1825-days", + "docs/csharp/fundamentals/exceptions/**/**.{md,yml}": "1825-days", + "docs/csharp/language-reference/**/**.{md,yml}": "1095-days", + "docs/csharp/language-reference/compiler-messages/**/**.{md,yml}": "3650-days", + "docs/csharp/language-reference/xmldoc/**/**.{md,yml}": "3650-days", + "docs/csharp/linq/**/**.{md,yml}": "1825-days", + "docs/csharp/misc/**/**.{md,yml}": "3650-days", + "docs/csharp/roslyn-sdk/**/**.{md,yml}": "1825-days", + "docs/csharp/specification/**/**.{md,yml}": "1825-days", + "docs/framework/**/*.md": "3650-days", + "docs/iot/**/**.{md,yml}": "1825-days", + "docs/visual-basic/**/**.{md,yml}": "3650-days" }, "no-loc": { "docs/orleans/**/**.md": [ diff --git a/docs/ai/conceptual/how-genai-and-llms-work.md b/docs/ai/conceptual/how-genai-and-llms-work.md index 4ba1f0273c46c..07836925dd593 100644 --- a/docs/ai/conceptual/how-genai-and-llms-work.md +++ b/docs/ai/conceptual/how-genai-and-llms-work.md @@ -46,7 +46,7 @@ For example, given the user input *Give me three ideas for a healthy breakfast i Some generative AI applications produce image outputs from natural language inputs. Depending on the application and its models, users might be able to specify: -- The people or things to appear the image +- The people or things to appear in the image - The artistic style to create the image in - References for generating similar images diff --git a/docs/ai/conceptual/understanding-openai-functions.md b/docs/ai/conceptual/understanding-openai-functions.md index 67fe112b59ab0..4ac7d803a2378 100644 --- a/docs/ai/conceptual/understanding-openai-functions.md +++ b/docs/ai/conceptual/understanding-openai-functions.md @@ -51,7 +51,7 @@ The Kernel builds the `tools` parameter of a request based on your decorators, o ## Token counts -Function descriptions are include in the system message of your request to a model. These function descriptions count against your model's [token limit](/azure/ai-services/openai/quotas-limits) and are [included in the cost of the request](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/). +Function descriptions are included in the system message of your request to a model. These function descriptions count against your model's [token limit](/azure/ai-services/openai/quotas-limits) and are [included in the cost of the request](https://azure.microsoft.com/pricing/details/cognitive-services/openai-service/). If your request exceeds the model's token limit, try the following modifications: diff --git a/docs/ai/conceptual/vector-databases.md b/docs/ai/conceptual/vector-databases.md index e0d8d2f075b20..7a543fad8ae17 100644 --- a/docs/ai/conceptual/vector-databases.md +++ b/docs/ai/conceptual/vector-databases.md @@ -34,7 +34,7 @@ Vector databases and their search features are especially useful in [RAG pattern 1. Store and index the embeddings in a vector database or search service. 1. Convert user prompts from your application to embeddings. 1. Run a vector search across your data, comparing the user prompt embedding to the embeddings your database. -1. Use a language model such as GPT-35 or GPT-4 to assembly a user friendly completion from the vector search results. +1. Use a language model such as GPT-35 or GPT-4 to assemble a user friendly completion from the vector search results. Visit the [Implement Azure OpenAI with RAG using vector search in a .NET app](../tutorials/tutorial-ai-vector-search.md) tutorial for a hands-on example of this flow. diff --git a/docs/ai/conceptual/zero-shot-learning.md b/docs/ai/conceptual/zero-shot-learning.md index faf712c9b5f4c..774dad0b84a50 100644 --- a/docs/ai/conceptual/zero-shot-learning.md +++ b/docs/ai/conceptual/zero-shot-learning.md @@ -32,7 +32,7 @@ Intent: There are two primary use cases for zero-shot learning: -- **Work with fined-tuned LLMs** - Because it relies on the model's existing knowledge, zero-shot learning is not as resource-intensive as few-shot learning, and it works well with LLMs that have already been fined-tuned on instruction datasets. You might be able to rely solely on zero-shot learning and keep costs relatively low. +- **Work with fined-tuned LLMs** - Because it relies on the model's existing knowledge, zero-shot learning is not as resource-intensive as few-shot learning, and it works well with LLMs that have already been fine-tuned on instruction datasets. You might be able to rely solely on zero-shot learning and keep costs relatively low. - **Establish performance baselines** - Zero-shot learning can help you simulate how your app would perform for actual users. This lets you evaluate various aspects of your model's current performance, such as accuracy or precision. In this case, you typically use zero-shot learning to establish a performance baseline and then experiment with few-shot learning to improve performance. ## Few-shot learning diff --git a/docs/ai/get-started-mcp.md b/docs/ai/get-started-mcp.md index d0756a0d57904..17e711a2e1842 100644 --- a/docs/ai/get-started-mcp.md +++ b/docs/ai/get-started-mcp.md @@ -68,7 +68,7 @@ dotnet add package ModelContextProtocol --prerelease Instead of building unique connectors for each integration point, you can often leverage or reference prebuilt integrations from various providers such as GitHub and Docker: -- [Available MPC clients](https://modelcontextprotocol.io/clients) +- [Available MCP clients](https://modelcontextprotocol.io/clients) - [Available MCP servers](https://modelcontextprotocol.io/examples) ### Integration with Microsoft.Extensions.AI diff --git a/docs/ai/microsoft-extensions-ai.md b/docs/ai/microsoft-extensions-ai.md index 5e204f1963888..e3eff2c3e3bf4 100644 --- a/docs/ai/microsoft-extensions-ai.md +++ b/docs/ai/microsoft-extensions-ai.md @@ -146,7 +146,7 @@ As with other `IChatClient` implementations, the `RateLimitingChatClient` can be :::code language="csharp" source="snippets/microsoft-extensions-ai/ConsoleAI.CustomClientMiddle/Program.cs"::: -To simplify the composition of such components with others, component authors should create a `Use*` extension method for registering the component into a pipeline. For example, consider the following `UseRatingLimiting` extension method: +To simplify the composition of such components with others, component authors should create a `Use*` extension method for registering the component into a pipeline. For example, consider the following `UseRateLimiting` extension method: :::code language="csharp" source="snippets/microsoft-extensions-ai/AI.Shared/RateLimitingChatClientExtensions.cs" id="one"::: diff --git a/docs/ai/overview.md b/docs/ai/overview.md index 9f7f6dc118046..e6ec9365c7750 100644 --- a/docs/ai/overview.md +++ b/docs/ai/overview.md @@ -25,7 +25,7 @@ Millions of developers use .NET to create applications that run on the web, on m The opportunities with AI are near endless. Here are a few examples of solutions you can build using AI in your .NET applications: * Language processing: Create virtual agents or chatbots to talk with your data and generate content and images. -* Computer vision: Identify objects in an object or video. +* Computer vision: Identify objects in an image or video. * Audio generation: Use synthesized voices to interact with customers. * Classification: Label the severity of a customer-reported issue. * Task automation: Automatically perform the next step in a workflow as tasks are completed. diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index f8f40b9683618..d5718546ae9aa 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -414,6 +414,7 @@ | Speech Extension Telemetry | NuGet [1.45.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Extension.Telemetry/1.45.0) | | | | System Net Client Model | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/System.Net.ClientModel/1.0.0-beta.1) | | | | Unknown Display Name | NuGet [0.12.0](https://www.nuget.org/packages/Azure.Iot.Operations.Connector/0.12.0) | | | +| Unknown Display Name | NuGet [0.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Aot/0.1.0-preview.1) | | | | Unknown Display Name | NuGet [1.1.2-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AzureCosmosDb.Mongo/1.1.2-preview) | | | | Unknown Display Name | NuGet [1.45.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Extension.MAS/1.45.0) | | | | Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Postgres/1.0.0) | | | diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md index c5908109757a9..414dd661513a5 100644 --- a/docs/core/compatibility/10.0.md +++ b/docs/core/compatibility/10.0.md @@ -126,6 +126,7 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af | [Renamed parameter in HtmlElement.InsertAdjacentElement](windows-forms/10.0/insertadjacentelement-orientation.md) | Source incompatible | Preview 1 | | [TreeView checkbox image truncation](windows-forms/10.0/treeview-text-location.md) | Behavioral change | Preview 1 | | [StatusStrip uses System RenderMode by default](windows-forms/10.0/statusstrip-renderer.md) | Behavioral change | Preview 1 | +| [System.Drawing OutOfMemoryException changed to ExternalException](windows-forms/10.0/system-drawing-outofmemory-externalexception.md) | Behavioral change | Preview 5 | ## Windows Presentation Foundation (WPF) diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index e70cdffbc642a..f546155657b7b 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -146,6 +146,8 @@ items: href: windows-forms/10.0/treeview-text-location.md - name: StatusStrip uses System RenderMode by default href: windows-forms/10.0/statusstrip-renderer.md + - name: System.Drawing OutOfMemoryException changed to ExternalException + href: windows-forms/10.0/system-drawing-outofmemory-externalexception.md - name: WPF items: - name: Empty ColumnDefinitions and RowDefinitions are disallowed diff --git a/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md b/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md new file mode 100644 index 0000000000000..8c1049f6bee74 --- /dev/null +++ b/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md @@ -0,0 +1,74 @@ +--- +title: "Breaking change: System.Drawing OutOfMemoryException changed to ExternalException" +description: "Learn about the breaking change in .NET 10 where System.Drawing GDI+ OutOfMemory errors now throw ExternalException instead of OutOfMemoryException." +ms.date: 08/15/2025 +ai-usage: ai-assisted +dev_langs: +- CSharp +- VB +--- + +# System.Drawing OutOfMemoryException changed to ExternalException + +GDI+ error handling in System.Drawing has been updated to throw instead of for `Status.OutOfMemory` errors. + +## Version introduced + +.NET 10 Preview 5 + +## Previous behavior + +When GDI+ encountered `Status.OutOfMemory` errors (often due to invalid input rather than actual memory issues), System.Drawing APIs threw . + +## New behavior + +Starting in .NET 10, when GDI+ encounters `Status.OutOfMemory` errors, System.Drawing APIs now throw . + +## Type of breaking change + +This is a [behavioral change](../../categories.md#behavioral-change). + +## Reason for change + +GDI+ isn't particularly good at returning errors when it's unable to create internal objects. There are many cases where object creation fails due to invalid input, and higher-level code gets a null and turns it into `Status.OutOfMemory`. This is frequently a source of confusion since the error is often not related to actual memory issues. + +The change to `ExternalException` provides more accurate error reporting, as this exception type is already thrown in other System.Drawing code paths for similar GDI+ errors. + +## Recommended action + +If your code catches `OutOfMemoryException` when using System.Drawing APIs, ensure you also catch `ExternalException` to handle these GDI+ errors. + +```csharp +try +{ + // System.Drawing operations +} +catch (ExternalException ex) +{ + // Handle GDI+ errors (including former OutOfMemoryException cases) +} +catch (OutOfMemoryException ex) +{ + // Handle actual memory issues +} +``` + +```vb +Try + ' System.Drawing operations +Catch ex As ExternalException + ' Handle GDI+ errors (including former OutOfMemoryException cases) +Catch ex As OutOfMemoryException + ' Handle actual memory issues +End Try +``` + +## Affected APIs + +All System.Drawing APIs that interact with GDI+ and previously could throw `OutOfMemoryException` for `Status.OutOfMemory` errors, including but not limited to: + +- constructors and methods +- methods +- methods +- constructors and methods +- Other System.Drawing types that use GDI+ internally diff --git a/docs/core/diagnostics/faq-dumps.yml b/docs/core/diagnostics/faq-dumps.yml index 0f8c3eb9da04e..cf43a4a1b45ed 100644 --- a/docs/core/diagnostics/faq-dumps.yml +++ b/docs/core/diagnostics/faq-dumps.yml @@ -5,11 +5,11 @@ metadata: ms.topic: faq ms.date: 10/07/2022 title: FAQ for dumps -summary: This article answers commonly asked questions about collecting dumps in .NET. - -sections: - - name: Collecting dumps on macOS and Linux - questions: +summary: This article answers commonly asked questions about collecting dumps in .NET. + +sections: + - name: Collecting dumps on macOS and Linux + questions: - question: | Why is dump collection failing on Linux? answer: | @@ -19,7 +19,7 @@ sections: [createdump] The process or container does not have permissions or access: open(/proc/1234/mem) FAILED Permission denied (13) ``` - One reason that access can be denied is if a security sandbox intercepts the call using a [seccomp BPF filter](https://www.kernel.org/doc/html/v4.19/userspace-api/seccomp_filter.html). For applications running in a container using Open Container Initiative technology, the `seccomp` profile must allow for calls to `ptrace`. For example, `Docker` uses [containerd](https://github.com/moby/containerd) under the hood as a container runtime. When initializing, it specifies a default [seccomp profile](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) that allows `ptrace` only if the container host has a kernel version higher than 4.8 or if the `CAP_SYS_PTRACE` capability was specified on the container. + One reason that access can be denied is if a security sandbox intercepts the call using a [seccomp BPF filter](https://www.kernel.org/doc/html/v4.19/userspace-api/seccomp_filter.html). For applications running in a container using Open Container Initiative technology, the `seccomp` profile must allow for calls to `ptrace`. For example, `Docker` uses [containerd](https://github.com/moby/containerd) under the hood as a container runtime. When initializing, it specifies a default [seccomp profile](https://github.com/moby/moby/blob/master/vendor/github.com/moby/profiles/seccomp/default.json) that allows `ptrace` only if the container host has a kernel version higher than 4.8 or if the `CAP_SYS_PTRACE` capability was specified on the container. If the calls aren't intercepted, then the kernel does a variety of built-in access checks. The docs for [ptrace()](https://www.man7.org/linux/man-pages/man2/ptrace.2.html) include a detailed description near the end, titled "Ptrace access mode checking", that describes how these are done. Accessing the /proc filesystem also uses a variation of the same ptrace access mode checking. What follows is an abbreviated summary of the security checks performed and places where access might be denied: @@ -50,22 +50,22 @@ sections: - question: | Why can't I collect dumps when running inside a container? answer: | - For applications running under any Open Container Initiative technology, the `seccomp` profile must allow for calls to [ptrace()](https://www.man7.org/linux/man-pages/man2/ptrace.2.html). For example, `Docker` uses [containerd](https://github.com/moby/containerd) under the hood as a container runtime. When initializing the runtime, it specifies a default [seccomp profile](https://github.com/moby/moby/blob/master/profiles/seccomp/default.json) that allows `ptrace` only if the container host has a kernel version higher than 4.8 or if the `CAP_SYS_PTRACE` capability was specified. + For applications running under any Open Container Initiative technology, the `seccomp` profile must allow for calls to [ptrace()](https://www.man7.org/linux/man-pages/man2/ptrace.2.html). For example, `Docker` uses [containerd](https://github.com/moby/containerd) under the hood as a container runtime. When initializing the runtime, it specifies a default [seccomp profile](https://github.com/moby/moby/blob/master/vendor/github.com/moby/profiles/seccomp/default.json) that allows `ptrace` only if the container host has a kernel version higher than 4.8 or if the `CAP_SYS_PTRACE` capability was specified. For a fuller description of how Linux security policies impact dump collection, see the question 'Why is dump collection failing on Linux?'. - question: | Why can't I collect dumps on macOS? answer: | On macOS the use of `ptrace` requires the host of the target process to be properly entitled. For information about the minimum required entitlements, see [Default entitlements](../install/macos-notarization-issues.md#default-entitlements). - + - question: | Where can I learn more about how I can leverage dumps to help diagnose problems in my .NET application? - answer: | + answer: | Here are some additional resources: - * [Debug Linux dumps](debug-linux-dumps.md) - * [Debug a deadlock in a .NET app](debug-deadlock.md) - + * [Debug Linux dumps](debug-linux-dumps.md) + * [Debug a deadlock in a .NET app](debug-deadlock.md) + - question: | How can I solve "It was not possible to find any compatible framework version" answer: | diff --git a/docs/core/extensions/data-redaction.md b/docs/core/extensions/data-redaction.md index 392a8b6ac8695..ac59ddb68da8d 100644 --- a/docs/core/extensions/data-redaction.md +++ b/docs/core/extensions/data-redaction.md @@ -141,7 +141,7 @@ Include this section in your JSON config file: - Different key IDs mean the values are unrelated and can't be used for correlation. > [!NOTE] -> The is still experimental, so the preceding methods will cause the `EXTEXP0002` warningm indicating it's not yet stable. +> The is still experimental, so the preceding methods will cause the `EXTEXP0002` warning indicating it's not yet stable. > To use it, add `$(NoWarn);EXTEXP0002` to your project file or add `#pragma warning disable EXTEXP0002` around the calls to `SetHmacRedactor`. ### Configure a custom redactor @@ -150,8 +150,6 @@ To create a custom redactor, define a subclass that inherits from `, or using the `#!/usr/local/share/dotnet/dotnet run` directive as the first line (unix shells only). +Beginning with C# 14, programs can be [*file-based apps*](./index.md#building-and-running-c-programs), where a single file contains the program. You run *file-based apps* with the command `dotnet run `, or using the `#!/usr/local/share/dotnet/dotnet run` directive as the first line (unix shells only). ## Overview diff --git a/docs/csharp/fundamentals/program-structure/top-level-statements.md b/docs/csharp/fundamentals/program-structure/top-level-statements.md index 3396d27a69988..743c695a5301e 100644 --- a/docs/csharp/fundamentals/program-structure/top-level-statements.md +++ b/docs/csharp/fundamentals/program-structure/top-level-statements.md @@ -85,7 +85,7 @@ The compiler generates a method to serve as the program entry point for a projec | `return` | `static int Main(string[] args)` | | No `await` or `return` | `static void Main(string[] args)` | -Beginning with C# 14, programs can be [*file based programs*](./index.md#building-and-running-c-programs), where a single file contains the program. You run *file based programs* with the command `dotnet run `, or using the `#!/usr/local/share/dotnet/dotnet run` directive as the first line (unix shells only). +Beginning with C# 14, programs can be [*file-based apps*](./index.md#building-and-running-c-programs), where a single file contains the program. You run *file-based apps* with the command `dotnet run `, or using the `#!/usr/local/share/dotnet/dotnet run` directive as the first line (unix shells only). ## C# language specification diff --git a/docs/csharp/fundamentals/tutorials/file-based-programs.md b/docs/csharp/fundamentals/tutorials/file-based-programs.md new file mode 100644 index 0000000000000..d82486e034f74 --- /dev/null +++ b/docs/csharp/fundamentals/tutorials/file-based-programs.md @@ -0,0 +1,276 @@ +--- +title: Build file-based apps +description: File-based apps are command line utilities that are built and execute without a project file. The build and run commands are implicit. New syntax supports project settings in source. +ms.date: 08/14/2025 +ms.topic: tutorial +ai-usage: ai-assisted +#customer intent: As a developer, I want build utilities so that more work is automated. +--- + +# Tutorial: Build file-based C# programs + +> [!IMPORTANT] +> File-based apps are a feature of .NET 10, which is in preview. +> Some information relates to prerelease product that might be modified before release. Microsoft makes no warranties, express or implied, with respect to the information provided here. + +*File-based apps* are programs contained within a single `*.cs` file that are built and run without a corresponding project (`*.csproj`) file. File-based apps are ideal for learning C# because they have less complexity: The entire program is stored in a single file. File-based apps are also useful for building command line utilities. On Unix platforms, file-based apps can be run using `#!` (shebang) directives. + +In this tutorial, you: + +> [!div class="checklist"] +> +> * Create a file-based program. +> * Add Unix shebang (`#!`) support. +> * Read command line arguments. +> * Handle standard input. +> * Write ASCII art output. +> * Process command line arguments. +> * Use parsed command line results. +> * Test the final application. + +You build a file-based program that writes text as ASCII art. The app is contained in a single file, uses NuGet packages that implement some of the core features. + +## Prerequisites + +- The .NET 10 preview SDK. Download it from the [.NET download site](https://dotnet.microsoft.com/download/dotnet/10.0). +- Visual Studio Code. Download it from the [Visual Studio Code homepage](https://code.visualstudio.com/Download). +- (Optional) The C# DevKit extension for Visual Studio Code. Download it from the [Visual Studio Code marketplace](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit). + +## Create a file-based program + +1. Open Visual Studio Code and create a new file named `AsciiArt.cs`. Enter the following text: + + ```csharp + Console.WriteLine("Hello, world!"); + ``` + +1. Save the file. Then, open the integrated terminal in Visual Studio Code and type: + + ```dotnetcli + dotnet run AsciiArt.cs + ``` + +The first time you run this program, the `dotnet` host builds the executable from your source file, stores build artifacts in a temporary folder, then runs the created executable. You can verify this experience by typing `dotnet run AsciiArt.cs` again. This time, the `dotnet` host determines that the executable is current, and runs the executable without building it again. You don't see any build output. + +The preceding steps demonstrate that file-based apps aren't script files. They're C# source files that are built using a generated project file in a temporary folder. One of the lines of output displayed when you built the program should look something like this (on Windows): + +```dotnetcli +AsciiArt succeeded (7.3s) → AppData\Local\Temp\dotnet\runfile\AsciiArt-85c58ae0cd68371711f06f297fa0d7891d0de82afde04d8c64d5f910ddc04ddc\bin\debug\AsciiArt.dll +``` + +On unix platforms, the output folder is something similar to: + +```dotnetcli +AsciiArt succeeded (7.3s) → Library/Application Support/dotnet/runfile/AsciiArt-85c58ae0cd68371711f06f297fa0d7891d0de82afde04d8c64d5f910ddc04ddc/bin/debug/AsciiArt.dll +``` + +That output tells you where the temporary files and build outputs are placed. Throughout this tutorial, anytime you edit the source file, the `dotnet` host updates the executable before it runs. + +File-based apps are regular C# programs. The only limitation is that they must be written in one source file. You can use top-level statements or a classic `Main` method as an entry point. You can declare any types: classes, interfaces, and structs. You can structure the algorithms in a file-based program the same as you would in any C# program. You can even declare multiple namespaces to organize your code. If you find a file-based program is growing too large for a single file, you can convert it to a project based program and split the source into multiple files. File-based apps are a great prototyping tool. You can start experimenting with minimal overhead to prove concepts and build algorithms. + +## Unix shebang (`#!`) support + +> [!NOTE] +> +> Support for `#!` directives applies on unix platforms only. There isn't a similar directive for Windows to directly execute a C# program. On Windows, you must use `dotnet run` on the command line. + +On unix, you can run file-based apps directly, typing the source file name on the command line instead of `dotnet run`. You need to make two changes: + +1. Set *execute* permissions on the source file: + + ```bash + chmod +x AsciiArt.cs + ``` + +1. Add a shebang (`#!`) directive as the first line of the `AsciiArt.cs` file: + + ```csharp + #!/usr/local/share/dotnet/dotnet run + ``` + +The location of `dotnet` can be different on different unix installations. Use the command `whence dotnet` to local the `dotnet` host in your environment. + +After making these two changes, you can run the program from the command line directly: + +```bash +./AsciiArt.cs +``` + +If you prefer, you can remove the extension so you can type `./AsciiArt` instead. You can add the `#!` to your source file even if you use Windows. The Windows command line doesn't support `#!`, but the C# compiler allows that directive in file-based apps on all platforms. + +## Read command line arguments + +Now, write all arguments on the command line to the output. + +1. Replace the current contents of `AsciiArt.cs` with the following code: + + ```csharp + if (args.Length > 0) + { + string message = string.Join(' ', args); + Console.WriteLine(message); + } + ``` + +1. You can run this version by typing the following command: + + ```dotnetcli + dotnet run AsciiArt.cs -- This is the command line. + ``` + + The `--` option indicates that all following command arguments should be passed to the AsciiArt program. The arguments `This is the command line.` are passed as an array of strings, where each string is one word: `This`, `is`, `the`, `command`, and `line.`. + +This version demonstrates these new concepts: + +- The command line arguments are passed to the program using the predefined variable `args`. The `args` variable is an array of strings: `string[]`. If the length of `args` is 0, that means no arguments were provided. Otherwise, each word on the argument list is stored in the corresponding entry in the array. +- The [`string.Join`](xref:System.String.Join*) method joins multiple strings into a single string, with the specified separator. In this case, the separator is a single space. +- writes the string to the standard output console, followed by a new line. + +## Handle standard input + +That handles command line arguments correctly. Now, add the code to handle reading input from standard input (`stdin`) instead of command line arguments. + +1. Add the following `else` clause to the `if` statement you added in the preceding code: + + ```csharp + else + { + while (Console.ReadLine() is string line && line.Length > 0) + { + Console.WriteLine(line); + } + } + ``` + + The preceding code reads the console input until either a blank line or a `null` is read. (The method returns `null` if the input stream is closed by typing ctrl+C.) + +1. Test reading standard input by creating a new text file in the same folder. Name the file `input.txt` and add the following lines: + + :::code language="txt" source="./snippets/file-based-programs/input.txt"::: + + Keep the lines short so they format correctly when you add the feature to use ASCII art. + +1. Run the program again. + + With bash: + + ```bash + cat input.txt | dotnet run AsciiArt.cs + ``` + + Or, with PowerShell: + + ```powershell + Get-Content input.txt | dotnet run AsciiArt.cs + ``` + +Now your program can accept either command line arguments or standard input. + +## Write ASCII Art output + +Next, add a package that supports ASCII art, [Colorful.Console](https://www.nuget.org/packages/Colorful.Console). To add a package to a file-based program, you use the `#:package` directive. + +1. Add the following directive after the `#!` directive in your AsciiArt.cs file: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="ColorfulPackage"::: + + > [!IMPORTANT] + > The version `1.2.15` was the latest version of the `Colorful.Console` package when this tutorial was last updated. Check the package's [NuGet page](https://www.nuget.org/packages/Colorful.Console) for the latest version to ensure you use a package version with the latest security fixes. + +1. Change the lines that call `Console.WriteLine` to use the `Colorful.Console.WriteAscii` method instead: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="WriteAscii"::: + +1. Run the program, and you see ASCII art output instead of echoed text. + +## Process command options + +Next, let's add command line parsing. The current version writes each word as a different line of output. The command line arguments you added support two features: + +1. Quote multiple words that should be written on one line: + + ```dotnetcli + AsciiArt.cs "This is line one" "This is another line" "This is the last line" + ``` + +1. Add a `--delay` option to pause between each line: + + ```dotnetcli + AsciiArt.cs --delay 1000 + ``` + +Users should be able to use both arguments together. + +Most command line applications need to parse command line arguments to handle options, commands, and user input effectively. The [`System.CommandLine` library](../../../standard/commandline/index.md) provides comprehensive capabilities to handle commands, subcommands, options, and arguments, allowing you to concentrate on what your application does rather than the mechanics of parsing command line input. + +The `System.CommandLine` library offers several key benefits: + +- Automatic help text generation and validation. +- Support for POSIX and Windows command-line conventions. +- Built-in tab completion capabilities. +- Consistent parsing behavior across applications. + +1. Add the `System.CommandLine` package. Add this directive after the existing package directive: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="CommandLinePackage"::: + + > [!IMPORTANT] + > The version `2.0.0-beta6` was the latest version when this tutorial was last updated. If there's a newer version available, use the latest version to ensure you have the latest security packages. Check the package's [NuGet page](https://www.nuget.org/packages/System.CommandLine) for the latest version to ensure you use a package version with the latest security fixes. + +1. Add the necessary using statements at the top of your file (after the `#!` and `#:package` directives): + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="Usings"::: + +1. Define the delay option and messages argument. Add the following code to create the `CommandLine.Option` and `CommandLine.Argument` objects to represent the command line option and argument: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="OptionArgument"::: + + In command-line applications, options typically begin with `--` (double dash) and can accept arguments. The `--delay` option accepts an integer argument that specifies the delay in milliseconds. The `messagesArgument` defines how any remaining tokens after options are parsed as text. Each token becomes a separate string in the array, but text can be quoted to include multiple words in one token. For example, `"This is one message"` becomes a single token, while `This is four tokens` becomes four separate tokens. + + The preceding code defines the argument type for the `--delay` option, and that the arguments are an array of `string` values. This application has only one command, so you use the *root command*. + +1. Create a root command and configure it with the option and argument. Add the argument and option to the root command: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="RootCommand"::: + +1. Add the code to parse the command line arguments and handle any errors. This code validates the command line arguments and stores parsed arguments in the object: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="ParseAndValidate"::: + +The preceding code validates all command line arguments. If the validation fails, errors are written to the console, and the app exits. + +## Use parsed command line results + +Now, finish the app to use the parsed options and write the output. First, define a record to hold the parsed options. File-based apps can include type declarations, like records and classes. They must be after all top-level statements and local functions. + +1. Add a [`record`](../types/records.md) declaration to store the messages and the delay option value: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="Record"::: + +1. Add the following local function before the record declaration. This method handles both command line arguments and standard input, and returns a new record instance: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="ProcessParsedArgs"::: + +1. Create a local function to write the ASCII art with the specified delay. This function writes each message in the record with the specified delay between each message: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="WriteAscii"::: + +1. Replace the `if` clause you wrote earlier with the following code that processes the command line arguments and write the output: + + :::code language="csharp" source="./snippets/file-based-programs/AsciiArt.cs" id="InvokeCommand"::: + +You created a `record` type that provides structure to the parsed command line options and arguments. New local functions create an instance of the record, and use the record to write the ASCII art output. + +## Test the final application + +Test the application by running several different commands. If you have trouble, here's the finished sample to compare with what you built: + +:::code language="csharp" source="./snippets/file-based-programs/AsciiArt"::: + +In this tutorial, you learned to build a file-based program, where you build the program in a single C# file. These programs don't use a project file, and can use the `#!` directive on unix systems. Learners can create these programs after trying our [online tutorials](../../tour-of-csharp/tutorials/hello-world.md) and before building larger project-based apps. File-based apps are also a great platform for command line utilities. + +## Related content + +- [Top level statement](../program-structure/top-level-statements.md) +- [Preprocessor directives](../../language-reference/preprocessor-directives.md#file-based-apps) +- [What's new in C# 14](../../whats-new/csharp-14.md) diff --git a/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/AsciiArt b/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/AsciiArt new file mode 100755 index 0000000000000..78bb5e08a7b4c --- /dev/null +++ b/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/AsciiArt @@ -0,0 +1,67 @@ +#!/usr/local/share/dotnet/dotnet run + +#:package Colorful.Console@1.2.15 +#:package System.CommandLine@2.0.0-beta6 + +using System.CommandLine; +using System.CommandLine.Parsing; + +Option delayOption = new("--delay") +{ + Description = "Delay between lines, specified as milliseconds.", + DefaultValueFactory = parseResult => 100 +}; + +Argument messagesArgument = new("Messages") +{ + Description = "Text to render." +}; + +RootCommand rootCommand = new("Ascii Art file-based program sample"); + +rootCommand.Options.Add(delayOption); +rootCommand.Arguments.Add(messagesArgument); + +ParseResult result = rootCommand.Parse(args); +foreach (ParseError parseError in result.Errors) +{ + Console.Error.WriteLine(parseError.Message); +} +if (result.Errors.Count > 0) +{ + return 1; +} + +var parsedArgs = await ProcessParseResults(result); + +await WriteAsciiArt(parsedArgs); +return 0; + +async Task ProcessParseResults(ParseResult result) +{ + int delay = result.GetValue(delayOption); + List messages = [.. result.GetValue(messagesArgument) ?? Array.Empty()]; + + if (messages.Count == 0) + { + while (Console.ReadLine() is string line && line.Length > 0) + { + // + Colorful.Console.WriteAscii(line); + // + await Task.Delay(delay); + } + } + return new([.. messages], delay); +} + +async Task WriteAsciiArt(AsciiMessageOptions options) +{ + foreach (string message in options.Messages) + { + Colorful.Console.WriteAscii(message); + await Task.Delay(options.Delay); + } +} + +public record AsciiMessageOptions(string[] Messages, int Delay); diff --git a/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/AsciiArt.cs b/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/AsciiArt.cs new file mode 100755 index 0000000000000..24ba5db893246 --- /dev/null +++ b/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/AsciiArt.cs @@ -0,0 +1,87 @@ +#!/usr/local/share/dotnet/dotnet run + +// +#:package Colorful.Console@1.2.15 +// +// +#:package System.CommandLine@2.0.0-beta6 +// + +// +using System.CommandLine; +using System.CommandLine.Parsing; +// + +// +Option delayOption = new("--delay") +{ + Description = "Delay between lines, specified as milliseconds.", + DefaultValueFactory = parseResult => 100 +}; + +Argument messagesArgument = new("Messages") +{ + Description = "Text to render." +}; +// + +// +RootCommand rootCommand = new("Ascii Art file-based program sample"); + +rootCommand.Options.Add(delayOption); +rootCommand.Arguments.Add(messagesArgument); +// + +// +ParseResult result = rootCommand.Parse(args); +foreach (ParseError parseError in result.Errors) +{ + Console.Error.WriteLine(parseError.Message); +} +if (result.Errors.Count > 0) +{ + return 1; +} +// + +// +var parsedArgs = await ProcessParseResults(result); + +await WriteAsciiArt(parsedArgs); +return 0; +// + +// +async Task ProcessParseResults(ParseResult result) +{ + int delay = result.GetValue(delayOption); + List messages = [.. result.GetValue(messagesArgument) ?? Array.Empty()]; + + if (messages.Count == 0) + { + while (Console.ReadLine() is string line && line.Length > 0) + { + // + Colorful.Console.WriteAscii(line); + // + await Task.Delay(delay); + } + } + return new([.. messages], delay); +} +// + +// +async Task WriteAsciiArt(AsciiMessageOptions options) +{ + foreach (string message in options.Messages) + { + Colorful.Console.WriteAscii(message); + await Task.Delay(options.Delay); + } +} +// + +// +public record AsciiMessageOptions(string[] Messages, int Delay); +// diff --git a/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/input.txt b/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/input.txt new file mode 100644 index 0000000000000..43df299799bc3 --- /dev/null +++ b/docs/csharp/fundamentals/tutorials/snippets/file-based-programs/input.txt @@ -0,0 +1,10 @@ +Hello from ... +dotnet! + +You can create +file-based apps +in .NET 10 and +C# 14 + +Have fun writing +useful utilities \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/abstract.md b/docs/csharp/language-reference/keywords/abstract.md index 22adc9ad21660..3dee5bb11c851 100644 --- a/docs/csharp/language-reference/keywords/abstract.md +++ b/docs/csharp/language-reference/keywords/abstract.md @@ -12,8 +12,23 @@ ms.assetid: b0797770-c1f3-4b4d-9441-b9122602a6bb # abstract (C# Reference) The `abstract` modifier indicates that the thing being modified has a missing or incomplete implementation. The abstract modifier can be used with classes, methods, properties, indexers, and events. Use the `abstract` modifier in a class declaration to indicate that a class is intended only to be a base class of other classes, not instantiated on its own. Members marked as abstract must be implemented by non-abstract classes that derive from the abstract class. + +Abstract classes can contain both abstract members (which have no implementation and must be overridden in derived classes) and fully implemented members (such as regular methods, properties, and constructors). This allows abstract classes to provide common functionality while still requiring derived classes to implement specific abstract members. -## Example 1 +## Example 1 - Abstract class with mixed members + +The following example demonstrates an abstract class that contains both implemented methods and abstract members: + +:::code language="csharp" source="snippets/shared/Abstract.cs" id="snippet1"::: + +In this example, the `Vehicle` abstract class provides: + +- **Implemented members**: `GetInfo()` method, `StartEngine()` method, and constructor - these provide common functionality for all vehicles. +- **Abstract members**: `Move()` method and `MaxSpeed` property - these must be implemented by each specific vehicle type. + +This design allows the abstract class to provide shared functionality while ensuring that derived classes implement vehicle-specific behavior. + +## Example 2 In this example, the class `Square` must provide an implementation of `GetArea` because it derives from `Shape`: @@ -25,6 +40,8 @@ The `abstract` modifier indicates that the thing being modified has a missing or - An abstract class may contain abstract methods and accessors. +- An abstract class can also contain implemented methods, properties, fields, and other members that provide functionality to derived classes. + - It is not possible to modify an abstract class with the [sealed](./sealed.md) modifier because the two modifiers have opposite meanings. The `sealed` modifier prevents a class from being inherited and the `abstract` modifier requires a class to be inherited. - A non-abstract class derived from an abstract class must include actual implementations of all inherited abstract methods and accessors. @@ -61,7 +78,7 @@ The `abstract` modifier indicates that the thing being modified has a missing or [!code-csharp[csrefKeywordsModifiers#2](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsModifiers/CS/csrefKeywordsModifiers.cs#2)] -## Example 2 +## Example 3 In this example, the class `DerivedClass` is derived from an abstract class `BaseClass`. The abstract class contains an abstract method, `AbstractMethod`, and two abstract properties, `X` and `Y`. @@ -77,7 +94,7 @@ You will get an error saying that the compiler cannot create an instance of the Nonetheless, it is possible to use an abstract class constructor, as in the example below -## Example 3 +## Example 4 [!code-csharp[csrefKeywordsModifiers#27](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsModifiers/CS/csrefKeywordsModifiers.cs#27)] diff --git a/docs/csharp/language-reference/keywords/snippets/shared/Abstract.cs b/docs/csharp/language-reference/keywords/snippets/shared/Abstract.cs new file mode 100644 index 0000000000000..2daedb7fb2440 --- /dev/null +++ b/docs/csharp/language-reference/keywords/snippets/shared/Abstract.cs @@ -0,0 +1,90 @@ +// +namespace LanguageKeywords; + +public abstract class Vehicle +{ + protected string _brand; + + // Constructor - implemented method in abstract class + public Vehicle(string brand) => _brand = brand; + + // Implemented method - provides functionality that all vehicles share + public string GetInfo() => $"This is a {_brand} vehicle."; + + // Another implemented method + public virtual void StartEngine() => Console.WriteLine($"{_brand} engine is starting..."); + + // Abstract method - must be implemented by derived classes + public abstract void Move(); + + // Abstract property - must be implemented by derived classes + public abstract int MaxSpeed { get; } +} + +public class Car : Vehicle +{ + public Car(string brand) : base(brand) { } + + // Implementation of abstract method + public override void Move() => Console.WriteLine($"{_brand} car is driving on the road."); + + // Implementation of abstract property + public override int MaxSpeed => 200; +} + +public class Boat : Vehicle +{ + public Boat(string brand) : base(brand) { } + + // Implementation of abstract method + public override void Move() => Console.WriteLine($"{_brand} boat is sailing on the water."); + + // Implementation of abstract property + public override int MaxSpeed => 50; +} + +public class AbstractExample +{ + public static void Examples() + { + // Cannot instantiate abstract class: Vehicle v = new Vehicle("Generic"); // Error! + + Car car = new Car("Toyota"); + Boat boat = new Boat("Yamaha"); + + // Using implemented methods from abstract class + Console.WriteLine(car.GetInfo()); + car.StartEngine(); + + // Using abstract methods implemented in derived class + car.Move(); + Console.WriteLine($"Max speed: {car.MaxSpeed} km/h"); + + Console.WriteLine(); + + Console.WriteLine(boat.GetInfo()); + boat.StartEngine(); + boat.Move(); + Console.WriteLine($"Max speed: {boat.MaxSpeed} km/h"); + } +} + +class Program +{ + static void Main() + { + AbstractExample.Examples(); + } +} +/* Output: +This is a Toyota vehicle. +Toyota engine is starting... +Toyota car is driving on the road. +Max speed: 200 km/h + +This is a Yamaha vehicle. +Yamaha engine is starting... +Yamaha boat is sailing on the water. +Max speed: 50 km/h +*/ +// \ No newline at end of file diff --git a/docs/csharp/language-reference/preprocessor-directives.md b/docs/csharp/language-reference/preprocessor-directives.md index 1c4057ff78a31..ec1d766d85caa 100644 --- a/docs/csharp/language-reference/preprocessor-directives.md +++ b/docs/csharp/language-reference/preprocessor-directives.md @@ -47,9 +47,9 @@ helpviewer_keywords: Although the compiler doesn't have a separate preprocessor, the directives described in this section are processed as if there were one. You use them to help in conditional compilation. Unlike C and C++ directives, you can't use these directives to create macros. A preprocessor directive must be the only instruction on a line. -## File based programs +## File-based apps -*File based programs* are programs that are compiled and run using `dotnet run Program.cs` (or any `*.cs` file). The C# compiler ignores these preprocessor directives, but the build system parses them to produce the output. These directives generate warnings when encountered in a project-based compilation. +*File-based apps* are programs that are compiled and run using `dotnet run Program.cs` (or any `*.cs` file). The C# compiler ignores these preprocessor directives, but the build system parses them to produce the output. These directives generate warnings when encountered in a project-based compilation. The C# compiler ignores any preprocessor directive that starts with `#:` or `#!`. @@ -62,7 +62,7 @@ Console.WriteLine("Hello"); The preceding code snippet informs a Unix shell to execute the file using `/usr/local/share/dotnet/dotnet run`. (Your installation directory for the `dotnet` CLI can be different on different Unix or macOS distributions). The `#!` line must be the first line in the file, and the following tokens are the program to run. You need to enable the *execute* (`x`) permission on the C# file for that feature. -The `#:` directives that are used in file based programs include: +The `#:` directives that are used in file-based apps include: - `#:sdk`: diff --git a/docs/csharp/linq/standard-query-operators/grouping-data.md b/docs/csharp/linq/standard-query-operators/grouping-data.md index de7cdbd054d39..c903fd32dd8fb 100644 --- a/docs/csharp/linq/standard-query-operators/grouping-data.md +++ b/docs/csharp/linq/standard-query-operators/grouping-data.md @@ -15,7 +15,7 @@ The standard query operator methods that group data elements are listed in the f |Method Name|Description|C# Query Expression Syntax|More Information| |-----------------|-----------------|---------------------------------|----------------------| -|GroupBy|Groups elements that share a common attribute. An object represents each group.|`group … by`

-or-

`group … by … into …`|

| +|GroupBy|Groups elements that share a common attribute. An object represents each group.|`group … by …`

-or-

`group … by … into …`|

| |ToLookup|Inserts elements into a (a one-to-many dictionary) based on a key selector function.|Not applicable.|| The following code example uses the `group by` clause to group integers in a list according to whether they're even or odd. diff --git a/docs/csharp/linq/standard-query-operators/index.md b/docs/csharp/linq/standard-query-operators/index.md index f37870b4c9f46..c4220d9eb4ce4 100644 --- a/docs/csharp/linq/standard-query-operators/index.md +++ b/docs/csharp/linq/standard-query-operators/index.md @@ -59,7 +59,7 @@ The following table lists the standard query operators that have equivalent quer | Method | C# query expression syntax | |------------|---------------------------------| ||Use an explicitly typed range variable:

`from int i in numbers`

(For more information, see [from clause](../../language-reference/keywords/from-clause.md).)| -||`group … by`

-or-

`group … by … into …`

(For more information, see [group clause](../../language-reference/keywords/group-clause.md).)| +||`group … by …`

-or-

`group … by … into …`

(For more information, see [group clause](../../language-reference/keywords/group-clause.md).)| ||`join … in … on … equals … into …`

(For more information, see [join clause](../../language-reference/keywords/join-clause.md).)| ||`join … in … on … equals …`

(For more information, see [join clause](../../language-reference/keywords/join-clause.md).)| ||`orderby`

(For more information, see [orderby clause](../../language-reference/keywords/orderby-clause.md).)| diff --git a/docs/csharp/toc.yml b/docs/csharp/toc.yml index 7a89acd91ef69..a97f1a3196ae7 100644 --- a/docs/csharp/toc.yml +++ b/docs/csharp/toc.yml @@ -108,6 +108,8 @@ items: href: fundamentals/coding-style/coding-conventions.md - name: Tutorials items: + - name: Build file-based apps + href: fundamentals/tutorials/file-based-programs.md - name: "How to display command-line arguments" href: fundamentals/tutorials/how-to-display-command-line-arguments.md # TODO: Command line processing tutorials diff --git a/docs/csharp/tour-of-csharp/overview.md b/docs/csharp/tour-of-csharp/overview.md index 76d4fbaa509e0..582c430ef2d1f 100644 --- a/docs/csharp/tour-of-csharp/overview.md +++ b/docs/csharp/tour-of-csharp/overview.md @@ -34,11 +34,11 @@ The `Program` class declared by the "Hello, World" program has a single member, > [!TIP] > The examples in this article give you a first look at C# code. Some samples might show elements of C# that you're not familiar with. When you're ready to learn C#, start with our [beginner tutorials](./tutorials/index.md), or dive into the links in each section. If you're experienced in [Java](./tips-for-java-developers.md), [JavaScript](./tips-for-javascript-developers.md), [TypeScript](./tips-for-javascript-developers.md), or [Python](./tips-for-python-developers.md), read our tips to help you find the information you need to quickly learn C#. -## File based programs +## File-based apps C# is a *compiled* language. In most C# programs, you use the [`dotnet build`](../../core/tools/dotnet-build.md) command to compile a group of source files into a binary package. Then, you use the [`dotnet run`](../../core/tools/dotnet-run.md) command to run the program. (You can simplify this process because `dotnet run` compiles the program before running it if necessary.) These tools support a rich language of configuration options and command-line switches. The `dotnet` command line interface (CLI), which is included in the .NET SDK, provides many [tools](../../core/tools/index.md) to generate and modify C# files. -Beginning with C# 14 and .NET 10, you can create *file based programs*, which simplifies building and running C# programs. You use the `dotnet run` command to run a program contained in a single `*.cs` file. For example, if the following code is stored in a file named `hello-world.cs`, you can run it by typing `dotnet run hello-world.cs`: +Beginning with C# 14 and .NET 10, you can create *file-based apps*, which simplifies building and running C# programs. You use the `dotnet run` command to run a program contained in a single `*.cs` file. For example, if the following code is stored in a file named `hello-world.cs`, you can run it by typing `dotnet run hello-world.cs`: :::code language="csharp" source="./snippets/file-based-programs/hello-world.cs"::: @@ -48,7 +48,7 @@ The first line of the program contains the `#!` sequence (shebang) for unix shel ./hello-world.cs ``` -The source for these programs must be a single file, but otherwise all C# syntax is valid. You can use file based programs for small command-line utilities, prototypes, or other experiments. +The source for these programs must be a single file, but otherwise all C# syntax is valid. You can use file-based apps for small command-line utilities, prototypes, or other experiments. ## Familiar C# features diff --git a/docs/csharp/tour-of-csharp/strategy.md b/docs/csharp/tour-of-csharp/strategy.md index d27c864c67492..70113c2d4ba49 100644 --- a/docs/csharp/tour-of-csharp/strategy.md +++ b/docs/csharp/tour-of-csharp/strategy.md @@ -3,7 +3,6 @@ title: Language strategy description: We keep evolving C# to meet the changing needs of developers and remain a state-of-the-art programming language. We will innovate eagerly and broadly in collaboration with C# developers ms.date: 03/17/2025 ms.update-cycle: 1825-days -ms.custom: UpdateFrequency5 --- # Annotated C# strategy diff --git a/docs/csharp/whats-new/csharp-11.md b/docs/csharp/whats-new/csharp-11.md index f56d00e40cf24..0fdf357bf2bf7 100644 --- a/docs/csharp/whats-new/csharp-11.md +++ b/docs/csharp/whats-new/csharp-11.md @@ -2,7 +2,6 @@ title: What's new in C# 11 description: Get an overview of the new features added in C# 11. ms.date: 03/15/2024 -ms.custom: UpdateFrequency1 ms.topic: whats-new --- # What's new in C# 11 diff --git a/docs/csharp/whats-new/csharp-version-history.md b/docs/csharp/whats-new/csharp-version-history.md index 1fff2b995f297..6d99a5b0c8341 100644 --- a/docs/csharp/whats-new/csharp-version-history.md +++ b/docs/csharp/whats-new/csharp-version-history.md @@ -3,7 +3,7 @@ title: The history of C# description: Learn how the C# language has changed over its many releases. Learn when different features were introduced in the language. author: erikdietrich ms.date: 12/20/2024 -ms.custom: "updateeachrelease, UpdateFrequency1" +ms.custom: "updateeachrelease" --- # The history of C\# diff --git a/docs/framework/additional-apis/pos-for-net/adding-plug-and-play-support.md b/docs/framework/additional-apis/pos-for-net/adding-plug-and-play-support.md index 99e7e2b04f04d..5a9f66f50bf43 100644 --- a/docs/framework/additional-apis/pos-for-net/adding-plug-and-play-support.md +++ b/docs/framework/additional-apis/pos-for-net/adding-plug-and-play-support.md @@ -3,7 +3,7 @@ title: Adding Plug and Play Support description: Adding Plug and Play Support (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Adding Plug and Play Support (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/asynchronous-output-sample.md b/docs/framework/additional-apis/pos-for-net/asynchronous-output-sample.md index 3851871ba8446..88bca18abb15b 100644 --- a/docs/framework/additional-apis/pos-for-net/asynchronous-output-sample.md +++ b/docs/framework/additional-apis/pos-for-net/asynchronous-output-sample.md @@ -3,7 +3,7 @@ title: Asynchronous Output Sample description: Asynchronous Output Sample (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Asynchronous Output Sample (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/attributes-for-identifying-service-objects-and-assigning-hardware.md b/docs/framework/additional-apis/pos-for-net/attributes-for-identifying-service-objects-and-assigning-hardware.md index 9d0626a4b2ed5..cb5eeb67f368c 100644 --- a/docs/framework/additional-apis/pos-for-net/attributes-for-identifying-service-objects-and-assigning-hardware.md +++ b/docs/framework/additional-apis/pos-for-net/attributes-for-identifying-service-objects-and-assigning-hardware.md @@ -3,7 +3,7 @@ title: Attributes for Identifying Service Objects and Assigning Hardware description: Attributes for Identifying Service Objects and Assigning Hardware (POS for .NET v1.14 SDK Documentation) ms.date: 02/27/2008 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Attributes for Identifying Service Objects and Assigning Hardware (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/base-class-directio-method.md b/docs/framework/additional-apis/pos-for-net/base-class-directio-method.md index 2ba273c64ae0d..4343755060506 100644 --- a/docs/framework/additional-apis/pos-for-net/base-class-directio-method.md +++ b/docs/framework/additional-apis/pos-for-net/base-class-directio-method.md @@ -3,7 +3,7 @@ title: Base Class DirectIO Method description: Base Class DirectIO Method (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Base Class DirectIO Method (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/capability-properties.md b/docs/framework/additional-apis/pos-for-net/capability-properties.md index 14aa2b1278111..f500f9f9648be 100644 --- a/docs/framework/additional-apis/pos-for-net/capability-properties.md +++ b/docs/framework/additional-apis/pos-for-net/capability-properties.md @@ -3,7 +3,7 @@ title: Capability Properties description: Capability Properties (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Capability Properties (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/cashdrawer-implementation.md b/docs/framework/additional-apis/pos-for-net/cashdrawer-implementation.md index b880714c2acbf..c14fa791c4c13 100644 --- a/docs/framework/additional-apis/pos-for-net/cashdrawer-implementation.md +++ b/docs/framework/additional-apis/pos-for-net/cashdrawer-implementation.md @@ -3,7 +3,7 @@ title: CashDrawer Implementation description: CashDrawer Implementation (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # CashDrawer Implementation (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/command-line-help-for-posdm.md b/docs/framework/additional-apis/pos-for-net/command-line-help-for-posdm.md index 59b5ad1a06367..6c02e5fe15c13 100644 --- a/docs/framework/additional-apis/pos-for-net/command-line-help-for-posdm.md +++ b/docs/framework/additional-apis/pos-for-net/command-line-help-for-posdm.md @@ -3,7 +3,7 @@ title: Command-Line Help for POSDM description: Command-Line Help for POSDM (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Command-Line Help for POSDM (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/configure-a-device-for-remote-management.md b/docs/framework/additional-apis/pos-for-net/configure-a-device-for-remote-management.md index 427de2836dfd2..33b23f002f506 100644 --- a/docs/framework/additional-apis/pos-for-net/configure-a-device-for-remote-management.md +++ b/docs/framework/additional-apis/pos-for-net/configure-a-device-for-remote-management.md @@ -3,7 +3,7 @@ title: Configure a device for remote management description: Configure a device for remote management (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Configure a device for remote management (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/copyright-information-for-pos-for-net-v1141.md b/docs/framework/additional-apis/pos-for-net/copyright-information-for-pos-for-net-v1141.md index 18dc9c7bc826d..fc479a2b0593e 100644 --- a/docs/framework/additional-apis/pos-for-net/copyright-information-for-pos-for-net-v1141.md +++ b/docs/framework/additional-apis/pos-for-net/copyright-information-for-pos-for-net-v1141.md @@ -3,7 +3,7 @@ title: Copyright Information for POS for .NET v1.14.1 (Microsoft Point of Servic description: Copyright Information for POS for .NET v1.14.1 (Microsoft Point of Service for .NET) (POS for .NET v1.14 SDK Documentation) ms.date: 04/21/2017 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Copyright Information for POS for .NET v1.14.1 (Microsoft Point of Service for .NET) diff --git a/docs/framework/additional-apis/pos-for-net/creating-a-basic-service-object-code-template.md b/docs/framework/additional-apis/pos-for-net/creating-a-basic-service-object-code-template.md index a8a2765c7fa48..1a581a475fcb1 100644 --- a/docs/framework/additional-apis/pos-for-net/creating-a-basic-service-object-code-template.md +++ b/docs/framework/additional-apis/pos-for-net/creating-a-basic-service-object-code-template.md @@ -3,7 +3,7 @@ title: Creating a Basic Service Object Code Template description: Creating a Basic Service Object Code Template (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Creating a Basic Service Object Code Template (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/creating-a-service-object-sample.md b/docs/framework/additional-apis/pos-for-net/creating-a-service-object-sample.md index 126d890cb8a44..cf214d97a7c69 100644 --- a/docs/framework/additional-apis/pos-for-net/creating-a-service-object-sample.md +++ b/docs/framework/additional-apis/pos-for-net/creating-a-service-object-sample.md @@ -3,7 +3,7 @@ title: Creating a Service Object Sample description: Creating a Service Object Sample (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Creating a Service Object Sample (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/creating-a-working-multithreaded-service-object.md b/docs/framework/additional-apis/pos-for-net/creating-a-working-multithreaded-service-object.md index 90a0b2331e6d5..7a5869d0ec579 100644 --- a/docs/framework/additional-apis/pos-for-net/creating-a-working-multithreaded-service-object.md +++ b/docs/framework/additional-apis/pos-for-net/creating-a-working-multithreaded-service-object.md @@ -3,7 +3,7 @@ title: Creating a Working, Multithreaded Service Object description: Creating a Working, Multithreaded Service Object (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Creating a Working, Multithreaded Service Object (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/data-decoding.md b/docs/framework/additional-apis/pos-for-net/data-decoding.md index c1ddc9eb78fe1..a799f3d9f49d2 100644 --- a/docs/framework/additional-apis/pos-for-net/data-decoding.md +++ b/docs/framework/additional-apis/pos-for-net/data-decoding.md @@ -3,7 +3,7 @@ title: Data Decoding description: Data Decoding (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Data Decoding (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/developing-a-custom-service-object.md b/docs/framework/additional-apis/pos-for-net/developing-a-custom-service-object.md index 244f6d07da69c..062b7bf8a783e 100644 --- a/docs/framework/additional-apis/pos-for-net/developing-a-custom-service-object.md +++ b/docs/framework/additional-apis/pos-for-net/developing-a-custom-service-object.md @@ -3,7 +3,7 @@ title: Developing a Custom Service Object description: Developing a Custom Service Object (POS for .NET v1.14 SDK Documentation) ms.date: 02/27/2008 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Developing a Custom Service Object (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/developing-a-pos-application.md b/docs/framework/additional-apis/pos-for-net/developing-a-pos-application.md index e73253b66608f..3b85d0534e727 100644 --- a/docs/framework/additional-apis/pos-for-net/developing-a-pos-application.md +++ b/docs/framework/additional-apis/pos-for-net/developing-a-pos-application.md @@ -3,7 +3,7 @@ title: Developing a POS Application description: Developing a POS Application (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Developing a POS Application (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/developing-service-objects-using-base-classes.md b/docs/framework/additional-apis/pos-for-net/developing-service-objects-using-base-classes.md index 3defd20ec473a..aa1e4324fa136 100644 --- a/docs/framework/additional-apis/pos-for-net/developing-service-objects-using-base-classes.md +++ b/docs/framework/additional-apis/pos-for-net/developing-service-objects-using-base-classes.md @@ -3,7 +3,7 @@ title: Developing Service Objects Using Base Classes description: Developing Service Objects Using Base Classes (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Developing Service Objects Using Base Classes (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/device-input-and-events.md b/docs/framework/additional-apis/pos-for-net/device-input-and-events.md index 72c5da5c0632d..57f1355b6085a 100644 --- a/docs/framework/additional-apis/pos-for-net/device-input-and-events.md +++ b/docs/framework/additional-apis/pos-for-net/device-input-and-events.md @@ -3,7 +3,7 @@ title: Device Input and Events description: Device Input and Events (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Device Input and Events (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/device-output-models.md b/docs/framework/additional-apis/pos-for-net/device-output-models.md index 046baadad16c6..3c9ce3f40c000 100644 --- a/docs/framework/additional-apis/pos-for-net/device-output-models.md +++ b/docs/framework/additional-apis/pos-for-net/device-output-models.md @@ -3,7 +3,7 @@ title: Device Output Models description: Device Output Models (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Device Output Models (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/deviceinfo-class.md b/docs/framework/additional-apis/pos-for-net/deviceinfo-class.md index 39025f4f641af..50b3616236eac 100644 --- a/docs/framework/additional-apis/pos-for-net/deviceinfo-class.md +++ b/docs/framework/additional-apis/pos-for-net/deviceinfo-class.md @@ -3,7 +3,7 @@ title: DeviceInfo Class description: DeviceInfo Class (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # DeviceInfo Class (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/deviceproperty-class.md b/docs/framework/additional-apis/pos-for-net/deviceproperty-class.md index 906960573dc02..02d9e6a3704f7 100644 --- a/docs/framework/additional-apis/pos-for-net/deviceproperty-class.md +++ b/docs/framework/additional-apis/pos-for-net/deviceproperty-class.md @@ -3,7 +3,7 @@ title: DeviceProperty Class description: DeviceProperty Class (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # DeviceProperty Class (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/event-handler-sample.md b/docs/framework/additional-apis/pos-for-net/event-handler-sample.md index 64a8a257d3755..657abb92b8853 100644 --- a/docs/framework/additional-apis/pos-for-net/event-handler-sample.md +++ b/docs/framework/additional-apis/pos-for-net/event-handler-sample.md @@ -3,7 +3,7 @@ title: Event Handler Sample description: Event Handler Sample (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Event Handler Sample (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/event-management.md b/docs/framework/additional-apis/pos-for-net/event-management.md index 2601385cdb339..9753b2c5c4124 100644 --- a/docs/framework/additional-apis/pos-for-net/event-management.md +++ b/docs/framework/additional-apis/pos-for-net/event-management.md @@ -3,7 +3,7 @@ title: Event Management description: Event Management (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Event Management (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/exception-classes.md b/docs/framework/additional-apis/pos-for-net/exception-classes.md index 5af2df7fe5556..1206c2bfeea0d 100644 --- a/docs/framework/additional-apis/pos-for-net/exception-classes.md +++ b/docs/framework/additional-apis/pos-for-net/exception-classes.md @@ -3,7 +3,7 @@ title: Exception Classes description: Exception Classes (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Exception Classes (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/general-posdm-switches.md b/docs/framework/additional-apis/pos-for-net/general-posdm-switches.md index 68f1c31bb2a48..c9cb007bdbeee 100644 --- a/docs/framework/additional-apis/pos-for-net/general-posdm-switches.md +++ b/docs/framework/additional-apis/pos-for-net/general-posdm-switches.md @@ -3,7 +3,7 @@ title: General POSDM Switches description: General POSDM Switches (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # General POSDM Switches (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/hydra-devices.md b/docs/framework/additional-apis/pos-for-net/hydra-devices.md index 595fe199ff17a..f152a39ddc0ab 100644 --- a/docs/framework/additional-apis/pos-for-net/hydra-devices.md +++ b/docs/framework/additional-apis/pos-for-net/hydra-devices.md @@ -3,7 +3,7 @@ title: Hydra Devices description: Hydra Devices (POS for .NET v1.14 SDK Documentation) ms.date: 02/27/2008 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Hydra Devices (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/index.md b/docs/framework/additional-apis/pos-for-net/index.md index a3e4269968e3d..70d705d2a7d73 100644 --- a/docs/framework/additional-apis/pos-for-net/index.md +++ b/docs/framework/additional-apis/pos-for-net/index.md @@ -3,7 +3,7 @@ title: POS for .NET v1.14.1 SDK Documentation description: POS for .NET v1.14.1 SDK Documentation (POS for .NET v1.14 SDK Documentation) ms.date: 04/21/2017 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET v1.14.1 SDK Documentation diff --git a/docs/framework/additional-apis/pos-for-net/integration-of-legacy-service-objects.md b/docs/framework/additional-apis/pos-for-net/integration-of-legacy-service-objects.md index 39c099a4e0644..926e7b603bd98 100644 --- a/docs/framework/additional-apis/pos-for-net/integration-of-legacy-service-objects.md +++ b/docs/framework/additional-apis/pos-for-net/integration-of-legacy-service-objects.md @@ -3,7 +3,7 @@ title: Integration of Legacy Service Objects description: Integration of Legacy Service Objects (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Integration of Legacy Service Objects (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/introducing-service-object-reader-threads.md b/docs/framework/additional-apis/pos-for-net/introducing-service-object-reader-threads.md index 5ac825135990a..c2105f84eba6c 100644 --- a/docs/framework/additional-apis/pos-for-net/introducing-service-object-reader-threads.md +++ b/docs/framework/additional-apis/pos-for-net/introducing-service-object-reader-threads.md @@ -3,7 +3,7 @@ title: Introducing Service Object Reader Threads description: Introducing Service Object Reader Threads (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Introducing Service Object Reader Threads (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/linedisplay-capabilities.md b/docs/framework/additional-apis/pos-for-net/linedisplay-capabilities.md index 75d54b66a2f91..d9d4696538f4b 100644 --- a/docs/framework/additional-apis/pos-for-net/linedisplay-capabilities.md +++ b/docs/framework/additional-apis/pos-for-net/linedisplay-capabilities.md @@ -3,7 +3,7 @@ title: LineDisplay Capabilities description: LineDisplay Capabilities (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # LineDisplay Capabilities (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/linedisplay-implementation.md b/docs/framework/additional-apis/pos-for-net/linedisplay-implementation.md index d3925868a7747..9967ec3c4e457 100644 --- a/docs/framework/additional-apis/pos-for-net/linedisplay-implementation.md +++ b/docs/framework/additional-apis/pos-for-net/linedisplay-implementation.md @@ -3,7 +3,7 @@ title: LineDisplay Implementation description: LineDisplay Implementation (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # LineDisplay Implementation (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/linedisplay-sample.md b/docs/framework/additional-apis/pos-for-net/linedisplay-sample.md index 4b0187998703b..60f2a21a3f3fb 100644 --- a/docs/framework/additional-apis/pos-for-net/linedisplay-sample.md +++ b/docs/framework/additional-apis/pos-for-net/linedisplay-sample.md @@ -3,7 +3,7 @@ title: LineDisplay Sample description: LineDisplay Sample (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # LineDisplay Sample (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/log-files.md b/docs/framework/additional-apis/pos-for-net/log-files.md index dbb8144fc9106..085a0c239858b 100644 --- a/docs/framework/additional-apis/pos-for-net/log-files.md +++ b/docs/framework/additional-apis/pos-for-net/log-files.md @@ -3,7 +3,7 @@ title: Log Files description: Log Files (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Log Files (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/logicaldevice-class.md b/docs/framework/additional-apis/pos-for-net/logicaldevice-class.md index ee031ce7b834b..b5e77ca42f3cb 100644 --- a/docs/framework/additional-apis/pos-for-net/logicaldevice-class.md +++ b/docs/framework/additional-apis/pos-for-net/logicaldevice-class.md @@ -3,7 +3,7 @@ title: LogicalDevice Class description: LogicalDevice Class (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # LogicalDevice Class (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/manually-manage-your-pos-for-net-devices.md b/docs/framework/additional-apis/pos-for-net/manually-manage-your-pos-for-net-devices.md index 106a5ba3d16e3..2df02d16202e8 100644 --- a/docs/framework/additional-apis/pos-for-net/manually-manage-your-pos-for-net-devices.md +++ b/docs/framework/additional-apis/pos-for-net/manually-manage-your-pos-for-net-devices.md @@ -3,7 +3,7 @@ title: Manually manage your POS for .NET devices (POS for .NET v1.14 SDK Documen description: Manually manage your POS for .NET devices (POS for .NET v1.14 SDK Documentation) (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Manually manage your POS for .NET devices (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pinpad-capabilities.md b/docs/framework/additional-apis/pos-for-net/pinpad-capabilities.md index f7cbf3ed3d4d5..903ab8225b2b9 100644 --- a/docs/framework/additional-apis/pos-for-net/pinpad-capabilities.md +++ b/docs/framework/additional-apis/pos-for-net/pinpad-capabilities.md @@ -3,7 +3,7 @@ title: PinPad Capabilities description: PinPad Capabilities (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # PinPad Capabilities (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pinpad-implementation.md b/docs/framework/additional-apis/pos-for-net/pinpad-implementation.md index 2e1feef88402a..4770148fe45d7 100644 --- a/docs/framework/additional-apis/pos-for-net/pinpad-implementation.md +++ b/docs/framework/additional-apis/pos-for-net/pinpad-implementation.md @@ -3,7 +3,7 @@ title: PinPad Implementation description: PinPad Implementation (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # PinPad Implementation (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pinpad-sample.md b/docs/framework/additional-apis/pos-for-net/pinpad-sample.md index ad1284d60de46..f8bb5e9b65c26 100644 --- a/docs/framework/additional-apis/pos-for-net/pinpad-sample.md +++ b/docs/framework/additional-apis/pos-for-net/pinpad-sample.md @@ -3,7 +3,7 @@ title: PinPad Sample description: PinPad Sample (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # PinPad Sample (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/plug-and-play-support.md b/docs/framework/additional-apis/pos-for-net/plug-and-play-support.md index 33fc13eb11184..36b9377533ed6 100644 --- a/docs/framework/additional-apis/pos-for-net/plug-and-play-support.md +++ b/docs/framework/additional-apis/pos-for-net/plug-and-play-support.md @@ -3,7 +3,7 @@ title: Plug and Play Support description: Plug and Play Support (POS for .NET v1.14 SDK Documentation) ms.date: 02/27/2008 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Plug and Play Support (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/plug-and-play-xml-configuration.md b/docs/framework/additional-apis/pos-for-net/plug-and-play-xml-configuration.md index 77a33e643655f..c8fd55568f6a9 100644 --- a/docs/framework/additional-apis/pos-for-net/plug-and-play-xml-configuration.md +++ b/docs/framework/additional-apis/pos-for-net/plug-and-play-xml-configuration.md @@ -3,7 +3,7 @@ title: Plug and Play XML Configuration description: Plug and Play XML Configuration (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Plug and Play XML Configuration (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/point-of-service-performance-counters.md b/docs/framework/additional-apis/pos-for-net/point-of-service-performance-counters.md index 0fd045b2380a8..df25871e1e785 100644 --- a/docs/framework/additional-apis/pos-for-net/point-of-service-performance-counters.md +++ b/docs/framework/additional-apis/pos-for-net/point-of-service-performance-counters.md @@ -3,7 +3,7 @@ title: Point of Service Performance Counters description: Point of Service Performance Counters (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Point of Service Performance Counters (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-device-manager-output.md b/docs/framework/additional-apis/pos-for-net/pos-device-manager-output.md index 4f4d03b370aae..1babc53772d4a 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-device-manager-output.md +++ b/docs/framework/additional-apis/pos-for-net/pos-device-manager-output.md @@ -3,7 +3,7 @@ title: POS Device Manager Output description: POS Device Manager Output (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS Device Manager Output (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-device-manager.md b/docs/framework/additional-apis/pos-for-net/pos-device-manager.md index 2c7a8dc90f937..cfa6e86ee756f 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-device-manager.md +++ b/docs/framework/additional-apis/pos-for-net/pos-device-manager.md @@ -3,7 +3,7 @@ title: POS Device Manager description: POS Device Manager (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS Device Manager (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-exception-handling.md b/docs/framework/additional-apis/pos-for-net/pos-exception-handling.md index db7ee08e14367..cd7401f8c0244 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-exception-handling.md +++ b/docs/framework/additional-apis/pos-for-net/pos-exception-handling.md @@ -3,7 +3,7 @@ title: POS Exception Handling description: POS Exception Handling (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS Exception Handling (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-api-support.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-api-support.md index e2b3425d55941..c66854dd98cc2 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-api-support.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-api-support.md @@ -3,7 +3,7 @@ title: POS for .NET API Support (POS for .NET v1.14 SDK Documentation) description: POS for .NET API Support (POS for .NET v1.14 SDK Documentation) (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET API Support (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-application-compatibility-with-32-bit-opos-service-objects.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-application-compatibility-with-32-bit-opos-service-objects.md index 54631c02460b6..2f1ab55dbe27f 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-application-compatibility-with-32-bit-opos-service-objects.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-application-compatibility-with-32-bit-opos-service-objects.md @@ -3,7 +3,7 @@ title: POS for .NET Application Compatibility with 32-bit OPOS Service Objects ( description: POS for .NET Application Compatibility with 32-bit OPOS Service Objects (POS for .NET v1.14 SDK Documentation) (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET Application Compatibility with 32-bit OPOS Service Objects (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-architecture.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-architecture.md index 3715e42f686f1..457178038202b 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-architecture.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-architecture.md @@ -3,7 +3,7 @@ title: POS for .NET Architecture (POS for .NET v1.14 SDK Documentation) description: POS for .NET Architecture (POS for .NET v1.14 SDK Documentation) (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET Architecture (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-class-tree.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-class-tree.md index caf7189871379..237ddb59350c2 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-class-tree.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-class-tree.md @@ -3,7 +3,7 @@ title: POS for .NET Class Tree description: POS for .NET Class Tree (POS for .NET v1.14 SDK Documentation) ms.date: 02/27/2008 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET Class Tree (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-device-basic-classes.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-device-basic-classes.md index cefc71b6ae070..5c808d317ec74 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-device-basic-classes.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-device-basic-classes.md @@ -3,7 +3,7 @@ title: POS for .NET Device Basic Classes description: POS for .NET Device Basic Classes (POS for .NET v1.14 SDK Documentation) ms.date: 02/27/2008 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET Device Basic Classes (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-faq.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-faq.md index 5e55389774121..8be5ccc28f4c8 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-faq.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-faq.md @@ -3,7 +3,7 @@ title: POS for .NET FAQ (POS for .NET v1.14 SDK Documentation) description: POS for .NET FAQ (POS for .NET v1.14 SDK Documentation) ms.date: 04/01/2017 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET FAQ (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-integration-with-plug-and-play.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-integration-with-plug-and-play.md index 90b9d8d18e63b..0be0f0afad097 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-integration-with-plug-and-play.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-integration-with-plug-and-play.md @@ -3,7 +3,7 @@ title: POS for .NET Integration with Plug and Play description: POS for .NET Integration with Plug and Play (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET Integration with Plug and Play (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-registry-settings.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-registry-settings.md index 4adcd6d96aead..92c9aa3b5c2fc 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-registry-settings.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-registry-settings.md @@ -3,7 +3,7 @@ title: POS for .NET Registry Settings description: POS for .NET Registry Settings (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET Registry Settings (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-service-object-architecture.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-service-object-architecture.md index 2904c1f21cd45..c6865ff435ea8 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-service-object-architecture.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-service-object-architecture.md @@ -3,7 +3,7 @@ title: POS for .NET Service Object Architecture description: POS for .NET Service Object Architecture (POS for .NET v1.14 SDK Documentation) ms.date: 02/27/2008 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET Service Object Architecture (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/pos-for-net-v1141-features.md b/docs/framework/additional-apis/pos-for-net/pos-for-net-v1141-features.md index 3514eb40a7a4a..d66aa0312fbf9 100644 --- a/docs/framework/additional-apis/pos-for-net/pos-for-net-v1141-features.md +++ b/docs/framework/additional-apis/pos-for-net/pos-for-net-v1141-features.md @@ -3,7 +3,7 @@ title: POS for .NET v1.14.1 Features description: POS for .NET v1.14.1 Features (POS for .NET v1.14 SDK Documentation) ms.date: 04/21/2017 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POS for .NET v1.14.1 Features (Microsoft Point of Service for .NET) diff --git a/docs/framework/additional-apis/pos-for-net/poscommon-class.md b/docs/framework/additional-apis/pos-for-net/poscommon-class.md index c6d305e7034a3..128280303ee37 100644 --- a/docs/framework/additional-apis/pos-for-net/poscommon-class.md +++ b/docs/framework/additional-apis/pos-for-net/poscommon-class.md @@ -3,7 +3,7 @@ title: PosCommon Class (POS for .NET v1.14 SDK Documentation) description: PosCommon Class (POS for .NET v1.14 SDK Documentation) (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # PosCommon Class (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/poscommon-information-for-service-object-developers.md b/docs/framework/additional-apis/pos-for-net/poscommon-information-for-service-object-developers.md index 71e179a73161b..f7ae52937b135 100644 --- a/docs/framework/additional-apis/pos-for-net/poscommon-information-for-service-object-developers.md +++ b/docs/framework/additional-apis/pos-for-net/poscommon-information-for-service-object-developers.md @@ -3,7 +3,7 @@ title: PosCommon Information for Service Object Developers description: PosCommon Information for Service Object Developers (POS for .NET v1.14 SDK Documentation) ms.date: 02/27/2008 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # PosCommon Information for Service Object Developers (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/posdevice-class.md b/docs/framework/additional-apis/pos-for-net/posdevice-class.md index 8850717120202..273fe25c2c050 100644 --- a/docs/framework/additional-apis/pos-for-net/posdevice-class.md +++ b/docs/framework/additional-apis/pos-for-net/posdevice-class.md @@ -3,7 +3,7 @@ title: PosDevice Class description: PosDevice Class (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # PosDevice Class (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/posdm-command-arguments.md b/docs/framework/additional-apis/pos-for-net/posdm-command-arguments.md index 358c7c00732dd..966240cf47fa1 100644 --- a/docs/framework/additional-apis/pos-for-net/posdm-command-arguments.md +++ b/docs/framework/additional-apis/pos-for-net/posdm-command-arguments.md @@ -3,7 +3,7 @@ title: POSDM Command Arguments description: POSDM Command Arguments (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POSDM Command Arguments (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/posdm-commands.md b/docs/framework/additional-apis/pos-for-net/posdm-commands.md index e727144e6e8c3..fd68bd28d31f1 100644 --- a/docs/framework/additional-apis/pos-for-net/posdm-commands.md +++ b/docs/framework/additional-apis/pos-for-net/posdm-commands.md @@ -3,7 +3,7 @@ title: POSDM Commands description: POSDM Commands (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # POSDM Commands (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/posexplorer-class.md b/docs/framework/additional-apis/pos-for-net/posexplorer-class.md index eddee1045c6c7..2b0e6fde93496 100644 --- a/docs/framework/additional-apis/pos-for-net/posexplorer-class.md +++ b/docs/framework/additional-apis/pos-for-net/posexplorer-class.md @@ -3,7 +3,7 @@ title: PosExplorer Class (POS for .NET v1.14 SDK Documentation) description: PosExplorer Class (POS for .NET v1.14 SDK Documentation) (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # PosExplorer Class (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/poskeyboard-implementation.md b/docs/framework/additional-apis/pos-for-net/poskeyboard-implementation.md index 414298f2a36b5..8e9ba7c647135 100644 --- a/docs/framework/additional-apis/pos-for-net/poskeyboard-implementation.md +++ b/docs/framework/additional-apis/pos-for-net/poskeyboard-implementation.md @@ -3,7 +3,7 @@ title: PosKeyboard Implementation description: PosKeyboard Implementation (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # PosKeyboard Implementation (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/scanner-events.md b/docs/framework/additional-apis/pos-for-net/scanner-events.md index 9102d15e26d7e..e6aca624f8f1d 100644 --- a/docs/framework/additional-apis/pos-for-net/scanner-events.md +++ b/docs/framework/additional-apis/pos-for-net/scanner-events.md @@ -3,7 +3,7 @@ title: Scanner Events description: Scanner Events (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Scanner Events (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/scanner-implementation.md b/docs/framework/additional-apis/pos-for-net/scanner-implementation.md index 5fb13dd51297f..6d8f4930f0d52 100644 --- a/docs/framework/additional-apis/pos-for-net/scanner-implementation.md +++ b/docs/framework/additional-apis/pos-for-net/scanner-implementation.md @@ -3,7 +3,7 @@ title: Scanner Implementation description: Scanner Implementation (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Scanner Implementation (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/service-object-overview.md b/docs/framework/additional-apis/pos-for-net/service-object-overview.md index 63f2b39338e8f..8bb0ea0832af3 100644 --- a/docs/framework/additional-apis/pos-for-net/service-object-overview.md +++ b/docs/framework/additional-apis/pos-for-net/service-object-overview.md @@ -3,7 +3,7 @@ title: Service Object Overview description: Service Object Overview (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Service Object Overview (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/service-object-samples-getting-started.md b/docs/framework/additional-apis/pos-for-net/service-object-samples-getting-started.md index c6e065d6aa843..3bc499e002a51 100644 --- a/docs/framework/additional-apis/pos-for-net/service-object-samples-getting-started.md +++ b/docs/framework/additional-apis/pos-for-net/service-object-samples-getting-started.md @@ -3,7 +3,7 @@ title: "Service Object Samples: Getting Started" description: "Service Object Samples: Getting Started (POS for .NET v1.14 SDK Documentation)" ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Service Object Samples: Getting Started (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/serviceobject-class.md b/docs/framework/additional-apis/pos-for-net/serviceobject-class.md index 89fcc71bc1f80..3a0fdc52d6c94 100644 --- a/docs/framework/additional-apis/pos-for-net/serviceobject-class.md +++ b/docs/framework/additional-apis/pos-for-net/serviceobject-class.md @@ -3,7 +3,7 @@ title: ServiceObject Class description: ServiceObject Class (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # ServiceObject Class (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/setting-up-a-service-object-project.md b/docs/framework/additional-apis/pos-for-net/setting-up-a-service-object-project.md index 54b88cc7de8ed..1d5c98d947e71 100644 --- a/docs/framework/additional-apis/pos-for-net/setting-up-a-service-object-project.md +++ b/docs/framework/additional-apis/pos-for-net/setting-up-a-service-object-project.md @@ -3,7 +3,7 @@ title: Setting up a Service Object Project description: Setting up a Service Object Project (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Setting up a Service Object Project (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/statistics-sample.md b/docs/framework/additional-apis/pos-for-net/statistics-sample.md index fd392590ce990..95d35e97be9cb 100644 --- a/docs/framework/additional-apis/pos-for-net/statistics-sample.md +++ b/docs/framework/additional-apis/pos-for-net/statistics-sample.md @@ -3,7 +3,7 @@ title: Statistics Sample description: Statistics Sample (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Statistics Sample (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/supported-device-classes.md b/docs/framework/additional-apis/pos-for-net/supported-device-classes.md index e07f39b94dce5..0a5e1fb2b48a3 100644 --- a/docs/framework/additional-apis/pos-for-net/supported-device-classes.md +++ b/docs/framework/additional-apis/pos-for-net/supported-device-classes.md @@ -3,7 +3,7 @@ title: Supported Device Classes (POS for .NET v1.14 SDK Documentation) description: Supported Device Classes (POS for .NET v1.14 SDK Documentation) (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Supported Device Classes (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/system-configuration.md b/docs/framework/additional-apis/pos-for-net/system-configuration.md index 66b4bc26df789..87f7690ceec98 100644 --- a/docs/framework/additional-apis/pos-for-net/system-configuration.md +++ b/docs/framework/additional-apis/pos-for-net/system-configuration.md @@ -3,7 +3,7 @@ title: System Configuration description: System Configuration (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # System Configuration (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/typical-pos-application-architecture.md b/docs/framework/additional-apis/pos-for-net/typical-pos-application-architecture.md index a0671a0a46b5f..dc1499b81ecb4 100644 --- a/docs/framework/additional-apis/pos-for-net/typical-pos-application-architecture.md +++ b/docs/framework/additional-apis/pos-for-net/typical-pos-application-architecture.md @@ -3,7 +3,7 @@ title: Typical POS Application Architecture description: Typical POS Application Architecture (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Typical POS Application Architecture (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/using-impl-methods-for-synchronous-or-asynchronous-output.md b/docs/framework/additional-apis/pos-for-net/using-impl-methods-for-synchronous-or-asynchronous-output.md index 7e68f0522ac73..9caae2d95a48c 100644 --- a/docs/framework/additional-apis/pos-for-net/using-impl-methods-for-synchronous-or-asynchronous-output.md +++ b/docs/framework/additional-apis/pos-for-net/using-impl-methods-for-synchronous-or-asynchronous-output.md @@ -3,7 +3,7 @@ title: Using Impl Methods for Synchronous or Asynchronous Output description: Using Impl Methods for Synchronous or Asynchronous Output (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Using Impl Methods for Synchronous or Asynchronous Output (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/using-the-pos-device-manager-command-line-tool.md b/docs/framework/additional-apis/pos-for-net/using-the-pos-device-manager-command-line-tool.md index 99ae3aae10a66..49d9fdc659d1d 100644 --- a/docs/framework/additional-apis/pos-for-net/using-the-pos-device-manager-command-line-tool.md +++ b/docs/framework/additional-apis/pos-for-net/using-the-pos-device-manager-command-line-tool.md @@ -3,7 +3,7 @@ title: Using the POS Device Manager Command-Line Tool description: Using the POS Device Manager Command-Line Tool (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Using the POS Device Manager Command-Line Tool (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/using-the-wmi-api-to-manage-devices.md b/docs/framework/additional-apis/pos-for-net/using-the-wmi-api-to-manage-devices.md index d53811cc6a692..2423a1976409e 100644 --- a/docs/framework/additional-apis/pos-for-net/using-the-wmi-api-to-manage-devices.md +++ b/docs/framework/additional-apis/pos-for-net/using-the-wmi-api-to-manage-devices.md @@ -3,7 +3,7 @@ title: Using the WMI API to Manage Devices description: Using the WMI API to Manage Devices (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Using the WMI API to Manage Devices (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/using-vbscript-to-manage-devices.md b/docs/framework/additional-apis/pos-for-net/using-vbscript-to-manage-devices.md index 8f907d9fefe11..df6f50cbdc52e 100644 --- a/docs/framework/additional-apis/pos-for-net/using-vbscript-to-manage-devices.md +++ b/docs/framework/additional-apis/pos-for-net/using-vbscript-to-manage-devices.md @@ -3,7 +3,7 @@ title: Using VBScript to Manage Devices description: Using VBScript to Manage Devices (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Using VBScript to Manage Devices (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/using-visual-studio-net-management-extensions-and-the-pos-for-net-wmi-management-classes.md b/docs/framework/additional-apis/pos-for-net/using-visual-studio-net-management-extensions-and-the-pos-for-net-wmi-management-classes.md index 682082970bfc8..6efe9ed2889a6 100644 --- a/docs/framework/additional-apis/pos-for-net/using-visual-studio-net-management-extensions-and-the-pos-for-net-wmi-management-classes.md +++ b/docs/framework/additional-apis/pos-for-net/using-visual-studio-net-management-extensions-and-the-pos-for-net-wmi-management-classes.md @@ -3,7 +3,7 @@ title: Using Visual Studio .NET Management Extensions and the POS for .NET WMI M description: Using Visual Studio .NET Management Extensions and the POS for .NET WMI Management Classes (POS for .NET v1.14 SDK Documentation) ms.date: 03/03/2014 ms.topic: how-to -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" --- # Using Visual Studio .NET Management Extensions and the POS for .NET WMI Management Classes (POS for .NET v1.14 SDK Documentation) diff --git a/docs/framework/additional-apis/pos-for-net/whats-new-in-pos-for-net-v114-and-v1141.md b/docs/framework/additional-apis/pos-for-net/whats-new-in-pos-for-net-v114-and-v1141.md index 53f144b39ae8f..deb2c76b51706 100644 --- a/docs/framework/additional-apis/pos-for-net/whats-new-in-pos-for-net-v114-and-v1141.md +++ b/docs/framework/additional-apis/pos-for-net/whats-new-in-pos-for-net-v114-and-v1141.md @@ -2,7 +2,7 @@ title: What's New in POS for .NET v1.14 and v1.14.1 description: What's New in POS for .NET v1.14 and v1.14.1 (POS for .NET v1.14 SDK Documentation) ms.date: 04/12/2017 -ms.custom: "pos-restored-from-archive,UpdateFrequency5" +ms.custom: "pos-restored-from-archive" ms.topic: whats-new --- diff --git a/docs/framework/unmanaged-api/debugging/clrdata-address-range-structure.md b/docs/framework/unmanaged-api/debugging/clrdata-address-range-structure.md index c1f626b4a1b37..9db027dee3e1d 100644 --- a/docs/framework/unmanaged-api/debugging/clrdata-address-range-structure.md +++ b/docs/framework/unmanaged-api/debugging/clrdata-address-range-structure.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # CLRDATA_ADDRESS_RANGE Structure @@ -46,10 +45,10 @@ This structure lives inside the runtime and is not exposed through any headers o ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/clrdata-il-address-map-structure.md b/docs/framework/unmanaged-api/debugging/clrdata-il-address-map-structure.md index 7ad51e19796a2..9362c7e5ce4c2 100644 --- a/docs/framework/unmanaged-api/debugging/clrdata-il-address-map-structure.md +++ b/docs/framework/unmanaged-api/debugging/clrdata-il-address-map-structure.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # CLRDATA_IL_ADDRESS_MAP Structure @@ -50,10 +49,10 @@ This structure lives inside the runtime and is not exposed through any headers o ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None **Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/clrdatasourcetype-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatasourcetype-enumeration.md index f7e4631687f19..52b8e30e82e01 100644 --- a/docs/framework/unmanaged-api/debugging/clrdatasourcetype-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/clrdatasourcetype-enumeration.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # CLRDataSourceType Enumeration @@ -44,10 +43,10 @@ This enumeration lives inside the runtime and is not exposed through any headers ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/dacpgetmoduleaddress-request-method.md b/docs/framework/unmanaged-api/debugging/dacpgetmoduleaddress-request-method.md index f1e5749ea5210..67f6a066b895e 100644 --- a/docs/framework/unmanaged-api/debugging/dacpgetmoduleaddress-request-method.md +++ b/docs/framework/unmanaged-api/debugging/dacpgetmoduleaddress-request-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # DacpGetModuleAddress::Request Method diff --git a/docs/framework/unmanaged-api/debugging/dacpgetmoduleaddress-structure.md b/docs/framework/unmanaged-api/debugging/dacpgetmoduleaddress-structure.md index 913a4280786e0..ae74c8b20a0c2 100644 --- a/docs/framework/unmanaged-api/debugging/dacpgetmoduleaddress-structure.md +++ b/docs/framework/unmanaged-api/debugging/dacpgetmoduleaddress-structure.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # DacpGetModuleAddress Structure @@ -50,10 +49,10 @@ This structure lives inside the runtime and is not exposed through any headers o ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/isosdacinterface-getmethoddescdata-method.md b/docs/framework/unmanaged-api/debugging/isosdacinterface-getmethoddescdata-method.md index 49dfbc6b93ccb..a68396ec3ecf6 100644 --- a/docs/framework/unmanaged-api/debugging/isosdacinterface-getmethoddescdata-method.md +++ b/docs/framework/unmanaged-api/debugging/isosdacinterface-getmethoddescdata-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # ISOSDacInterface::GetMethodDescData Method @@ -62,10 +61,10 @@ The provided method is part of the `ISOSDacInterface` interface and corresponds ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/isosdacinterface-interface.md b/docs/framework/unmanaged-api/debugging/isosdacinterface-interface.md index 0d61bfd678a10..47599962dee90 100644 --- a/docs/framework/unmanaged-api/debugging/isosdacinterface-interface.md +++ b/docs/framework/unmanaged-api/debugging/isosdacinterface-interface.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # ISOSDacInterface Interface @@ -37,9 +36,9 @@ This interface lives inside the runtime and is not exposed through any headers o ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None **.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-endenuminstances-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-endenuminstances-method.md index c36c1625ba497..52f911944e00d 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-endenuminstances-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-endenuminstances-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataMethodDefinition::EndEnumInstances Method @@ -42,10 +41,10 @@ The provided method is part of the `IXCLRDataMethodDefinition` interface and cor ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-enuminstance-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-enuminstance-method.md index bd2b79dd6d2c3..cfe961c23d05b 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-enuminstance-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-enuminstance-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataMethodDefinition::EnumInstance Method @@ -46,10 +45,10 @@ The provided method is part of the `IXCLRDataMethodDefinition` interface and cor ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-interface.md index 349ea08b7f4a9..417a284dd3690 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-interface.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-interface.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataMethodDefinition Interface diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-startenuminstances-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-startenuminstances-method.md index e39f278420ea3..9323150d8597a 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-startenuminstances-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-startenuminstances-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataMethodDefinition::StartEnumInstances Method @@ -46,10 +45,10 @@ The provided method is part of the `IXCLRDataMethodDefinition` interface and cor ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getiladdressmap-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getiladdressmap-method.md index f8b1917b70c2e..d5f03babfe007 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getiladdressmap-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getiladdressmap-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataMethodInstance::GetILAddressMap Method @@ -50,10 +49,10 @@ The provided method is part of the `IXCLRDataMethodInstance` interface and corre ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-interface.md index 06f5efd6e5d9e..a27c8ce58c12a 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-interface.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-interface.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataMethodInstance Interface diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getmethoddefinitionbytoken-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getmethoddefinitionbytoken-method.md index 3809203e6d56c..49290ad57db1b 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getmethoddefinitionbytoken-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getmethoddefinitionbytoken-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataModule::GetMethodDefinitionByToken Method @@ -46,10 +45,10 @@ The provided method is part of the `IXCLRDataModule` interface and corresponds t ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getversionid-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getversionid-method.md index 4e2944ad6d0e5..5b531a91c4695 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getversionid-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getversionid-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataModule::GetVersionId Method @@ -42,10 +41,10 @@ The provided method is part of the `IXCLRDataModule` interface and corresponds t ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-interface.md index bebe9ac6c78d0..d42cb2bc816e6 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-interface.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-interface.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataModule Interface @@ -47,10 +46,10 @@ This interface lives inside the runtime and is not exposed through any headers o ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-request-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-request-method.md index 61886c4ce59be..fc556a4d4b49b 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-request-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-request-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataModule::Request Method diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md index 56d11fa0e4f07..63fa5b74ce382 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethodinstancesbyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethodinstancesbyaddress-method.md index a9a20e16158f9..aa33dd9031a6f 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethodinstancesbyaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethodinstancesbyaddress-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess::EndEnumMethodInstancesByAddress Method @@ -42,10 +41,10 @@ The provided method is part of the `IXCLRDataProcess` interface and corresponds ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummodules-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummodules-method.md index f12601106cbf4..b64d92328207e 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummodules-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummodules-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess::EndEnumModules Method diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummethodinstancebyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummethodinstancebyaddress-method.md index ab3f8b8641f38..8b98e20c99d57 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummethodinstancebyaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummethodinstancebyaddress-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess::EnumMethodInstanceByAddress Method diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummodule-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummodule-method.md index 456d94922d6ef..ba7c157179323 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummodule-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummodule-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess::EnumModule Method @@ -46,10 +45,10 @@ The provided method is part of the `IXCLRDataProcess` interface and corresponds ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getappdomainbyuniqueid-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getappdomainbyuniqueid-method.md index f58b95f793b06..f77a7805331a1 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getappdomainbyuniqueid-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getappdomainbyuniqueid-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess::GetAppDomainByUniqueId Method diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-interface.md index f1f20364aa922..1cc83d5732ba4 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-interface.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-interface.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess Interface @@ -60,9 +59,9 @@ This interface lives inside the runtime and is not exposed through any headers o ## Requirements **Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummethodinstancesbyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummethodinstancesbyaddress-method.md index bdeacdf5d3b30..37ce088e16bbb 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummethodinstancesbyaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummethodinstancesbyaddress-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess::StartEnumMethodInstancesByAddress Method @@ -50,10 +49,10 @@ The provided method is part of the `IXCLRDataProcess` interface and corresponds ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummodules-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummodules-method.md index 834513fce6791..79ef1e091f9c6 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummodules-method.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummodules-method.md @@ -15,7 +15,6 @@ helpviewer.keywords: topic_type: - "apiref" author: "cshung" -ms.author: "andrewau" --- # IXCLRDataProcess::StartEnumModules Method @@ -42,10 +41,10 @@ The provided method is part of the `IXCLRDataProcess` interface and corresponds ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/wcf/feature-details/hosting-workflow-services.md b/docs/framework/wcf/feature-details/hosting-workflow-services.md index acb9a10a196f2..672ef48be10ef 100644 --- a/docs/framework/wcf/feature-details/hosting-workflow-services.md +++ b/docs/framework/wcf/feature-details/hosting-workflow-services.md @@ -52,7 +52,7 @@ A workflow service must be hosted for it to respond to incoming messages. Workfl ## Deployment - The Web Deployment tool has been created to make the job of deployment easier. The tool allows you to migrate applications between IIS 6.0 and IIS 7.0, synchronize server farms, and package, archive, and deploy Web applications. For more information, see [Web Deploy Tool](https://iis-umbraco.azurewebsites.net/downloads/microsoft/web-deploy). + The Web Deployment tool was created to make the job of deployment easier. The tool allows you to migrate applications between IIS 6.0 and IIS 7.0, synchronize server farms, and package, archive, and deploy Web applications. For more information, see [Web Deploy Tool](https://www.iis.net/downloads/microsoft/web-deploy). ## See also diff --git a/docs/framework/wcf/feature-details/routing-service.md b/docs/framework/wcf/feature-details/routing-service.md index cfb03c949b454..99cc3f4dcce0e 100644 --- a/docs/framework/wcf/feature-details/routing-service.md +++ b/docs/framework/wcf/feature-details/routing-service.md @@ -13,11 +13,8 @@ The is implemented as a Window - Content-based routing - Service aggregation - - Service versioning - - Priority routing - - Dynamic configuration - Protocol bridging @@ -33,24 +30,21 @@ While it is possible to create an intermediary service that accomplishes one or The Routing Service provides a generic, dynamically configurable, pluggable SOAP intermediary that is compatible with the WCF Service and Channel models and allows you to perform content-based routing of SOAP-based messages. > [!NOTE] -> The Routing Service does not currently support routing of WCF REST services. To route REST calls, consider using or [Application Request Routing](https://iis-umbraco.azurewebsites.net/downloads/microsoft/application-request-routing). +> The Routing Service does not currently support routing of WCF REST services. To route REST calls, consider using or [Application Request Routing](https://www.iis.net/downloads/microsoft/application-request-routing). ## Content-Based Routing Content-based routing is the ability to route a message based on one or more values contained within the message. The Routing Service inspects each message and routes it to the destination endpoint based on the message contents and the routing logic you create. Content-based routing provides the basis for service aggregation, service versioning, and priority routing. -To implement content-based routing, the Routing Service relies on implementations that are used to match specific values within the messages to be routed. If a **MessageFilter** matches a message, the message is routed to the destination endpoint associated with the **MessageFilter**. Message filters are grouped together into filter tables () to construct complex routing logic. For example, a filter table might contain five mutually exclusive message filters that cause messages to be routed to only one of the five destination endpoints. +To implement content-based routing, the Routing Service relies on implementations that are used to match specific values within the messages to be routed. If a **MessageFilter** matches a message, the message is routed to the destination endpoint associated with the **MessageFilter**. Message filters are grouped together into filter tables () to construct complex routing logic. For example, a filter table might contain five mutually exclusive message filters that cause messages to be routed to only one of the five destination endpoints. The Routing Service allows you to configure the logic that is used to perform content-based routing, as well as dynamically update the routing logic at run time. Through the grouping of message filters into filter tables, routing logic can be constructed that allows you to handle multiple routing scenarios such as: - Service aggregation - - Service versioning - - Priority routing - - Dynamic configuration For more information about message filters and filter tables, see [Routing Introduction](routing-introduction.md) and [Message Filters](message-filters.md). @@ -87,9 +81,9 @@ For more information about SOAP processing, see [Routing Introduction](routing-i ## Error Handling -In a system composed of distributed services that rely on network communications, it is important to ensure that communications within your system are resistant to transient network failures. The Routing Service implements error handling that allows you to handle many communication failure scenarios that might otherwise result in a service outage. +In a system composed of distributed services that rely on network communications, it is important to ensure that communications within your system are resistant to transient network failures. The Routing Service implements error handling that allows you to handle many communication failure scenarios that might otherwise result in a service outage. -If the Routing Service encounters a while attempting to send a message, error handling will take place. These exceptions typically indicate that a problem was encountered while attempting to communicate with the defined client endpoint, such as an , , or . The error-handling code will also catch and attempt to retry sending when a **TimeoutException** occurs, which is another common exception that is not derived from **CommunicationException**. +If the Routing Service encounters a while attempting to send a message, error handling will take place. These exceptions typically indicate that a problem was encountered while attempting to communicate with the defined client endpoint, such as an , , or . The error-handling code will also catch and attempt to retry sending when a **TimeoutException** occurs, which is another common exception that is not derived from **CommunicationException**. For more information about error handling, see [Routing Introduction](routing-introduction.md). @@ -101,15 +95,12 @@ For more information about backup endpoints, see [Routing Introduction](routing- ## Streaming -The routing service can successfully stream messages if you set the binding to support streaming. However, there are some conditions under which messages may need to buffered: - -- Multicast (buffer to create additional message copies) - -- Failover (buffer in case the message needs to be sent to a backup) +The routing service can successfully stream messages if you set the binding to support streaming. However, there are some conditions under which messages may need to buffered: -- System.ServiceModel.Routing.RoutingConfiguration.RouteOnHeadersOnly is false (buffer to present the MessageFilterTable with a MessageBuffer so that filters can inspect the body) - -- Dynamic configuration +- Multicast (buffer to create additional message copies). +- Failover (buffer in case the message needs to be sent to a backup). +- System.ServiceModel.Routing.RoutingConfiguration.RouteOnHeadersOnly is false (buffer to present the MessageFilterTable with a MessageBuffer so that filters can inspect the body). +- Dynamic configuration. ## See also diff --git a/docs/iot/deployment.md b/docs/iot/deployment.md index 36fadd2d04158..5908dd64caee5 100644 --- a/docs/iot/deployment.md +++ b/docs/iot/deployment.md @@ -4,7 +4,6 @@ description: Learn how to deploy .NET apps to ARM single-board computers (SBCs) author: camsoper ms.date: 07/31/2024 ms.topic: how-to -ms.service: dotnet --- # Deploy .NET apps on ARM single-board computers diff --git a/docs/visual-basic/reference/command-line-compiler/langversion.md b/docs/visual-basic/reference/command-line-compiler/langversion.md index f69865b1cd3c8..693a3b8ecd465 100644 --- a/docs/visual-basic/reference/command-line-compiler/langversion.md +++ b/docs/visual-basic/reference/command-line-compiler/langversion.md @@ -3,23 +3,23 @@ description: "Learn more about: -langversion (Visual Basic)" title: "-langversion" ms.date: 03/10/2018 ms.update-cycle: 1825-days -helpviewer_keywords: +helpviewer_keywords: - "/langversion compiler option [Visual Basic]" - "langversion compiler option [Visual Basic]" - "-langversion compiler option [Visual Basic]" -ms.custom: "updateeachrelease, UpdateFrequency1" +ms.custom: "updateeachrelease" ms.assetid: 59b7b0c8-2dde-4e9b-94e7-0237f7e0bafb --- # -langversion (Visual Basic) -Causes the compiler to accept only syntax that is included in the specified Visual Basic language version. - -## Syntax - -```console --langversion:version -``` - +Causes the compiler to accept only syntax that is included in the specified Visual Basic language version. + +## Syntax + +```console +-langversion:version +``` + ## Arguments `version`\ diff --git a/docs/visual-basic/whats-new/breaking-changes.md b/docs/visual-basic/whats-new/breaking-changes.md index 2da49751fb8d3..27916aa07a3d4 100644 --- a/docs/visual-basic/whats-new/breaking-changes.md +++ b/docs/visual-basic/whats-new/breaking-changes.md @@ -2,8 +2,8 @@ title: Breaking changes in the Visual Basic compiler description: Find any breaking changes in the Visual Basic compiler that you are using. ms.topic: troubleshooting -ms.custom: "updateeachrelease, UpdateFrequency1" ms.update-cycle: 365-days +ms.custom: "updateeachrelease" ms.date: 08/18/2020 --- diff --git a/docs/visual-basic/whats-new/index.md b/docs/visual-basic/whats-new/index.md index 5d89b8f3a7f2a..449f9ef463ab1 100644 --- a/docs/visual-basic/whats-new/index.md +++ b/docs/visual-basic/whats-new/index.md @@ -9,7 +9,6 @@ helpviewer_keywords: - "new features, Visual Basic" - "what's new [Visual Basic]" - "Visual Basic, what's new" -ms.custom: UpdateFrequency1 ms.topic: whats-new --- # What's new for Visual Basic