104
Total Pages
80
Linux-Friendly Pages
24
Pages with Bias
23.1%
Bias Rate

Bias Trend Over Time

Pages with Bias Issues (51)

Page-Level Analysis

Windows Tools Windows First
Summary:
The documentation page shows mild Windows bias by listing Azure PowerShell as a configuration option alongside Azure CLI and Azure Portal, and by mentioning PowerShell after CLI (which is cross-platform) but before any Linux-specific tools. There are no explicit Linux shell or command-line examples, and no mention of Linux-specific tools or patterns. However, the programming language examples themselves are not shown, so further bias in code samples cannot be assessed from the provided content.
Recommendations:
  • Ensure that all command-line instructions are provided for both Azure CLI and Azure PowerShell, with clear indications of platform compatibility (e.g., note that Azure CLI is cross-platform, while PowerShell is available on both Windows and Linux).
  • When listing configuration options, avoid listing PowerShell immediately after CLI, or clarify that both are available on all platforms.
  • Add explicit Linux shell (bash) examples or references where relevant, especially for device-side operations.
  • If any code samples or instructions use Windows-specific paths, commands, or conventions, provide equivalent Linux/macOS examples.
  • Consider adding a section or note on platform compatibility for all tools and SDKs mentioned.

Page-Level Analysis

Missing Linux Example Windows Tools Windows First
Summary:
The documentation page demonstrates subtle Windows bias. Code examples are given in C# (commonly associated with Windows development), and there are no Linux-specific or cross-platform command-line examples (such as Bash, curl, or Python). The only instructions for role assignment reference Azure CLI and Azure PowerShell, but PowerShell is mentioned first, and there is no explicit mention of Bash or Linux shell equivalents. The documentation does not provide parity for Linux users in terms of examples or tooling references.
Recommendations:
  • Provide code examples in cross-platform languages such as Python or Node.js, or include Bash/curl command-line snippets alongside C#.
  • When referencing Azure CLI, clarify that it is cross-platform and provide explicit Bash/Linux shell usage examples.
  • Avoid listing PowerShell before CLI or at least mention both equally, with examples for each.
  • Include explicit instructions or notes for Linux/macOS users where relevant, such as file system paths or shell commands.
  • Where SDKs or APIs are referenced, link to language-agnostic or multi-language documentation.

Page-Level Analysis

Windows First Powershell Heavy Missing Linux Example
Summary:
The documentation provides both Azure CLI and Azure PowerShell examples for managing IP filters, but the PowerShell section is given equal prominence to the CLI, and no explicit Linux or cross-platform shell examples (such as Bash or curl for REST) are provided. The UI instructions reference 'your computer's IP address' without clarifying platform differences, and screenshots are from the Azure Portal, which is platform-agnostic. However, the scripting examples are limited to Windows-centric tools (PowerShell) and the Azure CLI (which is cross-platform but not shown in a Linux-specific context), with no mention of Linux-native tools or workflows.
Recommendations:
  • Add explicit Bash or shell examples for Linux users, especially for REST API usage (e.g., using curl).
  • Clarify that Azure CLI commands work identically on Linux, macOS, and Windows, and consider showing CLI output in a Linux terminal context.
  • If possible, provide examples using common Linux text processing tools (jq, grep) when parsing JSON output.
  • Mention that PowerShell Core is cross-platform, but also offer native Linux alternatives for users who may not use PowerShell.
  • Ensure that references to 'your computer's IP address' include notes for how to find this on both Windows and Linux/macOS.

Page-Level Analysis

Windows First Powershell Heavy
Summary:
The documentation provides both Bash/OpenSSL and PowerShell examples for certificate creation and verification, but in the 'Verify certificate manually after upload' section, the PowerShell script is mentioned first, followed by Bash and OpenSSL. This ordering subtly prioritizes Windows tooling. Additionally, the explicit mention of a 'PowerShell script supplied by Microsoft' as the first option, with Bash and OpenSSL as alternatives, reflects a mild Windows-first and PowerShell-heavy bias. However, Linux tooling (Bash/OpenSSL) is well represented and not omitted.
Recommendations:
  • Present Bash/OpenSSL and PowerShell examples in parallel or randomize their order to avoid implying a default platform.
  • Explicitly state that all methods are equally supported and that users should choose the one that fits their environment.
  • Where possible, provide cross-platform scripts or note any platform-specific limitations.
  • Ensure that Linux-first or neutral ordering is used in at least some sections, especially in cross-platform documentation.

Page-Level Analysis

Windows First Missing Linux Example Windows Tools
Summary:
The documentation page demonstrates a Windows bias in the 'Run a sample application' section, where instructions and commands are provided specifically for Windows environments (Visual Studio, .cmd commands, .exe output), with only a brief mention that other environments are possible and a link to external documentation for Linux or cross-platform builds. There are no explicit Linux or macOS build/run instructions, and Windows tools (Visual Studio, Visual Studio Code) are referenced first and in detail.
Recommendations:
  • Add explicit Linux and macOS instructions for building and running the C SDK sample, including required dependencies (e.g., gcc/clang, make, cmake) and terminal commands.
  • Provide example shell commands (bash) for cloning, building, and running the sample on Linux/macOS, alongside the Windows .cmd examples.
  • Mention cross-platform editors (such as VS Code, which is already referenced) and provide parity in instructions for both Windows and Linux/macOS users.
  • Where Windows-specific tools (Visual Studio, .exe) are mentioned, add equivalent alternatives for Linux/macOS (e.g., gcc, ./iothub_ll_telemetry_sample).
  • Consider reordering or parallelizing instructions so that Windows and Linux/macOS steps are presented together, rather than Windows-first.

Page-Level Analysis

Powershell Heavy
Summary:
The documentation is generally cross-platform, focusing on the Azure Portal and Azure CLI, both of which are available on Windows, Linux, and macOS. However, there are multiple explicit tips for PowerShell users regarding escaping double quotes, but no equivalent guidance for Linux/macOS shells (e.g., Bash). This may cause confusion for non-Windows users and suggests a subtle PowerShell/Windows bias.
Recommendations:
  • Add equivalent shell escaping tips for Bash (Linux/macOS) users wherever PowerShell-specific tips are given. For example, show how to escape quotes in Bash: --tags '{"country":"US"}' or --tags '{"country":"US"}' (as appropriate).
  • Wherever PowerShell-specific instructions are provided, include a parallel note for Bash users.
  • Consider a short section or callout on cross-platform shell differences when using Azure CLI, especially for JSON arguments.
  • Review all CLI examples to ensure they work as-is in Bash and PowerShell, or provide both variants if needed.

Page-Level Analysis

Windows First Powershell Heavy Windows Tools
Summary:
The documentation shows some Windows bias, particularly in the .NET/C# section, where Windows (ETW and PowerShell scripts) is described first and in more detail, with Linux instructions following. The Windows approach uses specialized tools (ETW, PowerShell scripts), while the Linux approach uses a more generic tool (dotnet-trace). There is also a slight bias in the Java example, where the log file path uses a Windows-style path (c/temp/logs) without a Linux alternative.
Recommendations:
  • Present Linux and Windows instructions in parallel or in a consistent order (e.g., alphabetical or by usage share), rather than always listing Windows first.
  • Ensure that Linux tooling is described with equal detail and prominence as Windows tools (e.g., provide troubleshooting tips, links, and context for dotnet-trace similar to ETW).
  • Avoid using Windows-centric paths (e.g., 'c/temp/logs') in cross-platform examples; instead, provide both Windows and Linux path examples or use neutral paths.
  • Where possible, mention cross-platform tools and approaches before platform-specific ones.
  • If PowerShell scripts are provided for Windows, consider providing equivalent Bash scripts for Linux where feasible.

