Getting faster downloads from MSDN with IE11

July 9, 2015 Windows No comments ,

I use MSDN a lot to download MSDN licensed software and patches and one of the issues I’ve seen with these downloads is the download speed. When I download any trial version of software from public site, the download speed is excellent; but, when switching to MSDN downloads the speed is slow and there are disruptions.

This may be because MSDN downloads are behind more secure and authenticated channel. One of the tools, I have earlier used to download MSDN software i.e. File Transfer Manager has also stopped popping up when I now download software.

On a bit of investigation and trial-error, I found that FTM uses ActiveX technology and ActiveX is not supported on Internet Explorer 11. So here’s the trick to still use FTM with IE 11.

Go to the MSDN download page and select the software you want to download. Now follow these steps to enable FTM

  • Press F12 to launch Developer Tools
  • Click on the Emulation Tab and change
    • Document Mode to 9
    • User agent string to Internet Explorer 9
  • Refresh the page and hit the download button

This should automatically start File Transfer Manager. If you want to manually launch FTM, you can follow my old post

 

1Gig-Tech #1 – Azure, SignalR, Win10, Redis, DevOps, HTML5

July 5, 2015 1Gig Tech No comments , , , , ,

Welcome to 1Gig Tech for 05 Jul, 2015!

In today’s edition, there are 20 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • Code Presenter Pro
    Code Presenter Pro focuses on providing a solution for more efficient presentation.
    Read more
  • How to install Microsoft Visual Studio Code in Ubuntu, Linux Mint, elementary os Freya ……… by Polihron Alexandru
    sudo apt-add-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update sudo apt-get install ubuntu-make umake web visual-studio-code
    Read more
  • Free ebook: Microsoft Azure Essentials: Azure Web Apps for Developers by Rick Rainey. This
    Download all formats (PDF, Mobi and ePub) at the Microsoft Virtual Academy. Below you’ll find the ebook’s Foreword, by Scott Guthrie, Executive Vice President of the Cloud and Enterprise group at Microsoft, as well as a few helpful sections from its Introduction. Enjoy!
    Read more
  • Microsoft/Windows-universal-samples by corywink
    This repo contains the samples that demonstrate the API usage patterns for the Universal Windows Platform (UWP) in the Windows Software Development Kit (SDK) for Windows 10. These code samples are designed to run on both desktop, mobile and future devices that support the Universal Windows Platform.
    Read more
  • VM Depot : Image Minecraft out-a-box server
    Categories: Application Stack Language Stack
    Read more
  • Update WebGrid on Clients Without Postback using SignalR by Shashank S Chandel
    Till now, everyone has used a gridview to bind data on postbacks. Here, we make it dynamic using SiganlR to update columns on each client where the gridview is displayed without postback or any server side operation. SiganlR and JQuery will make this possible.
    Read more
  • Microsoft Mico: See the first Windows 11 Mobile Concept by Surur
    Windows 10 Mobile has not even launched yet, but that does not mean futuristic concept designers can not imagineer the next version of the OS already.
    Read more
  • Refactoring with Loops and Collection Pipelines by Martin Fowler
    The loop is the classic way of processing collections, but with the greater adoption of first-class functions in programming languages the collection pipeline is an appealing alternative. In this article I look at refactoring loops to collection pipelines with a series of small examples.
    Read more
  • Don’t like white title bars on Windows 10? Here’s how to get colored title bars! by Mehedi Hassan
    Windows 10 comes with a lot of new features and improvements. One of the most controversial new change is the title bars – Microsoft has made the title bars white which a lot of users like while some don’t.
    Read more
  • Intro to Redis for .NET Developers
    Redis (REmote DIctionay Server) is a very popular open-source, networked, in-memory, key-value data store, sometimes referred to as a data structure server which also comes with optional durability.
    Read more
  • Moving to HTML5 Premium Media by Microsoft Edge Team
    The commercial media industry is undergoing a major transition as content providers move away from proprietary web plug-in based delivery mechanisms (such as Flash or Silverlight), and replace them with unified plug-in free video players that are based on HTML5 specifications and commercial media e
    Read more
  • DevOps: Continuous Delivery using Visual Studio Online and Azure.
    The session outlines the best of cloud world – ALM and Continuous Delivery into Azure platform. The session will focus on configuring VSO, developing applications using VS2015 and running continuous integration (unit tests) and auto deploying the code to Azure Staging and Production platforms.
    Read more
  • Create your temporary Azure App Service app
    Free trial Create your temporary Azure App Service app 1) Select your App Service 2) Select a template and create your web app Change language: Create 3) Work with your web app for an hour, or sign up for a trial and stay for a month! Manage in Azure Porta
    Read more
  • Xamarin Test Cloud Now Available to All Xamarin Developers by Steven Yi
    We started Xamarin because we want to help developers build apps they can be proud of and provide you with the tools you need to ensure that your apps do what they were designed to do. A user’s perspective about you or your business is greatly impacted by your mobile app.
    Read more
  • Working Toward Universal Interoperability in IoT by Steve Teixeira
    Today’s Internet of Things landscape is a modern day Tower of Babel – a proliferation of communication protocols and data formats across the device ecosystem that make it difficult for devices to “speak the same language” and work together in harmony.
    Read more
  • Microsoft Announces Azure Authenticator App For iOS, Android And Windows Devices by pradeep
    Microsoft recently released a new version of the Azure Authenticator that replaces the Multi-Factor Authentication app published by PhoneFactor. Azure Authenticator can be the single application you need for all your multi-factor authentication needs.
    Read more
  • Meet Microsoft’s Maker.js, A JavaScript Library For Creating Drawings For CNC And Laser Cutters by pradeep
    Maker.js is a new Microsoft Garage project. It is an open source JavaScript library for creating drawings for CNC and laser cutters. Drawings are small JavaScript programs which can be reused in other drawings, creating a network effect. Maker.
    Read more
  • 650+ Free controls and frameworks for .NET (Windows Forms, WPF, ASP.NET MVC, ASP.NET Web Forms, LightSwitch, Silverlight, Windows Phone, WinRT, Windows 8), iOS, Android, Xamarin and JavaScript platforms
    Who is eligible? Individual developers or up to five users at companies with annual gross revenue below $1 million USD.
    Read more
  • Windows 10 is coming…here’s what to tell non-technical parent by Scott Hanselman
    Windows 10 is coming on July 29th! I’ve been doing Build to Build videos on my YouTube showing what’s changing and how it will affect you. I got a request to do a video showing Windows 7, Windows 8, and Windows 10 and how to reserve your upgrade, as well as a little demo of the Start Screen.
    Read more
  • Paged List for WebAPI by Tom DuPont
    One of my favorite quotes is “there is nothing as embarrassing as yesterday’s code.” I blogged about a paged list class a while back, but I no longer like that implementation…so here is a new one that includes WebAPI serialization support!
    Read more

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech

