-
Notifications
You must be signed in to change notification settings - Fork 2
Combining Microsoft Azure PowerShell Projects Design Document
This wiki will go through the details of combining all Windows Azure PowerShell projects into one project.
- Prevent from projects explosion
- Ease the process of adding new set of cmdlets for a new service
- Reduce the chance to have project configuration conflicts and referencing issues
- Reduce build time and signing efforts
- Centralize code and prevent from code duplication
- Align with Windows PowerShell cmdlets design (they ship all management cmdlets in one assembly Microsoft.PowerShell.Commands.Management.dll)
Deliver Windows Azure PowerShell cmdlets in one assembly.
Inspired by the Windows PowerShell assembly name and Windows Azure namespace convention we suggest
Microsoft.WindowsAzure.Commands.Management
Alternative names could be
- Microsoft.WindowsAzure.Management
- Microsoft.WindowsAzure
- Microsoft.WindowsAzure.PowerShell.Management
- Microsoft.WindowsAzure.PowerShell
Assuming we picked a name from the above list let's shorten it with WAPS
The common code and general utilities can be centralized at this namespace
WAPS.Common
Alternative names could be
- WAPS.Core
- WAPS.Model
- WAPS.Utilities
Let's take as an example the existing project Management.ServiceBus.csproj
, in the new design it should be divided as follows
Service Name
Each service must have unique name, for example this project can has ServiceBus
as it's unique name.
Cmdlets namespace
WAPS.ServiceBus.Commands
Channel code/service specified utilities
WAPS.ServiceBus.X
Where X equals to the common code namespace postfix
There will be one central project for all unit tests with the namespace
WAPS.Test
Note that the test class namespace must match the production code namespace and folder structure
The existing scenario test project is already in a good shape we'll need to rename it's namespace based on the namespace we chosen above. The final namespace would look like this:
WAPS.ScenarioTest