My talk at ITCamp 2014 was about patterns for scalability for cloud application (especially Microsoft Azure applications).

Here are the slides:

I recently gave a talk on ‘What Is Cloud Computing’ during a gathering of the local developer community. My talk was about Microsoft Azure and its features and how they can help developers in their day-to-day activities.

Here are the slides:

And here’s the recording:

I recently wrote two articles in TechWiki, which were both featured in the Wiki Magazine (issue 6). You can find the articles here and here, and the magazine here.

However, due to some misconfiguration of a new Wordpress plug-in I succeeded in corrupting my database completely and my oldest backup apparently wasn’t complete. Therefore, you’ll see that my last posts have awkard dates and that some of the attached images have been lost. Sorry for that 🙁


Lab Management is a great piece of software that takes great use of virtual machines in order to create virtual labs where you, your team and your testers can test out an application in a clean environment. Lab Management integrates with Team Foundation Server 2010 and thus enables you to create the lab environements out of Visual Studio with ease.

So I started upgrading our TFS 2008 with the not-so-brand-new TFS 2010, on a completely different new machine. Besides the hassle regarding upgrading the databases, prepairing the user accounts, the shared folders, the services etc. I got to the point where I had everything working (except SharePoint Services 3 integration; will talk about that later) and was getting ready to install the Lab Management stuff.

First things are first, so I installed the Hyper-V role on my Windows Server 2008 R2 machine and afterwars System Center Virtual Machine Manager 2008 R2, because Lab Management works with SCVMM. After putting everything up and creating the SCVMM configuration to work with Hyper-V, I got the the final (and, in the end, not so final after all) point where I would configure the Lab Management in Team Foundation Server Admin Console.

So I put in the machine’s fully qualified domain name and click Test, but then suddenty a dialog box pops up requesting a user account. So I enter the user account I created for the Lab Management stuff (TFSLAB), insert the password and click Test. The credentials are fine, so I click Ok. Boom! I get this error:


TF260078: Team Foundation Server could not connect to the System Center Virtual Machine Manager Server: servername. More information for administrator: You cannot contact the Virtual Machine Manager server. The credentials provided have insufficient privileges on servername.

Ensure that your account has access to the Virtual Machine Manager server on servername, and then try the operation again.

Right. Now what? I double-check the password. Password’s fine. I double-check the username. Username’s fine. Obsiously this doesn’t have anything to do with the credentials. I check the Configuring Lab Management for th

There’s a hidden feature in Windows 8.1 that for some reason (marketing?!) didn’t get public-ish… It’s slide-to-shutdown. Basically, just like on Windows phone, with slide-to-shutdown you have the option of shutting down your PC from sliding down the lock screen.

This ‘feature’ is however available on your Windows 8.1 PC by running the slidetoshutdown.exe. You can do this directly from you Run prompt or by running slidetoshutdown.exe from a custom app you might develop for yourself (and the rest of the world :-) ).


If you’ve ever received support from the Microsoft Azure Support team on Hosted Services/Cloud Services, you might want to know that the great team that supported you (which, by the way, in order to offer 24/7 support is deployed around the world!) has used a tool which allows them (and since last year, you too) to debug slow performance, hangs, manipulate HTTP traffic, analyze network performance, transfer files, recall a debugged machine from the load balancer, check the defined inputs on your service’s roles and so on.

Please be advised that this is actually an in-house tool developed by Microsoft and is arguably, the most handy tool to have whenever something works unexpected in your cloud environment.

The link to it is here, and this blogpost explains all the features in a little more detail.

Hope you’ll find it useful at some point.

I recently worked on a presentation seminar about Microsoft Azure related functionalities and I remembered that there’s a set of all the marketing symbols used around Azure which is extremely useful for scenarios like mine. There it is:

Hopefully this helps you out.

Hi loyal readers! I’m super excited today because the Azure SQL Database team have just announced two new tiering levels!

