Scott Hanselman

Binary Fortress Software's ASP.NET ViewState Helper - A Treasure Trove of Tools

February 22, '07 Comments [2] Posted in ASP.NET | Reviews | Tools | ViewState
Sponsored By

I was working on some demos here at Corillian and I needed to check the size of the ViewState on a page. There's lots of ways and lots of tools that can help you do this. Certainly FireFox's Web Developer Toolbar, while not specific to ViewState, can help you analyze a page.

Nikhil Kothari's Web Development Helper is also very good at this, but requires a little more setup and ASP.NET 2.0. An awesome tool, though.

I stumbled on Binary Fortress Software's ASP.NET ViewState Helper (their support forum is brand new, but if you have trouble go there).

What a slick tool! A 300k download, and works on ASP.NET from the outside - by futzing with IE's object model. It watches you surf and collects statistics. You can then double click on any of the pages and view the decoded ViewState.

I like a tool that does its job, doesn't run inside of IE (I've had it with Browser Helper Objects), and gets out of the way when I'm done. Recommended. This tool is a very useful addition to your c:\utils.

(BTW, their Web Performance Monitor has promise too, but I haven't looked at it yet).

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

ASP.NET MVP Hacks

April 30, '06 Comments [5] Posted in ASP.NET | TechEd | ViewState | HttpHandler | HttpModule
Sponsored By

0764597663.01._SCLZZZZZZZ_V52483501_David Yack got a bunch of folks together and assembled ASP.NET 2.0 MVP Hacks from Wrox. Take a look at the picture on the right, totally looks like we're all in the same room with our twelve-sided dice, no? ;)

Seriously though, it's a good collection of "messing with ASP" hacks. I did the sections on HttpHandlers/HttpModules and the ViewState hacks. Some of the content came from my blog. I also pulled in content, with permission and attribution from a number of other smart ASP.NET blogs. Most hacks work on both ASP.NET 1.x and 2.0 as well.

A book with a Brady Bunch cover full of nerds, yes.

A book with a lot of slick hacks, totally.

Big ups and congrats to David for pulling it all together, he's really been working hard on this book and I'm happy to have been involved along with the other (very seasoned) authors David Yack, Joe Mayo, Fredrik Normén, Dan Wahlin, J. Ambrose Little, and Jonathan Goodyear.

ASP.NET 2.0 MVP HacksProfessional ASP.NET 2.0
Total List Price: $89.98
Buy Together Today: $57.88

If you're looking to get this and Pro ASP.NET 2.0, the total price is only $57.88 on Amazon right now as a bundle. To be clear, the content in these two books doesn't overlap. The Hacks book is focused on specific and finite tips, tricks, and undocumented features and manipulations of ASP.NET Features, while the Pro ASP.NET book starts with fundamentals and builds feature by feature to advanced topics advanced to Professional ASP.NET 2.0 developers.

 

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

Anthem.NET Released

February 2, '06 Comments [3] Posted in ASP.NET | ViewState | Tools
Sponsored By

Anthem is 1.0.0! It's free, it's AJAXy and it's available now.

"Anthem.NET is a free, cross-browser AJAX toolkit for the ASP.NET development environment that works with both ASP.NET 1.1 and 2.0."

There are lots of great AJAX libraries out there, but I'm partial to Anthem. His stuff is ViewState aware which helps you in a number of ways and extends the server-side metaphors in a very natural way.

As an aside, interestingly, Community Server uses a private branch of Anthem. ScottWater uses both Anthem and ComponentArt's stuff, drawing a distinction between using Anthem when raw data is sent to the client versus using CA's when the UI is updated.

Most of all, I like that Anthem is fully supported in .NET 1.1. Not everyone can upgrade to .NET 2.0 tomorrow when they've got paying clients today, myself included. Do check out the source, it's pretty clever and elegant (remembering that AJAX itself is a huge hack. ;) )

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

Moving ViewState to the Bottom of the Page

October 13, '05 Comments [7] Posted in ASP.NET | ViewState
Sponsored By

I was working on some ASP.NET hacks and wanted to move the ViewState to the bottom of the page in order to get Google to pay more attention to my page and less to the wad of Base64'ed ViewState.

First I tried this because it's the closest to the way my mind works:

static readonly Regex viewStateRegex = new Regex(@"(<input type=""hidden"" name=""__VIEWSTATE"" 
value=""[a-zA-Z0-9\+=\\/]+"" />)",
RegexOptions.Multiline|RegexOptions.Compiled);
static readonly Regex endFormRegex = new Regex(@"</form>",
RegexOptions.Multiline|RegexOptions.Compiled);
 
