Tag Archive: Visual Studio

Shelveset is killer feature of Visual Studio and Team Foundation Server

If I had a nickel for every time someone wanted me to make a “quick change” to some code while I was in the middle of open brain surgery with a dozen files checked out, I’d be able to pay for the Team Foundation Server license in record ROI time. Now when that happens, I can shelve what I’m working on, pull code from source (or even someone else’s shelveset), make my change, check it in, and then pull back my shelveset and get back to work. Awesome.

Here’s how to do it in Visual Studio 2010

Open Containing Folder from any file in Solution Explorer

This saves me a ton of hassle while developing: You can Open Containing Folder from any file in Solution Explorer in Visual Studio if you have the free Power Commands plugin from Microsoft. You can download the Power Commands plugin for Visual Studio 2010 from Microsoft’s Visual Studio Gallery.

Visual Studio Tip: Auto-format ASPX/ASP/HTML markup pages

If you have a messy markup page (ASPX, ASP, HTML, XML, etc.) that’s hard to read, just hit Ctrl-K then Ctrl-D and Visual Studio will instantly format it with carriage returns, nested tabs, etc.

For example, this:

<?xml version="1.0" encoding="utf-8" ?><myclass><myfield1><myfield2></myField2></myField1></myClass>

Becomes this:

<?xml version="1.0" encoding="utf-8" ?>

How to setup intellisense for javascript files (like JQuery) in Visual Studio 2008

Visual Studio 2008 already shows intellisense for javascript if you have the javascript embedded in the page, but if you want to get intellisense on javascript in js files referenced in your master page, you’ll need to make some mods. In the four steps detailed below, you’ll get javascript intellisense for external js files like jquery.

Making the mods

First, you’ll need to install SP1 for Visual Studio 2008 from here: http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&displaylang=en . This service pack adds a lot of enhancements to intellisense and other features of visual studio, so it’s useful even if you don’t want js file intellisense.

Then you need to install Microsoft’s hotfix for Visual Studio 2008 from here: http://code.msdn.microsoft.com/KB958502 . This hotfix makes Visual Studio automatically load vs-doc.js files as long as they are in the same folder as the dependent js file.
Place any vs-doc.js files in the same folder as their dependent js file, if you don’t have the vs-doc file for jquery, you can download it here: http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2-vsdoc2.js (you’ll need to remove the 2 at the end of the file name or Visual Studio won’t see it). For example, if you are using jquery-1.3.2.js, be sure to have the jquery-1.3.2-vsdoc.js file in the same folder. But if you’re using jquery-1.3.2.min.js, you’ll need the jquery-1.3.2.min-vsdoc.js file instead.
So far, pretty straightforward. Here’s the hacky part: You’ll need to put this code block into your Site.Master and any other master page you want to derive from and get javascript intellisense:

<!--Load javascript into intellisense, but do not render it on the user page. 
Note: this must be in the master page, not an include file, and it must use absolute reference, not dynamic Url.Content. 
Only some js files will load in intellisense; 
some js files cause all the js files to fail to load into intellisense. --->
<!--if (false){-->
<script src="~/Assets/JavaScript/jquery-1.3.2.js" type="text/javascript"></script>
<script src="~/Assets/JavaScript/jquery.blockUI.js" type="text/javascript"></script>
<script src="~/Assets/JavaScript/json2.js" type="text/javascript"></script>

Here’s why: The Visual Studio hotfix won’t see the intellisense info for your js files in an MVC environment because of the way we need to dynamically fetch the runtime url. You will need to add an absolute url reference, which is why we can’t use the MVC Url.Content method. Additionally, you don’t want that reference to get rendered to the client, hence the “if false” clause the always prevents it from rendering on the client, but tricks Visual Studio into seeing the reference for intellisense. Furthermore, VS2008 won’t see js file references in include files like MasterHeadElement.ascx, it only sees the ref if it is in the master page itself.

One warning: I found that some of the js file references fry the system and prevent all of the js files from loading into intellisense. I’m not sure why, but so far I know that jquery, jquery.blockUI, and json2 always work, but some other js files don’t.

© 2018 Robert Corvus