Microsoft Small Basic Guru Awards – July 2014 WINNERS!!!

Nonki and I were the only contributors this month, but a special thanks go out to Nonki for really knocking it out of the park with a lot of fantastic articles!



Guru Award  Small Basic Technical Guru - July 2014  

Gold Award Winner


Ed Price – MSFT Small Basic Survival Guide Michiel Van Hoorn: “Oh the overload!”
RZ: “Very nicely categorized and organized. Way to go!”

Silver Award Winner


Nonki Takahashi Small Basic: Character Set – Unicode RZ: “Very well explained. I wager that many programmers can’t quite explain what’s unicode and utf-8 :)”
Michiel Van Hoorn: “Great article on this fundamental element in programming”

Bronze Award Winner


Nonki Takahashi Small Basic: Controls Michiel Van Hoorn: “Practical topic with good examples”

Also worth a mention were the other entries this month:


If you haven’t contributed an article for August, and you think you have a good wiki article in mind, here’s your chance to show it off! :D



   – Ninja Ed

Headed to Dog Food!

So years and years ago I helped a buddy, Danilo Casino, start an event called Dog Food Con. The purpose was to provide a two day event, during the work week, that enterprise customers of Microsoft could learn all of the latest and greatest about the platform …read more…(read more)

Azure Network Maintenance Impacting Application Insights Services 8/23 – 8/25 UTC

This is a proactive notification to inform our customers that our Azure partners are planning a network maintenance window in several Microsoft Azure regions and datacenters.  Application Insights is hosted in datacenters that will be affected on the weekend of 8/23 – 8/25.

We are taking steps to minimize impact to our live services, but customers may experience broad, intermittent service unavailability during the Azure maintenance window. 

Maintenance Window – 8/23 00:00 UTC to 8/25 00:00 UTC

For broader details about what this Azure maintenance might mean to you, please see the Azure blog post here:

We apologize for any inconvenience.

-Application Insights Service Delivery Team

Visual Studio 2010 uninstall utility back online

Four years ago I published a utility to help perform a clean uninstall of Visual Studio 2010. Before we added package reference counting and related bundles to Visual Studio setup, we couldn’t always be sure which products were still required so not everything was removed. This utility will remove everything provided one of a few command line options documented in the original article.

