VS 11 Experience

Today I decided to give it a go and install VS 11 Developer Preview (off the USB key I got from BUILD) onto my production machine. Whoa, Steve, that could be risky!!

Yeah, it could, but sometimes you need to live life on the edge. As much as a geek can.

There aren’t a ton of options when installing. The installer looks.. “beautiful” compare to other Visual Studio installers. It installed a few things, then reboot, then some more, then it was done. Easy. But of course, it installed SQL Express (Denali CTP3) which I really didn’t want to install since I already have 2008 R2 developer on my machine. Maybe in the advanced install I could have disabled it, but I didn’t dig through it all. Anyways, I just turned the service off and set it to manual start.

VS 11 is nice. Seems faster. Cleaner. Crisper. I LOVE the code clone feature. Found some good info there. I like the new TFS design (the work items, etc look nicer – almost a fat client version of the new TFS server and TFS azure experience).

The big app we work on compiled and ran, which was good. I didn’t try .NET 4.5 yet, that might be for another day. One thing that does stink about the dev preview is that you lose all your add ons. The VS productivity tools are baked in (at least some? I didnt try them all). But things like Resharper, etc aren’t there so you might be “missing” some things you are used to.

The solution file of the project changed on me, since I opened up a VS 2010 sln file. It added some comments and rearranged some things, but after I closed VS 11 and saved everything, I opened in VS 2010 and it still worked. Checked into source control and other devs with just VS 2010 opened it and it worked, etc. So MSFT wasn’t lying.. backward compatible!

Excited to dig into it more and for the future versions.


Windows 7 Winforms ActiveX DEP and TFS

Wow, what a title. Deserving for the debacle it involves. If you are using an older ActiveX/COM component that doesn’t support DEP (Data Execution Prevention) – you might run into this.

Your app will compile file, and when users try to run it, it runs fine, yet when you use the control you get an error about shared and corrupt memory. The ActiveX control might not support DEP and you don’t have any way to go around it. You can have the users turn off DEP but that isn’t a viable solution.

What you can do is set a post-build step to turn off DEP for your exe which works great.

here is the post build step from the link:

call $(DevEnvDir)..toolsvsvars32.bat
editbin.exe /NXCOMPAT:NO $(TargetPath)

But then you go to check it into TFS and your build fails. Why? Because there is no environment variable for $(DevEnvDir) when team build (msbuild) builds your solution.

In order to fix that, you need to add an environment variable on the build controller to

64bit: C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE  

32bit: C:Program FilesMicrosoft Visual Studio 10.0Common7IDE

and then reboot your build controller, and it should build.

Geeky/Programming Product Reviews

UserVoice: Using A Customer Service Tool To Democratize Technical Debt

Not sure if you anyone has heard of or used “UserVoice” – It is a site that allows you to create “forums” for your products and then submit ideas, give users votes and they can vote them up, and an admin can say things are started, merge ideas, or mark when the idea has been completed (and the votes go back to the users).

UserVoice is (sorta) along the same lines as GetSatisfaction (another cool customer service 2.0 app). Pretty cool tools. If I was in a customer service role, especially with any type of user based or public product, I would be running these tools to gather ideas and feedback from my users.

I am in a technical role, so what I decided to do was “democratize” the development area of our product one of my teams is working on. We have a ton of technical debt (as do most teams, it is just a matter of what level of debt you have) – but what should we work on next from a technical perspective?

In comes UserVoice. Let’s throw out ideas on UserVoice, give everyone 50 votes, and the ideas that bubble to the top will become our next set of things to work on. One “idea” may become several “user stories” (we are agile). Our goal is to have 20-25% of our stories focused in on paying down our technical debt. If we didn’t, the debt would never get down to a low enough point to where we are very comfortable.

What is cool is that it really shows what the team wants to focus on next. People can have others vote up their ideas, etc. Also, getting the votes back at the completion of an idea is key. As you can imagine, our forum is private. The one cool thing about UserVoice is you can create multiple forums, with different ranges of settings, so you could also have a public forum, or a different private forum for a select group of users, etc.

One thing I wish I could do is maybe give different # of votes to different users. Integration out of the box with TFS or other systems would be nice too, I haven’t looked to much into that though.

If you have a team that ranges from medium to large, I would suggest checking out UserVoice to get the ideas and opinions of the members out on the table regarding your technical debt. You may be surprised as to what gets voted to the top!


Continuous Integration and TFS: Team Build Screen