Page-Level Analysis

Windows Tools Windows First Missing Linux Example
Summary:
The documentation page demonstrates a mild Windows bias by referencing Windows-centric tools and workflows, such as Visual Studio Code and C# SDK examples, without providing equivalent Linux or cross-platform alternatives. The only code sample for decoding messages refers to a C# method, and the monitoring tip suggests using the Visual Studio Code extension, which is more commonly associated with Windows development. There are no explicit Linux or cross-platform code examples for tasks like decoding messages or monitoring the IoT Hub, and the documentation does not mention Linux-specific tools or workflows.
Recommendations:
  • Provide code examples for decoding messages in cross-platform languages such as Python or Bash, in addition to the C# example.
  • Mention and provide instructions for using cross-platform editors and tools (e.g., VS Code is cross-platform, but clarify this and suggest alternatives like Vim, nano, or CLI-based monitoring tools).
  • Include Linux-specific instructions or tips for tasks such as downloading and viewing files, decoding base64/UTF-8 messages using command-line utilities (e.g., base64, iconv, cat).
  • When referencing SDK samples, link to equivalent samples in other languages (e.g., Python, Node.js) that are popular on Linux.
  • Explicitly state that all Azure CLI commands work on Linux, macOS, and Windows, and provide any OS-specific caveats if needed.

Page-Level Analysis

Windows First Missing Linux Example
Summary:
The documentation assumes a Windows development environment by default, provides only Windows (cmd) commands for setting environment variables and running commands, and does not include equivalent Linux/bash examples. While it mentions that steps can be performed on Linux, it does not provide explicit Linux instructions or command syntax, which may hinder Linux users.
Recommendations:
  • Provide Linux/bash equivalents for all command-line instructions, especially for setting environment variables (e.g., export VAR=value).
  • When showing command-line examples, present both Windows (cmd) and Linux (bash) commands side by side or in tabs.
  • Avoid language such as 'the steps in this article assume a Windows development machine' unless absolutely necessary; instead, state that instructions are cross-platform and provide both sets of commands.
  • Explicitly mention any OS-specific differences in steps, tools, or behaviors.
  • Include screenshots or references to popular Linux editors or terminals where relevant, not just Visual Studio Code.

Page-Level Analysis

Windows First Powershell Heavy
Summary:
The documentation generally presents a cross-platform workflow using the Azure CLI and Cloud Shell, which are available on both Windows and Linux. However, there are subtle indications of Windows bias: Windows tools (Windows Terminal) are mentioned before Linux equivalents, and PowerShell is given equal or slightly more prominence than Bash in some sections. Additionally, PowerShell-specific command syntax is included, but there is no mention of Linux-specific shells or issues. There are no Linux-specific examples or troubleshooting notes, and the guidance for local CLI use references Windows tools first.
Recommendations:
  • When mentioning local CLI usage, list both Windows Terminal and common Linux terminals (e.g., GNOME Terminal, Konsole) to avoid Windows-first bias.
  • Include troubleshooting notes or tips for common Linux shell issues (e.g., line endings, permissions) alongside PowerShell notes.
  • When presenting command syntax differences, ensure Bash (or other Unix shells) are given equal or first prominence, and clarify that PowerShell is just one of several options.
  • Explicitly state that all commands work on both Windows and Linux, and provide links to platform-specific installation or usage guides where relevant.
  • Consider adding a brief section or callout for Linux/macOS users, especially when discussing local CLI installation or environment setup.

Page-Level Analysis

Windows Tools Windows First
Summary:
The documentation references Azure PowerShell as a configuration option alongside Azure CLI and the Azure portal, which may indicate a slight Windows bias by explicitly mentioning a Windows-centric tool. Additionally, PowerShell is mentioned after CLI and portal, but its inclusion without mention of Bash or Linux-native tools could suggest a subtle preference for Windows environments.
Recommendations:
  • Explicitly mention that Azure CLI is cross-platform and works on Linux, macOS, and Windows.
  • If referencing PowerShell, clarify that PowerShell Core is also available cross-platform, or provide Bash/Linux shell equivalents where appropriate.
  • Consider including examples or links for configuring file upload using Bash scripts or Linux-native tools, if available.
  • Ensure that all referenced tooling is clearly marked as cross-platform or provide alternatives for Linux users.

Page-Level Analysis

Windows Tools Powershell Heavy Windows First
Summary:
The documentation page demonstrates a mild Windows bias. While the main device management instructions are provided for both the Azure Portal (web-based, cross-platform) and Azure CLI (cross-platform), the 'Other tools' section highlights PowerShell commands and Visual Studio Code (which, while cross-platform, is often associated with Windows development) before mentioning the REST API. There are no explicit Linux-specific tools or examples, and PowerShell is called out as a management option without mentioning Bash or Linux-native scripting alternatives. No Linux-specific patterns or package managers are referenced, and there is no mention of Linux shell scripting for automation.
Recommendations:
  • Add explicit mention of Bash scripting or Linux shell automation as alternatives to PowerShell for device management, especially when using the Azure CLI.
  • In the 'Other tools' section, balance the mention of PowerShell with references to Bash or shell scripting, and clarify that Azure CLI commands work natively on Linux and macOS.
  • Provide example scripts or automation snippets in Bash alongside any PowerShell examples.
  • When listing tools, avoid listing Windows-centric tools (like PowerShell) first, or group cross-platform tools together and clarify their OS compatibility.
  • Consider including a note or section on managing IoT Hub devices from Linux environments, including package installation tips for the Azure CLI on Linux.

Page-Level Analysis

Windows First Windows Tools
Summary:
The documentation references configuration via Azure portal, Azure CLI, and PowerShell, listing PowerShell as a primary method alongside CLI and portal. PowerShell is a Windows-centric tool, and its mention alongside CLI (which is cross-platform) without explicitly noting Linux alternatives or parity may indicate a subtle Windows bias. However, the documentation does not provide any OS-specific command-line examples, nor does it show preference for Windows-only SDKs or scripting languages. The SDK examples are language-based and not OS-specific. There are no explicit PowerShell-heavy examples or missing Linux examples, but the inclusion of PowerShell as a main configuration tool and its mention before management APIs could be seen as a mild Windows-first bias.
Recommendations:
  • Clarify that Azure CLI is cross-platform and can be used on Linux, macOS, and Windows.
  • If mentioning PowerShell, also mention Bash or shell scripting as alternatives for Linux users, or clarify that PowerShell Core is available cross-platform.
  • Consider listing Azure CLI before PowerShell, as CLI is more universally accessible.
  • Provide explicit notes or links for Linux/macOS users where configuration steps may differ, or confirm that all steps are OS-agnostic.
  • Ensure that all code/configuration examples are presented in a way that is not OS-specific, or provide parallel examples for both Windows (PowerShell) and Linux (Bash/CLI) where relevant.