Unfortunately, the old site where the utility was hosted was archived and some readers recently pointed this out. I’ve since reposted the utility on the Microsoft Download Center and created a short URL ( if you want to remove older Visual Studio bits since by now I’m sure you’re enjoying newer versions!

Programming and writing are similar things

At least, that’s my opinion. They’re both ways of recording and communicating ideas, and they’re both best when they’re clear and brief and unambiguous. I do believe that similar skills go into each. But they’re for different audiences and those different audiences have different natures. So maybe that’s why we think of programming and writing as being so different, and we say that someone who’s good at one isn’t necessarily good at the other. But I feel that if you genuinely are good at the one then you would be good at the other if you tried it and gave it as much time and energy.

The audience of source code is a compiler (sure, it’s also you when you have to re-read your own code in a month’s time, but that’s secondary). The audience of the written word is people.

A compiler always knows when it has misunderstood you. People don’t always know when they’ve misunderstood you. But in either case the fault lies primarily with the communicator. Still, it’s durned convenient to always know when you’ve been misunderstood. Imagine the disasters that would have averted in history if people gave compiler errors and warnings.

When a compiler knows it’s misunderstood you, it will tell you so. When a person knows they’ve misunderstood you, they won’t always tell you. But they should. Perhaps they feel it’d be impolite to do so; perhaps they’re in a hurry; perhaps they don’t think it matters; perhaps they think it’ll become clearer over time. Perhaps.

So there you go. If from time to time you think your compiler is a PITA, just try writing for people! :P


VSO is Happy to See You! Project Welcome Pages

The August 18th news article on the Visual Studio site announced a fun new addition to VSO: Project Welcome pages.

Think of Welcome pages as documentation, a greeting, or basic contextual information for the Team Project.  You can use a Welcome pages for things like:

  • Describing the purpose/business value of the project.
  • Basic tips and tricks for navigating the VSO project.
  • Project-specific nomenclature or acronyms
  • Project sponsors or contacts
  • You get the idea.. whatever!

The implementation of these pages is surprisingly simple.  Pages are really just Markdown files (.md) which are checked in/committed to the root of your project.  The default page is named “”.  For example, in my “Awesome Calculator” project, I checked in a “”:


Now if I got to my project’s homepage, I see a “Welcome” tab.  If I click on that, I get to any/all of my Welcome pages:


Adding additional Welcome pages is simple as well.  Just check in/commit more markdown files! 


My new markdown file, “The”, then renders like this:


If you’re not familiar with markdown, don’t fear.  It’s a simple and fast markup.  VSO utilizes of GitHub Flavored Markdown, a common convention already used in some open source version control systems, based on then “marked” open source library. You can use virtually any editor (they are just text files) to work on your markdown files, including VIsual Studio, MarkdownPad, and others.

For additional details, please read Martin Woodward’s post on the Visual Studio ALM blog.


WebDeploy using publish settings

In the new version of Web Deploy 3.6 you can now use your publish settings that were created within Visual Studio. So instead of doing this

msdeploy.exe -verb:sync -source:contentPath=d:webwwwroot -dest:contentPath=siteName,computername=https://dev/msdeploy.axd?site=siteName,username=myUser,password=myPass,authtype=basic

Can now be simplified to this:

msdeploy.exe -verb:sync -source:contentPath=d:webwwwroot -dest:contentPath=siteName,publishsettings=d:dev.PublishSettings

Happy days!

Serie: Eigene Anwendungen auf Microsoft Azure – Teil 1: Überblick

Die meisten Personen, die sich für das Thema Cloud Computing interessieren, haben zunächst ein Szenario im Blick: die Ausführung einer eigenen Anwendung in der Cloud. Ob nun eine bestehende oder eine neu zu entwickelnde Anwendung: in beiden Fällen kommt man recht schnell an den Punkt an dem auffällt, dass es hierzu in Microsoft Azure – anders als bei einem klassischen Hoster oder vielen anderen Cloud-Anbietern – mehrere Optionen gibt. Microsoft Azure bietet nicht nur das Hosting klassischer virtueller Maschinen im Sinne eines Infrastructure-as-a-Service-Ansatzes, sondern auch speziellere Hosting Varianten, die optimiert sind auf die schnelle Bereitstellung von Web-Anwendungen oder die flexible Skalierung mehrschichtiger Anwendungen. Diese Blog-Serie beschäftigt sich nun mit der Auswahl der für ein bestimmtes Szenario bestgeeigneten Ausführungsmodells. Sie ist unterteilt in

  • Teil 1: Überblick über die Ausführungsoptionen
  • Teil 2: Virtual Machines
  • Teil 3: Cloud Services
  • Teil 4: Websites
  • Teil 5: Mobile Services
  • Teil 6: Auswahl des besten Ausführungsmodells
  • Teil 7: Wechsel des Ausführungsmodells

Folgende Optionen stehen für die Ausführung eigener Anwendungen auf Microsoft Azure zur Verfügung:

Dies klingt zunächst verwirrend, letztlich lässt sich die Frage nach der besten Alternative aber recht schnell beantworten. Hinzu kommt die Möglichkeit, diese Optionen miteinander zu kombinieren. D.h. es ist durchaus möglich, dass Teile einer Anwendung als Website betrieben werden und andere Teile (z.B. die Datenbank) nutzen, die in einer Virtual Machine ausgeführt werden. Darüber hinaus ist ein Wechsel zwischen den Optionen möglich, d.h. man verbaut sich nichts, wenn man mit einer Option (z.B. Websites) beginnt und später auf eine andere Option (z.B. Cloud Services) wechselt.

Die vier Alternativen unterscheiden sich primär dadurch, wie viele Aspekte der Umgebung durch das Ausführungsmodell vorgegeben und damit von Azure automatisiert verwaltet werden (Einspielen von Patches, Updates, Failover-Management etc.) und welche Aspekte durch den Nutzer bestimmt werden können. Je mehr Aspekte bestimmt werden können, desto weniger Aspekte werden von Azure verwaltet. Umgekehrt gilt entsprechend: je mehr von Azure automatisiert verwaltet wird, desto weniger Einfluss auf die Umgebung ist durch den Nutzer möglich. Höchste Automatisierung (dafür geringste Möglichkeiten, die Umgebung zu kontrollieren) bieten Mobile Services. Bei Virtual Machines ist auf der anderen Seite die Möglichkeit, Einfluss auf die Umgebung zu nehmen, am größten, dafür ist der Automatisierungsgrad am kleinsten. Die beiden anderen Alternativen, Cloud Services und Websites, liegen dazwischen. Folgende Tabelle gibt einen Überblick auf die Alternativen und deren Automatisierungsgrad bzw. die Möglichkeiten, Einfluss auf die Umgebung zu nehmen.

  Virtual Machines Cloud
Websites Mobile
Automatisierungsgrad ●● ●●● ●●●●
Einflussmöglichkeiten ●●●● ●●● ●●

Die Tabelle gibt schon den wichtigsten Hinweis: wann immer möglich, sollten Anwendungen als Mobile Service bzw. Websites ausgeführt werden. Dort ist der Automatisierungsgrad und damit die Einsparungen im Vergleich zu einem Eigenbetrieb oder dem Betrieb in einer virtuellen Maschine am höchsten. Nur wenn die Anforderungen bestimmte Konfigurationen der Umgebung erfordern, d.h. die Umgebung stark angepasst werden muss, sollten Virtual Machines zum Einsatz kommen.

Für einige Szenarien können recht einfach erste Empfehlungen für die Ausführungsoption genannt werden:

Szenario Naheliegende
Hosting einer ASP.NET- oder PHP-basierten Webseite Websites Websites bieten den höchsten Grad an Automatisierung, und die bereitgestellte Umgebung eignet sich sehr gut zur Ausführung von skalierbaren Web-Anwendungen.
Betrieb einer bestehenden Linux-basierten LOB-App Virtual Machines Virtual Machines bieten als einzige Ausführungsoption den Betrieb einer Linux-basierten Umgebung. Diese kann dann individuell konfiguriert werden. Der Nutzer kann sich hierzu als Admin anmelden.
Bereitstellung eines REST-Backends für mobile Anwendungen Mobile Services Mit Mobile Services lassen sich in kürzester Zeit Backends für mobile Anwendungen bereitstellen. Die Dienste können dabei leicht mit Funktionen zur Benutzerauthentifizierung, Push Notifications, Datenspeicherung versehen werden.
Cloud-Anwendung, die auf Ressourcen im lokalen Unternehmensnetzwerk zugreifen soll Cloud Services oder
Virtual Machines
Cloud Services und Virtual Machines bieten die Möglichkeit, über ein virtuelles Netzwerk Verbindungen zu einem lokalen Rechenzentrum herzustellen.

Diese Tabelle gibt nur einen ersten Hinweis auf eine geeignete Alternative. Vor einer konkreten Umsetzung sollte diese noch genauer betrachtet werden. In den weiteren Teilen dieser Blog-Serie sollen die einzelnen Alternativen deshalb genauer vorgestellt werden.

Weitere Informationen

What’s the difference between an on-premises business model and a cloud subscription-based business model?

Are you asking yourself “What’s the difference between an on-premises business model and a cloud subscription-based business model?”

How can I increase revenue by selling cloud solutions?

Are these some of the questions you are asking yourself as you think about developing cloud solutions and shifting offerings to include cloud.

Module 3 of the Cloud Profitability Program series, “Developing cloud solutions – shift your offerings,” can provide great insight.

Check it out TODAY!

Surface Pro 3 cursor disappears

I like my new Surface Pro 3. Things were working fine and all of a sudden, the cursor would disappear. I just have the Type Cover and a memory card installed: no other hardware. Narrowing down the issue: if I move my finger in circles on the trackpad to make the cursor move in small circles in the same area on a web page in IE, or Word or Visual Studio, the cursor disappears in a few seconds. I made sure my finger does not go anywhere near the edge of the trackpad and the mouse stays within the same…(read more)