Last Thursday, I had the opportunity to give a presentation on unit testing in general and mocking using MOQ specifically to the London .NET User Group meeting. Many thanks to Tom Walker for his efforts in organizing the group, as well as to the people who took time out of their evening to attend. For the purpose of preserving the effort for posterity (not that any posterity will actually care), the slide deck is available at http://www.slideshare.net/LACanuck/unit-testing-and-mocking-using-moq, while the source code used for the demos can be found at http://1drv.ms/1kQJWhb.
As always, if you have any questions or comments, you’re welcome to drop me an email or contact me on Twitter (@LACanuck).
Now that TFS in the cloud or Visual Studio Online has gone to general availability. There are customers out there that might be rethinking the use of Visual Studio Online and would like to move to an on-premise solution.
If you are thinking that way, take advantage of this Data Export tool supplied by Microsoft while it lasts. The excerpt below is part of an article about the General Availability of VSO. There is a link to it from your VSO home page under news.
Data Export Window
Many of our users started out with VS Online before we’d painted much of a picture of what the future would look like. Some group of them may want to take this transition to GA as an opportunity to reconsider their ALM configuration and move to an on-premises TFS server. Starting today, we’re enabling a data export window for any customer that has been on the service and wants to “opt out”. For the next 6 weeks, you have the option to export your data from Visual Studio Online in a format that can be imported to Team Foundation Server 2013 Update 2. In order to get access to the export capability, contact customer support (firstname.lastname@example.org) and we’ll be sure to get it switched on right away and provide you instructions on what to do.
From what I have read on the ALM email thread. This is the best option, better than the TFS integration tools. It will get all your Data including work items and source control history, and is much higher fidelity than the migration toolkit.
It will only be around for 6 weeks so if you are planning this move get on it.
The April session of CTTDNUG will be yours truly doing – A Day in the Life of TFS 2013
Here is the announcement:
Join us on Wednesday April 16th for a session on TFS 2013 presented by Dave Lloyd, Microsoft ALM MVP!
This will be a complete tour of what TFS 2013 can accomplish when used by a whole team (Dev’s, QA, BA, Product Owner). We will cover the product backlog and task boards, Teams, Storyboarding and Feedback requests. My Work and switching context, Git integration, Code Reviews. Creating Test plans and executing Test Cases, Exploratory Testing and Release Management. Throughout the presentation the floor will be open to any other aspects of TFS that you would like to talk about!
Dave Lloyd has 30 years’ experience in the IT industry designing and building software solutions for a large number of clients in varying industries. Dave is a seasoned project manager with a great deal of experience implementing process into development teams, from small and large ISV’s to in house development teams. Dave has also spent time during his career implementing test solutions for clients. Working with the most current automated test tools and implementing successful test environments. Dave brings to the table 25+ years of teaching experience. He has been awarded the ALM MVP designation for the past 4 years in a row
Wednesday, April 16, 2014 from 6:30pm - 8:30pm
Pizza/pop will be served starting at 6pm
Country Hills Community Library, 1500 Block Line Road, Kitchener, ON
How to register?
Visit CTTDNUG’s site to view more details and to register for this event: http://www.cttdnug.org
Seats are limited so register early to reserve your spot!
If your Release Management application pool keeps crashing and you get the following error: Message: Object reference not set to an instance of an object.: \r\n\r\n at (Object ) … at RM.MonitoringAgent.Services.MonitorService.ProcessScheduledPromotions(), run the following command to fix the issue:
appcmd.exe set config -section:system.webServer/globalModules /[name='SPNativeRequestModule'].preCondition:integratedMode,bitness64
Make sure that you run this command as an administrator.
Earlier this week, ObjectSharp announced the 2014 version of our annual At The Movies event, to be held on May 8 from 8:30 until noon. For years, ObjectSharp has brought together leading experts in Microsoft technology and presented what’s new and what’s useful. We call it At The Movies because, well, it’s held at the Scotiabank Theatre on John St. in Toronto. And because by doing so, we get to use movie posters as part of the marketing campaign.
Yeah, we have a good time coming up with the various posters. The call for ideas amongst the many ObjectSharp associates is a good indication that spring is coming. And the creativity and execution of the ideas is worth waiting for. But let’s start with what you get out of coming to At the Movies.
First, the list of topics. As always, we go with things that you want to hear about. Subjects that are on the at the leading edge of technology, but are currently available so that you can go back to your office and start to use them immediately. This year, we’re covering the following.
- Team Foundation Server 2013
- Visual Studio 2013
- Windows 8 (from Tablets to Phones)
- SharePoint 2013
If you work in the .NET world, these are areas that you need to know about. They can make your life easier and your development process more efficient. And the speakers that we have covering these topics are experts, among the best in the country. They include:
- Dave Lloyd – Microsoft ALM MVP and Team Foundation Server expert extraordinaire
- David Totzke and Lori Lalonde – Authors of Windows Phone 8 Recipes: A Problem Solving Approach
- Colin Bowern – Solutions Architect, former MVP and recent émigré to New Zealand
- Ali Aliabadi - 10+ year SharePoint developer, architect and training
- Bruce Johnson – Microsoft MVP and author of a number of Visual Studio and Azure books
In other words, join us for a morning of entertaining speakers talking about relevant topics. There really isn’t another event like it in Toronto. And even better…it’s free!
To sign up, visit http://www.objectsharp.com/atm. Do it now. It’s almost guaranteed that we’ll sell out quickly.
For those who have attended At The Movies (ATM) event in the past, I'm happy to announce that ATM event is back on. You know it'll be awesome, so make you register at http://objectsharp.com/atm before we run out of space in Scotibank movie theater.
For those who have not attended At The Movies (ATM) event in the past, well, you have missed out on a lot of fun (and expert knowledge.) So, don't let that happen to you again and register for the event at http://objectsharp.com/atm. You will not be disappointed. Did I mention that this is a free event?!?
To remind you how awesome ATM events are, I have added a few links to old videos from past ATM events:
What can I say. Visual Studio, TFS, Azure, SharePoint , Windows 8, etc. Pure geeky fun time. See you there on May 8th, 2014! :)
May 8th is the next At the Movies event from ObjectSharp. Click the poster below to register. You don’t want to miss this.
OK, so I'm upgrading TFS 2008 with SharePoint Foundation 2007 installation to TFS 2013 with SharePoint Foundation 2013. Naturally, you do an upgrade using an intermediary server with TFS 2012 with SharePoint 2010 install, because you cannot upgrade TFS 2008 to TFS 2013 directly (you have to upgrade to TFS 2012 first), just as you cannot upgrade SharePoint 2007 to SharePoint 2013 (you have to upgrade to SharePoint 2010 first). All goes well except for the SharePoint portion of the upgrade.
Running Test-SPContentDatabase against SharePoint content database produces a few weird errors, like:
Category : MissingFeature Error : True UpgradeBlocking : False Message : Database [WSS_Content] has reference(s) to a missing feature: Id = [00bfea71-c796-4402-9f2f-0eb9a6e71b18], Name = [Wiki Page Library], Description = [An interconnected set of easily editable web pages, which can contain text, images and web parts.], Install Location = [WebPageLibrary]. Remedy : The feature with Id 00bfea71-c796-4402-9f2f-0eb9a6e71b18 is referenced in the database [WSS_Content], but is not installed on the current farm. The missing feature may cause upgrade to fail. Please install any solution which contains the feature and restart upgrade if necessary
You would think that Wiki Page Library feature should exist in new SharePoint, and it does, but the error still shows up. Makes no sense, right. Well, if you try to go ahead and proceed with an upgrade anyways, you will see even stranger things. Upgrade completes successfully, but none of the SharePoint pages come up properly. None of the "default" SharePoint web parts come up properly. To make things worse, you cannot get to any of the system pages in SharePoint. When you try to access any system pages, like Site Settings, you get Access Denied errors (strange part is that you are denied access to built-in v4.master master page; how is that possible!). Very strange…
After a bit of digging on the web, I have found a solution. Apparently, the problem was caused by the fact that SharePoint 2013 has two modes (hives), 2010 (v14) and 2013 (v15). Apparently, by default, a new SharePoint 2013 installation mostly only installs v15 features. Using SharePoint Feature Admin Tool, we can tell that v14 features we needed were not installed. Now that we know that we can simply install missing v14 features individually using SharePoint 2013 Management Shell or we can simply install all existing features in both the v14 or v15 hives by running the following cmdlet.
Second approach was easier, so I run with it. Running that cmdlet fixed all of my SharePoint problems, and that's a good thing.
Release Management for Visual Studio 2013 (formerly known as inRelease client) is tightly integrated with Team Foundation Server (TFS 2010, TFS 2012 and TFS 2013 versions are supported. Visual Studio Online is not supported yet) To connect Release Management server to Team Foundation Server, you need to use Release Management Client for Visual Studio 2013:
- Launch Release Management Client for Visual Studio 2013. If you launch it for the first time, you will be prompted with Configure Services dialog window. Just enter Release Management server name and port number, and click on OK.
- Click Administration tab to connect Release Management server to TFS. Then, click on Manage TFS section.
- Click New button to add a TFS connection. You can add connections to many project collections hosted on different TFS servers or many separate project collections hosted on the same TFS server.
- Provide the following connection settings:
- name or the URL of TFS server
- name of the project collection
- service account credentials to connect to TFS
- HTTP/HTTPs protocol used to connect to TFS
- Click Verify to validate the settings provided.
- Click Save and Close to save the connection to TFS
That's all. Now you should be able to start using Release Management server with TFS. Oh, almost forgot, to configure connection to TFS, your account(s) must have the following minimal permissions
- Collection Level
- 'Make requests on behalf of others' permission (required to setup TFS Connection in release management server)
- 'View collection-level information' permission (to get list of Build Definitions on behalf of current user)
- 'View build resources' permission (to set a Build to Release)
- Team Project Level – for all projects used in release management
- 'View project-level information' permission (to add a TFS Group)
- Build Definition Level – for all build definitions used in release management server
- 'Retain Indefinitely' permission (when starting a Release)
To keep things simple, you can simply make service account used by release management server to connect to TFS a member of the Project Collection Service Accounts group.
If you’re working with the Release Management Server (and you should, because it's awesome) and cannot find the location of the Release Management Build Process Template, then try looking under
C:\Program Files (x86)\ Microsoft Visual Studio 12.0\ReleaseManagement\bin.
In some cases you might only see ReleaseDefaultTemplate.11.1.xaml (TFS 2012 build template) or ReleaseDefaultTemplate.xaml (TFS 2010 build template) under C:\Program Files (x86)\ Microsoft Visual Studio 12.0\ReleaseManagement\bin. But where is TFS 2013 build template you might ask. Without one you cannot properly integrate Release Management with TFS 2013, which would be fairly disappointing. Luckily, you can download TFS 2013 template here. Inside this .zip file you will find three files:
- TfvcTemplate.12.xaml (for when you're using TfvcTemplate.12.xaml)
- GitTemplate.12.xaml (for when you're using GitTemplate.12.xaml)
- ReleaseTemplate.12.Snippets.xaml (for when you would like to add release management functionality to your custom TFS 2013 build template. snippets file only contains sections with start / end markers to indicate which parts to copy)
Please note that, Release Management Build Process Template are not installed in TFS by default, so it won’t appear as an available build process template until you add it. To add the release management build process template, you will need to check it in to your TFS source control, and then add the build process file when editing (or adding) a Build Definition. Once the release management template has been added to the list of build templates, you can start using it. More on how to use release management build template later...