Page-Level Analysis

Windows First Powershell Heavy Missing Linux Example
Summary:
The documentation page demonstrates subtle Windows bias, particularly in the section about assigning roles for Cosmos DB access. It explicitly mentions Azure PowerShell and Azure CLI as required tools for role assignment, listing PowerShell before CLI. There are no explicit Linux or cross-platform command examples, and the only code sample is in C#, a language more commonly associated with Windows development. No Linux-specific tools or shell examples are provided, and there is no mention of Bash or other cross-platform scripting environments.
Recommendations:
  • When referencing command-line tools, list Azure CLI before PowerShell, as CLI is cross-platform and more commonly used on Linux.
  • Provide explicit Bash or shell command examples alongside PowerShell where relevant, especially for role assignments or scripting.
  • Include code samples in languages popular on Linux (e.g., Python, Node.js) in addition to or instead of C#.
  • Clarify that all management operations can be performed from Linux, macOS, or Windows, and provide links to cross-platform tool documentation.
  • Avoid language or ordering that implies Windows-first workflows; ensure parity in tool and example coverage.

Page-Level Analysis

Windows First Powershell Heavy Windows Tools
Summary:
The documentation page shows some Windows bias in the .NET/C# section: Windows/PowerShell/ETW instructions are presented before Linux/dotnet-trace instructions, and the Windows workflow is described in more detail, including specific PowerShell scripts and links to Windows-specific tools. There is also a focus on Event Tracing for Windows (ETW) and PowerShell, which are not cross-platform. Other language sections (Java, Python, Node.js, Embedded C) are generally OS-neutral or provide examples that work on both Windows and Linux.
Recommendations:
  • Present Linux and Windows instructions in parallel or in a more balanced order (e.g., 'On Windows' and 'On Linux' subsections, or a table).
  • Ensure equal detail and prominence for Linux tooling (e.g., provide as much explanation for dotnet-trace as for ETW/PowerShell).
  • Where possible, mention cross-platform tools first, or highlight them as preferred for portability.
  • Add explicit notes about how to perform similar actions on macOS, if supported.
  • Avoid assuming PowerShell or ETW are the default or primary mechanisms; clarify their OS specificity.
  • Where Windows file paths or conventions are shown (e.g., in Java logging config), provide Linux equivalents or note differences.

Page-Level Analysis

Missing Linux Example Windows Tools Powershell Heavy
Summary:
The documentation is heavily focused on C# and the .NET SDK, with all code samples in C#. There is an implicit Windows bias due to exclusive use of .NET tooling, references to NuGet, and lack of examples or guidance for Linux users or those using other languages/platforms (e.g., Python, Node.js, CLI, or Bash). There are no explicit PowerShell or Windows command-line examples, but the .NET/C# focus and absence of Linux/CLI alternatives create a Windows-centric experience.
Recommendations:
  • Provide equivalent examples using the Azure CLI and/or Azure PowerShell, which are cross-platform, to show how to perform import/export operations without C# code.
  • Include code samples in other popular languages supported by the Azure IoT SDK (e.g., Python, Node.js) to broaden platform inclusivity.
  • Add instructions for generating SAS tokens and managing blob storage using Bash scripts or CLI commands, not just C#.
  • Mention how to install and use the required SDKs and tools on Linux and macOS, not just via NuGet.
  • Reference cross-platform tools and patterns (such as VS Code, Docker, or containerized workflows) where appropriate.
  • Explicitly state that the .NET SDK and code samples are cross-platform, and provide links or notes for Linux/macOS users.

Page-Level Analysis

Windows First Powershell Heavy Missing Linux Example
Summary:
The documentation lists Azure PowerShell as a primary method for configuring message enrichments, alongside Azure CLI and Portal, but does not mention or provide examples for Linux-specific tools or workflows. The order of methods places PowerShell before any Linux-native alternatives, and there are no explicit Linux/Bash examples or clarifications about cross-platform compatibility. This may give the impression of a Windows-centric approach.
Recommendations:
  • Explicitly state that Azure CLI is cross-platform and works on Linux, macOS, and Windows.
  • Provide example commands for both Azure CLI (with Bash syntax) and PowerShell, making it clear which is suitable for Linux users.
  • Consider listing Azure CLI before PowerShell in tables or lists, as CLI is more universal.
  • Add a note or section clarifying that all features are accessible from Linux environments, and link to any relevant Linux setup guides.
  • If possible, include screenshots or walkthroughs from a Linux terminal in tutorials.

Page-Level Analysis

Windows First Missing Linux Example Windows Tools
Summary:
The documentation page demonstrates a Windows bias by exclusively referencing Visual Studio (a Windows-centric tool) for creating U-SQL projects, without mentioning or providing alternatives for Linux users. There are no Linux-specific instructions or examples for setting up or running the workflow, and the only development environment mentioned is Visual Studio. No cross-platform or command-line alternatives are suggested.
Recommendations:
  • Include instructions for creating and running U-SQL scripts using Azure Data Lake Tools for Visual Studio Code, which is available on Linux, or via the Azure Portal.
  • Provide command-line examples using Azure CLI or PowerShell Core (which is cross-platform) for uploading DLLs and submitting U-SQL jobs.
  • Explicitly mention cross-platform options for each step, especially for development environments and tooling.
  • Add screenshots or walkthroughs for Linux/macOS users where applicable.
  • Reference documentation or guides for setting up the required environment on Linux.

Page-Level Analysis

Windows First Missing Linux Example
Summary:
The documentation page provides examples of SDK version strings that only reference Windows platforms (e.g., 'Windows_NT', 'Microsoft Windows'), and .NET/Node.js SDKs running on Windows. No Linux or macOS examples are shown, and there are no CLI or shell examples for Linux users. The only code samples are Kusto queries, which are platform-neutral, but where platform-specific output is shown, only Windows is mentioned.
Recommendations:
  • When showing SDK version strings, include examples for Linux and macOS platforms (e.g., Ubuntu, Debian, macOS) alongside Windows.
  • If referencing .NET or Node.js SDKs, show example sdkVersion outputs for those SDKs running on Linux (e.g., '.NET/1.21.2 (.NET Core 3.1; Ubuntu 20.04; X64)').
  • Where screenshots or instructions reference the Azure portal, consider adding notes or links for equivalent Azure CLI or az commands, which are cross-platform.
  • Explicitly state that the monitoring and logging features are available and supported on all major platforms, not just Windows.
  • If referencing sample code or Event Hubs client samples, include links to Linux/macOS compatible samples (e.g., Python, Java, or Node.js) in addition to .NET.

Page-Level Analysis

Windows First Powershell Heavy
Summary:
The documentation generally avoids strong Windows bias, providing OpenSSL/bash examples for certificate operations. However, in the 'Verify certificate manually after upload' section, the PowerShell script is mentioned before the Bash script, and the PowerShell script is described as 'supplied by Microsoft' (implying official support), which may suggest a Windows-first approach. Additionally, the presence of a dedicated PowerShell script, but not a corresponding Linux-native tool, could be seen as a subtle bias toward Windows environments.
Recommendations:
  • Present Bash and PowerShell script options in parallel, or alternate their order in different sections to avoid always listing Windows tools first.
  • Clarify that both Bash and PowerShell scripts are officially supported and available, and provide equal prominence to both.
  • Where possible, provide explicit Linux-native (e.g., shell/CLI) alternatives for all certificate management tasks, not just OpenSSL commands.
  • Consider adding a table or section summarizing all available tooling (PowerShell, Bash, OpenSSL) for both Windows and Linux users, with clear guidance on when to use each.