Basically, there announced a Basic and a Standard tier, in addition to the Premium tier. Ok, you might ask yourself why I didn’t mention the Web and Business tiers. Well, because they will be retired in 12 months :(.

The new tiers won’t just change the naming conventions. They come with some additional goodies too! First of all, there’s 99.95% SLA (as soon as they will be GA). Second, there’s self-restore, a service that allows automatic restoration of your database. Based on the tiering level, you can get your data from a restore point that was done up to 24h priorly, 7 days priorly or 35 days priorly (guess which tiering level offers restoration to any point within 35 days – you’re right: Premium). Moreover, there’s a disaster recovery scenario now too: basically, you can get up to 4 readable geo-replicas created for your database. And last but especially not least is performance. If before Premium, you complaint about performance was legit, starting now you are no longer allowed to compain about SQL Database performance :). In order to express Performance, the Azure team has defined DTU, the acronym for database throughput unit. Basically, a DTU combines CPU, memory, physical reads and transaction log writes into a single unit of processing. Based on this definition, “a performance level with 5 DTUs has five times more power than a performance level with 1 DTU”. (

In other words, you have the option of scaling up your database in the most transparent way: if your database no longer keeps up with the high concurrency, just scale to a double, triple etc. powered system.

Moreover, there is ASDB, which stands for Azure SQL Database Benchmark. “ASDB measures the actual throughput of a performance level by using  a mix of database operations which occur most frequently in online transaction processing (OLTP) workloads”. There more information on ASDB here:

When it comes to db performance, the most evident performance reference is the transaction rate. On the link provided before, there’s a table on each tier’s performance level; let me give you a hint on db performance today: you can get up to 730 transactions / seconds in your database, with 800 concurrent users. Wow!

If you plan to upgrade today, make sure that your subscription has the preview feature activated. If so, you’ll have to create a new server database and copy your existing Web/Business database over to the new server via any mechanism you want. The most comfortable one probably is exporting a .bacpac of your existing database and importing it to the new server. However, please keep in mind that this small drawback is only temporary: the team plans to offer you the option of scaling from Web and Business to Basic and Standard and vice-versa without moving the database to a new server soon (don’t exactly know when, but most likely before the new tiers are generally available).

Pricing will, of course, always be a huge question. If so far your pricing was GB based on the tier you’ve chosen, database size is no longer the only unit of measurement here, since performance will matter from now on too. Therefore, it still is extremely important to optimize your queries as much as possible and only leave the scaling as a last resort. However, if your pocket is wide enough, just go ahead and creat P3 Premium databases and surf around your query waves. ;)


A couple of days ago I’ve updated my phone to the preview version of Windows Phone 8.1 and after intensively using it, I made a list of things I love and things I hate about it. Here it goes:

Things I love about WP8.1

  1. UPDATE: I’ve just realized that WP8.1 has Speed Dial! Honestly, I feel that this is a hidden gem. Love it! Just open up the Phone tile and swipe left or right and you get access to your speed dial. No more ridiculous tiles to your contacts on the home screen!
  2. UPDATE: Another cool thing about WP8.1 is that you can open up an unlimited number of tabs (ok, I didn’t really try to open up ridiculously many tabs, but I’ve realized that after opening up abou 9 tabs, I still have access to all of them. Man I love this WP update!
  3. Universal Apps framework: that’s right, this is a developer specific feature that basically gives me the opportunity to develop a single code-base (views included) for both Windows Phone 8.1 and Windows 8.1, which is incredible. Of course that for a highly performing and snappy app some tweaking will be required, yet it’s a cool feature to have, given that your customer audience grows exponentially every day. Sweet!
  4. Customizable background: yes, you can finally have your own custom background in the home screen. This means that the image you select become part of your apps’ tiles background. There’s also a cool effect when you slide up and down, meaning that the background isn’t completely static, yet it doesn’t move along with the slider either. You therefore get an effect where the background seems to stay far back whilst the tiles are closer to you: just like you’d be watching out on the window. Sweet!
  5. Action Center: never loose you your notifications again! Simply slide from the upper side of the screen and get quick access to the Notification Center. Also available from the lockscreen, even if you’ve activated your PIN lock. Finally, guys!
  6. Pin-able Data Sense, Storage Sense and Settings shortcuts in the App list.
  7. Battery percentage and date (shown in the Notification Center; good enough).
  8. Two-way authentication with your Microsoft Account (seriously, was about time – I had enough of creating app secret keys for WP)
  9. IE11 with goodies:
    1. all your videos are rendered directly in IE using the HTML5 player, meaning that you no longer navigate to the Video app to watch your YouTube clips. Sweet!
    2. improved tab functionality: you no longer have to pop out the app bar in order to get access to tabs
    3. reading view in IE11: get read of the annoying menus and ads when you read an article online
    4. IE High DPI fix! Your mobile browser no longer wrongly specifies it’s screen resolution to .CSS. Finally, right?
  10. Pin-able FM Radio (it’s in the App list)
  11. New volume configuration pop-up: you now have the ability of specifying the Ringer + Notification volume and Media + App volume separately! And you can even de-activate vibrations and leave the ringer on directly from the volume pop-up! I’ve been waiting for this Nokia-touch :)
  12. Improved Store: way better content-presentation, quick access to categories, improved suggestions (at least, for me!).
  13. New logos: my Exchange account finally get’s a proper Exchange-like icon on its tile!
  14. Cortana: what cool about it is that it can asynchronously search your inbox for e-mails that contain plane tickets and it will (theoretically) automatically remind you that it’s time to leave to the airport, given the traffic conditions, flight schedule, distance to departure airport etc. However, it’s still in a beta and most of your searches will end up in a bing-query.
  15. Screen projections: just connect your phone via USB to a PC and get a projection on your PC of what your phone shows without installing any additional apps on the phone. As a developer, I love this! No more Hyper-V based emulators during presentations.
  16. Improved Photos: there’s a new home screen in photos that only shown you the photos you’ve taken, in a day based grouping. You can still access your Facebook or OneDrive photos, but you no get thumbnails on all your albums from these, meaning that curious eyes won’t see what your albums might contain. I love this feature! Moreover, you can select photos as favorites which will make your tile display those images only. Sweet!
  17. VPN
  18. tap + send is finally renamed to NFC. I never understood the idea of marketing this feature  as tap+send…
  19. Quick access to screen rotation lock from the Notification Center
  20. Quiet hours: I loved this on my iPhone, I love it on my Windows Phone.
  21. Quick keyboard: just slide your finger and it’s done. You don’t have to worry about double letter in a word and whenever you start a new word (by releasing the keyboard = taking your finger up), a new space is added.
  22. THE BEST OF ALL FEATURES: tight integration with your Microsoft Account. Want to change your theme color? That gets automatically synced to your other Windows (or Windows Phone) devices and vice-versa. Your favorites in IE are also synced (roamed, as they call it)