Thanks

The PowerShell Conference 2015 Asia

July 4, 2015 CSharp, PowerShell, Sessions, Visual Studio No comments , ,

The agenda for the first PowerShell Asia Conference is out!

Several excellent speakers have been lined up for this 2 day conference.  Speakers include Jeffrey Snover (@jsnover) and Nana Lakshmanan (@nanalakshmanan)  from the PowerShell team and a strong line-up of MVPs and well-known community contributors.

They’ll cover in-depth topics on the PowerShell language and how you can use PowerShell to automate the technologies you use.

PowerShellConf2015

The conference is on Friday and Saturday and it ends with a closing session of drinks and nibbles at a local bar. Head right home on Sunday or do some sightseeing. The Formula 1 Grand Prix Night Race is on Sunday.

The full agenda of the conference can be viewed at http://powershell.asia/

I will also be presenting a session on “Object Oriented .NET with PowerShell

Object Oriented Programming has been an essential skill for developers and over the years the technical fraternity has witnessed several OOP languages and leveraged their benefits. Using object orientation in PowerShell can take your scripts go to different level.

The session will focus on using .NET with PowerShell – creating classes in PowerShell, objects, reference types, events, loading assembly and alike. Leverage your .NET skills and create managed-PowerShell scripts!

Do make sure to follow the updates on The PowerShell Conference 2015 Asia on its website on any device you own, or through the Windows Phone app if you own a Windows Phone and Windows Store if you are running Windows 8.1 or 10.