Page-Level Analysis

Windows First Powershell Heavy
Summary:
The documentation provides both Azure CLI and Azure PowerShell examples for managing IP filters, but PowerShell (a Windows-centric tool) is given its own dedicated section after the CLI. There are no Linux- or macOS-specific command-line or scripting examples, and no mention of platform differences or cross-platform considerations. The Azure CLI examples are cross-platform, but PowerShell is highlighted separately, which may suggest a Windows bias.
Recommendations:
  • Clarify that Azure CLI commands work on Windows, Linux, and macOS, and explicitly mention this cross-platform compatibility.
  • If including a dedicated PowerShell section, consider also including a Bash scripting example for Linux/macOS users, or at least acknowledge that PowerShell Core is available cross-platform.
  • Add a note or section about managing IP filters using Bash or other common Linux tools, if applicable.
  • Ensure screenshots and UI instructions are not Windows-specific (e.g., avoid showing only Windows browser or OS UI elements).
  • Where PowerShell is mentioned, clarify if the instructions are for Windows PowerShell or cross-platform PowerShell Core.

Page-Level Analysis

Missing Linux Example Windows Tools Windows First
Summary:
The documentation is heavily oriented toward Windows development, specifically using Visual Studio and .NET. All examples and setup instructions assume the use of Visual Studio (a Windows-centric IDE) and do not provide alternative instructions or examples for Linux users or those using cross-platform tools. There are no Linux or cross-platform code samples, nor are there instructions for using .NET Core/SDK on Linux, VS Code, or command-line alternatives. The only non-Windows-specific command is the OpenSSL example for certificate creation.
Recommendations:
  • Provide equivalent instructions for Linux users, such as using .NET SDK and VS Code or command-line tools instead of Visual Studio.
  • Include code samples and project setup steps for .NET Core/SDK on Linux and macOS.
  • Add instructions for installing the Azure IoT Hub SDK using the .NET CLI (dotnet add package) rather than only NuGet Package Manager in Visual Studio.
  • Clarify that the .NET SDK and Azure IoT Hub client libraries are cross-platform and provide explicit Linux/macOS guidance.
  • Consider including bash or shell commands for building and running the sample app on Linux.
  • Ensure screenshots and UI steps are supplemented with command-line alternatives where possible.

Page-Level Analysis

Powershell Heavy Windows Tools Windows First
Summary:
The documentation page is generally cross-platform, focusing on the Azure portal and Azure CLI, both of which are available on Windows, Linux, and macOS. However, there are subtle signs of Windows bias: PowerShell-specific tips are included, and Windows Terminal is mentioned as an example app for Cloud Shell. There are no Linux- or macOS-specific shell tips or examples, and no mention of Linux terminals or shell environments. The PowerShell escaping tip is repeated, but no equivalent bash/zsh guidance is provided.
Recommendations:
  • Add bash/zsh shell escaping tips alongside PowerShell tips, especially for JSON quoting and escaping.
  • When mentioning terminal applications (e.g., Windows Terminal), also mention common Linux (e.g., GNOME Terminal, Konsole) and macOS (Terminal.app, iTerm2) terminals.
  • Explicitly state that the Azure CLI commands work on Linux, macOS, and Windows, and provide example shell commands for both bash and PowerShell where quoting/escaping differs.
  • If providing PowerShell-specific notes, provide equivalent notes for bash/zsh users.
  • Consider including a short section or tip for Linux/macOS users regarding common pitfalls or differences in command-line usage.

Page-Level Analysis

Windows First Powershell Heavy
Summary:
The documentation demonstrates mild Windows bias by referencing Windows-specific tools (Windows Terminal) before Linux equivalents, and by providing PowerShell-specific guidance and examples. Although Bash is presented as the default environment, PowerShell is mentioned frequently, and special instructions are given for PowerShell users, with no equivalent Linux-specific notes. There are no missing Linux examples, but the ordering and emphasis slightly favor Windows users.
Recommendations:
  • When referencing local CLI usage, mention both Windows Terminal and common Linux terminals (e.g., GNOME Terminal, Konsole) equally, or use neutral language such as 'terminal application'.
  • When providing notes about command syntax differences, include explicit examples for both Bash (Linux/macOS) and PowerShell (Windows), and clarify which applies to which OS.
  • Where PowerShell-specific escaping or syntax is discussed, consider also mentioning any common Linux shell issues or tips, to provide parity.
  • Ensure that screenshots and UI references (such as Cloud Shell) are not visually or descriptively biased toward Windows environments.
  • In the prerequisites, clarify that the Azure CLI can be installed and used on Windows, Linux, and macOS, and provide links or notes for all platforms.

Page-Level Analysis

Windows First Missing Linux Example
Summary:
The documentation assumes a Windows development environment throughout, with all command-line examples (such as setting environment variables and running commands) given in Windows CMD syntax only. There are no Linux or macOS shell equivalents provided for setting environment variables or running the app, despite a brief mention that the steps can be performed on Linux. This creates a Windows-first bias and leaves Linux users without clear guidance for key steps.
Recommendations:
  • For every command-line example (e.g., setting environment variables, running npm commands, git commands), provide both Windows CMD and Linux/macOS shell (bash) equivalents, either side-by-side or in clearly marked tabs/sections.
  • In the prerequisites, explicitly mention that the tutorial is cross-platform and provide links or notes for installing Node.js and Git on Linux/macOS.
  • When referencing file navigation or editors, avoid Windows-specific terminology or provide Linux/macOS alternatives (e.g., mention 'your terminal' instead of 'command window').
  • In the App Service section, clarify how to deploy to both Windows and Linux App Service plans, and provide Linux-specific az CLI examples where relevant.
  • Add troubleshooting tips for common Linux/macOS issues (e.g., permissions, environment variable syntax, npm differences).

Page-Level Analysis

Windows First Windows Tools Missing Linux Example
Summary:
The documentation page demonstrates a subtle Windows bias by referencing Visual Studio Code (a Microsoft tool popular on Windows), providing code samples and tips that assume use of the Azure CLI (which is cross-platform but often associated with Windows), and offering a C#/.NET code sample for message decoding without mentioning Linux-native tools or alternatives. There are no explicit Linux or macOS-specific instructions or examples, and the only code-based decoding example is in C# (commonly used on Windows), with no mention of how to perform the same task using Linux command-line tools or scripts.
Recommendations:
  • Provide equivalent Linux/macOS command-line examples for tasks such as decoding base64/UTF-8 messages (e.g., using bash, base64, and iconv commands).
  • Mention and link to cross-platform or Linux-native editors (such as VS Code Insiders on Linux, Vim, or nano) when suggesting tools for monitoring IoT Hub messages.
  • Include a code snippet or command-line example for decoding the message file using common Linux tools (e.g., cat, base64, iconv) in addition to the C# example.
  • Clarify that the Azure CLI is cross-platform and works on Linux/macOS, and provide any necessary installation or troubleshooting tips for those platforms.
  • Balance references to Visual Studio Code with alternatives or explicitly state its availability on Linux/macOS.

