Category: Code

How to fix the Visual Studio 2012 skin

The Visual Studio 2012 default skin is just awful. To fix it, here are the shortcuts.

To use this nice dark theme, import this VSSettings file:

Run this powershell command to turn off the ALL CAPS menu (if in Visual Studio full version):

Set-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\11.0\General -Name SuppressUppercaseConversion -Type DWord -Value 1

(or if in Visual Studio Express Web):

Set-ItemProperty -Path HKCU:\Software\Microsoft\VWDExpress\11.0\General -Name SuppressUppercaseConversion -Type DWord -Value 1

If you want to run your apps in localhost through IIS Express without having to launch Visual Studio in admin mode every time, run this one-time command through an admin-elevated cmd (replacing your app name and port):

>netsh http add urlacl url= user=everyone

Now you can launch Visual Studio in normal mode and when you Ctrl-F5, you won’t get a “failed to register url” error.

To automagically pass a select option (a.k.a. DropDownBox or ComboBox) to a post action’s viewmodel using MVC.NET’s built in model binding, simply set the “name” (not the “id”) of the select element to the name of the viewmodel parameter. Make sure the option values are also being populated.  Like so:

@using (Html.BeginForm())

public class MyViewModel
    public string ItemId{ get; set; }
    public List Items{ get; set; }

ToXmlString extension method

This is an extension method that serializes any object to xml. Note that it is “null resistant” in that if the target is null, the extension does not throw an object-not-set-to-an-instance exception, but instead simply returns null.

public static string ToXmlString(this T item) where T : class
            if (item == null)
                return null;
            string xml;
            using (var stream = new MemoryStream())
            using (var writer = XmlWriter.Create(stream))
                new XmlSerializer(item.GetType()).Serialize(writer, item);
                xml = Encoding.UTF8.GetString(stream.ToArray());
            return xml;

UPDATE:  I’ve created a solution script so you can run this with a single command


If you want to quickly delete all the bin and obj folders in a solution:

  1. Make sure you have Microsoft’s Productivity Power Tools 2012 installed in your Visual Studio’s Extensions and Updates.
  2. Right-click on the solution in Solution Explorer
  3. Open Command Prompt
  4. Run powershell
  5. Paste and run this:  Get-ChildItem -include bin,obj -recu -Force | remove-item -force -recurse
© 2015 Robert Corvus