Simple Migration of TFS 2012 Express to TFS 2012 Full Version

Starting to dig a little bit deeper into TFS 2012, I noticed that my local TFS 2012 Express installation had not all the features I saw on Team Foundation Services (tfs.visualstudio.com/), which I was using too. Of course, if I had read the docs, I might have known before that TFS 2012 Express is not a fully featured TFS – but I never have heard of real programmers who care about docs 😉

So I downloaded the TFS full version and started the installation, hoping it will notice the existing Express instance and start a migration wizard. Well, the installation noticed that there was an existing Express instance. But it did not start a migration wizard. Instead, it told me to uninstall TFS 2012 Express first.

Since I didn’t wanted to lose my existing projects and items, I created a backup of the Tfs_Configuration and the Tfs_DefaultCollection databases frist. Please notice that TFS 2012 Express requires these databases to be run by the SQL Server Express instance on your machine. Because I wanted to have the TFS full version to run on the SQL Server full instance, I restored these databases to that instance, saving the database files to a different location (just change the settings in the restore dialog of SQL Server Management Studio).

After having the databases restored, I uninstalled TFS 2012 Express and started the TFS 2012 Full Version installation. After a while, a tool opened up where I could choose the type of installation (can’t remember the tool’s name). Here, I selected “Application Tier only”. The wizard found both the port and database settings of the already uninstalled Express version. Fortunately, one can change the database setting. Just enter the name of the SQL Server instance TFS should use. If it is installed locally, do not enter “(local)”. TFS is not able to use this setting (will be checked during installation). After a few more clicks, where I did not changed any default value, the installation continued and completed successfully.

My Visual Studio connected to the TFS Full Version without changing any settings, and all items were present too. In case you miss some of the shiny features, maybe you need to adjust the access level.

