Skip to content

Fix duplicate alt-text warnings #23242

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 10, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Note how the template describes a dynamic set of key/value pairs. When the templ

You'll find the eShopOnContainers helm charts in the /k8s/helm folder. Figure 2-6 shows how the different components of the application are organized into a folder structure used by helm to define and managed deployments.

![eShopOnContainers Architecture](./media/eshoponcontainers-helm-folder.png)
![The eShopOnContainers helm folder](./media/eshoponcontainers-helm-folder.png)
**Figure 2-6**. The eShopOnContainers helm folder.

Each individual component is installed using a `helm install` command. eShop includes a "deploy all" script that loops through and installs the components using their respective helm charts. The result is a repeatable process, versioned with the application in source control, that anyone on the team can deploy to an AKS cluster with a one-line script command.
Expand All @@ -65,12 +65,12 @@ Developers share a running (development) instance in an AKS cluster that contain

In Figure 2-7, you can see that Developer Susie has deployed an updated version of the Bikes microservice into her dev space. She's then able to test her changes using a custom URL starting with the name of her space (susie.s.dev.myapp.eus.azds.io).

![eShopOnContainers Architecture](./media/azure-devspaces-one.png)
![eShopOnContainers Architecture showing Bikes microservice](./media/azure-devspaces-one.png)
**Figure 2-7**. Developer Susie deploys her own version of the Bikes microservice and tests it.

At the same time, developer John is customizing the Reservations microservice and needs to test his changes. He deploys his changes to his own dev space without conflicting with Susie's changes as shown in Figure 2-8. John then tests his changes using his own URL that is prefixed with the name of his space (john.s.dev.myapp.eus.azds.io).

