Ask your technical questions on forums or here :
ASP.NET or MVC | C# | Windows Phone
Microsoft Technology Journals by Abhimanyu K Vatsa

3 Jun 2017

Free SSL Certificate for your website - from CloudFlare

In this video post you will learn about free SSL certificate and its installation. This free SSL certificate is from CloudFlare but due to lack of installation guidelines and step by step we as a developer ignores this. Using CloudFlare SSL is a great advantage because you get other service for free too. Off-course, with paid plans you will get all the gems. Remember this never affects your SEO ranks.

Now, let's begin talking about this free SSL certificate. CloudFlare SSL sits between your user and your hosting server. So any potential attack is taken care by CloudFlare before they reach your server. So your user will see SSL certificate till their request reaches CloudFlare server.

If you already have a website running without SSL and you want to get this, then i would recommend to take a screenshot of your domain NS, CNAME, A, AAAA, MX records before you try this.

If you don't want any downtime, off-course, then steps would be like: whatever settings you have on your domain dashboard DNS (including CNAME, A, AAAA, MX etc) copy them to CloudFlare and set Flexible SSL option on crypto page. After that wait for 24 hours or email confirmation from CloudFlare regarding SSL issuance.

Once you get confirmation, just update/use CloudFlare NS records on your domain dashboard, that's it. Just wait for DNS propagation for few hours then you will start browsing using SSL.

Now here's the video that will guide you end to end to setup this.

Hope this helps.

5 May 2017

Migrating Azure VMs on VNet from Azure Service Management (Classic or ASM) to Azure Resource Manager (Resource Manager or ARM)

In this post you will find code snippet to migrate your classic Azure VMs that is part of virtual networks. That is, you will learn Migrating Azure VMs on VNet from Azure Service Management (Classic or ASM) to Azure Resource Manager (Resource Manager or ARM). Without too much discussion, let's start step by step.

You need to have PowerShell installed. In the process of migration you first need to sign in your subscription using modern way that is ARM to prepare migration and then sign in your same subscription using classic approach that is ASM to perform migration and commit.

Step 1.
Let's login ARM


Step 2.
Store subscription id into a variable

$SubID = "1345e4-4561-1bd7-55c1-e3848012qw4r"

Step 3.
Select subscription using above variable

Select-AzureRmSubscription -SubscriptionID $SubID

Step 4.
Now, let's prepare the migration on ARM, this operation may take few minutes.

Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Step 5.
Now, in order to know the progress just use below command, you should see RegistrationState to Registered. Once you see Registered, you are good to go ahead.

Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Step 6.
Let's login ASM now


Step 7.
Then, select the subscription using subscription id that we stored in variable above.

Select-AzureSubscription -SubscriptionID $SubID

Step 8.
Now, let's get virtual network name that we will in next step.

Get-AzureVNetConfig -ExportToFile "C:\Users\Abhimanyu K Vatsa\Desktop\VNetConfig.xml"

Now you copy the value of VirtualNetworkSite name="demo-vnet-name"

Step 9.
Store the virtual network name in a variable. Remember, we are migrating virtual network that will automatically migration everything that is associated with this network, including network itself, vms, storage, load-balancer, subnet, nic etc.

$VNetName = "demo-vnet-name"

Step 10.
Let's run most powerful command that prepares the move and it may take few minutes.

Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $VNetName

Step 11.
If you login to portal now, you will notice a new resource group is create with same name but -Migrated as post-fix. Don't worry, if you see everything doubled. Because these are exact same copy of your resources that was in classic. Once you run commit command (given below) your all classic resources will be removed and you will have migrated resources on ARM and every thing working as it was working earlier. Note, this operation may also take some time.

Move-AzureVirtualNetwork -Commit -VirtualNetworkName $VNetName

Or if you feel something going wrong, you can abort it using below command:

Move-AzureVirtualNetwork -Abort -VirtualNetworkName $VNetName

I used these commands several times and never faced any challenges, but still recommend you to run it yourself before your migrate production resources.

Hope this helps.