So register yourself today!

Embracing Open Source for Connected Devices [DotNetCurry Magazine]

July 2, 2015 Azure, IoT, Open Source No comments , ,

I am glad to inform that my article on Internet of Things on Azure using Javascript and .NET is featured in the 3rd anniversary of DotNetCurry Magazine (Issue 19).

An excerpt from the article is

With each passing day, we are getting hooked on to an increasing number of small devices. Besides, the Internet drives our lives like never before. It is obvious, as well as natural, that the connectivity of these small devices with the Internet, ultimately, will lead towards their inter-connectivity; where not only data exchange, but decision making will be a shared responsibility of these smart devices. That means the real value of Internet of Things (IoT) does not lie in just home automation, but rather in the data collection by these smart devices and analytics, further up the value chain.

In this article, we will explore the possibility of developing applications for IoT devices that capture data from low-cost sensors and communicate with real-time scalable services in Windows Azure – primarily using Open Source Technologies for devices and Managed Services in Azure.

Direct download: [PDF- DNC-July 2015] [ZIP- DNC-July 2015]

Channel9 – DevOps: Continuous Delivery using Visual Studio Online and Azure

June 22, 2015 Azure, Sessions, TFS, Visual Studio No comments , , , , ,

I am glad to say that my webcast, that I delivered as part of Southeast Asia MVP ComCamp 2015, has been published on MSDN Channel9 

The session outlines the best of cloud world – ALM and Continuous Delivery into Azure platform.  The session will focus on configuring VSO, developing applications using VS2015 and running continuous integration (unit tests) and auto deploying the code to Azure Staging and Production platforms.

Direct link: https://channel9.msdn.com/Events/MVPAsiaCommunity/ComCamp2015May/SEA05

 

5 steps to targeting multiple .NET frameworks

June 21, 2015 CSharp, Visual Studio No comments , ,

When designing an API or libraries, we aim to have maximum coverage of available .NET frameworks so that we can have maximum number of clients adopt our APIs.  The key challenge in such scenarios is to have a clean code and an efficient way to manage multiple versions of code, Nuget packages and builds.

This article will outline a quick and easy way to manage single code base and target multiple .NET framework versions.  I’ve used the same concept in KonfDB

Step 1 – Visual Studio Project Configuration

 

First, we need to use Visual Studio to create multiple build definitions.  I would prefer 2 definitions per .NET configuration like

  • .NET 4.0 — DebugNET40, ReleaseNET40
  • .NET 4.5 — DebugNET45 and ReleaseNET45

When adding these configurations, clone them from Debug and Release and make sure you have selected ‘Create New Project Configurations’


This will modify your solution (.sln) file and Project (.csproj) files.

If certain projects do not support both versions, you can uncheck them before clicking on Close button.   This is usually done, when your solution has 2 parts – API and Server and you want the API to be multi-framework target and Server code to run on a particular version of .NET

Step 2 – Framework Targeting in Projects

 

There are 2 types of changes required in the Project (.csproj) files to manage multiple .NET versions

Every project has default configuration.  This is usually the lowest or base configuration.  This is defined by xml property like

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

 

Change this to

<Configuration Condition=" '$(Configuration)' == '' ">DebugNET40</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

 

Make sure that all the projects in solution have same default Configuration and TargetFrameworkVersion

When we added multiple configurations to our solution, there is one PropertyGroup per configuration added to our Project (.csproj) files.  This appears something like,

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugNET40|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>

 

