Monday, February 7, 2011

TFS Task Control/App

Found by a coworker..

In trying to figure out an easier way to keep track of my tasks in TFS, I stumbled across this FREE tool from Telerik (registration required, or you can rename the attached file to an MSI, and install). It is a stand-alone app that connects to the TFS server, and provides a way to keep an eye on your tasks outside of Visual Studio. It also provides a task board, supports Sprint Planning with your team, and much more. It is used internally by Telerik as part of their AGILE shop, and is geared towards that.

For me, I can keep this open to monitor my tasks and untether myself from Visual Studio. This makes it easier as I have multiple instances of VS open at a time, and when I close one, sometimes lose all my tasks/query tabs, etc.

Basic query view:

Wednesday, February 2, 2011

WCF Faults and Exceptions

Having spent the whole day trying to send exception information back up to the client....

Make it easy on yourself and do not include the Exception class as a property of the FaultException class. But if you do look at the links below.


How to impliment the IErrorHandler
http://codeidol.com/csharp/wcf/Faults/Error-Handling-Extensions/

How to make Exception class serialize using IErrorHandler:
http://www.woutware.com/blog/?tag=/faultexception

Monday, January 31, 2011

Using WinMerge with TFS

The default merge and compare tool for TFS blows. This is a better alternative.

http://www.neovolve.com/post/2007/06/19/using-winmerge-with-tfs.aspx

Wednesday, December 15, 2010

MSI tools and installer projects

To inspect an MSI for paths and items included use SuperOrca. This is a great free tool.

Use WIX to create installer and setup projects. Wixwiki.com

Thursday, December 9, 2010

Elevating an Exe's privileges

Resending this, I missed one thing the first time


To get an executable to always request elevation when run, create a file with the following in it. The file name will need to be in the format like this:

yourexecutable.exe.manifest

You will also need to replace the highlighted section with the name of the executable you will be embedding the manifest in.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="ElevationTest" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>



After you do that, open a Visual Studio Command prompt and run the following:
mt.exe –manifest arg1 -outputresource:arg2;1
Where arg1 is the name of the .manifest file you just created and arg2 is the name of the executable you want to embed the manifest into. Don’t forget the ;1 on the end, it is not a typo.

Courtesy of Chris Stoleworthy

Wednesday, November 24, 2010

Settng up IIS6 Compression

Enable HTTP Compression for Web Server

* Enable Direct Metabase Edit (Although not strictly required, this is for convenience which allows direct editing of the IIS metabase while IIS is running)
o In IIS Manager right-click on the server and select properties
o Check "Enable Direct Metabase Edit"

* Enable HTTP compression
o Right-click on the "Web Sites" folder and select properties
o On the Service tab check "Compress application files" and "compress static files"
o Create the folder D:\IIS Temporary Compressed Files*** This is where IIS caches compressed static files
o Change the "Temporary directory" to D:\IIS Temporary Compressed Files
o Under Web Service Extensions select "Add a new Web service Extension"
o Name the new extension "HTTP Compression"
o Add the required file c:\windows\system32\inetsrv\gzip.dll
o Check "Set extension status to Allowed"
o Should appear in extension list
* Modify the IIS metabase
o Edit C:\WINDOWS\system32\inetsrv\MetaBase.xml
o Search for "IISCompressionScheme"
+ You should see 2 entries, one for deflate and one for gzip (circled in green)
o Change the HcDynamicCompressionLevel to "9"
+ 10 is the highest compression but uses a lot of CPU. 9 is almost as compressed but requires far less CPU.
o Add the dynamic page extensions we want compressed (typically .aspx and .asmx, although this list may expand as new extensions are employed).
Be Careful
Spacing is EXTREMELY important in this file. The simplest way to guarantee no problem is to copy the "dll" line and modify to aspx, asmx, axd. Add js and css to the list that contains html