Wednesday, May 4, 2016

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!

Tuesday, May 3, 2016

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

image

  • 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

image

  • 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.

Monday, May 2, 2016

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):

image

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:

image

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.

Friday, April 29, 2016

TFS Build vNext - Nunit 3.0 Test Adapter error

When trying to run my NUnit tests on the build server, my build turned red with the following error message inside the Test step:

2016-04-28T08:46:53.3339665Z ##[error]Error: Exception System.ArgumentException, Exception thrown executing tests
2016-04-28T08:46:53.3339665Z ##[error]
2016-04-28T08:46:53.3349431Z ##[error]Error: Illegal characters in path.
2016-04-28T08:46:53.3349431Z ##[error]

image

This problem is caused by a bug in the NUnit 3.0.8 test adapter when used through the NuGet package(and not through the VSIX extension). Luckily a fix is already available, so upgrade to the latest version of the NUnit test adapter and the problem should disappear.

Thursday, April 28, 2016

C#–Choose the right collection type

.NET offers a lot of way to store a set of values  like lists, queues, stacks, dictionaries, etc… each with their own (dis)advantages and performance characteristics.

Unfortunately I see a lot of developers just use the default List<T> without being conscious about this decision. Arthur Minduca created a simple flowchart to help you choose the correct structure for your specific situation:

Collection_Data_Structures

Read the full article here: http://www.codeproject.com/Articles/1095822/Choosing-The-Right-Collection

Wednesday, April 27, 2016

Visual Studio 2015 NuGet error–Exception ‘System.AggregateException’ thrown when trying to add source.

After upgrading to the latest NuGet version inside Visual Studio 2015, I couldn’t install any NuGet package anymore. Instead I got the following error message:

Exception ‘System.AggregateException’ thrown when trying to add source ‘http://development/nuget/Default’. Please verify all your online package sources are available.

image

The issue is that one of my package sources is a private feed for one of my customers and is not available anywhere else. Before updating to the latest version of NuGet, this didn’t cause any issues. But not so in the latest version Sad smile

I temporarily deleted the private feed, but a real solution would be welcome!

Using the Session object in ASP.NET Web API

By default when you try to use the Session object inside ASP.NET Web API the Session object will be null. This is not a bug but expected behavior as HTTP is stateless – meaning that there shouldn’t be a need for any kind of server state as every HTTP request should contain all the information needed to process the request.

Sorry to all the HTTP and REST purist, but the reality is messy and sometimes using the session state can be the easiest solution. 

To instantiate the session during your Web API request, you can add the following line to your Application_PostAuthorizeRequest method inside the global.asax:

System.Web.HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);

More information about this method here: https://msdn.microsoft.com/en-us/library/system.web.httpcontext.setsessionstatebehavior(v=vs.110).aspx