We need to add/modify 3 lines in each of these PropertyGroup tags to change OutputPath, TargetFrameworkVersion and DefineConstants

For .NET 4.0:

<OutputPath>bin\$(Configuration)\$(TargetFrameworkVersion)\</OutputPath>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<DefineConstants>DEBUG;TRACE;NET40</DefineConstants>

 

For .NET 4.5:

<OutputPath>bin\$(Configuration)\$(TargetFrameworkVersion)\</OutputPath>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<DefineConstants>DEBUG;TRACE;NET45</DefineConstants>

 

We will use these settings later in the article.

Step 3 – References Targeting in Projects

 

Our dependent libraries may have different versions for different versions of .NET. A classic example is Newtonsoft JSON libraries which are different for .NET 4.0 and .NET 4.5. So we may require framework dependent references – be it Standard References or Nuget References.

When we are using standard references, we can organize our libraries in framework specific folders and alter the project configuration to look like,

<Reference Include="Some.Assembly">
<HintPath>..\Libraries\$(TargetFrameworkVersion)\Some.Assembly.dll</HintPath>
</Reference>

 

To reference Nuget packages, we can add conditions to the references as shown below

<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"
Condition="'$(TargetFrameworkVersion)' == 'v4.5'">
<HintPath>..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"
Condition="'$(TargetFrameworkVersion)' == 'v4.0'">
<HintPath>..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net40\Newtonsoft.Json.dll</HintPath>
</Reference>
</ItemGroup>

 

When we now do a batch build in Visual Studio, the solution should compile without errors.

Step 4 – Managing Clean Code with multiple frameworks

 

There are 2 ways to manage our code with different versions of .NET.

Bridging the gap of .NET 4.5.x in .NET 4.0

 

Let’s assume we are creating an archival process where we want to zip the log files and delete the log files after zipping them. If we build this functionality with .NET 4.5 framework, we can use the ZipArchive class (in System.IO.Compression) in .NET 4.5 but there is no such class in .NET 4.0. In such cases, we should go for interface driven programming and define 2 implementations – one for .NET 4.0 and one for .NET 4.5.

These 2 implementations cannot co-exist in the solution as they may give compilation issues. To avoid these we need to edit the Project (.csproj) file to

<Compile Include="LogFileMaintenance40.cs" Condition=" '$(TargetFrameworkVersion)' == 'v4.0' " />
<Compile Include="LogFileMaintenance45.cs" Condition=" '$(TargetFrameworkVersion)' == 'v4.5' " />

 

Both these files can have the same class names as at a given time, only one of them will compile

The unclean way

 

The unclean way is where we use the DefineConstants to differentiate between the framework versions. Earlier in the project configuration, we changed the DefineConstants to have NET40 and NET45. We can use these DefineConstants as pre-processor directives to include framework specific code like,

#if NET40
    …
#endif
#if NET45
    …
#endif

 

This methodology should be adopted only if there is minor change in the functionalities as it is very difficult to debug this code.

Step 5 – Build without Visual Studio

 

While Visual Studio allows us to trigger builds for any configuration by manually selecting the configuration from the dropdown, we can also create a batch file to allow us build our solution with different .NET frameworks. This batch file can be used with any Build System like TFS, Jenkins, TeamCity, etc.

REM Build Solution
SET CONFIGURATION=%1
set PATH_SOURCE_SLN="%cd%\OurSolution.sln"
if [%1]==[] (
SET CONFIGURATION=DebugNET40
)
MSBuild %PATH_SOURCE_SLN% /p:Configuration=%CONFIGURATION%


This 5 step process allows us to develop our solution targeting multiple .NET frameworks and allows us to narrow down the implementation to a particular .NET framework during the build.

 

 


 

Application Design: Going Stateless on Azure

May 20, 2015 Azure No comments , ,

Disclaimer:
I am glad to say that I authored this exclusive article for Microsoft Press Blog and MVP Award Program Blog and it was first published on 4th May, 2015.
This article is available on my website for archival purpose

 

