diff --git a/docs/csharp/programming-guide/concepts/linq/filtering-data.md b/docs/csharp/programming-guide/concepts/linq/filtering-data.md index fa7d374d00aa9..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'. - ![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..dcc4194304035 100644 --- a/docs/framework/data/adonet/entity-data-model-inheritance.md +++ b/docs/framework/data/adonet/entity-data-model-inheritance.md @@ -11,9 +11,10 @@ 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`. - ![Inheritance](../../../../docs/framework/data/adonet/media/inheritanceexample.gif "InheritanceExample") + ![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): 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..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,15 +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 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." + + The following images shows that errors across endpoints for a given request appear in the same activity if the request activity id was propagated: - ![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. + 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: - ![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/emitting-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/emitting-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/emitting-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/emitting-user-code-traces/trace-viewer-error-correlation.gif 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 diff --git a/docs/framework/wpf/advanced/media/shadowtext08.png b/docs/framework/wpf/advanced/media/shadowtext08.png deleted file mode 100644 index 2cebb094c1332..0000000000000 Binary files a/docs/framework/wpf/advanced/media/shadowtext08.png and /dev/null differ 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/standard/garbage-collection/fundamentals.md b/docs/standard/garbage-collection/fundamentals.md index e9820bfdc9c5f..6dc069accb9dd 100644 --- a/docs/standard/garbage-collection/fundamentals.md +++ b/docs/standard/garbage-collection/fundamentals.md @@ -255,21 +255,19 @@ 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. - - ![Background workstation garbage collection](../../../docs/standard/garbage-collection/media/backgroundworkstn.png "BackgroundWorkstn") -Background workstation garbage collection +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) + [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 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..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. - ![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..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'. - ![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 0000000000000..0e88125a83ba3 Binary files /dev/null and b/docs/visual-basic/programming-guide/concepts/linq/media/filtering-data/linq-filter-operation.png differ 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..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,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 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. 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