Skip to content
Open
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
2 changes: 1 addition & 1 deletion .mega-linter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ ENABLE_LINTERS:
- MARKDOWN_MARKDOWNLINT
- MARKDOWN_MARKDOWN_TABLE_FORMATTER
- SPELL_CSPELL
- SPELL_LYCHEE
- YAML_PRETTIER
- YAML_YAMLLINT
- SPELL_LYCHEE

SPELL_CSPELL_DISABLE_ERRORS: true
SHOW_ELAPSED_TIME: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ items:
The process for design reviews should be documented and available
to the whole team from the outset of the project. This story is to
explicitly document that process in the team's [working
agreement](https://microsoft.github.io/code-with-engineering-playbook/agile-development/team-agreements/working-agreements/readme/)
agreement](https://microsoft.github.io/code-with-engineering-playbook/agile-development/team-agreements/working-agreement/)
acceptanceCriteria:
- Design review process is well-documented within the working
agreement
Expand Down
2 changes: 1 addition & 1 deletion .projector/workItemTemplates/kubernetes-at-the-edge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ items:
description: Some container networking interfaces are only supported on certain OSes. There may also be special networking requirements
- name: Evaluate CNI options
type: task
description: Calico provides a full networking stack but support on Windows has some limitations (https://docs.projectcalico.org/getting-started/windows-calico/limitations)
description: Calico provides a full networking stack but support on Windows has some limitations (https://docs.tigera.io/calico/latest/getting-started/kubernetes/windows-calico/limitations)
- name: As a cluster operator, I want to ensure the network design does not interfere with application networking requirements so that applications can function properly on the cluster
type: story
acceptanceCriteria:
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ If you are unsure if your content will match this playbook, you are welcome to c
## General guidance

- Quality is more important than quantity
- Write in a way that you would want someone else to explain something to you. Use [`plain english`](http://www.plainenglish.co.uk/how-to-write-in-plain-english.html)
- Write in a way that you would want someone else to explain something to you. Use [`plain language`](https://www.plainlanguage.gov/)
- Be friendly, technical, professional and concise
- Communicate as engineers, not marketing; we want to share what we learned, not "sell" our ideas
- Don't recreate introductory content, link to it
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ With its cloud-based infrastructure, GitHub Codespaces presents a highly efficie

### Visual Studio Live Share

[Visual Studio Live Share](https://code.visualstudio.com/learn/collaboration/live-share) is specifically designed for pair programming and enables you to work on the same codebase, in real-time, with your team members. The arduous process of configuring complex setups, grappling with confusing configurations, straining one's eyes to work on small screens, or physically switching keyboards is not a problem with LiveShare. This solution enables seamless sharing of your development environment with your team members, facilitating smooth collaborative coding experiences.
[Visual Studio Live Share](https://learn.microsoft.com/en-us/visualstudio/liveshare/) is specifically designed for pair programming and enables you to work on the same codebase, in real-time, with your team members. The arduous process of configuring complex setups, grappling with confusing configurations, straining one's eyes to work on small screens, or physically switching keyboards is not a problem with LiveShare. This solution enables seamless sharing of your development environment with your team members, facilitating smooth collaborative coding experiences.

Fully integrated into Visual Studio Code and Visual Studio, LiveShare offers the added benefit of terminal sharing, debug session collaboration, and host machine control. When paired with GitHub Codespaces, it presents a potent tool set for effective pair programming.

Expand All @@ -29,6 +29,6 @@ Fully integrated into Visual Studio Code and Visual Studio, LiveShare offers the
## Resources

* [GitHub Codespaces](https://code.visualstudio.com/docs/remote/codespaces).
* [VSCode Live Share](https://code.visualstudio.com/learn/collaboration/live-share).
* [VSCode Live Share](https://learn.microsoft.com/en-us/visualstudio/liveshare/).
* [Create a Dev Container](https://code.visualstudio.com/docs/devcontainers/create-dev-container).
* [How companies have optimized the humble office water cooler](https://www.inverse.com/innovation/how-companies-have-optimized-the-humble-office-water-cooler).
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ Some organizations prefer running probes on existing infrastructure using known
- [Application Insights availability](https://learn.microsoft.com/en-us/azure/azure-monitor/app/monitor-web-app-availability) - Simple availability tests that allow some customization using [Multi-step web test](https://learn.microsoft.com/en-us/azure/azure-monitor/app/availability-multistep)
- [DataDog Synthetics](https://www.datadoghq.com/dg/apm/synthetics/api-test/)
- [Dynatrace Synthetic Monitoring](https://www.dynatrace.com/platform/synthetic-monitoring/)
- [New Relic Synthetics](https://newrelic.com/products/synthetics)
- [New Relic Synthetics](https://newrelic.com/synthetics)
- [Checkly](https://checklyhq.com)

## Conclusion
Expand Down
2 changes: 1 addition & 1 deletion docs/code-reviews/recipes/java.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Developers should follow the [Google Java Style Guide](https://google.github.io/

We strongly believe that consistent style increases readability and maintainability of a code base. Hence, we are recommending analyzers to enforce consistency and style rules.

We make use of [Checkstyle](https://github.com/checkstyle/checkstyle) using the [same configuration used in the Azure Java SDK](https://github.com/Azure/azure-sdk-for-java/blob/master/eng/code-quality-reports/src/main/resources/checkstyle/checkstyle.xml).
We make use of [Checkstyle](https://github.com/checkstyle/checkstyle) using the [same configuration used in the Azure Java SDK](https://github.com/Azure/azure-sdk-for-java/tree/main/eng/code-quality-reports).

[FindBugs](http://findbugs.sourceforge.net/) and [PMD](https://pmd.github.io/) are also commonly used.

Expand Down
2 changes: 1 addition & 1 deletion docs/code-reviews/recipes/markdown.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ Save your guidelines together with your documentation, so they are easy to refer
- Use active voice
- Spell check and grammar check the text
- Always follow chronological order
- Visit [Plain English](https://plainenglish.co.uk/how-to-write-in-plain-english.html) for tips on how to write documentation that is easy to understand.
- Visit [Plain Language](https://www.plainlanguage.gov/) for tips on how to write documentation that is easy to understand.

### Document Organization

Expand Down
2 changes: 1 addition & 1 deletion docs/design/diagram-types/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ Each of the above types of diagrams will provide specific resources related to i
- [Visual Paradigm UML Structural vs Behavior Diagrams](https://www.visual-paradigm.com/cn/guide/uml-unified-modeling-language/uml-)
- [PlantUML](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) - requires a generator from code to PlantUML syntax to generate diagrams
- [C# to PlantUML](https://marketplace.visualstudio.com/items?itemName=pierre3.csharp-to-plantuml)
- [Drawing manually](https://towardsdatascience.com/drawing-a-uml-diagram-in-the-vs-code-53c2e67deffe)
- [Drawing manually](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml)
2 changes: 1 addition & 1 deletion docs/design/diagram-types/class-diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ the customer hand-off approaches.
- [PlantUML](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) - requires a generator from code to PlantUML syntax to generate diagrams
- [PlantUML Syntax](https://plantuml.com/class-diagram)
- [C# to PlantUML](https://marketplace.visualstudio.com/items?itemName=pierre3.csharp-to-plantuml)
- [Drawing manually](https://towardsdatascience.com/drawing-a-uml-diagram-in-the-vs-code-53c2e67deffe)
- [Drawing manually](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml)
2 changes: 1 addition & 1 deletion docs/design/diagram-types/component-diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,4 @@ Depending on the tool being used, automatic versioning might be performed whenev
- VS Code Plugins:
- [PlantUML](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) - requires a generator from code to PlantUML syntax to generate diagrams
- [PlantUML Syntax](https://plantuml.com/component-diagram)
- [Drawing manually](https://towardsdatascience.com/drawing-a-uml-diagram-in-the-vs-code-53c2e67deffe)
- [Drawing manually](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml)
2 changes: 1 addition & 1 deletion docs/design/diagram-types/deployment-diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,4 @@ The below approach can be used to assist the team on how often to update the pub
- [Visual Paradigm](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-deployment-diagram/)
- [PlantUML](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) - requires a generator from code to PlantUML syntax to generate diagrams
- [PlantUML Syntax](https://plantuml.com/deployment-diagram)
- [Drawing manually](https://towardsdatascience.com/drawing-a-uml-diagram-in-the-vs-code-53c2e67deffe)
- [Drawing manually](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml)
2 changes: 1 addition & 1 deletion docs/design/diagram-types/sequence-diagrams.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,4 @@ the customer hand-off approaches.
- VS Code Plugins:
- [PlantUML](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) - requires a generator from code to PlantUML syntax to generate diagrams
- [PlantUML Syntax](https://plantuml.com/sequence-diagram)
- [Drawing manually](https://towardsdatascience.com/drawing-a-uml-diagram-in-the-vs-code-53c2e67deffe)
- [Drawing manually](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml)
2 changes: 1 addition & 1 deletion docs/design/sustainability/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ If there are important nuances to consider, they will be linked in the `Disclaim
| | | Consider caching data close to end users with a [CDN](https://en.wikipedia.org/wiki/Content_delivery_network) | [Networking](./sustainable-engineering-principles.md#networking) | [Benefits of a CDN](https://docs.microsoft.com/en-us/azure/frontdoor/front-door-overview#key-benefits) | [Understanding CDN tradeoffs](./sustainable-action-disclaimers.md#action-consider-caching-data-close-to-end-users-with-a-CDN) |
| | | Send only the data that will be used | [Networking](./sustainable-engineering-principles.md#networking) | | |
| | | Compress data to reduce the size | [Networking](./sustainable-engineering-principles.md#networking) | [Compressing and extracting files in .NET](https://docs.microsoft.com/en-us/dotnet/standard/io/how-to-compress-and-extract-files) | |
| | When designing for the end user | Consider giving users visibility and control over their energy usage | [Electricity Consumption](./sustainable-engineering-principles.md#electricity-consumption) [Demand Shaping](./sustainable-engineering-principles.md#demand-shaping) | [Designing for eco-mode](https://principles.green/principles/demand-shaping/#heading-eco-modes) | |
| | When designing for the end user | Consider giving users visibility and control over their energy usage | [Electricity Consumption](./sustainable-engineering-principles.md#electricity-consumption) [Demand Shaping](./sustainable-engineering-principles.md#demand-shaping) | [Designing for eco-mode](https://learn.greensoftware.foundation/carbon-awareness/) | |
| | | Design and test your application to be compatible for a wide variety of devices, especially older devices | [Embodied Carbon](./sustainable-engineering-principles.md#embodied-carbon) | [Extending device lifespan](https://medium.com/google-design/to-make-apps-accessible-make-them-compatible-with-different-devices-11298c6d3f06) [Compatibility Testing](https://www.techdim.com/what-is-compatibility-testing/) | |
| | When selecting a programming language | Consider the energy efficiency of languages | [Electricity Consumption](./sustainable-engineering-principles.md#electricity-consumption) | [Reasoning about the energy consumption of programming languages](https://thenewstack.io/which-programming-languages-use-the-least-electricity/), [Programming Language Energy Efficiency (PDF)](https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf) | [Making informed programming language choices](./sustainable-action-disclaimers.md#action-consider-the-energy-efficiency-of-languages) |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,27 +8,25 @@ Most electricity is still produced through the burning of fossil fuels and is re

Software consumes electricity in its execution. Running hardware consumes electricity even at zero percent utilization. Some of the best ways we can reduce electricity consumption and the subsequent emissions of carbon pollution is to make our applications more energy efficient when they are running and limit idle hardware.

## [Energy Proportionality](https://principles.green/principles/energy-proportionality/)

![Illustrative graph showing a computer at 0% utilization draws 100 Watts, at 50% utilization it draws 180 Watts and at 100% utilization it draws 200 Watts. The relationship between power consumption and utilization is not linear and it does not cross the origin.](https://principles.green/assets/images/principles/energy-proportionality-1.png?v=e5febc24f5d4d4930ad43de3686aa856)
## [Energy Proportionality](https://learn.greensoftware.foundation/energy-efficiency/)

The relationship between power and utilization is not proportional.

The more you utilize a computer, the more efficient it becomes at converting electricity to useful computing operations. Running your work on as few servers as possible with the highest utilization rate maximizes their energy efficiency.

An idle computer, even running at zero percent utilization, still draws electricity.

## [Embodied Carbon](https://principles.green/principles/embodied-carbon/)
## [Embodied Carbon](https://learn.greensoftware.foundation/hardware-efficiency/)

Embodied carbon (otherwise referred to as "Embedded Carbon") is the amount of carbon pollution emitted during the creation and disposal of a device. When calculating the total carbon pollution for the computers running your software, account for both the carbon pollution to run the computer and the embodied carbon of the computer. Therefore a great way to reduce embodied carbon is to prevent the need for new devices to be manufactured by extending the usefulness of existing ones.

## [Demand Shaping](https://principles.green/principles/demand-shaping/)
## [Demand Shaping](https://learn.greensoftware.foundation/carbon-awareness/)

Demand shaping is a strategy of shaping our demand for resources so it matches the existing supply.

If supply is high, increase the demand by doing more in your applications. If the supply is low, decrease demand. This means doing less in your applications or delaying work until supply is higher.

## [Networking](https://principles.green/principles/networking/)
## [Networking](https://learn.greensoftware.foundation/)

A network is a series of switches, routers, and servers. All the computers and network equipment in a network consume electricity and have [embedded carbon](#embodied-carbon). The internet is a global network of devices typically run off the standard local grid energy mix.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-experience/client-app-inner-loop.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ This approach also enables full fidelity integration testing without spinning up

### Stub / Fake Services

Lower fidelity approaches run stub services, that could be generated from API specs, or run fake servers like JsonServer ([JsonServer.io: A fake json server API Service for prototyping and testing.](https://www.jsonserver.io/)) or Postman. All these services would respond with predetermined and configured JSON messages.
Lower fidelity approaches run stub services, that could be generated from API specs, or run fake servers like JsonServer ([json-server: A fake REST API service for prototyping and testing.](https://github.com/typicode/json-server)) or Postman. All these services would respond with predetermined and configured JSON messages.

## How to Decide

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ both have the responsibility to help projects follow the guidelines outlined on
Developers working on ISE projects should implement best practices and guidance on handling data throughout the project phases. This page is not meant to suggest how customers should handle data in their environment. **It does not override**:

- [Microsoft's Information Security Policy](https://aka.ms/CTRMSsecppext)
- [Limited Data Protection Addendum](https://aka.ms/mpsldpa)
- [Limited Data Protection Addendum](https://download.microsoft.com/download/a/0/2/a0220b6f-a934-4f78-9128-6368af308985/Microsoft%20Professional%20Services%20Limited%20DPA%20-%20Sept%202022.pdf)
- [Professional Services Data Protection Addendum](https://www.microsoft.com/licensing/docs/view/Microsoft-Products-and-Services-Data-Protection-Addendum-DPA)

## 5 W's of Data Handling
Expand Down
Loading
Loading