protected override void Render(HtmlTextWriter writer)
{
    //Defensive coding checks removed for speed and simplicity. 
    // If these don't work out, you've likely got bigger problems.
    System.IO.StringWriter stringWriter = new System.IO.StringWriter();
    HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
    base.Render(htmlWriter);
    string html = stringWriter.ToString();
    Match viewStateMatch = viewStateRegex.Match(html);
    string viewStateString = viewStateMatch.Captures[0].Value;
    html = html.Remove(viewStateMatch.Index,viewStateMatch.Length);
    // This will only work if you have only one </form> on the page
    Match endFormMatch = endFormRegex.Match(html,viewStateMatch.Index);
    html = html.Insert(endFormMatch.Index,viewStateString);
    writer.Write(html);
}

However, it was taking 1 thousanth of a second (~0.001230s) to do the work and that didn't feel right. Of course, by taking over the HtmlTextWriter and spitting it out as a string I've boogered up all the benefits of buffering and the whole streaming thing, but it still felt wrong.

So, against my better judgement, I did it again like this:

protected override void Render(System.Web.UI.HtmlTextWriter writer) 
{
    System.IO.StringWriter stringWriter = new System.IO.StringWriter();
    HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);
    base.Render(htmlWriter);
    string html = stringWriter.ToString();
    int StartPoint = html.IndexOf("<input type=\"hidden\" name=\"__VIEWSTATE\"");
    if (StartPoint >= 0) 
    {
        int EndPoint = html.IndexOf("/>", StartPoint) + 2;
        string viewstateInput = html.Substring(StartPoint, EndPoint - StartPoint);
        html = html.Remove(StartPoint, EndPoint - StartPoint);
        int FormEndStart = html.IndexOf("</form>") - 1;
        if (FormEndStart >= 0) 
        {
            html = html.Insert(FormEndStart, viewstateInput);
        }
    }
    writer.Write(html);
}