The components of a cloud application are distributed and deployed among multiple cloud resources (virtual machines) to benefit from the elastic demand driven environment. One of the most important factor in this elastic cloud is the ability to add or remove application components and resources as and when required to fulfil scalability needs.

However, while removing the components, this internal state or information may be lost.

That’s when the application needs to segregate their internal state from an in-memory store to a persistent data store so that the scalability and reliability are assured even in case of reduction of components as well as in the case of failures.  In this article, we will understand ‘being stateless’ and will explore strategies like Database-driven State Management, and Cache driven State Management.

 

Being stateless

 

Statelessness refers to the fact that no data is preserved in the application memory itself between multiple runs of the strategy (i.e. action). When same strategy is executed multiple times, no data from a run of strategy is carried over to another. Statelessness allows our system to execute the first run of the strategy on a resource (say X) in cloud, the second one on another available resource (say Y, or even on X) in cloud and so on.

This doesn’t mean that applications should not have any state. It merely means that the actions should be designed to be stateless and should be provided with the necessary context to build up the state.

If our application has a series of such actions (say A1, A2, A3…) to be performed, each action (say A1) receives context information (say C1), executes the action and builds up the context (say C2) for next action (say A2). However, Action A2 should not necessarily depend on Action A1 and should be able to be executed independently using context C2 available to it.

How can we make our application stateless?

 

The conventional approach to having stateless applications is to push the state from web/services out of the application tier to somewhere else – either in configuration or persistent store. As shown in diagram below, the user request is routed through App Tier that can refer to the configuration to decide the persistent store (like, database) to store the state. Finally, an application utility service (preferably, isolated from application tier) can perform state management

 

 

The App Utility Service (in the above diagram) takes the onus of state management. It requires the execution context from App Tier so that it can trigger either a data-driven state machine or an event-drive state machine. An example of state machine for bug management system would have 4 states as shown below

 

To achieve this statelessness in application, there are several strategies to push the application state out of the application tier. Let’s consider few of them.

 

Database-drive State Management

 

Taking the same bug management system as an example, we can derive the state using simple data structures stored in database tables.

Current State

Event

Action

Next State

START

NewBug

OpenNew

Bug Opened

Bug Opened

Assigned

AssignForFix

Fix Needed

Not A Bug

MarkClosed

Bug Closed

Fix Needed

Resolved

MarkResolved

Bug Fixed

ReOpened

AssignForFix

Fix Needed

Bug Fixed

Tested

MarkClosed

Bug Closed

ReOpened

MarkOpen

Fix Needed

Bug Closed

END

 

The above structure only defines the finite states that a bug resolution can visit. Each action needs to be context-aware (i.e. minimal bug information and sometimes the state from which the action was invoked) so that it can independently process the bug and identify the next state (especially when multiple end-states are possible).

When we look at database-drive state management on Azure, we can leverage one of these out-of-the-box solutions

  • Azure SQL Database: The Best choice when we want to work with relational & structured data using relations, indexes, constraints, etc. It is a complete suite of MS-SQL database hosted on Azure.

  • Azure Storage Tables: Works great when we want to work with structured data without relationships, possibly with larger volumes. A lot of times better performance at lower cost is observed with Storage Tables especially when used for data without relationships. Further read on this topic – SQL Azure and Microsoft Azure Table Storage by Joseph Fultz
  • DocumentDB: DocumentDB, a NoSQL database, pitches itself as a solution to store unstructured data (schema-free) and can have rich query capabilities at blazing speeds. Unlike other document based NoSQL databases, it allows creation of stored procedures and querying with SQL statements.

Depending on our tech stack, size of the state and the expected number of state retrievals, we can choose one of the above solutions.

While moving the state management to database works for most of the scenarios, there are times when these read-writes to database may slow down the performance of our application. Considering state is transient data and most of it is not required to be persisted across two sessions of the user, there is a need of a cache system that provides us state objects with low-latency speeds.

 