If you are running TFS and you want to show the status of your builds on an LCD, check out this sweet app – Team Build Screen – on CodePlex (



We just recently set this up outside my office and it is a great addition in letting us know the status of our builds, as they happen, and if anything breaks the build, etc. Great way to get visibility to everyone on the team and everyone walking by.

Geeky/Programming Product Reviews

Using Beyond Compare for Compares in TFS and SVN

I love Beyond Compare. Why? First off, their parent company Scooter Software is based in Madison, WI – so that is cool. Second, it is the best damn compare tool I have ever used. I use it for comparing every type of file, folders, folders to FTP, whatever. I love it. Best 30 dollars spent on software. I wish it did more, I could make a wish list.. anyways, to use it to do your source control compares for TFS and SVN? pretty easy.

TFS 2010/Visual Studio 2010

Open VS2010, Tools->Options->Source Control->Visual Studio Team Foundation Server… Click the “Configure User Tools” button


Click Add, and the settings for Compare.. I do .*, and then choose your Beyond Compare locations, and then the args like below

%1 %2 /title1=%6 /title2=%7



Right click anywhere in Windows Explorer, TortoiseSVN->Settings->External Programs->Diff Viewer

Choose External and then

"C:Program Files (x86)Beyond Compare 3BComp.exe" %base %mine /title1=%bname /title2=%yname /leftreadonly


(remove the x86 if you are on 32 bit, add it for 64 bit)


And.. there you go!


How To: Connect to SQL Server, VS TFS, etc using Windows Authentication when computer is not on Active Directory Domain (XP and Vista!)

Whew, long title, amazing results!

Problem: You have a laptop or computer and you are working remotely for a company. You VPN in. Your computer is not on their Active Directory (AD) domain. You try to connect to SQL Server using SSMS or Analysis Services using Excel, but it doesn’t work because it is using your user, not a domain user. How do you get around this?

Answer: Well, this is what I have found (tested on XP only) – start->run: computernamec$ – then it prompts you to login. Use your AD username and password, so

domainusername and password, and check the box to save password.

Seems that XP will save that in your authentication list somewhere, and then you can use SSMS or Excel to connect to the SQL Server via Windows Authentication!

This trick also works for TFS Build Servers/Team Explorer (tested with VS2005 Team Explorer) ..

Now for the fun part – Vista. The tricks above don’t work on Vista, but you can still get it to work. Here is what you do…create some shortcuts…

C:WindowsSystem32runas.exe /netonly /user:domainusername “C:Program FilesMicrosoft OfficeOffice12excel.exe”

C:WindowsSystem32runas.exe /netonly /user:domainusername “C:Program FilesMicrosoft Visual Studio 8Common7IDEdevenv.exe”

C:WindowsSystem32runas.exe /netonly /user:domainusername “C:Program FilesMicrosoft SQL Server90ToolsBinnVSShellCommon7IDESqlWb.exe”


Replace “domainusername” with your info. So if your domain is mycompany then it would be mycompanysteve.novoselac for example.

What happens is that then when you run those apps from those shortcuts it will prompt you for your domain password, you put it in, and it runs the app in the context of your domain user. You can then change the icon for each of these pretty easy, just browse to the exe in the second part when clicking the change icon button on the shortcut properties (the shortcuts are actually links to runas.exe which is a generic icon)

In Vista, for instance, if you are testing SQL (SSMS), you might get this error:

Login failed for user ''. The user is not associated with a trusted SQL Server connection. (Microsoft SQL Server, Error: 18452)

The shortcuts above will get you around it in the situation where your computer is not not on the domain or you are not logged in as a domain user..

These tricks above are especially good if you need to connect to SSAS (Analysis Services) since it is only Windows Authentication. And also, the IT department doesn’t really need to have consultant machines on the domain, or VM’s set up, etc, instead they can use these workarounds

Technorati tags: , , , , , , , , , , , , , , , , , ,

TFS Source Control: No Commands Available

Setting up Visual Studio 2005 and Team Explorer on my new Vista (I don’t think this is just a Vista issue, probably happens on XP as well) laptop, and when I went to go check out something from source control, I right click on a team project and get “No Commands Available” and everything is grayed out.

I figure out that the Source Control Plug-in wasn’t set correctly.

Goto. Tools->Options->Source Control->Plug-In Selection and change the drop down to Visual Studio Team Foundation Server

Works like a charm! 🙂

Technorati tags: , , , , , ,

TFS Team Build, TFSBuild.props and Visual C++

Team Foundation Server is a pretty sweet setup. It integrates source control into the Visual Studio IDE, and makes it easy for teams to work on projects together. With a little tweaking you can set up Continuous Integration and nightly builds. There are many different ways to set up your project layouts and references, which can make it easier to do deployments, etc. The one thing they forgot to mention is that, it is really easy with .NET projects. It gets a little hairy with Visual C++ projects.

What happens is that if you have VC++ projects that output libs (assemblies in .NET Land), and another project needs to reference them, you will probably run into pathing issues on your TFS buildserver.

TFS wants to output all the binaries to a specific folder. With VC++, there is a TFSBuild.props file that gets created dynamically that overrides the output folder (nice huh?). It is really a pain to try to override this yourself from what I have been researching. 20 different ways and no real solid method.

On your TFS server, in the path

C:Program FilesMSBuildMicrosoftVisualStudiov8.0TeamBuildMicrosoft.TeamFoundation.Build.targets

Is where all the settings are stored for how the builds happen.

There is a place in there where you can find the setting where the path gets overridden for VC++. It is set as $(OutDir)

When you make projects on your local machine, the output dir is set to $(SolutionDir)$(ConfigurationName)

Everything builds fine on your local machine, but once you try to set up a team build and have it build on the TFS server, it croaks, because the paths to libs arent the same.

Even though Microsoft says all over, never edit the .targets file, I did anyways, and all our projects build and have no issues on the TFS Server.

One other quick thing I have found different for VC++ projects compared to .NET projects. When you create a team build, you need to specify Win32 for the CPU target instead of the default Any CPU. Another quirk as usual 🙂

Technorati tags: , , , , , , , , , ,