Here is, in short words, what I have done to migrate the TFS 2012 Express installation to TFS 2012 Full on my local machine:

  • Created a full backup of my machine (aka a snapshot of the VM)
  • TFS used by one user only, no Domain infrastructure
  • SQL Server 2012 (full) already installed (local too)
  • Backup TFS databases from SQL Server Express and restore it to SQL Server 2012 with different file path
  • Uninstall TFS 2012 Express
  • Add Full Text Search to SQL Server 2012, if not already installed (required by TFS 2012)
  • Install TFS 2012 Full Version, select “Application Tier only” when installation comes to that point
  • Change the database to the one hosted by the SQL Server instance, do not use SQL Express
  • Install Build Server if you like to (or need it)
  • Adjust the access level, if required.
    If you like a full featured list, you might want to have a look at tfs2012visualguide.codeplex.com/. Or you might want to download the official installation guide from here: www.microsoft.com/en-us/download/details.aspx?id=29035.

  • Microsoft Advertising Services Test Mode Sample for Windows 8

    Microsoft offers a very simple way to show advertising in Windows Store apps. A starting point is adsinapps.microsoft.com. The Microsoft Advertising SDK for Windows 8 can be found here: msdn.microsoft.com/en-us/library/hh506371%28v=msads.10%29.aspx.

    The SDK docs lead you to a document, listing all the possible advertising test modes with their appropriate test values: msdn.microsoft.com/en-us/library/advertising-windows-test-mode-values%28v=msads.10%29.aspx.

    Unfortunately, this page does not contain a sample to see all these ad services in action. So I created a quick & dirty one just to give me an idea of how the ads might look like. Here is a screenshot:

    Ads in action

    In my sample the following test mode values did not work as expected:
    10043135: Video Ad with click to Full Screen Video (160×600)
    10043056: Video Ad with click to Full Screen Video (300×250)
    10042999: Video Ad with click to Full Screen Video (728×90).
    The test mode value table states, that these services are videos, where a click opens another video. In my samples, these services only show images, opening a video when clicked. Maybe they will show images in production, which I hadn’t checked yet.

    You can find the source code (VS 2012) here. To compile and run the sample, the Microsoft Advertising SDK for Windows 8 (can be found here: go.microsoft.com/?linkid=9815330) has to be installed. I was using the January 2013 version.

    2013-07-23: Source code update V3.2
    Minor design changes (logo & splash screen).

    2013-07-10: Source code update V3.1
    Minor design changes (headline & font).

    2013-07-04: Source code update V3.0
    Added new test mode id 10043030 (Image Ad 300×600); marked deprecated test mode ids as deprecated (10043124, 10043074, and 10043008 500×130)

    2013-06-28: Source code update V2.0
    Added scrolling to support screen resolutions less than 1920×1200

    Visual Studio UI Toolbox disappeared

    I can’t recall if it was right after the initial installation, or if I hit any whatever key-combination to hide it, or closed it by mistake: The UI toolbox in my Visual Studio 2012 was not visible. First, I did not care because I didn’t needed it. But the point in time came when I needed it – and still it was not there. Neither a ‘Toolbox’ item in the View menu.

    I searched the internet, did a repair, did a toolbox rebuild, reset the window layout, and was close to un- and reinstall it. Then, after searching again, I found a posting for VS 2008 SP1. It says one can use the CTRL+ALT+X key to show the toolbox window. Fortunately, the key combination worked for VS 2012 too! The toolbox window was back again 🙂 This saved me several hours of non-productive installation time.

    Soon, I added the Toobox command to the ‘View / Other Windows’ menu to make sure I will not lose it again.

    And in case you need to rebuild the toolbox content, you can do this:

    1. Close Visual Studio;

    2. Open the “c:\Users\\AppData\Local\Microsoft\VisualStudio\11.0″ folder and remove all the .TBD files;

    3. Start regedit;

    4. Find the “HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\ToolboxControlsInstaller_AssemblyFoldersExCache” and “HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\ToolboxControlsInstallerCache” keys;

    5. Remove everything from these keys leaving them empty;

    6. Run Visual Studio again and wait until it recreates all items in the toolbox. This might be a lazy rebuild, started when you open a UI control in the editor.

    (found this list here: www.devexpress.com/Support/Center/Question/Details/K18560)

    Using Membership and Authorization in ASP.NET MVC 4

    With the introduction of .NET 4.5 and MVC 4, some changes to Membership and Authorization came along.

    To keep this posting as short as possible, I will just list the findings and refer to some postings I read.

    1. Web Site Administration Tool is gone, and there is no replacement for it (weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx).

    2. Use WebMatrix.WebData.SimpleMembershipProvider instead of System.Web.Providers.DefaultMembershipProvider in web.config (type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")

    3. Use WebMatrix.WebData.SimpleRoleProvider instead of System.Web.Providers.DefaultRoleProvider in web.config (type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")

    4. There is no (WebMatrix.WebData.)SimpleProfileProvider.

    5. To create the required tables yourself, here is a sample script from http://notebookheavy.com/2012/08/22/mvc-4-authentication/.

    CREATE TABLE [dbo].[UserProfile] (
    [UserId] INT IDENTITY (1, 1) NOT NULL,
    [UserName] NVARCHAR (MAX) NULL,
    PRIMARY KEY CLUSTERED ([UserId] ASC)
    );
     
    CREATE TABLE [dbo].[webpages_Membership] (
    [UserId] INT NOT NULL,
    [CreateDate] DATETIME NULL,
    [ConfirmationToken] NVARCHAR (128) NULL,
    [IsConfirmed] BIT DEFAULT ((0)) NULL,
    [LastPasswordFailureDate] DATETIME NULL,
    [PasswordFailuresSinceLastSuccess] INT DEFAULT ((0)) NOT NULL,
    [Password] NVARCHAR (128) NOT NULL,
    [PasswordChangedDate] DATETIME NULL,
    [PasswordSalt] NVARCHAR (128) NOT NULL,
    [PasswordVerificationToken] NVARCHAR (128) NULL,
    [PasswordVerificationTokenExpirationDate] DATETIME NULL,
    PRIMARY KEY CLUSTERED ([UserId] ASC)
    );
     
     
    CREATE TABLE [dbo].[webpages_OAuthMembership] (
    [Provider] NVARCHAR (30) NOT NULL,
    [ProviderUserId] NVARCHAR (100) NOT NULL,
    [UserId] INT NOT NULL,
    PRIMARY KEY CLUSTERED ([Provider] ASC, [ProviderUserId] ASC)
    );
     
    CREATE TABLE [dbo].[webpages_Roles] (
    [RoleId] INT IDENTITY (1, 1) NOT NULL,
    [RoleName] NVARCHAR (256) NOT NULL,
    PRIMARY KEY CLUSTERED ([RoleId] ASC),
    UNIQUE NONCLUSTERED ([RoleName] ASC)
    );
     
    CREATE TABLE [dbo].[webpages_UsersInRoles] (
    [UserId] INT NOT NULL,
    [RoleId] INT NOT NULL,
    PRIMARY KEY CLUSTERED ([UserId] ASC, [RoleId] ASC),
    CONSTRAINT [fk_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[UserProfile] ([UserId]),
    CONSTRAINT [fk_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[webpages_Roles] ([RoleId])
    );
    

    6. One additional posting about “Using SimpleMembership With ASP.NET WebPages“.