Page-Level Analysis

Windows First Windows Tools Powershell Heavy Missing Linux Example
Summary:
The documentation demonstrates a Windows-first bias in several ways: instructions for setting environment variables and running commands are presented with Windows examples first and in more detail, references to Windows-specific tools (such as Notepad and Visual Studio) are made without equivalent Linux alternatives, and command-line instructions for running the sample application are described primarily in the context of Windows command prompts. While Linux equivalents are sometimes mentioned, they are often secondary and less detailed. There is also a lack of Linux-specific troubleshooting or tool recommendations, and no mention of Linux-native editors or shells beyond a brief 'export' example.
Recommendations:
  • Present Linux and Windows instructions in parallel, or alternate which comes first to avoid implicit prioritization.
  • Include Linux-native tool recommendations (e.g., gedit, nano, vim) alongside Notepad and Visual Studio.
  • Provide explicit instructions for running the sample application in Linux shells (e.g., bash, zsh), including how to set environment variables and execute dotnet commands.
  • Add troubleshooting tips for common Linux issues (e.g., file permissions, dependency installation).
  • Reference cross-platform editors (e.g., VS Code) more prominently and clarify that all steps can be performed on Linux.
  • Ensure screenshots and UI instructions are not Windows-centric, or provide Linux equivalents where possible.
  • Where Visual Studio is mentioned, also mention Visual Studio Code or JetBrains Rider as cross-platform alternatives.

Page-Level Analysis

Missing Linux Example Windows Tools Windows First
Summary:
The documentation provides instructions for using the Azure portal and Azure CLI, which are cross-platform. However, the only code sample for simulating a device is a .NET console application (SimulatedDevice), which is Windows-centric by default and lacks explicit Linux instructions or alternatives. There are no examples using Linux-native tools (such as Python, Bash, or MQTT CLI clients), and the documentation assumes familiarity with Windows development patterns. The sample path and instructions (e.g., `/iot-hub/Tutorials/Routing/SimulatedDevice/` and editing `Program.cs`) are also more familiar to Windows/.NET users.
Recommendations:
  • Provide a Linux-native example for simulating device messages, such as using Python, Bash, or an MQTT CLI tool (e.g., mosquitto_pub).
  • Explicitly mention that the .NET sample can be run on Linux using .NET Core, and provide installation instructions if needed.
  • Include file path examples and instructions that are platform-agnostic or show both Windows and Linux path formats.
  • Offer alternative code samples in other languages commonly used on Linux (e.g., Python, Node.js) for sending device messages.
  • Clarify that the Azure CLI commands work on all platforms and, if any step is platform-specific, provide equivalent instructions for both Windows and Linux.

Page-Level Analysis

Windows First Windows Tools
Summary:
The documentation demonstrates a mild Windows bias by referencing Windows-specific tools and patterns before their Linux equivalents. For example, it recommends using Git Bash (a Windows tool) for OpenSSL access and provides Windows-specific instructions (e.g., 'winpty') before Linux ones in code tabs. The prerequisites and notes also focus on Windows installation paths and environment variables, with less emphasis on native Linux environments. However, Linux parity is generally maintained through side-by-side command examples.
Recommendations:
  • Present Linux-native instructions and tools before or alongside Windows-specific ones, rather than defaulting to Windows-first.
  • Clarify that Git Bash is primarily a Windows solution and provide explicit instructions for native Linux/macOS terminals.
  • In the prerequisites, mention Linux package managers (e.g., apt, yum, dnf) for OpenSSL installation, not just Windows installation methods.
  • Avoid assuming the use of Git Bash for all platforms; instead, refer to 'terminal' or 'shell' generically, and specify platform-specific instructions only where necessary.
  • Ensure that all environment variable and path instructions are cross-platform, or provide separate guidance for Linux/macOS.
  • Where possible, provide PowerShell and Bash script examples side-by-side, or clarify when a script is platform-specific.

Page-Level Analysis

Powershell Heavy Windows Tools Windows First
Summary:
The documentation references PowerShell and Visual Studio Code (VS Code) as alternative tools for managing device identities, both of which are commonly associated with Windows environments. PowerShell is mentioned explicitly, and VS Code is referenced with an Azure IoT Hub extension, which may be more familiar to Windows users. The 'Other tools' section lists PowerShell before REST API, which is platform-neutral. However, the main how-to instructions use the Azure CLI, which is cross-platform, and there are no explicit Windows-only command examples or screenshots. There are no Linux-specific tools or workflows mentioned, nor are there any Linux-first examples or troubleshooting tips.
Recommendations:
  • Add explicit mention and examples of using the Azure CLI on Linux/macOS, including any OS-specific considerations (e.g., installation, permissions, shell differences).
  • If referencing PowerShell, clarify that PowerShell Core is cross-platform and provide Linux/macOS usage notes or examples.
  • Include alternative Linux-native tools or scripts (e.g., Bash scripts, curl commands for REST API usage) where appropriate.
  • Balance the order of tool mentions in the 'Other tools' section by listing REST API or CLI before PowerShell, or grouping them by platform neutrality.
  • Consider adding troubleshooting or environment setup notes for Linux users, especially for certificate management and CLI usage.

Page-Level Analysis

Missing Linux Example Windows Tools Windows First
Summary:
The documentation page demonstrates a Windows bias by referencing only Windows-based tools and workflows, such as Visual Studio Code and the .NET/C# SDK, without providing equivalent Linux or cross-platform alternatives. The code example for message decoding is given exclusively in C# and references a Windows-style file path. There are no explicit Linux or cross-platform code samples or instructions for viewing or decoding the stored messages, and the guidance for opening downloaded files assumes a Windows environment.
Recommendations:
  • Provide equivalent code samples for Linux users, such as Python or Bash scripts, for decoding and reading the stored messages.
  • Reference cross-platform editors (e.g., VS Code, Vim, nano) and provide instructions for both Windows and Linux environments.
  • When mentioning file paths or actions like 'double-click', include Linux alternatives (e.g., using cat, less, or xdg-open).
  • Include explicit instructions for Linux users on how to download, locate, and open the files, and how to decode the messages using common Linux tools.
  • If referencing SDKs, mention and link to cross-platform SDKs (e.g., Azure IoT SDK for Python or Node.js) alongside .NET/C#.

Page-Level Analysis

Windows First Powershell Heavy Windows Tools
Summary:
The documentation demonstrates a Windows-first bias in the .NET/C# section by presenting Windows/PowerShell/ETW instructions before Linux/dotnet-trace equivalents. It also references Windows-specific tools (Event Tracing for Windows, PowerShell scripts) and provides more detailed, step-by-step instructions for Windows users. Linux instructions are present but appear after the Windows section, and the Windows approach is given more prominence.
Recommendations:
  • Present Linux and Windows instructions in parallel or in a unified table, rather than listing Windows first.
  • Ensure both platforms receive equally detailed, step-by-step instructions and troubleshooting notes.
  • Where possible, use cross-platform tools or highlight them first if available.
  • Avoid referencing Windows-only tools (like ETW and PowerShell scripts) without offering equivalent Linux-native alternatives or context.
  • Explicitly state platform support in each section and avoid implying Windows is the default or primary environment.

Page-Level Analysis

