Friday, March 27, 2015

Microsoft cloud IT architecture posters

Microsoft published a list of posters about the core infrastructure components of Microsoft cloud services and platforms.

“These architecture posters give you information about Microsoft cloud services and platforms, including Office 365, Microsoft Azure, private cloud datacenter, and hybrid on-premises and cloud solutions. IT decision makers and architects can use these resources to determine the ideal solutions for their workloads and to make decisions about core infrastructure components such as identity and security.”

Very useful if you want a quick, concise view of the Azure IT landscape.


Thursday, March 26, 2015

Multiple ‘Definitions of Done’

One of the signs of a good Agile team is that they have well defined ‘Definition of Done’. One thing that I learned over time is that you need multiple ‘Definitions of Done’ depending on the context(user story, release, sprint, and so on…).

Mitch Lacey did a blog post where he shared his Team “Done” List:

Lacey 1 Sampledonelist

Daniel Gullo goes even further and split the Definition of Done in 2 parts: Completion Criteria and Acceptance Criteria:

Completion criteria and acceptance criteria for user stories

What are your ‘Definitions of Done’?

Wednesday, March 25, 2015

Save time and disk space when using Git

By default Git will copy the full history when you clone a repository. This is one of the advantages of a distributed source control system as you have the full history locally. But what if you have a project that accumulated years of project history in your repository?

The solution is a shallow clone. A shallow clone allows you to clone a repository keeping only the latest n commits of history.

How can you do this? Just use the - -depth option:

git clone --depth depth remote-url

Remark: This can also save some time on your build server. Hint, hint…

Tuesday, March 24, 2015

Free Angular.js ebook

If you are new to Angular.js and want to learn the basics, I can recommend the free Angular Basics e-book. It covers everything you need to know to get started and best of all it includes a large list of editable and runnable examples…


Monday, March 23, 2015

ASP.NET MVC Identity–Registration

I was listening today to DotNetRocks episode 1109 with Troy Hunt, a well known security expert. In this episode Troy was sharing the following story(I summarized it):

“Some people claim that they have hacked DropBox or iCloud. But instead the only thing they did was trying out a list of available usernames and password(acquired from other hacks), until one of them works.

To make this more difficult for a hacker, it’s important that your application doesn’t expose any information if a specific email address is used inside your application or not. For example, on the login page when a user types a wrong email address to login, don’t say that the email address can not be found but give a more generic error mentioning that ‘username and/or password are incorrect’. Do the same thing on your forgot password page, don’t tell the users that the email address  can not be found but tell them that ‘a password reset mail is send to the specified email address’. Last place where you could accidently expose if an email address is used or not is on the registration page. Allow users to use any email address they want and don’t tell them if the email address is already in use or not.

You maybe lose some usability, but you gain a lot in terms of security”.

His explanation made me wonder if  the built-in authentication system in ASP.NET MVC is following all these recommendations.

  • Let’s first try to register a user with an email address that is already used:


That’s bad, on the registration page, you get a specific error if the email address is already in use. -1 for ASP.NET MVC… Bedroefde emoticon

  • Let’s now try to log in using a non existing email address:


Same error message for an existing and non-existing user. +1 for ASP.NET MVC… Glimlach

  • Let’s now try to reset our password:



Same message no matter if the email address exists in the application or not. +1 for ASP.NET MVC… Glimlach


2 out of 3 doesn’t sound bad, but one location where information about your users is exposed is one location too much…

Friday, March 20, 2015

Excel Team Explorer Add-in: HTTP code 407: Proxy Authentication Required

Did you ever had the following error when you tried to connect to Team Foundation Server(TFS) use the Team Explorer add-in in Excel?

HTTP code 407: Proxy Authentication Required

When you see this error, most of the time, it’s caused by the fact that your organization is using a proxy. The proxy credentials are not properly passed through the Excel add-in and you end up with the error above.

I had the same problem when connecting to TFS from Visual Studio. There I solved it by updating the devenv.exe.config with the following section:

But Excel doesn’t have a config file, so I was thinking I couldn’t use the same solution. I was wrong, what you can do is create a new Excel.exe.config file, put the same information in as above and place it on the same location as Excel.exe.

This solved the problem for me…

Thursday, March 19, 2015

Xamarin and Caliburn

This news made my week! My favorite cross-platform framework(Xamarin) and my favorite MVVM framework(Caliburn.Micro) are finally coming together. The team after Caliburn.Micro announced that they have a working port of Caliburn for Xamarin.

Not everything is ported yet, but I expect that some of the platform specific features will be ported as well.

A working sample can be found here: nigel-sampson/xamarin-experiements.