From c4b23e4cb004b7af218cbda194b5923b52b6c041 Mon Sep 17 00:00:00 2001 From: damabe Date: Wed, 27 Feb 2019 16:51:19 -0700 Subject: [PATCH 01/17] Image updates. --- docs/framework/wpf/advanced/opentype-font-features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/wpf/advanced/opentype-font-features.md b/docs/framework/wpf/advanced/opentype-font-features.md index 22e3f85492c5a..7de3ec1aa6029 100644 --- a/docs/framework/wpf/advanced/opentype-font-features.md +++ b/docs/framework/wpf/advanced/opentype-font-features.md @@ -2,7 +2,7 @@ title: "OpenType Font Features" ms.date: "03/30/2017" dev_langs: - - "csharp" + - "csharps" - "vb" helpviewer_keywords: - "fonts [WPF], OpenType" From a9fd7be110f95660306451742133525d258ff66a Mon Sep 17 00:00:00 2001 From: damabe Date: Wed, 27 Feb 2019 16:53:24 -0700 Subject: [PATCH 02/17] Image updates. --- docs/framework/wpf/advanced/opentype-font-features.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/wpf/advanced/opentype-font-features.md b/docs/framework/wpf/advanced/opentype-font-features.md index 7de3ec1aa6029..22e3f85492c5a 100644 --- a/docs/framework/wpf/advanced/opentype-font-features.md +++ b/docs/framework/wpf/advanced/opentype-font-features.md @@ -2,7 +2,7 @@ title: "OpenType Font Features" ms.date: "03/30/2017" dev_langs: - - "csharps" + - "csharp" - "vb" helpviewer_keywords: - "fonts [WPF], OpenType" From b40d0dd3affdefc986d63bd2d3705ac85a17f4f3 Mon Sep 17 00:00:00 2001 From: damabe Date: Wed, 20 Mar 2019 08:05:19 -0700 Subject: [PATCH 03/17] SEO image updates --- .../concepts/linq/filtering-data.md | 2 +- .../linq-filter-operation.png} | Bin .../data/adonet/entity-data-model-inheritance.md | 2 +- .../entity-type-inheritance.gif} | Bin .../tracing/emitting-user-code-traces.md | 6 ++---- .../trace-viewer-endpoint-errors.gif} | Bin .../trace-viewer-error-correlation.gif} | Bin .../language-reference/discriminated-unions.md | 2 +- .../tree-structure-mytree.png} | Bin .../developing-apps/development-with-my/index.md | 2 +- .../my-object-model-relationships.gif} | Bin .../concepts/linq/filtering-data.md | 2 +- .../filtering-data/linq-filter-operation.png | Bin 0 -> 3050 bytes 13 files changed, 7 insertions(+), 9 deletions(-) rename docs/csharp/programming-guide/concepts/linq/media/{linq_filter.png => filtering-data/linq-filter-operation.png} (100%) rename docs/framework/data/adonet/media/{inheritanceexample.gif => entity-data-model-inheritance/entity-type-inheritance.gif} (100%) rename docs/framework/wcf/diagnostics/tracing/media/{e2etrace2.gif => emmiting-user-code-traces/trace-viewer-endpoint-errors.gif} (100%) rename docs/framework/wcf/diagnostics/tracing/media/{e2etrace3.gif => emmiting-user-code-traces/trace-viewer-error-correlation.gif} (100%) rename docs/fsharp/media/{TreeStructureDiagram.png => discriminated-unions/tree-structure-mytree.png} (100%) rename docs/visual-basic/developing-apps/development-with-my/media/{myobjmodel.gif => index/my-object-model-relationships.gif} (100%) create mode 100644 docs/visual-basic/programming-guide/concepts/linq/media/filtering-data/linq-filter-operation.png diff --git a/docs/csharp/programming-guide/concepts/linq/filtering-data.md b/docs/csharp/programming-guide/concepts/linq/filtering-data.md index fa7d374d00aa9..afc8c7f99f388 100644 --- a/docs/csharp/programming-guide/concepts/linq/filtering-data.md +++ b/docs/csharp/programming-guide/concepts/linq/filtering-data.md @@ -8,7 +8,7 @@ Filtering refers to the operation of restricting the result set to contain only The following illustration shows the results of filtering a sequence of characters. The predicate for the filtering operation specifies that the character must be 'A'. - ![LINQ Filtering Operation](../../../../csharp/programming-guide/concepts/linq/media/linq_filter.png "LINQ_Filter") + ![Diagram that shows a LINQ Filtering Operation](./media/filtering-data/linq-filter-operation.png) The standard query operator methods that perform selection are listed in the following section. diff --git a/docs/csharp/programming-guide/concepts/linq/media/linq_filter.png b/docs/csharp/programming-guide/concepts/linq/media/filtering-data/linq-filter-operation.png similarity index 100% rename from docs/csharp/programming-guide/concepts/linq/media/linq_filter.png rename to docs/csharp/programming-guide/concepts/linq/media/filtering-data/linq-filter-operation.png diff --git a/docs/framework/data/adonet/entity-data-model-inheritance.md b/docs/framework/data/adonet/entity-data-model-inheritance.md index db6be762777e1..bb98d7be8746e 100644 --- a/docs/framework/data/adonet/entity-data-model-inheritance.md +++ b/docs/framework/data/adonet/entity-data-model-inheritance.md @@ -13,7 +13,7 @@ The Entity Data Model (EDM) supports inheritance for [entity types](../../../../ ## Example The diagram below shows a conceptual model with four entity types: `Book`, `FictionBook`, `Publisher`, and `Author`. The `FictionBook` entity type is a derived type, inheriting from the `Book` entity type. The `FictionBook` type inherits the `ISBN (Key)`, `Title`, and `Revision` properties, and defines an additional property called `Genre`. - ![Inheritance](../../../../docs/framework/data/adonet/media/inheritanceexample.gif "InheritanceExample") + ![Diagram that shows a model with four entity types.](./media/entity-data-model-inheritance/entity-type-inheritance.gif) The [ADO.NET Entity Framework](../../../../docs/framework/data/adonet/ef/index.md) uses a domain-specific language (DSL) called conceptual schema definition language ([CSDL](../../../../docs/framework/data/adonet/ef/language-reference/csdl-specification.md)) to define conceptual models. The following CSDL defines an entity type, `FictionBook`, that inherits from the `Book` type (as in the diagram above): diff --git a/docs/framework/data/adonet/media/inheritanceexample.gif b/docs/framework/data/adonet/media/entity-data-model-inheritance/entity-type-inheritance.gif similarity index 100% rename from docs/framework/data/adonet/media/inheritanceexample.gif rename to docs/framework/data/adonet/media/entity-data-model-inheritance/entity-type-inheritance.gif diff --git a/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md b/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md index c077710e4499f..1a6a35d73d951 100644 --- a/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md +++ b/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md @@ -122,13 +122,11 @@ List of activities by creation time (left panel) and their nested activities (up If the service code throws an exception that causes the client to throw as well (for example, when the client did not get the response to its request), both the service and client warning or error messages occur in the same activity for direct correlation. In the following diagram, the service throws an exception that states "The service refuses to process this request in user code." The client also throws an exception that states "The server was unable to process the request due to an internal error." - ![Using Trace Viewer to emit user-code traces](../../../../../docs/framework/wcf/diagnostics/tracing/media/e2etrace2.gif "e2eTrace2") -Errors across endpoints for a given request appear in the same activity if the request activity id was propagated + ![Screenshot that shows errors across endpoints for a given request.](./media/emitting-user-code-traces/trace-viewer-endpoint-errors.gif) Double-clicking the Multiply activity on the left panel shows the following graph, with the traces for the Multiply activity for each process involved. We can see a warning first occurred at the service (exception thrown), which is followed by warnings and errors on the client because the request could not be processed. Therefore, we can imply the causal error relationship between endpoints and derive the root cause of the error. - ![Using Trace Viewer to emit user-code traces](../../../../../docs/framework/wcf/diagnostics/tracing/media/e2etrace3.gif "e2eTrace3") -Graph view of error correlation + ![Screenshot that shows the graph view of error correlation.](./media/emitting-user-code-traces/trace-viewer-error-correlation.gif) To obtain the previous traces, we set `ActivityTracing` for the user trace sources and `propagateActivity=true` for the `System.ServiceModel` trace source. We did not set `ActivityTracing` for the `System.ServiceModel` trace source to enable user code to user code activity propagation. (When ServiceModel activity tracing is on, the activity ID defined in the client is not propagated all the way to the service user code; Transfers, however, correlate the client and service user code activities to the intermediate WCF activities.) diff --git a/docs/framework/wcf/diagnostics/tracing/media/e2etrace2.gif b/docs/framework/wcf/diagnostics/tracing/media/emmiting-user-code-traces/trace-viewer-endpoint-errors.gif similarity index 100% rename from docs/framework/wcf/diagnostics/tracing/media/e2etrace2.gif rename to docs/framework/wcf/diagnostics/tracing/media/emmiting-user-code-traces/trace-viewer-endpoint-errors.gif diff --git a/docs/framework/wcf/diagnostics/tracing/media/e2etrace3.gif b/docs/framework/wcf/diagnostics/tracing/media/emmiting-user-code-traces/trace-viewer-error-correlation.gif similarity index 100% rename from docs/framework/wcf/diagnostics/tracing/media/e2etrace3.gif rename to docs/framework/wcf/diagnostics/tracing/media/emmiting-user-code-traces/trace-viewer-error-correlation.gif diff --git a/docs/fsharp/language-reference/discriminated-unions.md b/docs/fsharp/language-reference/discriminated-unions.md index 33efbafe9c0c6..9cf207fcaad1c 100644 --- a/docs/fsharp/language-reference/discriminated-unions.md +++ b/docs/fsharp/language-reference/discriminated-unions.md @@ -150,7 +150,7 @@ Discriminated unions can be recursive, meaning that the union itself can be incl In the previous code, `resultSumTree` has the value 10. The following illustration shows the tree structure for `myTree`. -![Tree structure for myTree](../media/TreeStructureDiagram.png) +![Diagram that shows the tree structure for myTree.](../media/discriminated-unions/tree-structure-mytree.png) Discriminated unions work well if the nodes in the tree are heterogeneous. In the following code, the type `Expression` represents the abstract syntax tree of an expression in a simple programming language that supports addition and multiplication of numbers and variables. Some of the union cases are not recursive and represent either numbers (`Number`) or variables (`Variable`). Other cases are recursive, and represent operations (`Add` and `Multiply`), where the operands are also expressions. The `Evaluate` function uses a match expression to recursively process the syntax tree. diff --git a/docs/fsharp/media/TreeStructureDiagram.png b/docs/fsharp/media/discriminated-unions/tree-structure-mytree.png similarity index 100% rename from docs/fsharp/media/TreeStructureDiagram.png rename to docs/fsharp/media/discriminated-unions/tree-structure-mytree.png diff --git a/docs/visual-basic/developing-apps/development-with-my/index.md b/docs/visual-basic/developing-apps/development-with-my/index.md index 26650f18793c8..1963d16ae3195 100644 --- a/docs/visual-basic/developing-apps/development-with-my/index.md +++ b/docs/visual-basic/developing-apps/development-with-my/index.md @@ -17,7 +17,7 @@ Visual Basic provides new features for rapid application development that improv This table shows the top-level `My` objects and their relationship to each other. - ![Object Model for My](../../../visual-basic/developing-apps/development-with-my/media/myobjmodel.gif "MyObjModel") + ![Diagram shows the Object Model for My.](./media/index/my-object-model-relationships.gif) ## In This Section [Performing Tasks with My.Application, My.Computer, and My.User](../../../visual-basic/developing-apps/development-with-my/performing-tasks-with-my-application-my-computer-and-my-user.md) diff --git a/docs/visual-basic/developing-apps/development-with-my/media/myobjmodel.gif b/docs/visual-basic/developing-apps/development-with-my/media/index/my-object-model-relationships.gif similarity index 100% rename from docs/visual-basic/developing-apps/development-with-my/media/myobjmodel.gif rename to docs/visual-basic/developing-apps/development-with-my/media/index/my-object-model-relationships.gif diff --git a/docs/visual-basic/programming-guide/concepts/linq/filtering-data.md b/docs/visual-basic/programming-guide/concepts/linq/filtering-data.md index d51ff4c6457d6..22ba6b0e9d9d3 100644 --- a/docs/visual-basic/programming-guide/concepts/linq/filtering-data.md +++ b/docs/visual-basic/programming-guide/concepts/linq/filtering-data.md @@ -8,7 +8,7 @@ Filtering refers to the operation of restricting the result set to contain only The following illustration shows the results of filtering a sequence of characters. The predicate for the filtering operation specifies that the character must be 'A'. - ![LINQ Filtering Operation](../../../../csharp/programming-guide/concepts/linq/media/linq_filter.png "LINQ_Filter") + ![Diagram that shows a LINQ Filtering Operation](./media/filtering-data/linq-filter-operation.png) The standard query operator methods that perform selection are listed in the following section. diff --git a/docs/visual-basic/programming-guide/concepts/linq/media/filtering-data/linq-filter-operation.png b/docs/visual-basic/programming-guide/concepts/linq/media/filtering-data/linq-filter-operation.png new file mode 100644 index 0000000000000000000000000000000000000000..0e88125a83ba32fc7b7d7d363cb6e55b21279576 GIT binary patch literal 3050 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 Date: Wed, 20 Mar 2019 08:13:42 -0700 Subject: [PATCH 04/17] SEO image updates --- .../wpf/advanced/flow-document-overview.md | 4 ++-- .../embedded-blockuicontainer.png} | Bin 2 files changed, 2 insertions(+), 2 deletions(-) rename docs/framework/wpf/advanced/media/{blockuicontainer.png => flow-document-overview/embedded-blockuicontainer.png} (100%) diff --git a/docs/framework/wpf/advanced/flow-document-overview.md b/docs/framework/wpf/advanced/flow-document-overview.md index 1e1f45fb36e89..db70408b1ff71 100644 --- a/docs/framework/wpf/advanced/flow-document-overview.md +++ b/docs/framework/wpf/advanced/flow-document-overview.md @@ -122,9 +122,9 @@ Flow documents are designed to optimize viewing and readability. Rather than bei [!code-xaml[SpanSnippets#_BlockUIXAML](~/samples/snippets/csharp/VS_Snippets_Wpf/SpanSnippets/CSharp/Window1.xaml#_blockuixaml)] - The following figure shows how this example renders. + The following figure shows how this example renders: - ![Screenshot: UIElement embedded in flow content](./media/blockuicontainer.png "BlockUIContainer") + ![Screenshot that shows a UIElement embedded in flow content.](./media/flow-document-overview/embedded-blockuicontainer.png) **List** diff --git a/docs/framework/wpf/advanced/media/blockuicontainer.png b/docs/framework/wpf/advanced/media/flow-document-overview/embedded-blockuicontainer.png similarity index 100% rename from docs/framework/wpf/advanced/media/blockuicontainer.png rename to docs/framework/wpf/advanced/media/flow-document-overview/embedded-blockuicontainer.png From 72fee14aeffa4723e92025664c122d1ca44b9243 Mon Sep 17 00:00:00 2001 From: damabe Date: Wed, 20 Mar 2019 08:21:47 -0700 Subject: [PATCH 05/17] SEO image updates --- docs/standard/garbage-collection/fundamentals.md | 10 ++++------ .../background-server-garbage-collection.png} | Bin .../background-workstation-garbage-collection.png} | Bin 3 files changed, 4 insertions(+), 6 deletions(-) rename docs/standard/garbage-collection/media/{backgroundserver.png => fundamentals/background-server-garbage-collection.png} (100%) rename docs/standard/garbage-collection/media/{backgroundworkstn.png => fundamentals/background-workstation-garbage-collection.png} (100%) diff --git a/docs/standard/garbage-collection/fundamentals.md b/docs/standard/garbage-collection/fundamentals.md index e9820bfdc9c5f..65904fbddb001 100644 --- a/docs/standard/garbage-collection/fundamentals.md +++ b/docs/standard/garbage-collection/fundamentals.md @@ -257,19 +257,17 @@ Concurrent garbage collection The following illustration shows background garbage collection performed on a separate dedicated thread on a workstation. - ![Background workstation garbage collection](../../../docs/standard/garbage-collection/media/backgroundworkstn.png "BackgroundWorkstn") -Background workstation garbage collection - + ![Diagram that shows background workstation garbage collection.](./media/fundamentals/background-workstation-garbage-collection.png) + [Back to top](#top) ## Background server garbage collection Starting with the .NET Framework 4.5, background server garbage collection is the default mode for server garbage collection. To choose this mode, set the `enabled` attribute of the [\ element](../../../docs/framework/configure-apps/file-schema/runtime/gcserver-element.md) to `true` in the runtime configuration schema. This mode functions similarly to background workstation garbage collection, described in the previous section, but there are a few differences. Background workstation garbage collection uses one dedicated background garbage collection thread, whereas background server garbage collection uses multiple threads, typically a dedicated thread for each logical processor. Unlike the workstation background garbage collection thread, these threads do not time out. - The following illustration shows background garbage collection performed on a separate dedicated thread on a server. + The following illustration shows background garbage collection performed on a separate dedicated thread on a server: - ![Background server garbage collection](../../../docs/standard/garbage-collection/media/backgroundserver.png "BackgroundServer") -Background server garbage collection + ![Diagram that shows background server garbage collection.](./media/fundamentals/background-server-garbage-collection.png) ## See also diff --git a/docs/standard/garbage-collection/media/backgroundserver.png b/docs/standard/garbage-collection/media/fundamentals/background-server-garbage-collection.png similarity index 100% rename from docs/standard/garbage-collection/media/backgroundserver.png rename to docs/standard/garbage-collection/media/fundamentals/background-server-garbage-collection.png diff --git a/docs/standard/garbage-collection/media/backgroundworkstn.png b/docs/standard/garbage-collection/media/fundamentals/background-workstation-garbage-collection.png similarity index 100% rename from docs/standard/garbage-collection/media/backgroundworkstn.png rename to docs/standard/garbage-collection/media/fundamentals/background-workstation-garbage-collection.png From dfc59bec77820b9b7986306ec2a6c08bc27e83d4 Mon Sep 17 00:00:00 2001 From: damabe Date: Wed, 20 Mar 2019 08:28:54 -0700 Subject: [PATCH 06/17] SEO image updates --- .../wpf/advanced/media/shadowtext08.png | Bin 26575 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/framework/wpf/advanced/media/shadowtext08.png diff --git a/docs/framework/wpf/advanced/media/shadowtext08.png b/docs/framework/wpf/advanced/media/shadowtext08.png deleted file mode 100644 index 2cebb094c133296444d34bfe3002ef673b5c4c28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26575 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 Date: Wed, 20 Mar 2019 08:34:55 -0700 Subject: [PATCH 07/17] SEO image updates --- .../language-features/data-types/generic-types.md | 3 +-- .../generic-screwdriver-set.gif} | Bin 2 files changed, 1 insertion(+), 2 deletions(-) rename docs/visual-basic/programming-guide/language-features/data-types/media/{genericscrewdriver.gif => generic-types/generic-screwdriver-set.gif} (100%) diff --git a/docs/visual-basic/programming-guide/language-features/data-types/generic-types.md b/docs/visual-basic/programming-guide/language-features/data-types/generic-types.md index e782601b19836..5f7d80a60723c 100644 --- a/docs/visual-basic/programming-guide/language-features/data-types/generic-types.md +++ b/docs/visual-basic/programming-guide/language-features/data-types/generic-types.md @@ -42,8 +42,7 @@ A *generic type* is a single programming element that adapts to perform the same An analogy is a screwdriver set with removable heads. You inspect the screw you need to turn and select the correct head for that screw (slotted, crossed, starred). Once you insert the correct head in the screwdriver handle, you perform the exact same function with the screwdriver, namely turning the screw. - ![Diagram of a screwdriver set as a generic tool](../../../../visual-basic/programming-guide/language-features/data-types/media/genericscrewdriver.gif "GenericScrewDriver") -Screwdriver set as a generic tool + ![Diagram of a screwdriver set.](./media/generic-types/generic-screwdriver-set.gif) When you define a generic type, you parameterize it with one or more data types. This allows the using code to tailor the data types to its requirements. Your code can declare several different programming elements from the generic element, each one acting on a different set of data types. But the declared elements all perform the identical logic, no matter what data types they are using. diff --git a/docs/visual-basic/programming-guide/language-features/data-types/media/genericscrewdriver.gif b/docs/visual-basic/programming-guide/language-features/data-types/media/generic-types/generic-screwdriver-set.gif similarity index 100% rename from docs/visual-basic/programming-guide/language-features/data-types/media/genericscrewdriver.gif rename to docs/visual-basic/programming-guide/language-features/data-types/media/generic-types/generic-screwdriver-set.gif From 8c4e82caff93b35877c90328ea4809f7a7bfec41 Mon Sep 17 00:00:00 2001 From: damabe Date: Wed, 20 Mar 2019 08:37:44 -0700 Subject: [PATCH 08/17] SEO image updates --- .../wcf/diagnostics/tracing/emitting-user-code-traces.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md b/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md index 1a6a35d73d951..c460d10b4b249 100644 --- a/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md +++ b/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md @@ -122,11 +122,11 @@ List of activities by creation time (left panel) and their nested activities (up If the service code throws an exception that causes the client to throw as well (for example, when the client did not get the response to its request), both the service and client warning or error messages occur in the same activity for direct correlation. In the following diagram, the service throws an exception that states "The service refuses to process this request in user code." The client also throws an exception that states "The server was unable to process the request due to an internal error." - ![Screenshot that shows errors across endpoints for a given request.](./media/emitting-user-code-traces/trace-viewer-endpoint-errors.gif) + ![Screenshot that shows errors across endpoints for a given request.](./media/emmiting-user-code-traces/trace-viewer-endpoint-errors.gif) Double-clicking the Multiply activity on the left panel shows the following graph, with the traces for the Multiply activity for each process involved. We can see a warning first occurred at the service (exception thrown), which is followed by warnings and errors on the client because the request could not be processed. Therefore, we can imply the causal error relationship between endpoints and derive the root cause of the error. - ![Screenshot that shows the graph view of error correlation.](./media/emitting-user-code-traces/trace-viewer-error-correlation.gif) + ![Screenshot that shows the graph view of error correlation.](./media/emmiting-user-code-traces/trace-viewer-error-correlation.gif) To obtain the previous traces, we set `ActivityTracing` for the user trace sources and `propagateActivity=true` for the `System.ServiceModel` trace source. We did not set `ActivityTracing` for the `System.ServiceModel` trace source to enable user code to user code activity propagation. (When ServiceModel activity tracing is on, the activity ID defined in the client is not propagated all the way to the service user code; Transfers, however, correlate the client and service user code activities to the intermediate WCF activities.) From e84083751dccd3645f00e30bf324d09689cbd042 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 1 Apr 2019 17:18:46 -0700 Subject: [PATCH 09/17] Update docs/csharp/programming-guide/concepts/linq/filtering-data.md Co-Authored-By: damabe --- docs/csharp/programming-guide/concepts/linq/filtering-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/programming-guide/concepts/linq/filtering-data.md b/docs/csharp/programming-guide/concepts/linq/filtering-data.md index afc8c7f99f388..a7914789a1a74 100644 --- a/docs/csharp/programming-guide/concepts/linq/filtering-data.md +++ b/docs/csharp/programming-guide/concepts/linq/filtering-data.md @@ -8,7 +8,7 @@ Filtering refers to the operation of restricting the result set to contain only The following illustration shows the results of filtering a sequence of characters. The predicate for the filtering operation specifies that the character must be 'A'. - ![Diagram that shows a LINQ Filtering Operation](./media/filtering-data/linq-filter-operation.png) + ![Diagram that shows a LINQ filtering operation](./media/filtering-data/linq-filter-operation.png) The standard query operator methods that perform selection are listed in the following section. From dd87348f3526326593944f6f3bccd4dca009b884 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 1 Apr 2019 17:19:00 -0700 Subject: [PATCH 10/17] Update docs/framework/data/adonet/entity-data-model-inheritance.md Co-Authored-By: damabe --- docs/framework/data/adonet/entity-data-model-inheritance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/data/adonet/entity-data-model-inheritance.md b/docs/framework/data/adonet/entity-data-model-inheritance.md index bb98d7be8746e..811717dd6b6c6 100644 --- a/docs/framework/data/adonet/entity-data-model-inheritance.md +++ b/docs/framework/data/adonet/entity-data-model-inheritance.md @@ -13,7 +13,7 @@ The Entity Data Model (EDM) supports inheritance for [entity types](../../../../ ## Example The diagram below shows a conceptual model with four entity types: `Book`, `FictionBook`, `Publisher`, and `Author`. The `FictionBook` entity type is a derived type, inheriting from the `Book` entity type. The `FictionBook` type inherits the `ISBN (Key)`, `Title`, and `Revision` properties, and defines an additional property called `Genre`. - ![Diagram that shows a model with four entity types.](./media/entity-data-model-inheritance/entity-type-inheritance.gif) + ![Diagram that shows a conceptual model with four entity types.](./media/entity-data-model-inheritance/entity-type-inheritance.gif) The [ADO.NET Entity Framework](../../../../docs/framework/data/adonet/ef/index.md) uses a domain-specific language (DSL) called conceptual schema definition language ([CSDL](../../../../docs/framework/data/adonet/ef/language-reference/csdl-specification.md)) to define conceptual models. The following CSDL defines an entity type, `FictionBook`, that inherits from the `Book` type (as in the diagram above): From 417361b6af7974440168a81991d86a68ded402c4 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 1 Apr 2019 17:19:23 -0700 Subject: [PATCH 11/17] Update docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md Co-Authored-By: damabe --- .../wcf/diagnostics/tracing/emitting-user-code-traces.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md b/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md index c460d10b4b249..d538dafee9a0d 100644 --- a/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md +++ b/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md @@ -120,7 +120,7 @@ ts.TraceEvent(TraceEventType.Warning, 0, "Throwing exception " + "exceptionMessa ![Trace Viewer: Emitting User-code traces](../../../../../docs/framework/wcf/diagnostics/tracing/media/242c9358-475a-4baf-83f3-4227aa942fcd.gif "242c9358-475a-4baf-83f3-4227aa942fcd") List of activities by creation time (left panel) and their nested activities (upper-right panel) - If the service code throws an exception that causes the client to throw as well (for example, when the client did not get the response to its request), both the service and client warning or error messages occur in the same activity for direct correlation. In the following diagram, the service throws an exception that states "The service refuses to process this request in user code." The client also throws an exception that states "The server was unable to process the request due to an internal error." + If the service code throws an exception that causes the client to throw as well (for example, when the client did not get the response to its request), both the service and client warning or error messages occur in the same activity for direct correlation. In the following image, the service throws an exception that states "The service refuses to process this request in user code." The client also throws an exception that states "The server was unable to process the request due to an internal error." ![Screenshot that shows errors across endpoints for a given request.](./media/emmiting-user-code-traces/trace-viewer-endpoint-errors.gif) From 6f52069f97087e9fcb6d0034cae9559677633c42 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 1 Apr 2019 17:19:45 -0700 Subject: [PATCH 12/17] Update docs/framework/data/adonet/entity-data-model-inheritance.md Co-Authored-By: damabe --- docs/framework/data/adonet/entity-data-model-inheritance.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/framework/data/adonet/entity-data-model-inheritance.md b/docs/framework/data/adonet/entity-data-model-inheritance.md index 811717dd6b6c6..dcc4194304035 100644 --- a/docs/framework/data/adonet/entity-data-model-inheritance.md +++ b/docs/framework/data/adonet/entity-data-model-inheritance.md @@ -11,7 +11,8 @@ The Entity Data Model (EDM) supports inheritance for [entity types](../../../../ You cannot build inheritance hierarchies in which a derived type inherits from more than one type. For example, in a conceptual model with a `Book` entity type, you could define derived types `FictionBook` and `NonFictionBook` that each inherit from `Book`. However, you could not then define a type that inherits from both the `FictionBook` and `NonFictionBook` types. ## Example - The diagram below shows a conceptual model with four entity types: `Book`, `FictionBook`, `Publisher`, and `Author`. The `FictionBook` entity type is a derived type, inheriting from the `Book` entity type. The `FictionBook` type inherits the `ISBN (Key)`, `Title`, and `Revision` properties, and defines an additional property called `Genre`. + +The following diagram shows a conceptual model with four entity types: `Book`, `FictionBook`, `Publisher`, and `Author`. The `FictionBook` entity type is a derived type, inheriting from the `Book` entity type. The `FictionBook` type inherits the `ISBN (Key)`, `Title`, and `Revision` properties, and defines an additional property called `Genre`. ![Diagram that shows a conceptual model with four entity types.](./media/entity-data-model-inheritance/entity-type-inheritance.gif) From 42b9f42ae36bfc8acacf427997be1e23cf7d539a Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 1 Apr 2019 17:20:21 -0700 Subject: [PATCH 13/17] Update docs/standard/garbage-collection/fundamentals.md Co-Authored-By: damabe --- docs/standard/garbage-collection/fundamentals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/garbage-collection/fundamentals.md b/docs/standard/garbage-collection/fundamentals.md index 65904fbddb001..6dc069accb9dd 100644 --- a/docs/standard/garbage-collection/fundamentals.md +++ b/docs/standard/garbage-collection/fundamentals.md @@ -255,7 +255,7 @@ Concurrent garbage collection Background garbage collection removes allocation restrictions imposed by concurrent garbage collection, because ephemeral garbage collections can occur during background garbage collection. This means that background garbage collection can remove dead objects in ephemeral generations and can also expand the heap if needed during a generation 1 garbage collection. - The following illustration shows background garbage collection performed on a separate dedicated thread on a workstation. +The following illustration shows background garbage collection performed on a separate dedicated thread on a workstation: ![Diagram that shows background workstation garbage collection.](./media/fundamentals/background-workstation-garbage-collection.png) From 6080138991376b4cda9154291ff68708adc6294c Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 1 Apr 2019 17:20:33 -0700 Subject: [PATCH 14/17] Update docs/visual-basic/programming-guide/language-features/data-types/generic-types.md Co-Authored-By: damabe --- .../language-features/data-types/generic-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/visual-basic/programming-guide/language-features/data-types/generic-types.md b/docs/visual-basic/programming-guide/language-features/data-types/generic-types.md index 5f7d80a60723c..5cc43ad50bbe4 100644 --- a/docs/visual-basic/programming-guide/language-features/data-types/generic-types.md +++ b/docs/visual-basic/programming-guide/language-features/data-types/generic-types.md @@ -42,7 +42,7 @@ A *generic type* is a single programming element that adapts to perform the same An analogy is a screwdriver set with removable heads. You inspect the screw you need to turn and select the correct head for that screw (slotted, crossed, starred). Once you insert the correct head in the screwdriver handle, you perform the exact same function with the screwdriver, namely turning the screw. - ![Diagram of a screwdriver set.](./media/generic-types/generic-screwdriver-set.gif) + ![Diagram of a screwdriver set with different heads.](./media/generic-types/generic-screwdriver-set.gif) When you define a generic type, you parameterize it with one or more data types. This allows the using code to tailor the data types to its requirements. Your code can declare several different programming elements from the generic element, each one acting on a different set of data types. But the declared elements all perform the identical logic, no matter what data types they are using. From 63e11af5ffb20f07e07595cc174d0b1bab99a6f6 Mon Sep 17 00:00:00 2001 From: damabe Date: Mon, 1 Apr 2019 18:30:46 -0700 Subject: [PATCH 15/17] Reviewer feedback. --- .../tracing/emitting-user-code-traces.md | 12 ++++++++---- .../trace-viewer-endpoint-errors.gif | Bin .../trace-viewer-error-correlation.gif | Bin 3 files changed, 8 insertions(+), 4 deletions(-) rename docs/framework/wcf/diagnostics/tracing/media/{emmiting-user-code-traces => emitting-user-code-traces}/trace-viewer-endpoint-errors.gif (100%) rename docs/framework/wcf/diagnostics/tracing/media/{emmiting-user-code-traces => emitting-user-code-traces}/trace-viewer-error-correlation.gif (100%) diff --git a/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md b/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md index d538dafee9a0d..3ee10a0bddae2 100644 --- a/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md +++ b/docs/framework/wcf/diagnostics/tracing/emitting-user-code-traces.md @@ -120,13 +120,17 @@ ts.TraceEvent(TraceEventType.Warning, 0, "Throwing exception " + "exceptionMessa ![Trace Viewer: Emitting User-code traces](../../../../../docs/framework/wcf/diagnostics/tracing/media/242c9358-475a-4baf-83f3-4227aa942fcd.gif "242c9358-475a-4baf-83f3-4227aa942fcd") List of activities by creation time (left panel) and their nested activities (upper-right panel) - If the service code throws an exception that causes the client to throw as well (for example, when the client did not get the response to its request), both the service and client warning or error messages occur in the same activity for direct correlation. In the following image, the service throws an exception that states "The service refuses to process this request in user code." The client also throws an exception that states "The server was unable to process the request due to an internal error." + If the service code throws an exception that causes the client to throw as well (for example, when the client did not get the response to its request), both the service and client warning or error messages occur in the same activity for direct correlation. In the following image, the service throws an exception that states "The service refuses to process this request in user code." The client also throws an exception that states "The server was unable to process the request due to an internal error." + + The following images shows that errors across endpoints for a given request appear in the same activity if the request activity id was propagated: - ![Screenshot that shows errors across endpoints for a given request.](./media/emmiting-user-code-traces/trace-viewer-endpoint-errors.gif) + ![Screenshot that shows errors across endpoints for a given request.](./media/emitting-user-code-traces/trace-viewer-endpoint-errors.gif) - Double-clicking the Multiply activity on the left panel shows the following graph, with the traces for the Multiply activity for each process involved. We can see a warning first occurred at the service (exception thrown), which is followed by warnings and errors on the client because the request could not be processed. Therefore, we can imply the causal error relationship between endpoints and derive the root cause of the error. + Double-clicking the Multiply activity on the left panel shows the following graph, with the traces for the Multiply activity for each process involved. We can see a warning first occurred at the service (exception thrown), which is followed by warnings and errors on the client because the request could not be processed. Therefore, we can imply the causal error relationship between endpoints and derive the root cause of the error. + + The following image shows a graph view of error correlation: - ![Screenshot that shows the graph view of error correlation.](./media/emmiting-user-code-traces/trace-viewer-error-correlation.gif) + ![Screenshot that shows the graph view of error correlation.](./media/emitting-user-code-traces/trace-viewer-error-correlation.gif) To obtain the previous traces, we set `ActivityTracing` for the user trace sources and `propagateActivity=true` for the `System.ServiceModel` trace source. We did not set `ActivityTracing` for the `System.ServiceModel` trace source to enable user code to user code activity propagation. (When ServiceModel activity tracing is on, the activity ID defined in the client is not propagated all the way to the service user code; Transfers, however, correlate the client and service user code activities to the intermediate WCF activities.) diff --git a/docs/framework/wcf/diagnostics/tracing/media/emmiting-user-code-traces/trace-viewer-endpoint-errors.gif b/docs/framework/wcf/diagnostics/tracing/media/emitting-user-code-traces/trace-viewer-endpoint-errors.gif similarity index 100% rename from docs/framework/wcf/diagnostics/tracing/media/emmiting-user-code-traces/trace-viewer-endpoint-errors.gif rename to docs/framework/wcf/diagnostics/tracing/media/emitting-user-code-traces/trace-viewer-endpoint-errors.gif diff --git a/docs/framework/wcf/diagnostics/tracing/media/emmiting-user-code-traces/trace-viewer-error-correlation.gif b/docs/framework/wcf/diagnostics/tracing/media/emitting-user-code-traces/trace-viewer-error-correlation.gif similarity index 100% rename from docs/framework/wcf/diagnostics/tracing/media/emmiting-user-code-traces/trace-viewer-error-correlation.gif rename to docs/framework/wcf/diagnostics/tracing/media/emitting-user-code-traces/trace-viewer-error-correlation.gif From 8b85c24f8242bf7e2fdbc82647b67f80e0ef81b1 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 1 Apr 2019 18:35:25 -0700 Subject: [PATCH 16/17] Update docs/visual-basic/developing-apps/development-with-my/index.md Co-Authored-By: damabe --- docs/visual-basic/developing-apps/development-with-my/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/visual-basic/developing-apps/development-with-my/index.md b/docs/visual-basic/developing-apps/development-with-my/index.md index 1963d16ae3195..0da97cb3b1576 100644 --- a/docs/visual-basic/developing-apps/development-with-my/index.md +++ b/docs/visual-basic/developing-apps/development-with-my/index.md @@ -17,7 +17,7 @@ Visual Basic provides new features for rapid application development that improv This table shows the top-level `My` objects and their relationship to each other. - ![Diagram shows the Object Model for My.](./media/index/my-object-model-relationships.gif) + ![Diagram shows the object model for My.](./media/index/my-object-model-relationships.gif) ## In This Section [Performing Tasks with My.Application, My.Computer, and My.User](../../../visual-basic/developing-apps/development-with-my/performing-tasks-with-my-application-my-computer-and-my-user.md) From 9526876c722d72b10ecc4f8a718b012dc5e6b722 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 1 Apr 2019 18:35:40 -0700 Subject: [PATCH 17/17] Update docs/visual-basic/programming-guide/concepts/linq/filtering-data.md Co-Authored-By: damabe --- .../programming-guide/concepts/linq/filtering-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/visual-basic/programming-guide/concepts/linq/filtering-data.md b/docs/visual-basic/programming-guide/concepts/linq/filtering-data.md index 22ba6b0e9d9d3..a7e8b454100ba 100644 --- a/docs/visual-basic/programming-guide/concepts/linq/filtering-data.md +++ b/docs/visual-basic/programming-guide/concepts/linq/filtering-data.md @@ -8,7 +8,7 @@ Filtering refers to the operation of restricting the result set to contain only The following illustration shows the results of filtering a sequence of characters. The predicate for the filtering operation specifies that the character must be 'A'. - ![Diagram that shows a LINQ Filtering Operation](./media/filtering-data/linq-filter-operation.png) + ![Diagram that shows a LINQ filtering operation](./media/filtering-data/linq-filter-operation.png) The standard query operator methods that perform selection are listed in the following section.