Cache driven state management

 

To persist state data using a cache store is also an excellent option available to developers.  Web developers have been storing state data (like, user preferences, shopping carts, etc.) in cache stores ever since ASP.NET was introduced.  By default, ASP.NET allows state storage in memory of the hosting application pool.  In-memory state storage is required following reasons:

  • The frequency at which ASP.NET worker process recycles is beyond the scope of application and it can cause the in-memory cache to be wiped off

  • With a load balancer in the cloud, there isn’t any guarantee that the host that processed first request will also receive the second one. So there are chances that the in-memory information on multiple servers may not be in sync

The typical in-memory state management is referred as ‘In-role’ cache when this application is hosted on Azure platform.

Other alternatives to in-memory state management are out-of-proc management where state is managed either by a separate service or in SQL server – something that we discussed in the last section.  This mechanism assures resiliency at the cost of performance.  For every request to be processed, there will be additional network calls to retrieve state information before the request is processed, and another network call to store the new state.

The need of the hour is to have a high-performance, in-memory or distributed caching service that can leverage Azure infrastructure to act as a low-latency state store – like, Azure Redis Cache.

Based on the tenancy of the application, we can have a single node or multiple node (primary/secondary) node of Redis Cache to store data types such as lists, hashed sets, sorted sets and bitmaps.


Azure Redis cache supports master-slave replication with very fast non-blocking first synchronization and auto-reconnection on net split. So, when we choose multiple-nodes for Redis cache management, we are ensuring that our application state is not managed on single server. Our application state get replicated on multiple nodes (i.e. slaves) at real-time. It also promises to bring up the slave node automatically when the master node is offline.

 

Fault tolerance with State Management Strategies

With both database-driven state management and cache-driven state management, we also need to handle temporary service interruptions – possibly due to network connections, layers of load-balancers in the cloud or some backbone services that these solutions use. To give a seamless experience to our end-users, our application design should cater to handle these transient failures.

Handling database transient errors

Using Transient Fault Handling Application Block, with plain vanilla ADO.NET, we can define policy to retry execution of database command and wait period between tries to provide a reliable connection to database. Or, if our application is using any version of Entity Framework, we can include SqlAzureExecutionStrategy, an execution strategy that configures the policy to retry 3 times with an exponential wait between tries.

Every retry consumes computation power and slows down the application performance. So, we should define a policy, a circuit breaker that prevents throttling of service by processing the failed requests. There is no-one-size-fits all solution to breaking the retries.

There are 2 ways to implement a circuit breaker for state management –

  • Fallback or Fail silent– If there is a fallback mechanism to complete the requested functionality without the state management, the application should attempt executing it. For example, when the database is not available, the application can fallback on cache object. If no fallback is available, our application can fail silent (i.e. return a void state for a request).
  • Fail fast – Error out the user to avoid flooding the retry service and provide a friendly response to try later.     

Handling cache transient errors

Azure Redis cache internally uses ConnectionMultiplexer that automatically reconnects to Redis cache should there be disconnection or Internet glitch. However, the StackExchange.Redis does not retry for the get and set commands. To overcome this limitation, we can use library such as Polly that provide policies like Retry, Retry Forever, Wait and Retry and Circuit Breaker in a fluent manner.

The take-away!

The key take-away is to design applications considering that the infrastructure in cloud is elastic and that our applications should be designed to leverage its benefits without compromising the stability and user experience. It is, hence, utmost important to think about application information storage, its access mechanisms, exception handling and dynamic demand.

First published on 4th May, 2015 on Microsoft Press Blog and MVP Award Program Blog

DevOps: Continuous Delivery using Visual Studio and Azure (with ASP.NET MVC)

May 17, 2015 Sessions No comments

Interested in Cloud application development? Join Microsoft MVPs for upcoming live and recorded webcasts featuring the most current hot topics around developing for Microsoft Cloud technologies. You don’t need experience with the Microsoft platform—this edition of the MVP Community Camp offers introductory seminars.