Windows Tools Windows First
Summary:
The documentation references Azure PowerShell as a configuration method alongside Azure CLI and the Azure portal, which can indicate a Windows bias, especially since PowerShell is traditionally associated with Windows environments. Additionally, the order of listing (portal, CLI, PowerShell) puts PowerShell before any mention of Linux-native tools or workflows. There are no explicit Linux-only examples or mentions of Linux-specific tools, and no indication that the examples or instructions are cross-platform.
Recommendations:
  • Clarify that Azure CLI is cross-platform and can be used on Linux, macOS, and Windows.
  • If referencing PowerShell, note that PowerShell Core is also available on Linux and macOS, or provide equivalent Bash shell commands where appropriate.
  • Add explicit Linux/macOS instructions or examples, especially for command-line configuration steps.
  • Consider reordering the configuration methods to list the Azure CLI before PowerShell, as CLI is more commonly used in Linux environments.
  • Where possible, include notes or callouts about cross-platform compatibility for all tools and SDKs mentioned.

Page-Level Analysis

Windows First Powershell Heavy
Summary:
The documentation provides both Azure CLI and PowerShell examples for deploying Resource Manager templates, but PowerShell is given equal prominence to CLI, and Windows-style file paths (e.g., my\path\to\template.json) are used in examples. There are no explicit Linux shell or Bash-specific examples, and PowerShell is highlighted as a primary method alongside CLI, which may indicate a slight Windows bias. However, the use of Azure CLI, which is cross-platform, helps mitigate this bias.
Recommendations:
  • Use POSIX-style (Linux/macOS) file paths (e.g., my/path/to/template.json) in CLI examples, or provide both Windows and Linux path variants.
  • Explicitly mention that Azure CLI commands work on Linux, macOS, and Windows, and provide Bash shell examples where appropriate.
  • If PowerShell is shown, consider also showing Bash or sh equivalents for common tasks, especially for scripting or automation.
  • Clarify in the prerequisites or deployment sections that all steps can be performed on Linux, macOS, or Windows, and link to platform-specific setup guides if needed.
  • Where file uploads or downloads are discussed (e.g., in Azure Cloud Shell), mention any differences in file navigation or commands between Windows and Linux environments.

Page-Level Analysis

Missing Linux Example Windows Tools Windows First
Summary:
The documentation page demonstrates a bias toward Windows by exclusively providing C#/.NET code samples, referencing the Microsoft Azure IoT SDK for .NET, and assuming the use of Windows-centric development tools and workflows. There are no examples or guidance for Linux users, alternative SDKs (such as Python or Node.js), or cross-platform command-line usage. The instructions for obtaining connection strings and managing resources are tailored to the Azure Portal UI, which is more commonly used on Windows, and there is no mention of Azure CLI or Powershell alternatives for Linux/macOS users.
Recommendations:
  • Provide code samples using cross-platform SDKs, such as Python or Node.js, in addition to C#/.NET.
  • Include instructions and examples for performing import/export operations using the Azure CLI, which is available on all platforms.
  • Explicitly mention that the SDK and examples can be used on Linux and macOS, and provide setup instructions for those environments.
  • Add guidance for obtaining connection strings and managing resources using command-line tools (Azure CLI, az commands) rather than only through the Azure Portal.
  • Where possible, avoid referencing Windows-specific tools or workflows, or provide Linux/macOS equivalents alongside them.

Page-Level Analysis

Windows Tools Windows First
Summary:
The documentation references Windows-specific tools (PowerShell) alongside cross-platform options (Azure CLI and portal), but lists PowerShell before mentioning management APIs. There are no explicit Linux or Bash examples, and no mention of Linux-specific tools or shell environments. The documentation does not provide parity in example commands or tooling guidance for Linux users, potentially making it less approachable for non-Windows users.
Recommendations:
  • When listing configuration options, mention cross-platform tools (Azure CLI) before Windows-specific tools (PowerShell), or group them together without preference.
  • Explicitly state that Azure CLI and the portal are cross-platform and suitable for Linux, macOS, and Windows.
  • Provide example commands for both Azure CLI (Bash/shell) and PowerShell where appropriate.
  • Include a note or section highlighting Linux compatibility and any Linux-specific considerations.
  • Ensure parity in code snippets and walkthroughs for both Windows and Linux environments.

Page-Level Analysis

Windows First Missing Linux Example Windows Tools
Summary:
The documentation page demonstrates a Windows bias in the 'Run a sample application' section, where instructions for building and running the Azure IoT C SDK are provided only for Windows (using Visual Studio, Windows command prompt, and .exe executables). There are no equivalent Linux or macOS build/run instructions, and Windows-specific tools and patterns (e.g., Visual Studio, .exe output) are mentioned exclusively or before any cross-platform alternatives.
Recommendations:
  • Provide parallel instructions for building and running the C SDK sample on Linux and macOS, including required dependencies (e.g., gcc/clang, make, cmake) and example shell commands.
  • Mention and demonstrate use of cross-platform editors and tools (e.g., VS Code, nano, vim) alongside Windows-specific ones.
  • Show Linux/macOS terminal commands (e.g., bash shell, ./iothub_ll_telemetry_sample) in addition to Windows command prompt examples.
  • Clarify that the SDK and distributed tracing features are cross-platform, and link directly to Linux/macOS-specific build guides where appropriate.
  • Avoid assuming Visual Studio or Windows as the default development environment; present all supported platforms equally.

Page-Level Analysis

Windows First Powershell Heavy Missing Linux Example
Summary:
The documentation provides both Azure CLI and Azure PowerShell examples for managing IP filters, but the PowerShell section is given equal prominence to the CLI, and there are no explicit Linux or Bash shell examples. The CLI examples are cross-platform, but there is no mention of Linux-specific considerations, nor are there any screenshots or instructions referencing Linux environments. The PowerShell section assumes familiarity with Windows tooling, and there are no alternative examples for Linux users who might use Bash scripting or other shell environments.
Recommendations:
  • Explicitly mention that Azure CLI commands work on Linux, macOS, and Windows, and provide example shell prompts (e.g., $ for Bash) to reinforce cross-platform compatibility.
  • Add a short Bash script example for retrieving and updating IP filters using Azure CLI, demonstrating piping and jq for JSON parsing if needed.
  • Clarify that PowerShell examples are primarily for Windows users, and suggest alternatives for Linux users (e.g., Bash with Azure CLI).
  • Include at least one screenshot or terminal snippet from a Linux environment to visually reinforce parity.
  • If there are any platform-specific caveats (such as differences in CLI installation or authentication), mention them in a dedicated section.

Page-Level Analysis

Windows First Missing Linux Example
Summary:
The documentation assumes a Windows development environment throughout, with all command-line examples (e.g., setting environment variables, running commands) shown only in Windows CMD syntax. There are no explicit Linux or cross-platform shell equivalents provided for key steps such as setting environment variables or running the app. The instructions and screenshots reference Windows tools and patterns first, and do not offer parity for Linux or macOS users.
Recommendations:
  • For every command-line example (e.g., setting environment variables, running npm commands, git commands), provide both Windows CMD and Linux/macOS (bash/zsh) equivalents, clearly labeled.
  • In the 'Configure environment variables' section, add Linux/macOS export commands (e.g., export IotHubConnectionString=...) alongside the Windows set commands.
  • When referencing file navigation or editors, use neutral language (e.g., 'your preferred editor') and avoid screenshots or instructions that are Windows-specific unless alternatives are also shown.
  • Where App Service plans are discussed, give equal prominence to Linux hosting options, not just mentioning them as an aside.
  • Add a note or table at the start of the tutorial summarizing which commands to use for Windows vs. Linux/macOS.
  • Include troubleshooting steps relevant to Linux/macOS environments (e.g., checking environment variables, npm/node issues on Unix-like systems).

