· Log on to Server as local admin account e.g. User,
o Run Visual Studio remote debugger remotely (Deployed to Dev workstation as part of Visual Studio install, can be installed on server).
o Transport qualifier will be shown in first line as <User>@<Server>
o Add Developer to Permissions in remote debugger. (Menu item)
o Optionally - Use IISApp.vbs to determine which process ID is hosting your website
· On Developer Machine
o Add new local User (with same password as Server) to your local machine as an Administrator
o Allow cross user debugging
§ Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Machine Debug Manager]
"AllowLaunchAsOtherUser"=dword:00000001
o Open VS
o Open Debug->Attach to Processes (Ctrl-Alt-P)
o In the transport Qualifier change from your local machine to the value shown on remote machine as <User>@<Server>
o Click Refresh
o Jump down to w3wp.exe, select the correct process ID
The problem with cross-user remote debugging is that the other user has to have sufficent rights to your machine. If that's a local user on the remote machine.. then just create an account of that user and password on your machine.
How did I miss this until now?
http://research.microsoft.com/en-us/projects/Pex/
http://social.msdn.microsoft.com/Forums/en-US/pex/threads/
http://www.codeplex.com/Pex/Wiki/View.aspx?title=MbUnit%20Extension&referringTitle=Home
http://blog.benhall.me.uk/2008/08/how-to-have-pex-generate-nunit-mbunit.html
Everybody knows that the more you are waiting the less productive you are, but of course if goes further than that. 0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result. 1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data. 10 seconds is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect. According to Nielsen http://www.useit.com/papers/responsetime.html 1993. A tale of two machines My problem is almost one of good vs much better. I have 2hrs+ every day working on my own hardware. Its not that quick, only 1.6 GHz Core 2 Duo, but I have no network, all my files are local. Compiles are up to five seconds for 40 projects rebuilds, a normal build is completed instantaneously. My works machine is a 3GHz Hyper Threaded something. There's a custom build of XP with some great enhancements. Our favourite is the up to five minutes wait if you select Programs from the Start Menu and you haven't done it for about half an hour. However I can get around that. What is a problem is the use of Clearcase with views on the network. Checkouts take one to two minutes. Compiles are about five minutes for 30 project solutions. Even worse step through debugging can have a one-two second delay between steps. At work, I get through a lot of cups of tea. In fact I can easily get there and back before my build completes. Never can remember what I was doing though.
I think the ideas I raised in Never add just one project made so much sense, that I've decided to show what I meant. So sticking with the previous example, lets develop an FTP task for MSBuild.
[More]
Should you need to do a conditional post build event in VS the syntax is if "$(ConfigurationName)" == "Debug" copy $(TargetPath) ..\..\..\OtherProject\bin\$(ConfigurationName)
Why can't they expose the MSBuild syntax instead?
string result = i++.ToString();
Looks weird doesn't it, and yet it is a perfectly valid expression. The ++ operator returns the incremented value, and the .ToString() converts it. It even compiles.
Unfortunately Intellisense doesn't handle it. Nor does it work for
(i++).ToString();
However with enough hinting (ok its a blatant cast) you can get it to work.
((int) (i++)).ToString();
But that's damn ugly, and possibly requires a runtime cast to occur. (Have to check this out)
Technorati Tags: VisualStudio, Intellisense
PS. The spelling checker in LiveWriter believes that Intellisense should be Intelligence, I beg to differ. :)
http://msdn2.microsoft.com/en-us/library/bb165355(VS.80).aspx
Installing Components in the Visual Studio Toolbox
Given that I've just spent far too much time finding how to turn this off after accidentally turning it on...
Ctrl-E, S is Edit.ToggleWhitespace in VS2005 by default (C# developer).