Imagine a database system...

Imagine a database system…
… where you don’t need to define a schema ahead of time. Which means you don’t need to worry about schema migrations or syncing your data models.

Imagine a database system…
… that is globally available by design and you can enable it in a matter of minutes with a few clicks.

Imagine a database system…
… that is elastically scalable by design and in near real-time. You pay for what you need, when you need it without spinning VMs up and down.

Imagine a database system…
… that is fully managed, on the best cloud out there, so you don’t ever need to worry about infrastructure and everything that comes with managing that infrastructure

Imagine a database system…
… that supports multiple data models (relational, table, graph, document) so you don’t ever have to compromise on one type, or have to use multiple databases for your needs.

Imagine a database system…
… that supports multiple APIs for manipulating your data. You can choose from a number of Apis like the familiar SQL, DocumentDB or MongoDB, Gremlin, Table API or even Cassandra.

Imagine a database system…
… that has 5 consistency levels that are easy to understand and define. Break away from just Eventual or Strong consistency of the other distributed database offerings out there.

Imagine a database system…
… that has single digit millisecond latency performance and availability guarantees backed by an SLA at the 99 percentile

If you got excited imagining… imagine no more, CosmosDB is here and it’s everything you’ve ever wanted from a database! Check it out today!

Share Comments

Getting a list of VM SKUs with Powershell

I was working on an ARM template the other day for deploying an ElasticSearch cluster on Azure. One of the things I needed to decide on was the SKUs of the VMs in the cluster. I knew I wanted a Linux machine but I wasn’t familiar with the SKU Names that I had to enter.

Read More

Share Comments

Build 2017 Day 1 Keynote notes

Part 1 - Introduction

Timeless values and principles

  • Empower people
  • Inclusive design
  • Build trust in technology

Microsoft mission

Empower every person and every organization on the planet to achieve more.

The Numbers

500 MM Windows 10 devices
100 MM O365
140 MM Cortana users

Read More

Share Comments

Xamarin DevOps event Toronto

Calling all Xamarin developers and enthusiasts. Microsoft and Xamarin is organizing a Xamarin developer event here in Toronto. Members of the Xamarin team form San Francisco are in town and will be delivering presentations and end-to-end mobile devops with Xamarin Mobile Lifecycle Solution

If you’re at all involved with Mobile app development with Xamarin you should definitely try to make it as I’m sure this will be a jam-packed information event.

You will likely find me in the attendance if you want to chat. Below you can find the event details and registration options.

Date: Thursday 13th April 2017
Time: 10:00AM to 1:00PM (EST)
Event Location: Microsoft Toronto Office, Suite 1201, 222 Bay Street, Toronto, ON, M5K 1E7
Registration: Spaces are limited, so please email Catherine Kerr with your name and contact details at your earliest

See you there!

Share Comments

BotFramework v3 emulator

I just upgraded one of my older bots to v3 and I have to embarrassingly admit it took me way too much to figure something out.

All v3 bots, unlike the v1 bots get an AppId and Password that you need to set to your configuration file so it can communicate with the online bot. This is also true for the bots you deploy on the new Azure Bot Service

<!-- update these with your appid and one of your appsecret keys-->
<add key="MicrosoftAppID" value="7346****8c7f8270bf63" />
<add key="MicrosoftAppPassword" value="g***B" />

However, once you add those values in your config, you might notice that your bot no longer works in the emulator, returning an 500 Internal Server Error exception.
Here’s how to fix that:

Read More

Share Comments

RenderTargetBitmap in action

I recently talked about some techniques to use RenderTargetBitmap to generate images for your live tiles. Today, we’ll look at some code that goes along with that.

public static async Task SaveTileImage(UIElement control)
var element = (Border)XamlReader.Load("<Border xmlns='' xmlns:x=''/>");
element.Child = control;

var bitmap = new RenderTargetBitmap();
await bitmap.RenderAsync(element);

var renderSize = new Size(bitmap.PixelWidth, bitmap.PixelHeight);
var pixelBuffer = await bitmap.GetPixelsAsync();
var encodedBuffer = await EncodeBuffer(pixelBuffer.ToArray(), renderSize);

await SavePixelsToFile(encodedBuffer, Tile_Wide_100_Name, Tile_Wide_100_Size);
await SavePixelsToFile(encodedBuffer, Tile_Wide_400_Name, Tile_Wide_400_Size);

Read More

Share Comments

Using RenderTargetBitmap

RenderTargetBitmap is a very useful UWP class if you are looking to render a piece of XAML to an image.

Some use cases that come to mind are saving a signature from an InkCanvas or maybe even more common to generate an image for a live tile.

The visual tree

One of the most important prerequisites is that the control you are trying to render is part of the Visual Tree. That means that you cannot just instantiate a UIElement and pass it in to the RenderTargetBitmap, but rather you need to pick it up directly from the page. That is easy enough when you’re rendering an image when your app is in the foreground but becomes a bit more tricky when you are rendering the image in your background task.

Read More

Share Comments

Using NDepend

I recently started a new job and was assigned to a project where there was quite a bit of existing code already. So as I was starting to get lost in the complexities of the solution I found NDepend and that helped me get my bearings and get productive really quick.

So what is NDepend? It’s a static analyzer, a dependency explorer, a code health monitor and much more. I’ll go though some of the features in more detail in the article.

First impressions

My first contact with it was getting the license and installing the software. It’s not the most straight forward process definitely not a one-click install but I think the target demographic for the application should not just have any issues . You have the option to use the app as a Visual Studio Extension or as a standalone application outside of Visual Studio. I definitely recommend the Visual Studio extension since it feels a lot nicer to see and use the reports in context.

Once installed and with a solution open, just use the NDepend menu to analyze your solution. When it’s done you will get a very nice interactive dashboard with all sorts of information about your solution ranging from lines of code to code coverage to code rules. It’s really nicely done and a great starting point. Bonus points for the web view of the dashboard that you or your boss (?) can explore outside of Visual Studio if need be.

Read More

Share Comments

Errors when packaging app referencing PCL

I ran into what seems a really strange bunch of errors the other day while trying to build store packages for a UWP application.

There were about 15k (yes, 15 thousand!!!) errors that only showed up when building store packages. The application would compile and run fine in debug, but as soon as you try to build the package it would error out. See below:

Read More

Share Comments

Microsoft MVP - Windows Development

A few days ago I woke up to an email that just made my day. It was to let me know that I have been awarded the Microsoft MVP status for Windows Development for my community contributions over the past year.

Needless to say I am deeply honored and proud to have received the award and I will definitely continue

Here’s a pic (will replace with a better quality one soon) of the award package that I received in the mail. Now my goal is to add to those year rings until there’s no more room on the plaque.

Thank you!

Share Comments