Here are comprehensive examples of Azure Landing Zone naming conventions, based on Microsoft’s Cloud Adoption Framework (CAF) best practices:
General Principles
- Length: Keep names under 24 characters when possible
- Consistency: Use the same convention across all resources
- Readability: Use hyphens (-) for separation (not underscores)
- Lowercase: Most Azure resources require lowercase names
- Avoid: Special characters, spaces, reserved words
Naming Convention Structure
text
{prefix}-{environment}-{region}-{resource type}-{instance}-{suffix}
Common Abbreviations
- Env: dev, test, stg/staging, prod, mgmt
- Region: eus (East US), weu (West Europe), uks (UK South)
- Resource Types:
- rg = Resource Group
- vnet = Virtual Network
- vm = Virtual Machine
- sa = Storage Account
- kv = Key Vault
- nsg = Network Security Group
- pip = Public IP
- nic = Network Interface Card
Core Landing Zone Components Examples
- Management Groups
text
– contoso-root
– contoso-landingzones
– contoso-platform
– contoso-decommissioned
– contoso-sandbox
- Subscriptions
text
– sub-platform-hub-prod-001
– sub-platform-spoke-prod-001
– sub-landingzone-app1-prod-001
– sub-landingzone-shared-dev-001
– sub-connectivity-prod-001
– sub-management-prod-001
- Resource Groups
text
– rg-network-hub-prod-weu-001
– rg-identity-prod-weu-001
– rg-security-prod-weu-001
– rg-monitoring-prod-weu-001
– rg-sharedservices-prod-weu-001
– rg-app1-frontend-prod-weu-001
- Networking
Virtual Networks:
text
– vnet-hub-prod-weu-001
– vnet-spoke-app1-prod-weu-001
– vnet-spoke-data-prod-weu-001
Subnets:
text
– snet-hub-gateway-prod-weu-001 (10.1.0.0/27)
– snet-hub-firewall-prod-weu-001 (10.1.0.32/27)
– snet-spoke-app1-frontend-prod-weu-001 (10.2.0.0/24)
– snet-spoke-app1-backend-prod-weu-001 (10.2.1.0/24)
Network Security Groups:
text
– nsg-hub-gateway-prod-weu-001
– nsg-spoke-app1-frontend-prod-weu-001
- Identity & Security
Key Vaults:
text
– kv-identity-prod-weu-001
– kv-app1-prod-weu-001
– kv-shared-prod-weu-001
Azure AD Applications:
text
– app-spn-app1-prod
– app-managed-id-app1-prod
- Storage
Storage Accounts:
text
– stalogsprodweu001 (Note: storage accounts have stricter naming)
– stadiagnosticsprodweu001
– staterraformstateprodweu001
- Monitoring
Log Analytics Workspace:
text
– law-monitoring-prod-weu-001
Application Insights:
text
– appi-app1-prod-weu-001
- Virtual Machines
text
– vm-app1-web01-prod-weu-001
– vm-app1-sql01-prod-weu-001
– vm-bastion01-prod-weu-001
- Azure Kubernetes Service
text
– aks-app1-prod-weu-001
– acr-app1-prod-weu-001
- Database Services
text
– sql-app1-prod-weu-001
– cosmosdb-app1-prod-weu-001
Environment-Specific Examples
Development Environment:
text
– rg-app1-frontend-dev-weu-001
– vnet-spoke-app1-dev-weu-001
– kv-app1-dev-weu-001
Production Environment:
text
– rg-app1-frontend-prod-weu-001
– vnet-spoke-app1-prod-weu-001
– kv-app1-prod-weu-001
Special Considerations
Global Resources (no region suffix):
text
– contoso.onmicrosoft.com (Azure AD tenant)
– contoso.com (Custom domain)
– trafficmanager-prod-001 (Traffic Manager)
Policy Definitions:
text
– policy-deploy-vnet-ddos-standard
– policy-enforce-tls-ssl
– policy-allowed-vm-skus
Tags (for consistent tagging):
text
– Department: “Finance”
– CostCenter: “12345”
– DataClassification: “Confidential”
– ApplicationOwner: “team@contoso.com”
Automation Templates
When using Infrastructure as Code (Terraform/Bicep/ARM):
bison
variables:
prefix: “contoso”
environment: “prod”
region: “weu”
application: “app1”
resource_name: “${var.prefix}-${var.environment}-${var.region}-${resource_type}-${var.application}-001”
Key Recommendations
- Start with a naming standard document and get stakeholder buy-in
- Use Azure Policy to enforce naming conventions
- Consider resource naming constraints (some have unique requirements)
- Document exceptions to the standard
- Review and update conventions periodically
This structure provides clarity, enables automation, and helps with cost management and security governance across your Azure Landing Zone.
Give me examples of Azure DevOps naming conventions
Azure DevOps Naming Conventions
General Principles
- Consistency: Use the same conventions across projects
- Clarity: Names should be self-explanatory
- Lowercase: Use lowercase with hyphens for most artifacts
- Avoid: Special characters, spaces, reserved words
- Organizations & Projects
Organization Naming:
text
– contoso-devops
– fabrikam-engineering
– northwind-corp
– tailwindtraders-ado
Project Naming:
text
– platform-engineering
– product-ecommerce
– infrastructure-cloud
– data-analytics
– mobile-app-ios
– api-gateway
– shared-services
– security-compliance
Project Structure Examples:
text
# By Product Line
– project-retail-web
– project-retail-mobile
– project-retail-api
# By Team Structure
– team-blue-frontend
– team-blue-backend
– team-blue-data
# By Environment Focus
– project-platform-ops
– project-app-dev
– project-data-engineering
- Repositories
Repository Naming Patterns:
text
# Application Code
– ecommerce-webapp
– payment-service
– user-profile-api
– inventory-microservice
# Infrastructure as Code
– terraform-modules
– bicep-templates
– arm-templates
– kubernetes-manifests
# Configuration & Scripts
– azure-policies
– pipeline-templates
– monitoring-config
– security-scripts
# Documentation
– docs-architecture
– docs-runbooks
– docs-api-spec
Monorepo vs. Multirepo:
text
# Monorepo Example
– monorepo-platform
├── /src/webapp
├── /src/api
├── /src/mobile
├── /infra
# Multirepo Examples
– webapp-frontend
– api-gateway
– user-service
– product-catalog-service
– order-processing-service
- Pipelines
Pipeline Naming Convention:
text
{project}-{component}-{purpose}-{environment}
Examples:
text
# CI Pipelines
– ecommerce-webapp-ci
– payment-service-ci
– shared-libraries-ci
– terraform-modules-ci
# CD/Release Pipelines
– ecommerce-webapp-cd-prod
– payment-service-cd-staging
– api-gateway-cd-dev
# Environment-Specific
– infra-deploy-dev
– infra-deploy-staging
– infra-deploy-prod
– database-migrations-prod
# Specialized Pipelines
– security-scan-daily
– compliance-check-weekly
– cost-optimization-monthly
– disaster-recovery-drill
YAML Pipeline File Names:
text
/azure-pipelines/
├── webapp-ci.yml
├── webapp-cd-dev.yml
├── webapp-cd-prod.yml
├── infra-deploy.yml
├── container-build.yml
└── security-scan.yml
- Branches
Branch Naming Strategies:
GitFlow:
text
– main/master (production)
– develop (integration)
– feature/user-auth (feature branches)
– release/v1.2.0 (release branches)
– hotfix/critical-bug (hotfix branches)
– support/legacy-v1 (support branches)
GitHub Flow (Simpler):
text
– main
– feature/add-search-functionality
– bugfix/login-error
– hotfix/security-patch
– docs/update-readme
Team Conventions:
text
# With Ticket/Work Item ID
– feature/PROJ-123-add-login
– bugfix/PROJ-456-fix-null-ref
– hotfix/PROJ-789-security-fix
# With Author Initials
– feature/jdoe/new-dashboard
– bugfix/asmith/fix-crash
- Work Items & Boards
Work Item Prefixes:
text
– US: User Story
– TASK: Task
– BUG: Bug
– EPIC: Epic
– FEAT: Feature
– SPIKE: Spike/Research
– IMPV: Improvement
Area Paths:
text
# By Component
\Product Ecommerce\WebApp
\Product Ecommerce\API
\Product Ecommerce\Database
\Product Ecommerce\Mobile
# By Team
\Team Alpha\Backend
\Team Alpha\Frontend
\Team Alpha\DevOps
# By Capability
\Platform\Infrastructure
\Platform\Security
\Platform\Monitoring
Iteration Paths:
text
# Quarterly/Sprint Structure
\Sprints\FY2024\Q1\Sprint 1
\Sprints\FY2024\Q1\Sprint 2
\Sprints\FY2024\Q2\Sprint 1
# Or simpler
\Iterations\Sprint 24.01
\Iterations\Sprint 24.02
\Iterations\Sprint 24.03
- Variable Groups & Library
Variable Group Naming:
text
# Environment-Specific
– vg-app-config-dev
– vg-app-config-staging
– vg-app-config-prod
– vg-infra-secrets-prod
# Purpose-Specific
– vg-database-connection
– vg-api-keys
– vg-monitoring-config
– vg-security-settings
# Application-Specific
– vg-ecommerce-webapp-prod
– vg-payment-service-prod
Secure Files/Library:
text
– cert-wildcard-prod
– ssh-key-deployment
– config-appsettings-prod
– script-initialization
- Service Connections
Service Connection Naming:
text
# Azure
– sc-azure-dev-subscription
– sc-azure-prod-subscription
– sc-azure-management-subscription
# Kubernetes
– sc-aks-dev-cluster
– sc-aks-prod-cluster
# Container Registries
– sc-acr-shared
– sc-acr-prod
# Other Services
– sc-github-enterprise
– sc-jfrog-artifactory
– sc-sonarqube
– sc-slack-notifications
- Agent Pools & Agents
Agent Pool Naming:
text
– pool-ubuntu-agents
– pool-windows-agents
– pool-azure-vms
– pool-docker-agents
– pool-kubernetes-agents
# Environment-Specific
– pool-dev-agents
– pool-build-agents
– pool-deploy-prod-agents
Agent Tags:
text
– linux
– windows
– docker
– kubernetes
– dotnet
– java
– nodejs
– python
- Test Management
Test Plans:
text
– tp-ecommerce-sprint-24
– tp-payment-service-release-2.1
– tp-security-compliance-q3
– tp-performance-baseline
Test Suites:
text
– ts-webapp-regression
– ts-api-integration
– ts-mobile-smoke
– ts-database-migration
Test Cases:
text
TC-001: User Login with Valid Credentials
TC-002: User Login with Invalid Password
TC-003: Password Reset Flow
TC-004: User Profile Update
- Artifacts & Packages
Artifact Feed Naming:
text
– feed-nuget-internal
– feed-npm-shared
– feed-docker-images
– feed-maven-libraries
Package Naming:
text
# NuGet
– Contoso.Utilities.Core
– Contoso.DataAccess
– Contoso.Web.Middleware
# npm
– @contoso/ui-components
– @contoso/auth-library
– @contoso/config-utils
# Docker
– contoso.azurecr.io/webapp:1.0.0
– contoso.azurecr.io/api:latest
- Extensions & Marketplace Items
Custom Extension Naming:
text
– contoso-build-tasks
– contoso-security-scanner
– contoso-code-reviewer
– contoso-deployment-gates
- Permissions & Groups
Azure DevOps Groups:
text
# Built-in with Customization
– [Project]\Project Administrators
– [Project]\Build Administrators
– [Project]\Release Administrators
# Custom Groups
– [Project]\Security Auditors
– [Project]\Stakeholders View Only
– [Project]\External Contractors
Example Complete Structure:
text
Organization: contoso-devops
Projects:
├── platform-engineering
│ ├── Repos: terraform-modules, azure-policies, pipeline-templates
│ ├── Pipelines: infra-deploy-dev, infra-deploy-prod
│ └── Variable Groups: vg-platform-secrets-prod
│
├── product-ecommerce
│ ├── Repos: ecommerce-webapp, payment-service, user-service
│ ├── Pipelines: webapp-ci, payment-service-cd-prod
│ ├── Area Paths: \WebApp, \API, \Database
│ └── Test Plans: tp-ecommerce-sprint-24
│
└── shared-services
├── Repos: shared-libraries, docs-architecture
├── Artifact Feed: feed-nuget-internal
└── Service Connections: sc-azure-dev, sc-acr-shared
Best Practices & Tips:
- Document Your Standards: Create a docs/devops-standards.md in your repos
- Use Naming Templates: Create templates for teams to follow
- Enforce with Policies: Use branch policies, required reviewers
- Regular Cleanup: Archive old projects, delete unused service connections
- Tag Everything: Use tags for categorization and search
- Review Periodically: Update conventions as organization evolves
These conventions help maintain order, enable automation, and improve collaboration across teams in Azure DevOps.
Give me examples of Azure Entra ID naming conventions
Azure Entra ID (Azure AD) Naming Conventions
General Principles
- Consistency: Uniform naming across all identity objects
- Clarity: Names should indicate purpose and ownership
- Lowercase: Use lowercase for most objects (except where noted)
- Uniqueness: Ensure global uniqueness where required
- Security: Avoid exposing sensitive information in names
- Tenants & Domains
Tenant Naming:
text
# Primary Tenant
– contoso.onmicrosoft.com
# Custom Domains
– corp.contoso.com (primary corporate domain)
– mail.contoso.com (email/exchange)
– auth.contoso.com (authentication)
– dev.contoso.com (development)
– legacy.contoso.com (legacy systems)
Tenant Type Indicators:
text
– contoso-prod.onmicrosoft.com (production)
– contoso-dev.onmicrosoft.com (development)
– contoso-uat.onmicrosoft.com (user acceptance testing)
– contoso-sandbox.onmicrosoft.com (sandbox/testing)
- Users & Groups
User Principal Names (UPN):
text
# Employee Standard
– john.doe@corp.contoso.com
– jane.smith@corp.contoso.com
# Contractors/Vendors
– contractor.alex@corp.contoso.com
– vendor-bob@corp.contoso.com
# Service Accounts (see dedicated section below)
– svc-pipeline@corp.contoso.com
Display Names:
text
# Standard Format
– Doe, John (IT Department)
– Smith, Jane (Finance)
# With Location/Title
– Johnson, Mark – Senior Developer (NYC)
– Lee, Sarah – Finance Manager (LON)
# Service Accounts
– [SVC] Pipeline Deployment Account
– [SVC] Backup Service Account
Groups Naming Convention:
text
{type}-{scope}-{purpose}-{location}-{environment}
Security Groups:
text
# Role-Based Groups
– sg-global-admins
– sg-it-admins
– sg-finance-users
– sg-hr-managers
# Access Groups
– sg-app-salesforce-users
– sg-app-sap-access
– sg-sharepoint-members
# Location-Based
– sg-office-nyc-users
– sg-region-eu-employees
– sg-country-us-contractors
# Project/Team Based
– sg-project-alpha-team
– sg-team-data-science
– sg-department-marketing
Microsoft 365 Groups:
text
# Collaboration Groups
– grp-team-marketing
– grp-project-beta
– grp-department-hr
# With Purpose Indicator
– grp-team-sales-collab (Teams/SharePoint)
– grp-project-gamma-comm (Email distribution)
– grp-committee-security (Committee)
Distribution Lists:
text
– dl-all-employees
– dl-it-department
– dl-managers-usa
– dl-alerts-critical
- Service Principals & Managed Identities
Service Principal Names (Applications):
text
# Application Registration Names
– app-salesforce-prod
– app-workday-integration
– app-api-gateway
– app-powerbi-embed
# With Environment
– app-ecommerce-api-prod
– app-ecommerce-api-dev
– app-monitoring-tool-staging
# By Purpose
– app-ci-cd-pipeline
– app-terraform-deploy
– app-backup-service
Managed Identities:
text
# System-Assigned
– mi-vm-webserver01-prod
– mi-aks-cluster-prod
– mi-functions-app-prod
# User-Assigned
– umi-shared-services-prod
– umi-pipeline-identity
– umi-monitoring-agent
Enterprise Applications:
text
– ent-salesforce-production
– ent-service-now-prod
– ent-okta-sso
– ent-cisco-anyconnect
- Administrative Units & Roles
Administrative Units:
text
– au-location-nyc
– au-department-finance
– au-project-phoenix
– au-region-europe
– au-division-retail
Custom Role Names:
text
# Least Privilege Roles
– role-helpdesk-admin
– role-app-owner-salesforce
– role-user-manager
# Scope-Specific
– role-azure-subscription-owner
– role-entra-id-reader
– role-cost-management
# Function-Based
– role-password-admin
– role-guest-inviter
– role-license-admin
- Devices & Registrations
Device Names:
text
# Corporate Devices
– device-laptop-jdoe-001
– device-mobile-jdoe-iphone
– device-vdi-session-001
# Azure AD Joined
– aadj-pc-nyc-1012
– aadj-laptop-dev-0456
– aadj-server-sql01
# Hybrid Joined
– hadj-pc-finance-7890
– hadj-laptop-sales-2345
Device Registration Policy:
text
– policy-device-registration-corporate
– policy-device-registration-byod
– policy-device-compliance-baseline
- Conditional Access & Policies
Conditional Access Policies:
text
# Risk-Based Policies
– cap-high-risk-block-all
– cap-medium-risk-mfa
– cap-signin-risk-remediate
# Location-Based
– cap-block-high-risk-countries
– cap-require-mfa-external
– cap-trusted-locations-only
# Application-Specific
– cap-salesforce-require-mfa
– cap-admin-portals-strict
– cap-vpn-access-requirements
# User-Based
– cap-contractors-restricted
– cap-executives-secure
– cap-service-accounts-audit
Named Locations:
text
– location-office-nyc
– location-office-london
– location-vpn-range
– location-partner-company
Authentication Methods Policy:
text
– policy-mfa-enforcement
– policy-fido2-registration
– policy-temporary-access
- B2B & External Identities
Guest Users:
text
# External Partners
– guest-alex-partner@external.com
– guest-bob-vendor@company.com
# With Relationship Tag
– partner-contoso-alex@external.com
– vendor-acme-bob@company.com
– contractor-delta-charlie@consulting.com
B2B Collaboration Settings:
text
– policy-b2b-invitation-partners
– policy-b2b-redemption-limited
– settings-b2b-collaboration
External Identities (B2C/Custom):
text
# B2C Tenants
– contoso-b2c.onmicrosoft.com
– contoso-retail.onmicrosoft.com
– contoso-customers.onmicrosoft.com
# Custom Policies
– policy-signup-signin-customers
– policy-profile-editing
– policy-password-reset
- Applications & API Permissions
App Registration Scopes & Permissions:
text
# API Scopes
– Data.Read
– Data.ReadWrite
– User.Profile.Read
– Files.Read.All
# Custom Scopes
– contoso.api/invoice.read
– contoso.api/payment.write
– contoso.api/reports.generate
Permission Grants:
text
– grant-app-salesforce-delegated
– grant-app-api-application
– grant-admin-consent-app
- Hybrid Identity Components
Connect Sync Rules:
text
– In from AD – User Join
– Out to AAD – User Provisioning
– Sync Filter – Exclude Service Accounts
Federation Services:
text
– adfs-farm-primary
– adfs-proxy-external
– pingfederate-cluster
- Service Accounts (Special Section)
Service Account Naming Pattern:
text
{prefix}-{purpose}-{environment}-{location}
Service Account Examples:
text
# Automation/CI-CD
– svc-azuredevops-prod
– svc-jenkins-build
– svc-terraform-apply
# Application Service Accounts
– svc-iis-apppool-website
– svc-sql-agent-backup
– svc-scheduled-task-report
# Monitoring & Management
– svc-monitoring-zabbix
– svc-backup-veeam
– svc-patching-wsus
# Security & Authentication
– svc-certificate-autoenroll
– svc-password-reset
– svc-group-policy
- Dynamic Groups
Dynamic Group Rules:
text
# Department-Based
– dg-department-sales
– dg-department-it
– dg-department-hr
# Attribute-Based
– dg-users-office-nyc
– dg-contractors-all
– dg-device-compliant
# Usage-Based
– dg-app-salesforce-users
– dg-licensed-m365-e5
- Administrative Accounts
Privileged Accounts:
text
# Break Glass/Emergency
– emg-admin-breakglass
– emg-global-admin-01
# Tiered Administration Model
– tier0-admin-global
– tier1-admin-server
– tier2-admin-workstation
# Role-Specific Admin Accounts
– admin-entra-id-global
– admin-exchange-online
– admin-sharepoint-online
– admin-security-compliance
- Directory Settings & Features
Company Branding:
text
– branding-corporate-default
– branding-partner-portal
– branding-employee-portal
Custom Security Attributes:
text
– attr-cost-center
– attr-employee-type
– attr-clearance-level
– attr-project-code
- Lifecycle Management
License Groups:
text
– lic-m365-e5-users
– lic-office-e3
– lic-windows-10-enterprise
– lic-visio-pro
Account Lifecycle States:
text
# Account Status Tags
– status-new-hire-pending
– status-active
– status-leave-of-absence
– status-terminated
# Provisioning/Deprovisioning
– workflow-onboarding-hr
– workflow-offboarding-it
Example Complete Structure:
text
Tenant: contoso.onmicrosoft.com
Domains: corp.contoso.com, auth.contoso.com
Organizational Structure:
├── Users
│ ├── Employees: john.doe@corp.contoso.com
│ ├── Contractors: contractor.bob@corp.contoso.com
│ └── Service Accounts: svc-pipeline@corp.contoso.com
│
├── Groups
│ ├── Security: sg-global-admins, sg-it-department
│ ├── M365: grp-project-alpha, grp-team-marketing
│ └── Dynamic: dg-department-sales
│
├── Applications
│ ├── Enterprise Apps: ent-salesforce-prod
│ ├── App Registrations: app-api-gateway-prod
│ └── Service Principals: sp-terraform-identity
│
├── Policies
│ ├── Conditional Access: cap-require-mfa-external
│ ├── Device: policy-device-compliance
│ └── Authentication: policy-mfa-enforcement
│
└── Administrative
├── Admin Units: au-department-finance
├── Custom Roles: role-helpdesk-admin
└── Emergency Accounts: emg-admin-breakglass
Best Practices & Security Considerations:
- Use Descriptive Names: Clearly indicate purpose and scope
- Avoid Personal Names in Service Accounts: Use functional names
- Implement Naming Standards Document: Maintain consistency
- Regular Audits: Review and clean up unused identities quarterly
- Separation of Duties: Different naming for different privilege levels
- Monitoring & Alerts: Alert on suspicious naming patterns
- Document Exceptions: Track deviations from standards
- Automate Provisioning: Use naming templates in automation
Compliance & Governance:
- Include compliance tags in names (e.g., -pii, -pci, -hipaa)
- Use classification in group names for data handling
- Implement expiration dates in dynamic group rules
These conventions ensure clarity, security, and manageability in your Entra ID environment while supporting automation and governance requirements.
This response is AI-generated, for reference only.
Give me examples of D365 naming conventions
Dynamics 365 & Power Platform Naming Conventions
General Principles
- Consistency: Uniform across all environments
- Clarity: Indicate purpose, type, and scope
- CamelCase/PascalCase: For components, lowercase for URLs
- No Special Characters: Avoid &, %, $, #, @
- Prefixes/Suffixes: Use consistently to identify component type
- Environments & Instances
Environment Naming:
text
# Standard Environments
– DEV-Contoso (Development)
– UAT-Contoso (User Acceptance Testing)
– SIT-Contoso (System Integration Testing)
– PROD-Contoso (Production)
– TRAIN-Contoso (Training)
– DEMO-Contoso (Demonstration)
– DR-Contoso (Disaster Recovery)
# By Project/Department
– DEV-SalesOps
– UAT-Finance
– PROD-CustomerService
# Microsoft Provided
– Default (Default environment)
– Trial (Trial environment)
Environment URLs:
text
# Production
– contoso.crm.dynamics.com
– contoso-prod.crm.dynamics.com
# Non-Production
– contoso-dev.crm.dynamics.com
– contoso-test.crm.dynamics.com
– contoso-uat.crm.dynamics.com
- Solutions
Solution Naming Pattern:
text
{Publisher}_{Product}_{Area}_{Purpose}_{Version}
Examples:
text
# Publisher Prefixes
– Contoso_
– Fabrikam_
– AdventureWorks_
# Core Solutions
– Contoso_SalesFoundation_1.0.0.0
– Contoso_ServiceManagement_2.1.0.0
– Contoso_MarketingAutomation_1.5.0.0
# Module/Component Solutions
– Contoso_Finance_InvoiceProcessing_1.0.0.0
– Contoso_Sales_OpportunityManagement_2.0.0.0
– Contoso_Service_CaseRouting_1.2.0.0
# Integration Solutions
– Contoso_Integration_SAP_1.0.0.0
– Contoso_Integration_SharePoint_2.0.0.0
– Contoso_Integration_PowerBI_1.5.0.0
# Customization Solutions
– Contoso_Custom_Fields_1.0.0.0
– Contoso_Custom_Workflows_2.0.0.0
– Contoso_Custom_WebResources_1.3.0.0
Solution Types Indicators:
text
– Contoso_Managed_Sales_1.0.0.0
– Contoso_Unmanaged_Dev_1.0.0.0
– Contoso_Patch_Update_1.0.1.0
- Entities (Tables)
Custom Entity Naming:
text
# Prefix All Custom Entities
– new_ (Microsoft recommended prefix)
– contoso_ (Company prefix)
# Standard Patterns
– new_application
– new_loan
– new_claim
– new_policy
– new_asset
# With Module Context
– new_sales_lead
– new_service_ticket
– new_marketing_campaign
– new_finance_invoice
# Relationship Entities (Intersect)
– new_contact_role
– new_account_relationship
– new_product_category
Display Names (User-Friendly):
text
– Application
– Loan Application
– Insurance Claim
– Service Ticket
– Marketing Campaign
Entity Set Names (Plural):
text
– applications
– loans
– claims
– servicetickets
– campaigns
- Fields (Columns/Attributes)
Field Naming Pattern:
text
{prefix}_{entitycontext}_{descriptivename}
Examples:
text
# Standard Fields (no prefix for OOB)
– name
– address1_city
– telephone1
# Custom Fields
– new_applicationdate
– new_loanamount
– new_claimstatus
# Lookup Fields
– new_accountid (Lookup to Account)
– new_primarycontactid (Lookup to Contact)
– new_parentcaseid (Lookup to Case)
# Option Sets
– new_applicationtype
– new_priority
– new_statusreason
# Calculated/Rollup
– new_totalamount
– new_daysopen
– new_ageindays
Field Display Names:
text
– Application Date
– Loan Amount ($)
– Claim Status
– Primary Contact
– Estimated Close Date
- Relationships
1:N Relationship Naming:
text
# Lookup Field Names
– new_accountid
– new_relatedcaseid
– new_opportunityid
# Relationship Names
– new_account_applications
– new_case_activities
– new_opportunity_products
N:N Relationship Naming:
text
– new_contact_application
– new_account_service
– new_product_category
Connection Relationships:
text
– connection_contact_account
– connection_opportunity_competitor
- Forms & Views
Form Naming:
text
# Main Forms
– Information
– Quick View
– Card
# Specialized Forms
– Sales Form
– Service Form
– Mobile Form
# Custom Forms
– Application Main Form
– Loan Details Form
– Claim Entry Form
View Naming:
text
# System Views
– Active Accounts
– My Active Cases
– Open Opportunities
# Custom Views
– Applications – This Week
– High Priority Cases
– Overdue Invoices
– Recent Campaigns
# Advanced Find Views
– Saved Query – Expired Policies
– Saved Query – Renewals Due
- Business Rules & Workflows
Business Rule Naming:
text
– BR: Set Default Status
– BR: Calculate Total Amount
– BR: Validate Required Fields
– BR: Set Priority Based on SLA
Workflow Naming:
text
# Real-time Workflows
– WF: Create Follow-up Task
– WF: Update Status on Submit
– WF: Send Approval Email
# Background Workflows
– WF: Daily Sync to ERP
– WF: Monthly Report Generation
– WF: Cleanup Old Records
Power Automate Flows:
text
# Cloud Flows
– Flow: Create SharePoint Document
– Flow: Send Teams Notification
– Flow: Sync to External Database
# Solution-Aware Flows
– Contoso_Flow_CreateInvoice_1.0
– Contoso_Flow_CaseEscalation_2.0
- Business Process Flows
BPF Naming:
text
– Sales Process
– Lead to Opportunity
– Case Resolution
– Application Processing
– Quote to Cash
BPF Stages:
text
- Qualify
- Develop
- Propose
- Close
- Dashboards & Charts
Dashboard Naming:
text
# User Role Based
– Sales Executive Dashboard
– Service Manager Dashboard
– Marketing Overview
# Functional Dashboards
– Sales Performance
– Customer Service Metrics
– Campaign Effectiveness
# Custom Dashboards
– Loan Applications Overview
– Claims Processing Status
– Partner Performance
Chart Naming:
text
– Opportunities by Stage
– Cases by Priority
– Sales by Region
– Applications by Status
- Web Resources
JavaScript Files:
text
– /WebResources/new_/js/formScripts.js
– /WebResources/new_/js/validation.js
– /WebResources/new_/js/customLogic.js
HTML Web Resources:
text
– /WebResources/new_/html/widgetTemplate.html
– /WebResources/new_/html/customPage.html
CSS Files:
text
– /WebResources/new_/css/customStyles.css
– /WebResources/new_/css/formThemes.css
Image Files:
text
– /WebResources/new_/images/logo.png
– /WebResources/new_/icons/customIcon.svg
- Plugins & Custom Workflows
Plugin Naming:
text
– Contoso.Plugins.ApplicationValidation
– Contoso.Plugins.OpportunityCalculation
– Contoso.Plugins.CaseAssignment
Custom Workflow Activities:
text
– Contoso.Workflows.CalculateAge
– Contoso.Workflows.GenerateDocument
– Contoso.Workflows.ValidateAddress
Assembly Naming:
text
– Contoso.Plugins.dll
– Contoso.WorkflowActivities.dll
– Contoso.CustomCode.dll
- Security & Access Control
Security Roles:
text
# System Roles
– System Administrator
– System Customizer
– Salesperson
– Customer Service Representative
# Custom Roles
– Sales Manager
– Service Supervisor
– Marketing Specialist
– Finance User
– Read Only User
Teams:
text
– Sales Team
– Service Team
– Marketing Team
– Management Team
– Project Team Alpha
Field Security Profiles:
text
– FSP: Sensitive Data Access
– FSP: Financial Data
– FSP: Personal Information
- Power Apps Components
Canvas Apps Naming:
text
– App: Field Service Mobile
– App: Sales On-the-Go
– App: Inspection Checklist
– App: Inventory Management
Model-Driven Apps:
text
– Sales Hub
– Customer Service Hub
– Field Service
– Project Operations
Component Library:
text
– Contoso Component Library
– Shared Controls Library
- Integration & Data
Dataflow Naming:
text
– Dataflow: ERP to D365 Daily
– Dataflow: Customer Data Sync
– Dataflow: Product Catalog Update
Virtual Entity Data Sources:
text
– VE: SharePoint Documents
– VE: Azure SQL Data
– VE: Custom API Connection
- ALM & Deployment
Pipeline Environments:
text
# DevOps Environments
– Build
– Validation
– Staging
– Production
# Deployment Settings
– DeploySettings-Dev.json
– DeploySettings-Prod.json
Package Naming:
text
– Contoso_Sales_1.0.0.0.zip
– Contoso_Service_2.1.0.0.zip
– Hotfix_20240115.zip
Example Complete Structure:
text
Environment: PROD-Contoso
Organization: contoso.crm.dynamics.com
Solutions:
├── Contoso_Core_1.0.0.0
├── Contoso_Sales_2.0.0.0
├── Contoso_Service_1.5.0.0
└── Contoso_Integration_SAP_1.0.0.0
Custom Entities:
├── new_application
│ ├── Fields: new_applicationdate, new_loanamount, new_status
│ ├── Forms: Information, Quick View
│ └── Views: Active Applications, My Applications
│
├── new_claim
│ ├── Fields: new_claimdate, new_claimamount, new_claimtype
│ └── Forms: Claim Entry, Claim Details
│
└── new_policy
├── Fields: new_policynumber, new_effectivedate, new_expirydate
└── Views: Active Policies, Expiring Policies
Best Practices:
- Version Control:
text
Major.Minor.Build.Revision
1.0.0.0 (Initial release)
1.1.0.0 (Minor update)
2.0.0.0 (Major release)
1.0.1.0 (Hotfix)
- Naming Standards Document:
xml
<NamingStandards>
<Prefix>new_</Prefix>
<Publisher>Contoso</Publisher>
<SolutionPattern>{Publisher}_{Module}_{Version}</SolutionPattern>
</NamingStandards>
- Environment Strategy:
text
DEV → Development & Unit Testing
SIT → System Integration Testing
UAT → User Acceptance Testing
PROD → Production
- Change Management:
- Use solution layering correctly
- Track dependencies between solutions
- Maintain backward compatibility
- Documentation:
- Maintain data dictionary
- Document customizations
- Track naming exceptions
Common Anti-Patterns to Avoid:
- ❌ Using spaces in schema names
- ❌ Inconsistent prefix usage
- ❌ Overly abbreviated names
- ❌ Including environment in solution names
- ❌ Using special characters
- ❌ Creating circular dependencies
Governance Rules:
- All custom entities must have prefix
- Solutions must follow naming pattern
- Version numbers must increment properly
- Managed solutions only in higher environments
- Regular cleanup of unused components
These conventions ensure maintainability, reduce conflicts, and support effective application lifecycle management in Dynamics 365.
Give me examples of Microsoft Power platform naming conventions
Microsoft Power Platform Naming Conventions
General Principles
- Clarity Over Brevity: Clear, descriptive names
- Consistency: Uniform across all Power Platform components
- CamelCase/PascalCase: For display names, lowercase for internal names
- No Special Characters: Avoid ! @ # $ % ^ & * ( )
- Environment Awareness: Include env indicators where appropriate
- Environments
Environment Naming:
text
# Standard Environments
– DEV (Development)
– TEST (Testing)
– UAT (User Acceptance Testing)
– PROD (Production)
– SANDBOX (Sandbox/Experimental)
# Department/Team Based
– SALES-DEV
– MARKETING-TEST
– SERVICE-PROD
# Project Based
– PROJECT-ALPHA-DEV
– PROJECT-BETA-TEST
– INITIATIVE-GAMMA-PROD
Environment URLs:
text
– contoso-dev.crm.dynamics.com
– contoso-test.powerapps.com
– contoso-prod.flow.microsoft.com
– make.powerautomate.com/environments/prod-environment
- Power Apps
Canvas Apps Naming Pattern:
text
{Type}_{Purpose}_{Audience}_{Environment}
Canvas Apps Examples:
text
# Employee-Facing Apps
– App_ExpenseTracker_Mobile_DEV
– App_TimesheetEntry_Web_TEST
– App_InventoryScanner_Tablet_PROD
# Customer-Facing Apps
– App_CustomerPortal_Web_PROD
– App_OrderStatus_Mobile_PROD
– App_ServiceRequest_Portal_PROD
# Department Specific
– App_SalesLeadCapture_Mobile_SALES
– App_FieldService_Tab_FS
– App_HROnboarding_Web_HR
# Process Specific
– App_IncidentReport_Mobile
– App_QualityInspection_Tablet
– App_AssetManagement_Desktop
Model-Driven Apps:
text
# Standard D365 Apps
– Sales Hub
– Customer Service Hub
– Field Service
– Project Operations
# Custom Model-Driven Apps
– App_ServiceManagement_PROD
– App_ComplianceTracking_TEST
– App_ProjectManagement_UAT
Portal Apps (Power Pages):
text
– Portal_EmployeeSelfService_PROD
– Portal_CustomerSupport_UAT
– Portal_PartnerPortal_PROD
– Portal_CommunityPortal_DEV
App Components:
text
# Screens
– scrnHome
– scrnLogin
– scrnDashboard
– scrnDetailsEntry
– scrnConfirmation
# Controls
– btnSubmit
– btnCancel
– txtFirstName
– txtEmail
– galImages
– frmDataEntry
# Variables
– varCurrentUser
– varSelectedRecord
– colFilteredItems
– locCurrentLocation
- Power Automate (Cloud Flows)
Flow Naming Pattern:
text
Flow_{Trigger}_{Action}_{Scope}_{Frequency}
Flow Examples:
text
# Automated Flows
– Flow_WhenItemCreated_SendNotification_Team_Daily
– Flow_WhenFileCreated_ProcessDocument_Department_Realtime
– Flow_Scheduled_CleanupTempData_System_Weekly
# Instant Flows
– Flow_Button_ApproveRequest_Manager_OnDemand
– Flow_Button_CreateReport_User_OnDemand
# Business Process Flows
– Flow_Process_LeadQualification_Sales
– Flow_Process_InvoiceApproval_Finance
# Solution-Aware Flows
– Flow_Integration_SAPtoD365_ERP_Hourly
– Flow_Sync_SharePointToList_Department_Daily
Flow Trigger Types:
text
– Automated: When an email arrives
– Instant: Button click
– Scheduled: Recurrence
– Desktop: UI automation
– Business Process: BPF
- Power BI
Workspace Naming:
text
# Department Workspaces
– WS_Finance_REPORTS
– WS_Sales_ANALYTICS
– WS_Marketing_DASHBOARDS
# Project Workspaces
– WS_ProjectAlpha_DEV
– WS_ProjectBeta_PROD
# Function Workspaces
– WS_Executive_VIEW
– WS_Operational_DAILY
Report Naming:
text
– Report_SalesPerformance_Monthly
– Report_CustomerSatisfaction_Quarterly
– Report_FinancialMetrics_Dashboard
– Report_InventoryLevels_Daily
Dataset Naming:
text
– Dataset_SalesTransactions
– Dataset_FinancialGL
– Dataset_Customer360
– Dataset_OperationalMetrics
Dashboard Naming:
text
– Dashboard_SalesExecutive_Overview
– Dashboard_ServiceManager_RealTime
– Dashboard_FinancialHealth_Snapshot
– Dashboard_OperationalEfficiency
Dataflow Naming:
text
– Dataflow_ERP_Extract_Transform
– Dataflow_CRM_Cleansing
– Dataflow_ExternalAPI_Integration
- Dataverse (Common Data Service)
Table Naming:
text
# Custom Tables
– new_application (Custom entity)
– new_loanrequest
– new_maintenancerecord
– new_surveyresponse
# Display Names
– Application
– Loan Request
– Maintenance Record
– Survey Response
Column Naming:
text
# Standard Pattern
{prefix}_{entity}_{description}
# Examples
– new_applicationid
– new_applicationdate
– new_loanamount
– new_statuscode
# Choice Columns
– new_priority
– new_department
– new_applicationtype
Relationship Naming:
text
1:N: new_application_account
N:N: new_application_contact
Self-referential: new_account_parentaccount
- Power Virtual Agents
Bot Naming:
text
– Bot_CustomerSupport_FAQ
– Bot_HR_EmployeeQuestions
– Bot_IT_HelpDesk
– Bot_Sales_ProductInfo
Topic Naming:
text
– Topic_OrderStatus
– Topic_AccountBalance
– Topic_AppointmentScheduling
– Topic_ComplaintSubmission
Entity Naming:
text
– Entity_ProductNames
– Entity_LocationCities
– Entity_ServiceTypes
– Entity_DepartmentNames
- Power Pages (Portals)
Page Naming:
text
– Home
– ContactUs
– ServiceRequest
– KnowledgeBase
– ProfileManagement
Web Template Naming:
text
– WebTemplate_Header
– WebTemplate_Footer
– WebTemplate_Sidebar
– WebTemplate_HomePage
Content Snippet Naming:
text
– Snippet_WelcomeMessage
– Snippet_FooterCopyright
– Snippet_ContactInformation
– Snippet_PrivacyNotice
- Connectors & Connections
Connection Naming:
text
# By Service
– Conn_SharePoint_PROD
– Conn_SQLServer_DEV
– Conn_Office365_UAT
– Conn_Twilio_PROD
# By Purpose
– Conn_DataExport_PROD
– Conn_Notification_DEV
– Conn_Authentication_PROD
# Environment Specific
– Conn_SharePoint_DEV
– Conn_SharePoint_PROD
Custom Connector Naming:
text
– CustomConn_InternalAPI
– CustomConn_LegacySystem
– CustomConn_PartnerAPI
- Solutions
Solution Naming Pattern:
text
{Publisher}_{Component}_{Module}_{Version}
Solution Examples:
text
– Contoso_Apps_Sales_1.0.0.0
– Contoso_Flows_Service_2.1.0.0
– Contoso_Components_Shared_1.5.0.0
– Contoso_Integrations_ERP_1.0.0.0
Unmanaged vs Managed:
text
# Development
– Contoso_Sales_1.0.0.0_Unmanaged
# Production
– Contoso_Sales_1.0.0.0_Managed
- AI Builder
Model Naming:
text
– Model_DocumentClassification_Invoices
– Model_ObjectDetection_Products
– Model_FormProcessing_Applications
– Model_Prediction_CustomerChurn
Custom AI Models:
text
– AI_InvoiceProcessing_V1
– AI_ProductCategorization_V2
– AI_SentimentAnalysis_Reviews
- Environment Variables
Variable Naming:
text
# Connection Strings
– EnvVar_SQLConnectionString
– EnvVar_APICredentials
– EnvVar_SharePointURL
# Configuration Values
– EnvVar_MaxRetryCount
– EnvVar_TimeoutSeconds
– EnvVar_BatchSize
# Secrets
– EnvVar_EncryptionKey
– EnvVar_APIToken
– EnvVar_CertificatePassword
- Security & Governance
Security Role Naming:
text
– Role_PowerAppsUser
– Role_PowerAutomateMaker
– Role_DataverseEditor
– Role_PowerBIViewer
Data Loss Prevention (DLP) Policies:
text
– DLP_DefaultPolicy
– DLP_RestrictedData
– DLP_BusinessDataOnly
– DLP_NoExternalSharing
Environment Security Groups:
text
– SG_PowerPlatformAdmins
– SG_PowerAppsMakers
– SG_PowerAutomateUsers
– SG_DataverseEditors
- ALM & DevOps
Pipeline Naming:
text
# Build Pipelines
– Pipeline_Build_Solution_DEV
– Pipeline_Test_Automation_TEST
# Release Pipelines
– Pipeline_Release_UAT
– Pipeline_Release_PROD
# Validation Pipelines
– Pipeline_Validate_Solution
– Pipeline_CodeAnalysis
Branch Naming (for Power Platform CLI):
text
– feature/new-dashboard
– bugfix/login-issue
– hotfix/security-patch
– release/v1.2.0
Export Package Naming:
text
– SolutionPackage_ContosoSales_1.0.0.0.zip
– Backup_Environment_20240115.zip
– MigrationPackage_UAT_to_PROD.zip
- Copilot Studio (Power Virtual Agents + AI)
Copilot Naming:
text
– Copilot_CustomerService_Assistant
– Copilot_HR_Onboarding_Helper
– Copilot_IT_Support_Specialist
– Copilot_Sales_Product_Expert
Conversation Topic Naming:
text
– Topic_Account_Inquiry
– Topic_Order_Tracking
– Topic_Technical_Support
– Topic_Feedback_Collection
AI Skill Naming:
text
– Skill_Document_Summarizer
– Skill_Code_Generator
– Skill_Data_Analyzer
– Skill_Content_Translator
- Component Libraries & Templates
Component Library Naming:
text
– Library_UI_Controls
– Library_Data_Connectors
– Library_Common_Flows
– Library_Shared_Components
Template Naming:
text
– Template_App_InventoryManagement
– Template_Flow_DocumentApproval
– Template_Report_SalesDashboard
– Template_Bot_CustomerService
Example Complete Structure:
text
Environment: PROD
Tenant: contoso.com
Power Apps:
├── App_FieldService_Mobile_PROD
├── App_CustomerPortal_Web_PROD
└── App_HROnboarding_Tablet_PROD
Power Automate:
├── Flow_Scheduled_DataSync_ERP_Daily
├── Flow_WhenRecordCreated_NotifyTeam_Realtime
└── Flow_Button_GenerateReport_OnDemand
Power BI:
├── WS_Sales_ANALYTICS
│ ├── Report_SalesPerformance_Daily
│ └── Dashboard_SalesOverview
└── WS_Finance_REPORTS
├── Report_Financials_Monthly
└── Dataset_GLTransactions
Dataverse:
├── Tables: new_serviceorder, new_inspection
├── Columns: new_orderdate, new_prioritycode
└── Relationships: new_order_account
Solutions:
├── Contoso_Core_1.0.0.0
├── Contoso_Sales_2.0.0.0
└── Contoso_Shared_1.5.0.0
Best Practices & Governance:
- Naming Standards Document:
yaml
NamingConventions:
PowerApps:
Pattern: “App_{Purpose}_{Platform}_{Env}”
Example: “App_ExpenseTracker_Mobile_PROD”
PowerAutomate:
Pattern: “Flow_{Trigger}_{Action}_{Scope}”
Example: “Flow_Scheduled_Report_Daily”
PowerBI:
Pattern: “{Type}_{Content}_{Frequency}”
Example: “Report_Sales_Monthly”
- Environment Strategy:
text
DEV → Development & Testing
TEST → Quality Assurance
UAT → User Acceptance Testing
PROD → Production
- Ownership & Responsibility:
- Include team/department in names
- Add creator initials for supportability
- Document business owners
- Version Control:
text
Major.Minor.Patch.Build
1.0.0.0 – Initial release
1.1.0.0 – Minor enhancements
2.0.0.0 – Major rewrite
1.0.1.0 – Bug fix
- Documentation Tags:
text
– [DEPRECATED] – For old components
– [LEGACY] – Legacy but still used
– [EXPERIMENTAL] – Testing new features
– [PILOT] – Limited rollout
Common Anti-Patterns to Avoid:
❌ Too Generic:
- “My App”
- “Test Flow”
- “New Report”
❌ Environment in Component Name:
- “ExpenseApp_DEV” (Environment should be separate)
❌ Personal Names:
- “JohnsDashboard”
- “SarahsFlow”
❌ Special Characters:
- “App#1”
- “Flow@Notification”
❌ Inconsistent Capitalization:
- “app_Expense_Tracker”
- “FLOW_DATA_SYNC”
Validation Rules:
- All names must follow naming pattern
- No environment names in component names
- No special characters except underscore
- Maximum length: 100 characters
- Must include purpose/function indicator
Automated Governance:
- Use Power Platform CLI for validation
- Implement DLP policies
- Set up CoE Starter Kit
- Regular compliance scanning
These conventions ensure scalability, maintainability, and governance across your Power Platform implementation while supporting collaboration and ALM practices.