Skip to main content

VM Depot - Stepping into a new era

From last year, Windows Azure started to support any kind of system on Virtual Machines. We can install a Linux operating system on them without any kind of problem. Also we have some images created by default, with different operating system, that can be used by anybody.
This year we have a new feature related to these images.  Windows Azure offers VM Depot. This is a place where anybody can upload his image of operation system and share with others. For example we can create and share with others an image of Ubuntu that is preconfigured to run different application like Redmine, Moodle,  Glitorious and so on.
A nice feature of this system is the rating and feedback mechanism. Each user can rate an image and give feedback. In this way people can select more easily an image for themselves. Not only this, but you can take an image, change it and share it again with others.
When you want to deploy an image of a VM machine from Windows Azure, VM Depot will generate the command line that you need to run on Cloud to install the specific image on your virtual image. Publishing your machine is simpler than deploying it. You need to set a name, description and a URL path where the VHD is published. 
You don’t need to have a Windows Azure account to be able to navigate, get the deployments script or publish a new virtual machine.
The real value of this service is for the companies that have a product that can be run on cloud also. Image that you are a software company that has a great product for online payment. Your product is developed in C++ and runs on Ubuntu. You will be able to publish an image of your VM machine for all your customers very easily. In this way your customer will have images of your server pre-configured.
Using this new service we can share and deploy images for Windows Azure very easily.


  1. Era de asteptat ca vor oferi si ei ceva similar cu Amazon Machine Images (

    1. The idea is great. I'm happy to see it on Azure also :-)

  2. The wheel was a great idea. I'm not sure about virtual machine repos :)


Post a Comment

Popular posts from this blog

How to check in AngularJS if a service was register or not

There are cases when you need to check in a service or a controller was register in AngularJS.
For example a valid use case is when you have the same implementation running on multiple application. In this case, you may want to intercept the HTTP provider and add a custom step there. This step don’t needs to run on all the application, only in the one where the service exist and register.
A solution for this case would be to have a flag in the configuration that specify this. In the core you would have an IF that would check the value of this flag.
Another solution is to check if a specific service was register in AngularJS or not. If the service was register that you would execute your own logic.
To check if a service was register or not in AngularJS container you need to call the ‘has’ method of ‘inhector’. It will return TRUE if the service was register.
if ($injector.has('httpInterceptorService')) { $httpProvider.interceptors.push('httpInterceptorService&#…

ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded

Today blog post will be started with the following error when running DB tests on the CI machine:
threw exception: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See for more information. at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName) This error happened only on the Continuous Integration machine. On the devs machines, everything has fine. The classic problem – on my machine it’s working. The CI has the following configuration:

TeamCity.NET 4.51EF 6.0.2VS2013
It seems that there …

Entity Framework (EF) TransactionScope vs Database.BeginTransaction

In today blog post we will talk a little about a new feature that is available on EF6+ related to Transactions.
Until now, when we had to use transaction we used ‘TransactionScope’. It works great and I would say that is something that is now in our blood.
using (var scope = new TransactionScope(TransactionScopeOption.Required)) { using (SqlConnection conn = new SqlConnection("...")) { conn.Open(); SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = conn; sqlCommand.CommandText = ... sqlCommand.ExecuteNonQuery(); ... } scope.Complete(); } Starting with EF6.0 we have a new way to work with transactions. The new approach is based on Database.BeginTransaction(), Database.Rollback(), Database.Commit(). Yes, no more TransactionScope.
In the followi…