This Repository was Deprecated in September 2022
Thank you for the interest in this package.
If you are looking for the latest packages to interact with Azure resources, please use the following libraries: https://aka.ms/azsdk/dotnet/mgmt
Here is all of the latest packages: https://azure.github.io/azure-sdk/releases/latest/mgmt/dotnet.html
You can refer to this https://aka.ms/dotnet/t2/migration for more details about how to migrate your current code to our new SDK.
Azure Management Libraries for .NET
This README is based on the released stable version (1.38.1). If you are looking for other releases, see More Information
The Azure Management Libraries for .NET is a higher-level, object-oriented API for managing Azure resources. Libraries are built on the lower-level, request-response style auto generated clients and can run side-by-side with auto generated clients.
Table of contents
- Feature availability and road map
- Code snippets and samples
- Download
- Prerequisites
- Upgrading from older versions
- Help and issues
- Contribute code
- More information
Feature Availability and Road Map
Service | feature | Available as GA | Available as Preview | Coming soon |
---|---|---|---|
Compute | Virtual machines and VM extensions Virtual machine scale sets Managed disks |
Azure container service (AKS) + registry + instances Availability Zones |
More Availability Zones and MSI features |
Storage | Storage accounts Encryption (deprecated) |
Encryption (Blob) Encryption (File) |
|
SQL Database | Databases Firewalls and virtual network Elastic pools Import, export, recover and restore dbs Failover groups and replication links DNS aliasing and metrics Sync groups Encryption protectors |
More features | |
Networking | Virtual networks Network interfaces IP addresses Routing table Network security groups Load balancers Application gateways DNS Traffic managers |
Network peering Virtual Network Gateway Network watchers Express Route Application Security Groups |
More application gateway features |
More services | Resource Manager Key Vault Redis CDN Service bus |
Web apps Function Apps Graph RBAC Cosmos DB Monitor Batch AI Search Event Hub |
Data Lake More Monitor features Logic Apps Event Grid |
Fundamentals | Authentication - core Async methods Managed Service Identity |
Preview features are flagged in documentation comments in libraries. These features are subject to change. They can be modified in any way, or even removed, in the future.
Code snippets and samples
Azure Authentication
The Azure
class is the simplest entry point for creating and interacting with Azure resources.
IAzure azure = Azure.Authenticate(credFile).WithDefaultSubscription();
To learn more about authentication in the Azure Libraries for .Net, see AUTH.md.
Virtual Machines
Create a Virtual Machine
You can create a virtual machine instance by using a Define() … Create()
method chain.
Console.WriteLine("Creating a Windows VM");
var windowsVM = azure.VirtualMachines.Define("myWindowsVM")
.WithRegion(Region.USEast)
.WithNewResourceGroup(rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIPAddressDynamic()
.WithNewPrimaryPublicIPAddress("mywindowsvmdns")
.WithPopularWindowsImage(KnownWindowsVirtualMachineImage.WindowsServer2012R2Datacenter)
.WithAdminUsername("tirekicker")
.WithAdminPassword(password)
.WithSize(VirtualMachineSizeTypes.StandardD3V2)
.Create();
Console.WriteLine("Created a Windows VM: " + windowsVM.Id);
Update a Virtual Machine
You can update a virtual machine instance by using an Update() … Apply()
method chain.
windowsVM.Update()
.WithNewDataDisk(20, lun, CachingTypes.ReadWrite)
.Apply();
Create a Virtual Machine Scale Set
You can create a virtual machine scale set instance by using another Define() … Create()
method chain.
var virtualMachineScaleSet = azure.VirtualMachineScaleSets.Define(vmssName)
.WithRegion(Region.USEast)
.WithExistingResourceGroup(rgName)
.WithSku(VirtualMachineScaleSetSkuTypes.StandardD3v2)
.WithExistingPrimaryNetworkSubnet(network, "Front-end")
.WithPrimaryInternetFacingLoadBalancer(loadBalancer1)
.WithPrimaryInternetFacingLoadBalancerBackends(backendPoolName1, backendPoolName2)
.WithPrimaryInternetFacingLoadBalancerInboundNatPools(natPool50XXto22, natPool60XXto23)
.WithoutPrimaryInternalLoadBalancer()
.WithPopularLinuxImage(KnownLinuxVirtualMachineImage.UbuntuServer16_04_Lts)
.WithRootUsername(userName)
.WithSsh(sshKey)
.WithNewDataDisk(100)
.WithNewDataDisk(100, 1, CachingTypes.ReadWrite)
.WithNewDataDisk(100, 2, CachingTypes.ReadWrite, StorageAccountTypes.StandardLRS)
.WithCapacity(3)
.Create();
Ready-to-run code samples for virtual machines
Networking
Create a virtual network
You can create a virtual network by using a define() … create()
method chain.
var network = networks.Define("mynetwork")
.WithRegion(Region.USEast)
.WithNewResourceGroup()
.WithAddressSpace("10.0.0.0/28")
.WithSubnet("subnet1", "10.0.0.0/29")
.WithSubnet("subnet2", "10.0.0.8/29")
.Create();
Create a Network Security Group
You can create a network security group instance by using another Define() … Create()
method chain.
var frontEndNSG = azure.NetworkSecurityGroups.Define(frontEndNSGName)
.WithRegion(Region.USEast)
.WithNewResourceGroup(rgName)
.DefineRule("ALLOW-SSH")
.AllowInbound()
.FromAnyAddress()
.FromAnyPort()
.ToAnyAddress()
.ToPort(22)
.WithProtocol(SecurityRuleProtocol.Tcp)
.WithPriority(100)
.WithDescription("Allow SSH")
.Attach()
.DefineRule("ALLOW-HTTP")
.AllowInbound()
.FromAnyAddress()
.FromAnyPort()
.ToAnyAddress()
.ToPort(80)
.WithProtocol(SecurityRuleProtocol.Tcp)
.WithPriority(101)
.WithDescription("Allow HTTP")
.Attach()
.Create();
Create an Application Gateway
You can create a application gateway instance by using another define() … create()
method chain.
var applicationGateway = azure.ApplicationGateways.Define("myFirstAppGateway")
.WithRegion(Region.USEast)
.WithExistingResourceGroup(resourceGroup)
// Request routing rule for HTTP from public 80 to public 8080
.DefineRequestRoutingRule("HTTP-80-to-8080")
.FromPublicFrontend()
.FromFrontendHttpPort(80)
.ToBackendHttpPort(8080)
.ToBackendIPAddress("11.1.1.1")
.ToBackendIPAddress("11.1.1.2")
.ToBackendIPAddress("11.1.1.3")
.ToBackendIPAddress("11.1.1.4")
.Attach()
.WithExistingPublicIPAddress(publicIpAddress)
.Create();
Ready-to-run code samples for networking
Application Services
Create a Web App
You can create a Web App instance by using another define() … create()
method chain.
var webApp = azure.WebApps.Define(appName)
.WithRegion(Region.USWest)
.WithNewResourceGroup(rgName)
.WithNewWindowsPlan(PricingTier.StandardS1)
.Create();
Ready-to-run code samples for Application Services
Databases and Storage
Create a Cosmos DB with CosmosDB Programming Model
You can create a Cosmos DB account by using a define() … create()
method chain.
var documentDBAccount = azure.CosmosDBAccounts.Define(cosmosDBName)
.WithRegion(Region.USEast)
.WithNewResourceGroup(rgName)
.WithKind(DatabaseAccountKind.GlobalDocumentDB)
.WithSessionConsistency()
.WithWriteReplication(Region.USWest)
.WithReadReplication(Region.USCentral)
.Create();
Create a SQL Database
You can create a SQL server instance by using another define() … create()
method chain.
var sqlServer = azure.SqlServers.Define(sqlServerName)
.WithRegion(Region.USEast)
.WithNewResourceGroup(rgName)
.WithAdministratorLogin(administratorLogin)
.WithAdministratorPassword(administratorPassword)
.WithNewFirewallRule(firewallRuleIpAddress)
.WithNewFirewallRule(firewallRuleStartIpAddress, firewallRuleEndIpAddress)
.Create();
Then, you can create a SQL database instance by using another define() … create()
method chain.
var database = sqlServer.Databases.Define(databaseName)
.Create();
Ready-to-run code samples for databases
Other code samples
Logging
Logging can be enabled by providing an implementation of IServiceClientTracingInterceptor
interface.
ServiceClientTracing.AddTracingInterceptor(new LoggingTracer());
ServiceClientTracing.IsEnabled = true;
IAzure azure = Azure.Configure().WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credFile).WithDefaultSubscription();
Download
Latest stable release
1.38.1 release builds are available on NuGet:
Prerequisites
- .NET Core
- Azure Service Principal - see how to create authentication info.
- Configure and build locally - see "to build" section here.
Upgrading from older versions
If you are migrating your code from 1.38.0 to 1.38.1, you can use these release notes for preparing your code for 1.38.1 from 1.38.0.
In general, Azure Libraries for .Net follow semantic versioning, so user code should continue working in a compatible fashion between minor versions of the same major version release train, with the following caveats:
-
methods and types that inherit from
IBeta
interface are not considered "generally available" and their design and functionality may change arbitrarily (including removal) in any future minor release of the libraries. To help identify suchIBeta
breaking changes from one minor release to the next and see how to mitigate them, see the above mentioned release notes for each release. -
occasionally the naming and structure of "fluent" interface definitions (i.e. the ones whose names start with
With*
) may change between minor versions, as long as that change does not affect the fluent "flow" (the chaining of the methods in a definition or update chain). -
the
*Inner
types and their methods may occasionally change their naming and structure between minor versions in breaking ways. User code should generally avoid making a reference to those types though, unless their functionality is not yet exposed by the "fluent" API.
Help and Issues
If you encounter any bugs with these libraries, please file issues via Issues or checkout StackOverflow for Azure Management Libraries for .NET.
To enable Http message tracing in your code please check logging.
Contribute Code
If you would like to become an active contributor to this project please follow the instructions provided in Microsoft Azure Projects Contribution Guidelines.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
More Information
- https://azure.microsoft.com/en-us/develop/net/
- If you don't have a Microsoft Azure subscription you can get a FREE trial account here.
Previous Releases and Corresponding Repo Branches
Version | SHA1 | Remarks |
---|---|---|
1.38.1 | 1.38.1 | Tagged release for 1.38.1 version of Azure management libraries |
1.38 | 1.38 | Tagged release for 1.38 version of Azure management libraries |
1.37.1 | 1.37.1 | Tagged release for 1.37.1 version of Azure management libraries |
1.37 | 1.37 | Tagged release for 1.37 version of Azure management libraries |
1.36.1 | 1.36.1 | Tagged release for 1.36.1 version of Azure management libraries |
1.36 | 1.36 | Tagged release for 1.36 version of Azure management libraries |
1.35 | 1.35 | Tagged release for 1.35 version of Azure management libraries |
1.34 | 1.34 | Tagged release for 1.34 version of Azure management libraries |
1.33 | 1.33 | Tagged release for 1.33 version of Azure management libraries |
1.32 | 1.32 | Tagged release for 1.32 version of Azure management libraries |
1.31.1 | 1.31.1 | Tagged release for 1.31.1 version of Azure management libraries |
1.31 | 1.31 | Tagged release for 1.31 version of Azure management libraries |
1.30 | 1.30 | Tagged release for 1.30 version of Azure management libraries |
1.29.1 | 1.29.1 | Tagged release for 1.29.1 version of Azure management libraries |
1.29 | 1.29 | Tagged release for 1.29 version of Azure management libraries |
1.28.1 | 1.28.1 | Tagged release for 1.28.1 version of Azure management libraries |
1.28 | 1.28 | Tagged release for 1.28 version of Azure management libraries |
1.27.2 | 1.27.2 | Tagged release for 1.27.2 version of Azure management libraries |
1.27 | 1.27 | Tagged release for 1.27 version of Azure management libraries |
1.26.1 | 1.26.1 | Tagged release for 1.26.1 version of Azure management libraries |
1.26 | 1.26 | Tagged release for 1.26 version of Azure management libraries |
1.25 | 1.25 | Tagged release for 1.25 version of Azure management libraries |
1.24 | 1.24 | Tagged release for 1.24 version of Azure management libraries |
1.23 | 1.23 | Tagged release for 1.23 version of Azure management libraries |
1.22 | 1.22 | Tagged release for 1.22 version of Azure management libraries |
1.21 | 1.21 | Tagged release for 1.21 version of Azure management libraries |
1.20 | 1.20 | Tagged release for 1.20 version of Azure management libraries |
1.19 | 1.19 | Tagged release for 1.19 version of Azure management libraries |
1.18 | 1.18 | Tagged release for 1.18 version of Azure management libraries |
1.17 | 1.17 | Tagged release for 1.17 version of Azure management libraries |
1.16 | 1.16 | Tagged release for 1.16 version of Azure management libraries |
1.15 | 1.15 | Tagged release for 1.15 version of Azure management libraries |
1.14 | 1.14 | Tagged release for 1.14 version of Azure management libraries |
1.13 | 1.13 | Tagged release for 1.13 version of Azure management libraries |
1.11 | 1.11 | Tagged release for 1.11 version of Azure management libraries |
1.10 | 1.10 | Tagged release for 1.10 version of Azure management libraries |
1.9 | 1.9 | Tagged release for 1.9 version of Azure management libraries |
1.8 | 1.8 | Tagged release for 1.8 version of Azure management libraries |
1.7 | 1.7 | Tagged release for 1.7 version of Azure management libraries |
1.6 | 1.6 | Tagged release for 1.6 version of Azure management libraries |
1.4 | 1.4 | Tagged release for 1.4 version of Azure management libraries |
1.3 | 1.3 | Tagged release for 1.3 version of Azure management libraries |
1.2 | 1.2 | Tagged release for 1.2 version of Azure management libraries |
1.1 | 1.1 | Tagged release for 1.1 version of Azure management libraries |
1.0 | 1.0 | Tagged release for 1.0 version of Azure management libraries |
1.0.0-beta5 | 1.0.0-beta5 | Tagged release for 1.0.0-beta5 version of Azure management libraries |
1.0.0-beta4 | 1.0.0-beta4 | Tagged release for 1.0.0-beta4 version of Azure management libraries |
1.0.0-beta3 | 1.0.0-beta3 | Tagged release for 1.0.0-beta3 version of Azure management libraries |
AutoRest | AutoRest | Main branch for AutoRest generated raw clients |
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.