From TeamCity to VSTS – My DevOps Journey

My team recently migrated to Visual Studio Team Services and as a result we have a goal to consolidate our deployment processes using the powerful Release Management framework. While this is the goal, for the moment I was interested in somehow getting our current build process in Team City to work along side our shiny new ALM provider.

Visual Studio Team Services and TeamCity. You would think they would go together like chocolate and lobster but with some work I was able to achieve a little unity…

Continue reading…

[ File # csp1883563, License # 1295737 ]
Licensed through http://www.canstockphoto.com in accordance with the End User License Agreement (http://www.canstockphoto.com/legal.php)
(c) Can Stock Photo Inc. / ilona75

Things I Learned Today #3 – Moving Azure boxes to a new virtual network

While playing around with Power BI in the cloud I ran into some difficulties with authenticating with on-premise SQL Server Analysis Services. I found a great post showing how to get around this for a demo but it first involved connecting my box running the cube to an existing AD. To do this I had to get my existing VM on another virtual network. Apparently this isn’t just setting some magic configuration setting but it can be pulled off with a simple lift and shift operation.

This TechNet article shows you how to make it happen…

Next I’ll post the details of how to trick AD into playing nice with Power BI.



Things I Learned Today #2 – Like intellisense but for that other commonly used language…

There aren’t many things in software that scream UNPROFESSIONAL quite like spelling mistakes; it really irks me as a user, and I’m sure it makes our end-users uneasy too.

So let me introduce you to one of my recent favourite Visual Studio extension… Visual Studio Spell Checker.

It’s an extension that checks the spelling of comments, strings, and plain text as you type and is really handy and absolutely non-intrusive. Have a look at the real-world example below which was highlighted to me as I was navigating around some older sections of our codebase.



It might be something that many people may just shrug off but it’s something that I’m going to suggest that all of our developers have installed as it’s just another one of those little things that help ensure your software has that little bit more polish.


Things I Learned Today #1 – where.exe have you been all my life?

Since my memory isn’t what it used to be, I’m going to start blogging anything cool I learn on a given day. Even if nobody reads this it will be a good way for me to create a hit list of cool solutions to problems.

Today’s mad man is the where command on Windows. Here is the description of the command:

Displays the location of files that match the search pattern. By default, the search is done along the current directory and in the paths specified by the PATH environment variable.Command-line help

Continue reading…


Simulating Surface Pro 3 in the Simulator

I’m working on a project at the moment that needs to run on a Surface Pro 3. During testing there were some weird redraw issues that only appeared on the Surface 3.   We were unable to reproduce this in our dev environments because  the simulator that comes with Visual Studio doesn’t have a screen size that is compatible with the Surface 3.

For reference, the surface 3 has these specs:

  • Screen Size: 12″
  • Resolution: 2160×1330
  • Scaling Factor: 140%

But fortunately, it turns out you can actually create your own profiles for any device you want in the simulator. Basically you just create an XML file to describe the screen settings and then put into a directory to be picked up by the simulator when it starts.

Step 1: Create a xml configuration file that describes the resolution

It should look like this (the content is pretty self explanatory):

<?xml version="1.0" encoding="UTF-8"?>
<ArrayOfHardwareConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        <DisplayName>Surface Pro 3 - 12" 2160 x 1440 (3:2, 140%)</DisplayName>

 Step 2: Put the file in a location for the simulator to use it

The file name needs to start with HardwareConfigurations. For example, HardwareConfigurations-Surface3.xml

Put the file in the directory:

C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Simulator\12.0\HardwareConfigurations\

(You may need to create the HardwareConfigurations directory).

Step 3: Win!

Restart the Simulator, select the new device and you’re good to go!



Xamarin Link Roundup #6


Cool Posts

Code & Components




Xamarin, iBeacons and Geofencing – Some Resources

For an upcoming geekend (a weekend hackfest) we are looking at spending some time digging into iBeacon and Geofencing technologies.  I was going to email some of these resources I have found to the participants but thought it might be better if I blog them as a resource for others. 

Hope it helps

Continue reading…


Xamarin and iOS – Moving to iOS 7 and Xcode 5

Apple has now decreed that all apps submitted to the store must be built on XCode5 and iOS7.

And so it shall be…

So I’ve started building our Xamarin iPhone project against said platforms. Now there is a lot of redesign that should go on with moving to iOS 7, but to tell you the truth we went for a pretty flat design to begin with, so the first port of call is just migrating straight across and getting certified as an iOS 7 app.  Once we have that done, we can spend time taking advantage of more iOS 7 features




The transition has been surprisingly smooth and there have only been a few issues (so far).

1. Content disappearing behind Navigation Bar

I found in some places the content of my views were being pushed up underneath the navigation bar.   This is because in iOS 7 view controllers use full screen layout.  In my case I wasn’t going to redesign the UI at this point to handle things differently so to get around this I just set the value for EdgesForExtendedLayout to None in the ViewDidLoad of the UIViewControllers, like so:

public override void ViewDidLoad()
EdgesForExtendedLayout = UIRectEdge.None;




There is more information available on the Apple iOS 7 UI Transition Guide.


2. Button Labels being trimmed with ellipsis (…)

Now that buttons are so cool they don’t need chrome or borders anymore I noticed that I was getting some trimming of text happening on button labels. Like this:


After much slapping of forehead I discovered that the cause was that I was setting the UILabel.Appearance.Font property in theAppDelegate’s FinishedLaunching .  This global change was enough for iOS 7 to think that C…cel looked much better than Cancel.  Get rid of that and viola, iOS 7 is happy because it has full control again 😉


3. Your UISwitch custom background images are gone!

Those pretty custom backgrounds you created for your UISwitch are no longer functional.  Not a biggy really, however, I also noticed that if your BackgroundColor of your UISwitch is set to UIColor.Clear you get a nice “Googely Eye” effect when you toggle your buttons.


Is it on, is it off… who can tell.  Anyway, looks like it’s time to bow down to iOS and let it run the show. So get rid of your UIColor.Clear!


I’ll let you know of any more issues I have as I do a basic port to iOS 7.  Till then anyone else got any other war stories they want to share?