Development Lifecycle
Planning and Requirements
- Azure DevOps Boards: For agile project management, backlog tracking, and sprint planning.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/Tools/Azure%20DevOps/Azure%20main%20services/azureboards/intro
Development
IDE
-
Visual Studio: For full-stack projects combining C# and JavaScript.
-
Visual Studio Code: Lightweight and highly popular for JavaScript/TypeScript.
Version Control
- Git via GitHub or Azure Repos: For source control and collaboration.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/Practices/Version%20control/practicesversioncontrol
Package Management
-
Nuget: Package manager for .NET. It enables developers to create, share, and consume useful .NET libraries.
-
npm (Node Package Manager): For managing JavaScript libraries and dependencies.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/Practices/Artifacts%20management/practicesartifacts
Code Collaboration
- Pull Requests: For code reviews and collaboration.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/Tools/GitHub/githubcodereview
AI Code Assistants
- GitHub Copilot: an AI-powered code assistant that helps developers write code faster by providing context-aware suggestions and completions directly within their IDE.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/Tools/GitHub/GitHubCopilot
Testing
The test pyramid is a guide for balancing automated tests: lots of fast and reliable unit tests at the base, fewer integration tests in the middle, and minimal, slower end-to-end tests at the top to ensure efficient and robust software testing.
Read more on Microsoft Learn: https://learn.microsoft.com/en-us/training/modules/visual-studio-test-concepts/
Unit Testing
-
Moq: For mocking dependencies in unit tests.
-
FluentAssertions: Library for writing expressive assertions.
Integration Testing
- Entity Framework Core In-Memory Database: Simulates a database for testing data layers.
Performance Testing
-
BenchmarkDotNet: Powerful library for microbenchmarking .NET code.
-
dotTrace: JetBrains tool for performance profiling and bottleneck analysis.
-
PerfView: Lightweight tool for CPU and memory performance investigations.
-
Application Insights: Azure's integrated tool for monitoring app performance.
-
Visual Studio Profiler: Built-in profiler to analyze .NET app performance.
Load Testing
- Apache JMeter: Popular open-source tool for simulating heavy loads on servers.
Acceptance Testing
- SpecFlow: BDD framework for creating executable specifications using Gherkin syntax.
UI Testing
-
Selenium: Industry-standard tool for browser-based UI automation testing.
-
Playwright for .NET: Cutting-edge browser automation tool for end-to-end UI testing.
Static Code Analysis and Quality
Static Code Analysis
- SonarCloud: To enforce coding standards and ensure code quality.
Code Formatters
- Built-in .editorconfig support in Visual Studio for consistent code formatting.
Read more on Microsoft Learn: https://learn.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2022
Build and Integration
Build Pipelines
-
Azure DevOps Pipelines: CI/CD for automating builds and deployments.
-
GitHub Actions: For lightweight CI workflows integrated into GitHub.
Dependency Management
- Azure Artifacts: A cloud-based package management service for hosting, sharing, and managing dependencies in Azure DevOps.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/Practices/Artifacts%20management/practicesartifacts
Deployment
-
Azure Pipelines/CD: Automates deployment to Azure environments.
-
Bicep Templates: Infrastructure-as-code tools for provisioning Azure resources.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/Tools/Azure%20DevOps/Azure%20main%20services/azurepipelines/gettingstarted
Monitoring and Observability
-
Azure Monitor: For performance monitoring and diagnostics.
-
Application Insights: For application performance management (APM).
-
Log Analytics: For querying logs.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/Practices/Observability/practicesobservability
Read more on Microsoft Learn: https://learn.microsoft.com/en-us/azure/azure-monitor/logs/log-analytics-overview
Security and Compliance
- GitHub Advanced Security: For scanning code for vulnerabilities.
Read more on JTI DevOps Platform: https://devops.jti.com/docs/DevSecOps/about
Documentation and Knowledge Sharing
-
GitHub Wikis or Azure DevOps Wikis: For project documentation.
-
Markdown: The preferred format for creating lightweight documentation.
-
Docusaurus: An open-source framework for building modern, customizable documentation websites with ease.
-
D2 Diagrams: A text-based diagramming tool for creating and version-controlling diagrams with real-time rendering.