I always assumed (mistake #1) that IndexOf was pretty expensive, particularly on larger strings. However, this method averaged out at 0.000995s. It consistently beat the Regex one, even though the Regex one was very simple, the Regexes were precompiled and (I think) simple.

Now, to be clear, I'm just playing here, and I know it's microperf and premature optimization. The really interesting thing would be to do a matrix of page size vs. viewstate size. You know, large page, small viewstate against small page, large viewstate and all points in between, then try it with both techniques and see which is better for these different scenarios. But, I'm tired and have other things to do, so if you like, there's some homework for you. What does this data set look like: viewstate size vs. page size vs. technique?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web

Scott Hanselman's 2005 Ultimate Developer and Power Users Tool List

June 20, '05 Comments [34] Posted in Learning .NET | ASP.NET | DasBlog | Javascript | NUnit | NCover | Nant | XML | CodeRush | ViewState | HttpModule | Web Services | Movies | Gaming | Bugs | Tools
Sponsored By

Everyone collects utilities, and most folks have a list of a few that they feel are indispensable.  Here's mine.  Each has a distinct purpose, and I probably touch each at least a few times a week.  For me, util means utilitarian and it means don't clutter my tray.  If it saves me time, and seamlessly integrates with my life, it's the bomb.

Here are most of the contents of my C:/UTILS folder. These are all well loved and used.  I wouldn't recommend them if I didn't use them constantly.

This is the Updated for 2005 Version of my Original Tools List and subsumes all my other lists. New Entries to the Ultimate Tools are in Red and many entries have been updated. The utils have also been organized into Categories.

NOTE: Please don't reproduce this in its entirety, I'd rather you link to this post. I appreciate your enthusiam, but posts like this take a lot of work on my part and I'd appreciate that work staying where it is and linked to, rather than being copy/pasted around the 'net. Also, I do believe in the Permanence of the Permalink, and I will do everything in my power (as I have for the last 3+ years) to avoid Link Rot. If you're reading this and you're not at http://www.hanselman.com/blog, perhaps you'd like to join us at the original URL?)

The Big Ten Life and Work-Changing Utilities

  • Notepad2 (Scite also uses the codebase) - A great text editor. First class CR/LF support, ANSI to Unicode switching, whitespace and line ending graphics and Mouse Wheel Zooming. A must. Here's how to completely replace notepad.exe. Personally I renamed Notepad2.exe to "n.exe" which saves me a few dozen "otepad"s a day. Here's how to have Notepad2 be your View Source Editor. Here's how to add Notepad2 to the Explorer context menu.
  • Cropper - A fabulous screen capture applet. I usually pick simple tools that do their job elegantly. Cropper does just that and it's written in .NET.
  • Lutz's Reflector and it's AddIns - The tool that changed the world and the way we learn about .NET. Download it, select and interesting method and hit the space bar. Take the time to install the Add-Ins and check out the amazing static analysis you can do with things like the Diff and Graph.
  • SlickRun - A free floating dynamic "command prompt" with alias support that continues to amaze. My tips for effective use: read the instructions, edit the slickrun.ini file and bind it to Window-R. Also set ChaseCursor so when you hit Win-R, you'll have a floating transparent command line anywhere your mouse is. I recommend you also use larger fonts! Get to know this little box. It's the bomb.
  • Windows Desktop Search - The betas were rough and tended to lock up, but the free final edition is tight. I can finally bring up a file almost as fast as I can think about it. One important note that sets it apart from Google Desktop Search is that the items appearing in the result window are first-class Explorer Items. Right click on them and you'll not only have all your context menu extensions, but also Open Containing Folder.
  • TaskSwitchXP and/or TopDesk - Two better ways to ALT-Tab and Task Switch in Windows. Don't confuse TaskSwitchXP with the old PowerToy. This one is fast and powerful. If you envy the Mac's Expose, then use TopDesk. Personally, I use both and set a cursor hotspot in the lower-right corner to tile my windows. Be sure to have DirectX9 installed.
  • Magnifixer - My ZoomIn tool du jour. Be sure that you have SOME kind of ZoomIn tool installed. I like this one because it automatically follows your cursor and your typing and saves settings without asking. It also has a nice eye-dropper for the RGB in you. Learn how to use this tool if you present at all.
  • CodeRush and Refactor! (and DxCore) - Apparently my enthusiasm for CodeRush has been noticed by a few. It just keeps getting better. However, the best kept secret about CodeRush isn't all the shiny stuff, it's the free Extensibility Engine called DxCore that brings VS.NET plugins to the masses. Don't miss out on free add-ins like CR_Documentor and ElectricEditing.
  • SysInternals - I showed specifically ProcExp and AutoRuns, but anything these guys do is pure gold. ProcExp is a great Taskman replacement and includes the invaluable "Find DLL" feature. It can also highlight any .NET proceses. AutoRuns is an amazing aggregated view of any and all things that run at startup on your box.
  • TestDriven.NET (was NUnitAddIn) - The perfect integration of Unit Testing with Visual Studio.NET. Right click and "Run Test." The output window says "Build" then switches to "Test." The best part, though, is "Test With...Debugger" as a right click that automatically starts up an external process runner, loads and starts your test. Compatible with NUnit, MBUnit and Team System.

A Developer's Life

  • Reggie - Not a regular expression tool, it's a BETTER RegSvr32.exe from Shawn Van Ness.  It provides better error handling and messages.  It doesn't suck. Which is more than I can say for RegSvr32.exe.
  • LogParser - This utility is so good it has it's own FAN SITE. That says something. Get to know it, as it's a free command-line tool from Microsoft that lets you run SQL queries against a variety of log files and other system data sources, and get the results out to an array of destinations, from SQL tables to CSV files. I dig it and use it to parse my own logs.
  • APIViewer 2003 - A database and browser of the Win32API, similar to the old win32api.txt file that was distributed with VB6. Includes 6500 function declarations and 55000 constants. 
  • Application Profiler - A great GotDotNet sample, a tool for visualizing and analyzing allocations on the GC heap.  Has a GREAT graphical view
  • Adam Nathan's CLRSPY - A diagnostic that looks at .NET 1.1 Customer Debug Probes, in-freaking-valuable.  
  • Eric J Smith's CodeSmith - Oh, yes, it's much more than just a Strongly Typed Collection Generator. It's a complete code-generation engine with an ASP.NET-like syntax. Very extendable, very powerful, very affordable. And all is right with the world. I've used it to generate THOUSANDS of lines of code. There's a learning curve, but the benefits are immense. It's worth the download just for the Strongly Typed Collection code from Chris Nahr. 
  • Jeff Key's Snippet Compiler - Sits quietly waiting for you to test a quick snippet of code or algorithm.  No need to even start VS.NET!
  • Alintex .NET Scripting Host - Allows you to create scripts (like like VBS files, etc) except with .NET.  Also a great prototyping tool.
  • Venkman - An amazing JavaScript debugger for FireFox that has seen me through a number of hard times.
  • ActiveXplorer v4 - A file manager and analyzer for COM objects...a little higher level than OleView and easier to understand.
  • BinType2.exe - Ever want to check a VB6 COM dll to see if it's been appropriately compiled with "Retain in Memory" and "Unattended Execution" set to true for correct execution under MTS?
  • Clemen's BuildDay.exe - Great commandline util that you should put in your path.  Returns the last digit of the year and the number of the day.  Great for batch files that create daily builds, log files, etc.
  • Microsoft MDAC Component Checker - Utility to diagnose and deal with MDAC compatibility and versioning problems.
  • WinMerge - The best open-source Diff Merge Tool that I've found.
  • fLogViewer - Great freeware highlighting log viewer for large log files.
  • HightLight for Windows - Highlight is a universal sourcecode converter for Linux and Windows, which transforms code to HTML, XHTML, RTF, LaTeX or TeX - files with syntax highlighting. (X)HTML output is formatted by CSS.
  • IECookiesView 1.5 from NirSoft - Nice clean interface to snoop contents of the cookies on your box in IE.
  • ieHttpHeaders - Internet Explorer "Explorer Bar" that shows the HTTP Headers as you browse.  Invaluable for quickie debugging.  More great stuff from Jonas Blunck.
  • COMTrace - Hooks and lets you see COM "traffic" on processes on your system.  Intercepts COM calls on any interface.  Has saved my ass 3 times.
  • MSI Utilities - This site lists darn near every MSI related utility.
  • SCCSwitch - Harry Pierson's ruthlessly competent Source Control Provider switcher for VS.NET.  Great if you are using Vault, VSS and CVS like me.

The Angle Bracket Tax (XML/HTML Stuff)

  • VisualXPath - A nice GotDotNet project that runs XPath Queries interactively and displays the results. Also useful for quick coarse timing of query speed.
  • Web Services Studio 2.0 - .NET Webservice Studio is a tool to invoke Web Services interactively. The user can provide a WSDL endpoint and it generates the .NET Proxy immediately.
  • Mindreef SOAPscope - The original. The glory forever, this is more than an Add-In, it's a complete XML Web Services design studio. It's a bargain and works even better when setup in a workgroup. It keeps a database of all Web Services traffic, but it's more than a sniffer. It also analyzes data for WS-I compliance and allows for record and replay of messages. "It's Tivo for Web Services!"
  • XmlSpy - Just buy it.
  • PPXML - Command-Line XML Pretty Printer
  • Xenu's Link Sleuth - Xenu's Link Sleuth (TM) checks Web sites for broken links. Link verification is done on "normal" links, images, frames, plug-ins, backgrounds, local image maps, style sheets, scripts and java applets. It displays a continuously updated list of URLs which you can sort by different criteria.
  • Fesersoft's VS.NET XSLT 1.0 Schema - Enables Intellisense for XSLT 1.0 documents in Visual Studio.NET 2003. There's other good code here to check out also!

Regular Expressions

Stuff I Just Dig

  • Virtual TI-89 [Emulator] - Sometimes CALC.EXE doesn't cut it, and I want a REAL scientific calculator for Windows, so I emulate the one I used in college.
  • SyncBack - I use this to manage my many external drives and digital media. Sometimes you just want to sync up a directory.
  • VisiCalc (vc.exe) - Because I just like having a copy of VisiCalc in my utils folder.  I use it occasionally.
  • WinDirStat - There's a lot of Disk Visualization Tools out there, but this one just seems to tell me exactly what I need to know and it can be run without installation.
  • WhiteBoard Photo - Has to be seen to be believed. Takes a skewed low-contrast, bad photo of a Whiteboard and automatically corrects it and offers up a clean white sheet of paper with a color corrected and keystoned photo of your whiteboard.  Check out the demo. Expensive though.
  • Cygwin - Remind yourself of your roots and give yourself a proper Unix prompt within Windows. However, it's less about the prompt as it is about the wealth of command-line tools you'll gain access to.
  • BlogJet - I freaking love this little guy. Works great with DasBlog, supports spellcheck, file upload, makes clean HTML, and includes Music Detection support as well as posting of Audio to your blog.
  • Fraps - DirectX video capture! Exactly what you need when you want full screen video of a DirectX or OpenGL application.
  • xplorer2 - Norton Commander-like funcitonality for Windows. It's one better than Explorer.

Low-Level Utilities

  • BootDisks.com and the Ultimate Boot CD and the Ultimate Boot CD for Windows - I've downloaded and saved everything from BootDisks.com, including Win95 and Win98 boot disks and a DOS 6.22 disk. The boot CDs are life-savers and should be taken to all family gatherings where the relatives KNOW you're a computer person. They'll expect you to save their machines before the turkey is served.
  • DllFiles - You never know when you might need an old-ass dll.
  • Daemon367, Virtual CD ISO Image Mounter - This is the utility that lets you mount an ISO image as a Drive Letter...nice to keep a library of CDs around on a Firewire drive. Very robust.
  • FileMon - Displays file system activity in REAL TIME.  Just who is that writing to the disk right now?
  • YATT by Simon Fell - Yet Another Trace Tool, requires WinPCAP, when you just need to sniff some packets. 
  • ProxyTrace - Often less trouble than the Microsoft Soap Toolkit's SOAPTrace. 
  • Who's Locking? - WhosLocking.exe lets you know what application is locking that DLL you're trying to delete! Although, lately I've been using...
  • Process Explorer - The ultimate replacement for TaskManager. Includes the amazing Find DLL feature to find out what processes have your DLL in memory.
  • Sid2User - CommandLine Util to take a SID and get a Real Name to, for example, get the local name of the "Everyone" user.
  • BinText - Gives you more detail that you can handle about text hidden within binaries.

Websites and Bookmarklets (that change the way you work)

  • TinyUrl.com - Makes big urls tiny. For when you're emailing a long URL to someone and you KNOW they will freakout it if wraps.
  • Visibone HTML/JavaScript Reference - These guys make a great physical paper reference, but they also have a great .HTML file you can download for free that has ASCII charts and Color references.  It's a link I keep close by.
  • Del.icio.us - A social distributed bookmarks manager. It took me a bit to get into it, but their Bookmarklets that you drag into your Links toolbar won me over. All my bookmarks are here now and I can always find what I need, wherever I am. Very RESTful.
  • Genpass - Bookmarklets to make your passwords more powerful. Adapted from Nic Wolff's concept. There's a great screenmovie explaining how this works by Jon Udell.
  • Google Portal - It's not Google, it's http://www.google.com/ig and it includes movie times, driving directions, news and weather. My new home page.
  • QuirksMode - Over 150 pages of details on CSS and JavaScript. When my brain is overflowing with the HTML of it all, I head here.
  • Google Maps + HousingMaps.com - Google Maps is cool, but Paul Rademacher's HousingMaps.com is synergy.

Smart People and their Pages for Utils They Wrote

Browser Add-Ins

  • Urlograph - I don't know how I lived without this util. It adds a button to internet explorer that cleans filthy URLs (Amazon, Google, MSDN, Google Groups, etc) and puts the smallest URL possible in your clipboard. Not to be confused with TinyUrl.com, this util removes the fluff and makes Urls hackable again.
  • UrlKicker - If you DO end up with a giant wrapped URL with line breaks, this little tray icon will remove those breaks and launch the browser. Source included.
  • GetRight - Downloads, resumes and most importantly, splits up large downloads over HTTP or FTP into as many as 10 concurrent streams. Great with FlashGot for FireFox.
  • WebDeveloper for FireFox - If you're the last developer to download FireFox, or you're holding off, WebDeveloper is a solid reason to switch to FireFox NOW. It's amazing and has to be used to be believed. It consolidates at least 2 dozens useful functions for those who sling ASP.NET or HTML. And if you're a CSS person, the realtime CSS editing is pretty hot.
  • IEView and ViewInFireFox - These two utils go together. Both are FireFox extensions, but they are yin to the others yang. They add View in Internet Explorer and View in FireFox context menu items to their respective browsers. Great if you develop, but also great if you tend to visit sites that aren't browser agnostic.
  • FireFox Extensions - Stunning! Extensions for my browser that won't kill my family! GoogleBar for FireFox, CopyPlainText, DownloadManagerTweak, AdBlock, ChromEdit, FlashGot (for GetRight), and GreaseMonkey.

Things Windows Forgot

  • Ultramon - Why this kind of functionality isn't built in, I don't know. But it'll keep the guy at RealTimeSoftware in business! Ultramon is the ultimate utility for Multiple Monitor systems. It's most significant features, IMHO, is the addition of TaskBars that are monitor specific, and the addition of buttons NEXT to Minimize and Maximize to move open windows over to other monitors. Great if you've got 2 monitors, but a MUST if you've got more than 2!
  • Tail for Windows - There's lots of ways to get this functionality, including the GNU Utils for Windows and BareTail. The point is, it should have been included! A "tail -f" for Windows.  Great if you work with programs that write to log files and you want to watch the log as it's being written.  Also has keyword highlighting so you can see things get visually flagged as they go by.
  • SlickRun, Windows Search and/or Dave's Search Bar - Pick one, and love it. Why there isn't a floating or docked command-line in Windows I do not know. Probably so my mom wouldn't freak out.
  • RoboCopy - When COPY and XCOPY just won't cut it, try the "Robust Copy"
  • Nero 6 and ImageDrive - Nero 6 is a fantastic value and the greatest burning suite out there.  It also include ImageDrive that let's you make and mount ISO images.
  • BgInfo from SysInternalsIf you log into a lot of boxes remotely and always wonder, where the hell is this? This wallpaper tool creates custom wallpapers with all the information you'd need, like IP Address, Box Name, Disk Space, and it's totally configurable.
  • AutoRuns - I always am suspicious that someone is running something automatically on my system.  AutoRuns (from SysInternals) checks EVERYWHERE that could be running something, the registry, win.ini (remember those?), the Startup Group, etc... 
  • Marc Merrit's Event Log Monitor (EventReader) - Sits in the tray and pops up a nice XP-style baloon whenever the event log is written to.  I hate tray icons but I love balloon tooltip info, so it's a good tradeoff.
  • Filter Files with Unknown Extensions for XP - Chris Sell's provides a .REG file that let's explorer's find files with file extensions that are not known.  A real irritant with XP, fixed.
  • Paint.NET - The Paint Program that Microsoft forgot, written in .NET.
  • GhostIt - Little tray app that lets you ghost (make transparent) any window by clicking on it.
  • NetPing - Jeff Key's multi-threaded pinger...it continues to include new features, like right-click and launch Remote Desktop. Great for administration of small networks. I use it all the time.
  • Magical Jelly Bean KeyFinder - Misplace your Windows and Office Product Keys?  Find them with this.
  • NetworkDriveInfo - Helps you find free drive space on remote systems. 
  • PSTools from SysInternals - All the command-line tools that Windows forgot...kill, loggedon, remote exec, shutdown, getsid, etc.
  • TrueName - Right click a file in Explorer and find out it's TRUENAME (Remember the Truename.exe?)  The 8.3 name of My Documents might be C:DOCUME~1SHANSELMMYDOCU~1.
  • RealVNC - When RemoteDesktop is a hassle and PCAnywhere is lame...VNC stands for Virtual Network Computing. It is remote control software which allows you to view and interact with one computer (the "server") using a simple program (the "viewer") on another computer anywhere on the Internet.
  • WHICH - It's which and it's back.  Wondering WHICH copy of that .exe is being run first in the path? Run "which calc.exe"
  • URL Bandit - Monitors the clipboard and saves all URLs that go by in the click-stream.  If you copy a 1 meg file to the clipboard, URL Bandit can find, for example, all 200 URLS within it.  Yum.

Ultimate Registry Tweaks

Windows Explorer Integration (and other Integraty things)

  • Junction Icon Overlay - If you're digging Junctions (NTFS Reparse Points/Symbolic Links) like I am, then you're lamenting the fact that Windows Explorer is CLUELESS about them. Well, no longer, thanks to Travis and his Junction Overlay for Explorer.
  • ExecParm - Like Right Click|RunAs...it's even better with ExecParm adding the ability to execute with parameters. Everything else at this site is awesome also, including ClipName.
  • UrlRun -
  • ASP.NET Development Helper - Nikhil, a dev lead on ASP.NET 2.0, created this wonderfully elegant developer helper that plugs into IE and gives you lots of insight into what's happening in ASP.NET while you develop. Want a FireFox version? Sure.
  • PowerMenu - Great little hook that adds item to the System Menu that let you change the Transparency or Priority of the current window.
  • CommandBar for Explorer - This tool extends explorer with functionality of a command prompt. Implemented as a band object completely in C#. Demonstrates COM Interop and P/Invoke, windows hooking and API interception. Finally you can run all these .Net SDK tools and ‘Hello World!’ programs without leaving explorer shell.  Definitely turns heads if you use it in a presentation.
  • UrlRun plugin for Outlook - From Tim Tabor based on Chris Sells' UrlRun.  Lets you right-click on messed-up and wrapped URLs in Outlook and launch the browser without manually fixing the URL.  Chris Sells says "It's pure sex."
  • SummerProperties - a Shell Extension that adds a Tab to File Properties that calculates the file's checksum.
  • PrivBar - This util is great if you're trying to avoid running as Administrator. It adds a bar to Explorer that uses text and color to let you know what Privilege level you're running at.
  • Plaxo - I love the way Plaxo integrates with Outlook, tells me about upcoming Birthdays and has kept my whole Address Book up to date.
  • BrowseToSender - This little Outlook Add-In takes you to the website of the sender of the currently viewed email.

Continuous Integration

  • NUnit or ZaneBug - Microsoft Visual Studio Team System is shiny, but there's ways to do Continuous Integration and super charge your developers today. NUnit is the name everyone knows, but ZaneBug is a better GUI for NUnit than NUnitGui. It adds multiple assembly tests, requires no recompiles, adds performance counters, repeating tests, as well as charts and graphs.
  • TestDriven.NET - see above in the Big Ten.
  • NAnt - It all starts here. Get your build working from the command line, not from DevEnv. It's makefiles with angle brackets and it's a good way to start improving your processes. Supports .NET 1.0 through 2.0 as well as Mono!
  • devMetrics - devMetrics is a free tool for measuring various attributes of your C# code so that you can accurately assess your product for quality and maintainability. I use it to measure cyclomatic complexity and abuse people during code reviews. A great way to add static analysis to your automated builds!
  • LibCheck - Highly recommended. This is the tool that Microsoft uses to compare builds of public APIs. We use it at Corillian to generate reports showing what public methods and properties have changed between builds. (Note, be sure to read this gotcha when you start messing around.)
  • CruiseControl.NET - This is a great Automated Continuous Integration Server using .NET, from ThoughtWorks. Includes a tray icon for your developers to receive updated build information as well as a flexible plugin model you can use to extend CCNet to meet your needs.
  • Clemen's BuildDay.exe - Great commandline util that you should put in your path.  Returns the last digit of the year and the number of the day.  Great for batch files that create daily builds, log files, etc.
  • NCover - Code Coverage for .NET with NAnt Integration. Clover is also nice, but costs.

TabletPC Indispensibles

  • ArtRage - It's free, and it's amazing. If you remember being blown away the first time you used Kai's Power Tools, you'll feel the same way with ArtRage. In the You can create some AMAZING art with an organic quality I've just never seen on a PC. If you do one thing this weekend, install it and use the "Load Tracing Paper" Feature.
  • Paint.NET - This is a must have tool Tablet PC or not, but since the 2.0 version added Ink support, you'll find it very comfortable for making annotations to screenshots.
  • MaxiVista - Use your Tablet PC as a virtual second or third monitor! I use my M205 as a third monitor that keeps Outlook open. Now MaxiVista Version 2 is a software Virtual Keyboard and Mouse! When I don't want to use the Tablet as an extension of my main computer, I want to use my main computer's keyboard and mouse as an extension of my Tablet!
  • Wallpaper Gyro - The Toshiba M205 has a Gyroscope installed so no matter how you hold it, when you press the hardware "orient" button on the edge of the screen the system will switch to the correct orientation. Wallpaper Gyro will not only automatically change your wallpaper when the orientation changes, but it allows you to have different wallpaper for each orientation!
  • InkPlayer - Easily create Macromedia Flash playbacks of animated ink stokes!
  • MathPractice and Fraction Practice - Great for the young people in your life. A series of Tablet PC-enabled FlashCards that let kids practice Math with Ink!
  • MuseBook Concert (site in Korean) - Not completely Tablet-specific, but create and use an electronic music score and sheet music on your Tablet PC. Different from MusicPad.
  • OneNote - duh, but don't forget SP1!
  • X-Think Calculator or MathJournal - Fantastic support for ink along side equations, these are worth download the trials just to see. If not, at least be prepared by downloading the free viewer.
  • Alias SketchBook Pro - It costs, but it has a very different style and goal (IMHO) than ArtRage, and the output is different in philosophy. ArtRage is largely about paint, and Alias is about pencils and sketching.
  • Tablet PC PowerToys - Get any and all of these, but I use:
    • Physics Illustrator - This one helped me out when I went back to finish my degree and was stuck in Physics 203.
    • New York Times Crossword Puzzle - This one is the bomb-diggity. Even the wife digs it. The only complaint is it's not re-sizable, but the Zoom to 640x480 feature of the Toshiba Tablet fixes that. The Crossword app lets you download today's Crossword for solving off line. Fantastic for the bus or train ride to work.
    • Pool for Tablet - This is worth at least $20, but it's FREE. A wonderful game of Pool with all the graphics and physics to make you smile, and it's all TabletPC enabled. Be sure to try playing over a wireless network with a friend.
    • Snipping Tool - A new tool that some folks haven't seen yet, this lets you "cut out" portions of the screen for annotation. It's the Pen's take on the traditional screen shot tool.
    • Web Search Power Tool - This is the one I wrote lo these many years ago in 17 minutes , and got $2500 for my troubles. Even more useful when combined with Google Desktop Search.
    • Music Composition - Free and it lets you write Sheet Music with your Tablet PC
    • Energy Blue Theme - An Media Center-inspired theme for the Tablet PC
    • Make your own Handwriting Font - A winner of the Tablet PC applet content, you can make your own TrueType Font out of your Handwriting. Amazing.
    • Microsoft Experience Pack for TabletPC - A collection of some of the PowerToys all packed up, including a TabletPC specific Windows Theme.
  • TabletPC Enhancements for Outlook - Outlook isn't exactly TabletPC-friendly. An Outlook-Addin, you can create Appointments and Tasks in Outlook using Ink.
  • MindManager for the TabletPC - If you use Mind Mapping software, it's even more intuitive and comfortable when the application has seamless Tablet PC support.

ASP.NET Must Haves

  • Peter Blum's Validation And More - Not an add-in but rather a complete re-imagining of the ASP.NET Validation Framework. There's a learning curve, but it will change the way you write pages. Also check out his Visual Security Security and Peter'sDatePackage. His documentation is legendary.
  • Andy's MetaBuilders - Talk about good karma. When you put this much goodness and free ASP.NET controls into the world, you must get a lot of great parking spots. Check out the dozens of ASP.NET Controls here.
  • Fritz Onion's ViewStateDecoder - Simple util that gives you more insight into what's hidden inside of ASP.NET's ViewState (hidden form field)
  • ELMAH (Error Logging Modules and Handlers) - An HttpModule and Handler that will capture and log all Yellow Screen of Death messages your ASP.NET site experiences. And it will even give you an RSS Feed of the errors! Great for anyone who wants to instrument a site without recompiling.

Visual Studio.NET Add-Ins

  • CodeRush - Of course. It's the bomb, enough said. Also check out Resharper (C# only).
  • Peter Blum's ADME - ASP.NET Design Mode Extender (“ADME”) helps custom controls to provide a better design mode interface. This supports his Validation Controls, which rock, but also controls that you might write that need richer Design Mode Support.
  • CodeSmith Explorer - Generate CodeSmith code and templates directly from VS.NET
  • CopySourceAsHtml - Better than a Macro, this Add-In puts syntax-highlighed HTML on your clipboard. Now it supports "Embedded Styles" for use in BlogJet and other tools.
  • GhostDoc - Here's an Add-In I'd overlooked previously, now in it's 1.2 version.  GhostDoc attempts to generate C# documentation that can be gleaned from the name and type of methods and properties. Roland Weigelt has big plans for version 1.30 that will include customizable text and rules. One to watch, and while it sometimes guesses wrong, it's a completely unique Add-In worth your download.
  • devMetrics - devMetrics is a free tool for measuring various attributes of your C# code so that you can accurately assess your product for quality and maintainability. I use it to measure cyclomatic complexity and abuse people during code reviews.
  • Mindreef SOAPscope - The original. The glory forever, this is more than an Add-In, it's a complete XML Web Services design studio. It's a bargain and works even better when setup in a workgroup. It keeps a database of all Web Services traffic, but it's more than a sniffer. It also analyzes data for WS-I compliance and allows for record and replay of messages. "It's Tivo for Web Services!"
  • NUnit Addin, now TestDriven.NET - If you're serious about TDD, stop fooling with NUnitGui and Attach Process and start using TestDriven.NET. It's a simple as Right-Click -> Test With -> Debugger.
  • pinvoke.net - Adam Nathan continues to innovate with an add-in that lets you "Insert PInvoke Signature" from the VS.NET Editor by communiating with a server-side repository with best-practice signatures to make calling unmanaged code a breeze. Also, be sure to visit the PInvoke.NET Wiki.
  • Reflector as an AddIn - A joint effort, run Lutz's unbelievable decompiler/explorer with Jamie's Add-In support. (There's a number of other slick, but alpha-quality addins at that link as well, including FxCop as an AddIn.)
  • Regions AddIn - Finally, something useful from CodeProject, this add-in helps organize your code with a simple Right-Click -> Add To New Region and Right-Click -> Add To Existing Region. You'll wonder how you lived without it!
  • Unleash it! - The great ASP.NET deployment tool with the unfortunate name. Formerly known as WebDeploy, this Add-In lets you deploy your ASP.NET application using whatever it takes. Now with plugin support!
  • WS Contract-First - Christian Weyer leads the pack with custom Web Service code generation, and generation of WSDL itself from Message-based XSD. How's that for SOA and contract-first development?
  • VSCmdShell - Open a Command Prompt within a Visual Studio.NET 2003 Docked Toolbox Window!
  • CommentReflower - Really detail-oriented? This tool reformats your code comments to your specifications.
  • OnlineSearch - Search the Internet and Google directly from VS.NET!

Well, that's about 70% of them. I'm tired. Perhaps there will be updates later.

Contents Copyright © 2003-2005 by Scott Hanselman - Reproduction prohibited without written permission. Hyperlinks welcome.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Page 1 of 4 in the ViewState category Next Page

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.