Book the dates: 25-29th May, 2015

Along with other South-East Asia MVPs, I will be presenting a 30-minute session on

Continuous Delivery using Visual Studio and Azure (with ASP.NET MVC)


The session will focus on configuring VSO, developing applications using VS2015 and running continuous integration and auto deploying the code to Azure platform. We will use ASP.NET MVC for this session and can be extended for any application using C#, Java, NodeJS or even PHP.

 

So make sure you tune-in to the session. Don’t forget to register for this FREE webcast on http://aka.ms/mvpcomcamp4th

5 steps to create Ubuntu Hyper-V Virtual Machine

May 3, 2015 ASP.NET vNext, Azure No comments , ,

For quite some time now, I’ve been trying .NET 2015 on Azure Virtual Machines – Windows Server and Ubuntu and have been trying my hands at Shell Scripts. I’ve also been trying IoT using Linux on Raspberry Pi, Arduino and Intel Galileo Gen 2 boards.

To avoid running out of Azure credits, this time, I thought of creating a Hyper-V based Virtual Machine of Ubuntu on my laptop that could run in parallel with Windows OS. This article will outline 5 basic steps to create Ubuntu VM on your laptop that connects to the Internet. Once I have setup Ubuntu, I can use this VM to explore more of ASP.NET vNext

Step 1: Enable Hyper-V on your Windows 8.1 / 10 laptop

 

Ensure that hardware virtualization support is turned on in the BIOS settings.

Save the BIOS settings and reboot the machine. At the Start Screen, type ‘turn windows features on or off’ and select that item. Select and enable Hyper-V

If Hyper-V was not previously enabled, reboot the machine to apply the change. Ensure that hardware virtualization support is turned on in the BIOS settings

 

Step 2: Create a Virtual Switch for your Wireless Network

 

In Hyper-V Manager, select ‘Virtual Switch Manager’ in the Action pane. Ensure that you have at least one Virtual Switch that enables ‘External’ connectivity

Step 3: Download Ubuntu ISO image and Create New VHDX

 

Download latest image of Ubuntu ISO image – Server or Desktop from http://www.ubuntu.com/download and store it in local disk.

Open Hyper-V Manager, and select “New > Virtual Machine”. In the wizard, provide a friendly name like “Ubuntu VM” and select “Generation 2”. Assign min 512 MB memory and check the box “Use Dynamic Memory for Virtual Machine.”

In Configure Networking step, select the same Virtual Switch that has external network connectivity (configured in step 2)

In Connect Virtual Hard Disk, ensure that you have allocated at least 10GB of disk space. In the Installation Options, select the option “Install the operating system from bootable image file” and select the ISO file downloaded from Ubuntu.com and click Finish.

Step 4: Disable Secure Boot

 

In Hyper-V Manager, select the “Ubuntu VM” and click on Settings in the Action pane and uncheck ‘Enable Secure Boot’

Step 5: Start Ubuntu VM

 

In Hyper V Manager, right click on “Ubuntu VM” and click on Start and then on Connect. This will start Ubuntu on Hyper V.

Select Install Ubuntu and press ENTER and wait for some time.

Once this wizard completes, you will have a working version of Ubuntu on your machine, running in parallel with Windows 8.1 / 10

Getting Started with IaaS and Open Source on Azure

April 24, 2015 Azure No comments , ,

As a developer, we often spend time in using our favourite developer tools, design patterns, deployment practices and we also brag about DevOps.  When it comes to developing for cloud, knowing development practices isn’t sufficient.  For green-field projects, we can definitely adopt PaaS model and leverage the best of the cloud world. However, when we want to leverage cloud for existing applications (with less or negligible code changes), having knowledge of IaaS is essential.

Three fundamental courses on MVA are key to understanding and exploring IaaS

  • Fundamentals of IaaS
    As the name suggests, take a dig on managing server on Azure and some of the management practices

These courses provide an excellent insight to how infrastructure can be best managed on Azure!

Follow on Feedly