Page-Level Analysis

Powershell Heavy
Summary:
The documentation is generally cross-platform, focusing on the Azure Portal and Azure CLI, both of which are available on Windows and Linux. However, there are repeated PowerShell-specific tips for escaping double quotes, which are only relevant to Windows users. There are no Linux- or Bash-specific examples or tips, and no mention of Linux tools or shell patterns.
Recommendations:
  • Add Bash/Linux shell equivalents for escaping quotes in CLI commands, e.g., show how to use single quotes or proper escaping in Bash.
  • Include a note or example for Linux/macOS users on how to handle JSON strings in CLI commands.
  • Balance PowerShell-specific tips with Bash-specific tips to ensure parity.
  • Explicitly state that the Azure CLI commands work cross-platform and provide any OS-specific caveats where relevant.

Page-Level Analysis

Windows First Powershell Heavy Windows Tools
Summary:
The documentation lists Azure CLI and Azure PowerShell as command-line methods for configuring message enrichments, with PowerShell (a Windows-centric tool) given equal prominence to Azure CLI. There are no explicit Linux/bash examples or mention of Linux-native tools. The ordering of methods (Portal, Azure CLI, Azure PowerShell) is neutral, but the inclusion of PowerShell without Linux/bash parity and the lack of Linux-specific guidance or examples suggests a subtle Windows bias.
Recommendations:
  • Add explicit bash/Linux shell examples for configuring message enrichments using Azure CLI.
  • Clarify that Azure CLI is cross-platform and provide example commands for both Windows (cmd/PowerShell) and Linux/macOS (bash/zsh).
  • If PowerShell is mentioned, also mention Linux-native shells to ensure parity.
  • Consider reordering the command-line methods to list Azure CLI before PowerShell, as CLI is more cross-platform.
  • Explicitly state that all features are available on Linux and macOS, not just Windows.

Page-Level Analysis

Windows First Powershell Heavy Windows Tools Missing Linux Example
Summary:
The documentation demonstrates a Windows bias in several ways: instructions for setting environment variables and running commands are presented with Windows examples first, and in greater detail. Steps for running the sample application reference Windows-specific tools (such as NotePad and Visual Studio) and workflows (like using the command prompt and .sln files), with only brief or secondary mention of Linux equivalents. The Linux instructions for setting environment variables are present but less emphasized, and there are no examples for running the sample on Linux terminals or using Linux-native editors/IDEs. The overall workflow assumes familiarity with Windows tools and patterns, and lacks parity in Linux-focused guidance.
Recommendations:
  • Present Linux and Windows instructions in parallel, or alternate which comes first in each section.
  • Provide equivalent Linux command-line examples for running the sample application, including using bash/zsh and common Linux editors (e.g., nano, vim, gedit) instead of only Visual Studio/NotePad.
  • Include instructions for running the sample in popular Linux IDEs (e.g., VS Code on Linux, JetBrains Rider) and clarify that .NET Core is cross-platform.
  • Expand environment variable setup instructions for Linux, including how to persist variables in shell profiles.
  • Avoid referencing Windows-only tools (like NotePad) without Linux alternatives.
  • Add troubleshooting tips relevant to Linux environments (e.g., permissions, shell differences).
  • Ensure screenshots and UI references are not Windows-centric, or provide Linux equivalents where applicable.

Page-Level Analysis

Missing Linux Example Windows Tools Windows First
Summary:
The documentation is heavily oriented toward Windows development, specifically using Visual Studio and .NET. All code examples and setup instructions assume a Windows environment, with no mention of Linux-compatible tools, editors, or workflows. There are no Linux or cross-platform code samples, and the only development environment referenced is Visual Studio, which is primarily a Windows tool.
Recommendations:
  • Add parallel instructions for Linux users, such as using VS Code or JetBrains Rider, and include relevant terminal commands.
  • Provide .NET CLI commands for project creation, dependency installation, and running the app, which work cross-platform.
  • Include code snippets and instructions for running the sample on Linux/macOS, including any required dependencies or environment setup.
  • Mention and link to cross-platform SDKs and editors earlier in the prerequisites section.
  • Where screenshots are used, consider including those from cross-platform editors (e.g., VS Code) or clarify that the steps are similar in other environments.

Page-Level Analysis

Windows First Missing Linux Example
Summary:
The documentation page primarily describes Azure IoT Hub monitoring using the Azure portal and platform-agnostic tools (Kusto queries, Log Analytics, Event Grid), with no explicit command-line examples. However, in the 'SDK version in IoT Hub logs' section, all sample SDK version strings shown are from Windows environments (e.g., 'Windows_NT', 'Microsoft Windows'), and no Linux or macOS examples are provided. There are no PowerShell or Windows-specific tool instructions, but the absence of Linux/macOS examples and the exclusive use of Windows in SDK version samples indicate a subtle Windows-first bias.
Recommendations:
  • Include SDK version log examples from Linux and macOS environments (e.g., show sample sdkVersion strings from devices running on Ubuntu, Debian, or macOS).
  • When showing sample log outputs or properties, provide a mix of OS platforms to reflect cross-platform usage.
  • If referencing tutorials or external samples (such as Event Hubs client samples), ensure that links or instructions are available for both Windows and Linux environments.
  • Explicitly mention that the monitoring and logging features are platform-agnostic, and provide guidance or screenshots from non-Windows environments where relevant.

Page-Level Analysis

Windows First Windows Tools Missing Linux Example
Summary:
The documentation demonstrates a subtle Windows bias by referencing Visual Studio Code (a Microsoft tool popular on Windows), providing .NET/C# code samples, and suggesting the use of Windows-centric tools and workflows. There are no explicit Linux or cross-platform command-line examples for tasks like decoding messages, and the only code sample for message decoding is in C#. The instructions for downloading and opening files assume a GUI file explorer, which is more typical for Windows users, and there are no alternative instructions for Linux or macOS users.
Recommendations:
  • Include cross-platform or Linux-specific instructions for tasks such as decoding base64/UTF-8 messages (e.g., using Python or command-line tools like base64 and iconv).
  • Provide alternative examples for downloading and opening files using command-line tools (e.g., wget, curl, cat, base64) suitable for Linux/macOS users.
  • Reference code samples in other languages (such as Python or Node.js) in addition to C#/.NET, especially for common IoT SDK tasks.
  • When suggesting tools like Visual Studio Code, mention that it is available cross-platform and provide alternatives (e.g., Vim, nano, or other editors) for Linux users.
  • Explicitly state that all Azure CLI commands work on Linux, macOS, and Windows, and avoid language that assumes a Windows environment.

Page-Level Analysis

