Skip to main content


Showing posts from May, 2016

Angular 2.0(beta) - Invalid module name in augmentation, module '../../Observable' cannot be found.

When trying to use Angular 2.0 (beta) in Visual Studio 2015, the TypeScript compiler generated the following error message: Error    TS2664    Invalid module name in augmentation, module '../../Observable' cannot be found.     Here is the package.json I was using: The problem seems to be related to the combination of the RxJs and Angular version I was using. To fix it, I had to change the RxJs version from "rxjs": "5.0.0-beta.4" to "rxjs": "5.0.0-beta.2" After NPM installed the correct packages, the TypeScript error disappeared.

VSTS–Live updates on Kanban board

Yesterday I discovered a nice new feature on the VSTS Kanban board, I noticed the addition of a new icon If you click on it, live updates of the board will be activated. Once enabled, everyone in your team, can observe changes made to the board immediatelly. So no need anymore to refresh the screen. It’s great how I keep finding hidden gems that improve our workflow.

Using the Entity–Attribute–Value(EAV) model in NHibernate

Sometimes you receive a User Story/Requirement where users want to dynamically create and add custom columns to your application. One solution is to predefine a set of custom columns in your database like ExtraColumn1, ExtraColumn2,… but first of all this limits the user in the number of additional fields that can be added, but also doesn’t look very nice on your beautiful Entity Relation Diagram(ERD) A better solution can be found in the EAV model (Entity- Attribute- Value model), where you model part of your database to a flexible storage mechanism. Of course, if you are using a No-SQL solution this ain’t much of a problem, but with a relational database and an ORM tool like NHibernate you still have some work to do. The simplest way is to take advantage of the dynamic-component feature of NHibernate:

Impress your colleagues with your knowledge about… HashSet

Sometimes when working with .NET you discover some hidden gems. Some of them very useful, other ones a little bit harder to find a good way to benefit from their functionality. .NET offers a lot of collection types out-of-the-box . Most developers just use the List<T> without much thought. However there are a lot of (better?) alternatives available. One of the collection types that doesn’t receive a lot of love is the HashSet<T> . What makes a HashSet<T> different from a regular List<T>? HashSet is an unordered collection containing unique elements . It offers the standard collection operations Add, Remove, Contains, but since it uses a hash-based implementation, these operations has a cost of O(1). (Compare this to the List<T> for example, which has a cost of O(n) for Contains and Remove.) What this means it does not matter how many elements HashSet has it will take same amount of time to check if there's such element or not. HashSet also provi

Xamarin Evolve 2016–Videos available

If you were one of the lucky guys/girls who attended Xamarin Evolve , you can ignore this post. For all other people, the videos from all sessions at Evolve are published yesterday. So time to free some time in your agenda, close the curtains, get some good popcorn and start learning…!

Windows Identity Foundation: SSO issue when browsing from one subsite to another

Last week I had some fun investigating a WIF issue. A colleague came to me and explained the following situation: I have 2 sites under the same domain each configured as a separate application in IIS with their own applicationpool. Site 1 is available at The other site is available at When I login to site 1 through ADFS everything is ok. Then I go to site 2 where I also login. When I then move back to Site 1, I get the following error message: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters. When I investigated the issue, I noticed that the “same” FedAuth cookie was issued twice, once scoped to, once scoped to the root domain When browsing back to Site1, WIF get both cookies(as both apply to the target domain). However as both cookies are issued for different website

ng-conf 2016

In case you missed it, at the moment of writing ng-conf 2016 is happening and after the first day of the conference they already shared a lot of great announcements about Angular 2. One annoucement that I really liked was the announcement of a new Google Chrome Dev Tools extension, Angular Augory :

SQL Server Analysis Services–Last process time

Just a quick post so I don’t forget how to get the last time the cube was processed from SQL Server Analysis services. Execute the following query from inside SQL Server Management Studio: SELECT LAST_DATA_UPDATE FROM $system.mdschema_cubes That’s it!

Team Foundation Server: Migrate the TFS warehouse to a different server

Moving the TFS warehouse to a different server is not that hard and can be done with a few steps: Log in on the TFS server and open the TFS Administration console Go to the Reporting tab Click on Edit and click OK to stop all running jobs. Change the server name and instance to your new SQL server on the Warehouse and Analysis Services tab Click on Test Connection . It should succeed and display a message saying that the database does not exist but will be created. Click on Start Jobs .

Team Foundation Server 2015–Create a new Team Project from the web interface

For a long time, the only way to create a new Team Project in TFS on premise was through Visual Studio. With the introduction of Visual Studio Team Services(VSTS), an option was added to create your Team Project directly from the web interface. Unfortunately this feature was only available in the online version and I couldn’t find the same option on premise… or at least this was what I thought. Recently I discovered the following option inside the web interface(look at the last option at the bottom): Yes! The option is finally available. I have no clue when it was added, but I’m glad it’s there… When you click on it, the New team project window is shown: Note that you cannot create and configure Reporting Services and Sharepoint integration for your team project, if you decide to create your team project through the web interface.