![eShopOnContainers Architecture](./media/azure-devspaces-two.png)
![eShopOnContainers Architecture showing John's version of Reservations microservice](./media/azure-devspaces-two.png)
**Figure 2-8**. Developer John deploys his own version of the Reservations microservice and tests it without conflicting with other developers.

Using Azure Dev Spaces, teams can work directly with AKS while independently changing, deploying, and testing their changes. This approach reduces the need for separate dedicated hosted environments since every developer effectively has their own AKS environment. Developers can work with Azure Dev Spaces using its CLI or launch their application to Azure Dev Spaces directly from Visual Studio. [Learn more about how Azure Dev Spaces works and is configured.](/azure/dev-spaces/how-dev-spaces-works)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ The gateway insulates the client from internal service partitioning and refactor

Care must be taken to keep the API Gateway simple and fast. Typically, business logic is kept out of the gateway. A complex gateway risks becoming a bottleneck and eventually a monolith itself. Larger systems often expose multiple API Gateways segmented by client type (mobile, web, desktop) or back-end functionality. The [Backend for Frontends](/azure/architecture/patterns/backends-for-frontends) pattern provides direction for implementing multiple gateways. The pattern is shown in Figure 4-4.

![API Gateway Pattern](./media/backend-for-frontend-pattern.png)
![Backend for Frontend Pattern](./media/backend-for-frontend-pattern.png)

**Figure 4-4.** Backend for frontend pattern

Expand Down
4 changes: 2 additions & 2 deletions docs/architecture/modernize-desktop/example-migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ Save and reload the project. You're now done updating the project file and the p

If you compile the project at this point, you'll find some errors related to the WCF client reference. Since this code is autogenerated, you must regenerate it to target .NET.

![Screenshot of compilation errors on Visual Studio](./media/example-migration-core/winforms-compilation-errors.png)
![Error List in Visual Studio showing errors](./media/example-migration-core/winforms-compilation-errors.png)

Delete the *Reference.cs* file and generate a new Service Client.

Expand Down Expand Up @@ -256,7 +256,7 @@ In this case, delete all the content of the *.csproj* file and replace it with t

If you reload the project and compile it, you'll get the following error:

![Screenshot of compilation errors on Visual Studio](./media/example-migration-core/wpf-compilation-error.png)
![Error List in Visual Studio showing single error CS0234](./media/example-migration-core/wpf-compilation-error.png)

Since you've deleted all the *.csproj* contents, you've lost a project reference specification present in the old project. You just need to add this line to the *.csproj* file to include the project reference back:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Azure Migrate gives you confidence that your workloads can migrate with minimal

Figure 2-2 shows you the built-in dependency mapping for all server and application connections performed by Azure Migrate.

![Positioning Cloud Infrastructure-Ready applications](./media/image2-2.png)
![Dependencies of server and application connections](./media/image2-2.png)

**Figure 2-2.** Positioning Cloud Infrastructure-Ready applications

Expand All @@ -69,7 +69,7 @@ Site Recovery is also made specifically for hybrid environments that are partly

Figure 2-3 shows the execution of multiple VM migrations by using Azure Site Recovery.

![Positioning Cloud Infrastructure-Ready applications](./media/image2-3.png)
![VM migrations using Azure Site Recovery](./media/image2-3.png)

**Figure 2-3.** Positioning Cloud Infrastructure-Ready applications

Expand Down
4 changes: 2 additions & 2 deletions docs/csharp/roslyn-sdk/syntax-visualizer.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ The Syntax Visualizer enables rudimentary inspection of symbols and semantic inf

The property grid in the visualizer updates as shown in the following figure: The symbol for the expression is a **SynthesizedIntrinsicOperatorSymbol** with **Kind = Method**.

![Symbol properties](media/syntax-visualizer/symbol-properties.png)
![Symbol properties in Syntax Visualizer](media/syntax-visualizer/symbol-properties.png)

Try **View TypeSymbol (if any)** for the same **AddExpression** node. The property grid in the visualizer updates as shown in the following figure, indicating that the type of the selected expression is `Int32`.

Expand Down Expand Up @@ -117,7 +117,7 @@ End Module

This code introduces an alias named `C` that maps to the type `System.Console` at the top of the file and uses this alias inside `Main()`. Select the use of this alias, the `C` in `C.WriteLine()`, inside the `Main()` method. The visualizer selects the corresponding **IdentifierName** node in the visualizer. Right-click this node and click on **View Symbol (if any)**. The property grid indicates that this identifier is bound to the type `System.Console` as shown in the following figure:

![Symbol properties](media/syntax-visualizer/symbol-visual-basic.png)
![Properties for the symbol `C` in Syntax Visualizer](media/syntax-visualizer/symbol-visual-basic.png)

Try **View AliasSymbol (if any)** for the same **IdentifierName** node. The property grid indicates the identifier is an alias with name `C` that is bound to the `System.Console` target. In other words, the property grid provides information regarding the **AliasSymbol** corresponding to the identifier `C`.

Expand Down
16 changes: 8 additions & 8 deletions docs/framework/install/application-not-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,35 @@ ms.date: 09/05/2019
---
# Troubleshooting a 'This application could not be started' error message

Applications that are developed for the .NET Framework typically require that a specific version of the .NET Framework be installed on your system. In some cases, you may attempt to run an application without either an installed version or the expected version of the .NET Framework present. This often produces an error dialog box like the following:
Applications that are developed for .NET Framework typically require that a specific version of .NET Framework be installed on your system. In some cases, you may attempt to run an application without either an installed version or the expected version of .NET Framework present. This often produces an error dialog box like the following:

![This application could not be started](media/application-not-started/app-could-not-be-started.png)

This typically indicates one of the following conditions:
This error typically indicates one of the following conditions:

- A .NET Framework installation on your system has become corrupted.

- The version of the .NET Framework needed by your application cannot be detected.
- The version of .NET Framework needed by your application cannot be detected.

To address this issue so that you can run your application, do the following:

1. Download the [.NET Framework Repair Tool (NetFxRepairTool.exe)](https://www.microsoft.com/download/details.aspx?id=30135). The tool runs automatically when the download completes.

1. If the .NET Framework Repair Tool recommends any additional action, such as those shown in the following figure, select **Next**.

![Recommended changes](media/application-not-started/repair-tool-recommended-changes.png)
![Repair tool recommended changes](media/application-not-started/repair-tool-recommended-changes.png)

1. The .NET Framework Repair Tools displays a dialog box shown in the following figure to indicate that changes are complete. Leave the dialog box open while you to try rerun your application. This should succeed if the .NET Framework Repair Tool has identified and corrected a corrupted .NET Framework installation.

![Recommended changes](media/application-not-started/repair-tool-changes-complete.png)
![Repair tool changes complete](media/application-not-started/repair-tool-changes-complete.png)

1. If your application runs successfully, select the **Finish** button. Otherwise, select the **Next** button.

1. If you selected the **Next** button, the .NET Framework Repair Tool displays a dialog box like the following. Select the **Finish** button to send diagnostic information to Microsoft.

![Unable to resolve the problem](media/application-not-started/repair-tool-no-resolution.png)

1. If you still cannot run the application, install the latest version of the .NET Framework supported by your version of Windows, as shown in the following table.
1. If you still cannot run the application, install the latest version of .NET Framework that's supported by your version of Windows, as shown in the following table.

|Windows version|.NET Framework installation|
|---|---|
Expand All @@ -49,9 +49,9 @@ To address this issue so that you can run your application, do the following:

1. Attempt to launch the application.

1. In some cases, you may see a dialog box like the following, which asks you to install the .NET Framework 3.5. Select **Download and install this feature** to install the .NET Framework 3.5, then launch the application again.
1. In some cases, you may see a dialog box like the following, which asks you to install .NET Framework 3.5. Select **Download and install this feature** to install .NET Framework 3.5, then launch the application again.

![Unable to resolve the problem](media/application-not-started/install-3-5.png)
![Windows Features dialog box suggesting to install .NET Framework 3.5](media/application-not-started/install-3-5.png)

## See also

Expand Down
4 changes: 2 additions & 2 deletions docs/framework/interop/interop-marshaling.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ The author of the component sets the thread affinity of a COM server. The follow

When a managed client and unmanaged server are in the same apartment, the interop marshaling service handles all data marshaling. However, when client and server are initialized in different apartments, COM marshaling is also required. The following illustration shows the elements of a cross-apartment call:

![COM marshaling](./media/interop-marshaling/single-process-across-multi-apartment.gif "Cross-apartment call between a .NET client and COM object")
![Cross-apartment call between a .NET client and COM object](./media/interop-marshaling/single-process-across-multi-apartment.gif)

For cross-apartment marshaling, you can do the following:

Expand All @@ -84,7 +84,7 @@ As with cross-apartment marshaling, COM marshaling is involved in each call betw

The following illustration shows how interop marshaling and COM marshaling provide communications channels across process and host boundaries:

![COM marshaling](./media/interop-marshaling/interop-and-com-marshaling.gif "Cross-process marshaling")
![Cross-process marshaling](./media/interop-marshaling/interop-and-com-marshaling.gif)

### Preserving Identity

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ The first step in writing a custom transport is to decide which *message exchang

The duplex MEP allows an arbitrary number of messages to be sent by a client and received in any order. The duplex MEP is like a phone conversation, where each word being spoken is a message. Because both sides can send and receive in this MEP, the interface implemented by the client and service channels is <xref:System.ServiceModel.Channels.IDuplexChannel>.

![Choosing a message exchange pattern](./media/wcfc-basicthreemepsc.gif "wcfc_BasicThreeMEPsc")
![Flowchart showing the three basic message exchange patterns](./media/wcfc-basicthreemepsc.gif)
The three basic message exchange patterns. Top to bottom: datagram, request-response, and duplex.

Each of these MEPs can also support *sessions*. A session (and implementation of <xref:System.ServiceModel.Channels.ISessionChannel%601?displayProperty=nameWithType> of type <xref:System.ServiceModel.Channels.ISession?displayProperty=nameWithType>) correlates all messages sent and received on a channel. The request-response pattern is a stand-alone two-message session, as the request and reply are correlated. In contrast, the request-response pattern that supports sessions implies that all request/response pairs on that channel are correlated with each other. This gives you a total of six MEPs to choose from:
Expand All @@ -50,7 +50,7 @@ The three basic message exchange patterns. Top to bottom: datagram, request-resp

In the channel object model, each logical session manifests as an instance of a sessionful channel. Therefore every new session created by the client, and accepted on the service, corresponds to a new sessionful channel on each side. The following diagram shows, on the top, the structure of sessionless channels, and on the bottom, the structure of sessionful channels.

![Choosing a message exchange pattern](./media/wcfc-sessionandsessionlesschannelsc.gif "wcfc_SessionAndSessionlessChannelsc")
![Flowchart showing the structure of sessionless and sessionful channels](./media/wcfc-sessionandsessionlesschannelsc.gif)

A client creates a new sessionful channel and sends a message. On the service side, the channel listener receives this message and detects that it belongs to a new session so it creates a new sessionful channel and hands it to the application (in response to the application calling AcceptChannel on the channel listener). The application then receives this message and all subsequent messages sent in the same session through the same sessionful channel.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ Exceptions are used to communicate errors locally within the service or the clie

SOAP 1.1 and SOAP 1.2 both define a specific structure for faults. There are some differences between the two specifications but in general, the Message and MessageFault types are used to create and consume faults.

![Handling exceptions and faults](./media/wcfc-soap1-1andsoap1-2faultcomparisonc.gif "wcfc_SOAP1-1AndSOAP1-2FaultComparisonc")
SOAP 1.2 Fault (left) and SOAP 1.1 Fault (right). Note that in SOAP 1.1 only the Fault element is namespace qualified.
![SOAP 1.2 Fault and SOAP 1.1 Fault](./media/wcfc-soap1-1andsoap1-2faultcomparisonc.gif)
SOAP 1.2 Fault (left) and SOAP 1.1 Fault (right). In SOAP 1.1, only the Fault element is namespace qualified.

SOAP defines a fault message as a message that contains only a fault element (an element whose name is `<env:Fault>`) as a child of `<env:Body>`. The contents of the fault element differ slightly between SOAP 1.1 and SOAP 1.2 as shown in figure 1. However, the <xref:System.ServiceModel.Channels.MessageFault?displayProperty=nameWithType> class normalizes these differences into one object model:

Expand Down Expand Up @@ -318,7 +318,7 @@ public class MessageFault

- In addition to the core components, you can use the [Service Trace Viewer Tool (SvcTraceViewer.exe)](../service-trace-viewer-tool-svctraceviewer-exe.md) to view and search WCF traces. The tool is designed specifically for trace files generated by WCF and written out using <xref:System.Diagnostics.XmlWriterTraceListener>. The following figure shows the various components involved in tracing.

![Handling exceptions and faults](./media/wcfc-tracinginchannelsc.gif "wcfc_TracingInChannelsc")
![Tracing components](./media/wcfc-tracinginchannelsc.gif)

### Tracing from a Custom Channel

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ The following procedure demonstrates how to examine the stores on your local dev

6. In the **Add or Remove Snap-in** window, select **OK**.

![Add certificate snap-in](./media/mmc-certificate-snap-in-selected.png)
![Add or Remove Snap-ins window with OK button highlighted](./media/mmc-certificate-snap-in-selected.png)

7. Optional: From the **File** menu, select **Save** or **Save As** to save the MMC console file for later use.

Expand Down
Loading