Windows First Powershell Heavy
Summary:
The documentation generally maintains cross-platform parity by focusing on the Azure CLI and Cloud Shell, which are available on both Windows and Linux. However, there are subtle signs of Windows bias: Windows tools (e.g., Windows Terminal) are mentioned before Linux equivalents, and PowerShell is given special attention, including dedicated notes and command variants, while Linux shells are not similarly highlighted. There are no Linux-specific examples or troubleshooting notes, and the documentation does not mention Linux terminals or tools by name.
Recommendations:
  • When referencing local CLI usage, mention both Windows Terminal and common Linux terminals (e.g., GNOME Terminal, Konsole, xterm) to reinforce cross-platform support.
  • Provide equal attention to Bash and PowerShell, including troubleshooting notes or command variants for Bash where relevant (not just PowerShell).
  • Add explicit statements or notes confirming that all examples work identically on Linux, macOS, and Windows, or highlight any differences.
  • Include screenshots or references to Linux environments where possible, not just Windows-based visuals.
  • If mentioning PowerShell-specific syntax (e.g., JSON escaping), consider also noting any Bash-specific tips or common issues.

Page-Level Analysis

Windows First Powershell Heavy
Summary:
The documentation is generally cross-platform and uses OpenSSL (a cross-platform tool) and Bash shell commands for most certificate operations, which is favorable for Linux users. However, in the 'Verify certificate manually after upload' section, the PowerShell script option is listed first, and the Bash script is mentioned second. This ordering, along with explicit mention of PowerShell, subtly prioritizes Windows workflows. There is also a reference to a PowerShell script 'supplied by Microsoft' without a corresponding mention of a native Linux tool or parity in script support.
Recommendations:
  • List Bash/Linux examples before or alongside PowerShell/Windows examples to avoid implying Windows is the primary or preferred platform.
  • Ensure that any scripts or tools supplied by Microsoft for Windows (e.g., PowerShell scripts) have equivalent, well-documented Linux/Bash versions, and mention them equally.
  • Explicitly state that all steps can be performed on both Windows and Linux, and clarify any platform-specific requirements.
  • Where possible, provide cross-platform scripts (e.g., in Python or as Docker containers) to further reduce platform bias.
  • Review future documentation to ensure that Windows-specific tools or workflows are not given priority unless there is a technical reason.

Page-Level Analysis

Missing Linux Example Windows Tools
Summary:
The documentation provides instructions for using the Azure Portal (web-based, cross-platform) and Azure CLI (cross-platform), but the only code sample for simulating device messages is a .NET console application (SimulatedDevice), which is Windows-centric by default. There are no examples or guidance for running the simulated device on Linux or using other common cross-platform languages/tools (such as Python). The documentation also references editing and running a C# file (Program.cs), which assumes a Windows development environment or familiarity with .NET tooling.
Recommendations:
  • Provide alternative simulated device code samples in a cross-platform language such as Python or Node.js, and include instructions for running them on Linux.
  • Explicitly mention that the .NET sample can be run on Linux using .NET Core, and provide installation instructions or a link.
  • Add a note or section for Linux/macOS users, clarifying any differences or prerequisites for running the sample code.
  • Consider including Bash shell examples alongside Azure CLI commands, especially for variable setting and environment preparation.
  • Reference or link to official cross-platform SDKs and samples for Azure IoT Hub, highlighting their compatibility with Linux.

Page-Level Analysis

Windows First Powershell Heavy Missing Linux Example
Summary:
The documentation demonstrates a moderate Windows bias. While it primarily uses Azure CLI (which is cross-platform), several subtle cues and omissions indicate a Windows-centric approach: the use of Windows command prompt syntax (e.g., 'cmd/sh'), references to local command lines without clarifying cross-platform differences, and the exclusive use of .NET/C# for the simulated device sample. There are no explicit Linux or macOS-specific instructions, nor are there alternative code samples or troubleshooting notes for non-Windows environments. The tutorial assumes familiarity with Windows tools and patterns, and does not address potential differences in file paths, shell syntax, or package management on Linux/macOS.
Recommendations:
  • Explicitly state that Azure CLI commands work on Windows, Linux, and macOS, and provide example shell commands for both Bash (Linux/macOS) and PowerShell/Command Prompt (Windows) where syntax differs.
  • Include a note or section for Linux/macOS users regarding any environment-specific prerequisites or differences (e.g., file paths, shell commands, package installation).
  • Offer alternative device simulation samples in Python or Node.js, which are more commonly used on Linux/macOS, or at least link to such samples.
  • Clarify in the 'Run the simulated device app' section how to build and run the .NET sample on Linux/macOS, including any required dependencies or troubleshooting tips.
  • Where screenshots or navigation steps are shown, note any UI differences that may appear on non-Windows platforms (if applicable).
  • Avoid using 'cmd/sh' as a command block language; instead, specify 'bash' or 'powershell' as appropriate, or provide both variants.

Page-Level Analysis

Missing Linux Example Windows Tools
Summary:
The documentation demonstrates a bias towards Windows by only providing .NET (C#) sample code, which is most commonly associated with Windows environments, and by referencing Azure IoT Explorer, a GUI tool that is only officially available for Windows and Mac. There are no Linux-specific code samples, nor are there instructions for sending device telemetry using cross-platform or Linux-native tools (such as Python, Node.js, or command-line utilities like mosquitto_pub). The tutorial assumes the user is comfortable with .NET and does not mention or link to equivalent SDKs or instructions for Linux users.
Recommendations:
  • Provide sample code and instructions using cross-platform SDKs, such as Python or Node.js, which are popular and well-supported on Linux.
  • Include explicit instructions or examples for sending device telemetry using command-line tools available on Linux (e.g., mosquitto_pub for MQTT).
  • Mention and link to the Azure IoT SDKs for other languages (Python, JavaScript, Java, C) and show how to run the sample on Linux.
  • Clarify the availability of Azure IoT Explorer on Linux, and if not available, suggest alternative methods (such as using the Azure CLI or other open-source tools) for monitoring device messages.
  • Add a note in the prerequisites and sample code sections that the tutorial is cross-platform, and provide any necessary Linux-specific setup steps (e.g., installing .NET Core on Linux, or using a different SDK).

Page-Level Analysis

Windows First Windows Tools
Summary:
The documentation demonstrates a mild Windows bias by consistently referencing Windows-specific tools and workflows before their Linux equivalents. For example, it recommends using Git Bash (a Windows tool) to access OpenSSL, and provides Windows-specific instructions and notes before Linux ones. The documentation assumes a Windows environment in several prerequisite and setup steps, and only later provides Linux alternatives. However, both Windows and Linux command examples are ultimately provided, and OpenSSL (a cross-platform tool) is used throughout.
Recommendations:
  • Present Linux and Windows instructions in parallel or in a neutral order, rather than listing Windows first.
  • In the prerequisites, clarify that OpenSSL and Git are available natively on Linux/macOS, and that Git Bash is primarily needed for Windows users.
  • Avoid assuming the use of Git Bash for all users; suggest native terminals for Linux/macOS.
  • Explicitly mention macOS support and provide corresponding instructions where applicable.
  • Where possible, use cross-platform language and tools, and avoid Windows-centric terminology unless necessary.
  • In notes and recommendations, avoid defaulting to Windows-specific advice (e.g., 'unless you're familiar with OpenSSL and it's already installed on your Windows machine...'). Instead, provide equivalent guidance for all platforms.