What I have about the Windows Phone 8.1:

  1. The sliding keyboard thing only works in English.
  2. Cortana is configured to work only in US (or if you configure your region as US). Why would they do that? I can speak English elsewhere too. Is this Bing related? :-(
  3. Apparently, it’s easier to move the caret around. As an ex-WP7, WP8 user, I hate that they removed the way you move the caret around: even though it’s similar to the Windows experience, the caret-mover is almost impossible to use as soon as you place your thumb on the screen simply because you no longer see the caret. Actually, that’s what I love about the way I’d move the caret before: it was about 0.5 cm away from my thumb, meaning that I could always see where I was placing the caret. (note: caret = cursor :-) ).
  4. Because Cortana is accessible via the Search button (both tap and long-tap), you no longer get access to the old Search place. This means that if you’ve been using Local Scouts, you have to use Cortana. That’s ok, but, if you were using the Search functionality to scan barcodes or QR-codes, you now have to open the Camera app (which I normally don’t use, simply because I find Nokia camera better and because on my old 1020, Nokia Camera was to only app to shoot high-resolution – 39MP – photos), open up the Lenses menu and select Bing Vision. From my point of view, that’s a horrible user experience and I might end up in installing crappy QR-code scanner apps. Yuck.
  5. I got super-excited about the lock screen themes at Build 2014, yet there are no lock screen themes. :-((

I think that’s it for now. As soon as I’ll find something cool/ uncool about WP8.1, I’ll update this page.


First of all, if you’re new to Application Insights, check out this link and this link too. In a word, Application Insights offers you deep insight data on your application performance and usage. And it rocks while doing that, too! :)

Application Insights is since last week no longer under preview. However, if you’re trying out Application Insights right now, you have obviously already found out that the corresponding NuGet package is still in beta (version 0.7.x.x) and, should you have tried out Application Insights for a longer time now, you’ve probably realized that there are a lot of changes in the configuration schema too.

One of the things I don’t like about the new schema is the lack of a special component ID (which basically defines a specific Application Insights entry = application) for debugging. This also means that when you debug, you’ll get your debug data mixed with the production data, which is bad.

However, even if the guys at Application Insights (which I’ve just met at Build 2014) have removed this one particular feature (which, I admit, didn’t work out for me as I expected), they’ve added tons of new features which are worth checking out.

Now, to the post subject. How do you collect usage and performance data if you have different cloud projects (for different environments, such as a staging and a production environment) and a single code-base (meaning, a single project containing your code). The question might be tricky, since you’ll have to add the .config file directly inside your project that contains your code (for example, the web project), rather than the cloud project.

For such a scenario, here’s what I did. I created a new folder inside the project folder (e.g. ‘AppInsightsConfigs’) which contains my applicationinsights.config files that correspond for each environment. This basically gives me the option to define a config file for the staging deplyoment (ApplicationInsights.Debug.config) and another file for the production deployment (Applicationinsights.Release.config). Obviously, each .config file has its own ComponentId and ComponentName settings.

What I do next is to create either a pre-build or post-build command that contains this simple command line:

copy  “$(ProjectDir)AppInsightsConfigsApplicationInsights.$(ConfigurationName).config” “$(TargetDir)ApplicationInsights.config”

This command simply writes either the .Debug.config or .Release.config over your output directory, which works fine for me since I want to have the Debug version in a staging enviroment (for remote-debugging scenarios especially) and a Release version in the production environment (who would add the debugging symbols and loose the code optimization feature inside production?!).

One thing worth mentioning out is that if you rung this as a pre-build or post-build command, you will not get the right version of the .config file unless you exclude or change the name of the ApplicationInsights.config file the Visual Studio Application Insights extension automatically adds (or the one you’ve added manually). Moreover, if you decide to run the command as a pre-build command, you also have the option of replacing the $(TargetDir) macro with the $(ProjectDir) macro, which will copy the desired configuration file over your original ApplicationInsights.config from the root directory, so that no exclude or rename is necessary. However, in this case please keep in mind that any change you do inside your ApplicationInsights.config file will be lost the moment you run a build command. I also don’t recommend you to run the command as a post-build command with the $(ProjectDir) macro as the destination folder, because you’ll need to build you project twice for the command to work and I’m sure you’ll almost certainly forget to do so :).