|
|

|
|
MMC 3.0I just finished fixing some bugs, and put finishing touches on PainlessSVN 1.1.0. This has been long in coming, and I'm very happy with the results. I am now concentrating on the installation script and testing it in different versions of Windows. I'm hoping that this takes no longer than a week (hopefully, less than that). I will reset the trial, so that people who have previously downloaded, can trial again. Here are few screenshots of the new UI in Windows 7 Ultimate x64: 







Justin (who didn't leave a last name) left a comment on how to debug MMC 3.0 snapins in Windows 7 x64 and Visual Studio 2008. I want to put this on its own blog post, so that I can find it easier. I'll just repost Justin's comment here: I recently struck this problem with VS2008 on Windows 7 x64 as well.
I eventually found a solution :)
The solution is to directly use the 32 bit version of mmc at this path:
C:\Windows\SysWOW64\mmc.exe rather than the one in System32.
you still need the -32 flag as in your screenshot.
When you try and debug via "C:\Windows\System32\mmc.exe -32" what actually happens is the debugger attaches to the 64bit version which starts the 32bit version(in SysWOW64) and then closes itself hence why it stops debugging immediately. You can start the snapin that you are debugging on the command line. This is extremely convinient. Here's a screenshot with Justin's findings: 
This is on the project's properties page, on the "Debug" tab. Now, if I could just figure out how to get the keyboard shortcuts back. They disappeared a couple days ago, and haven't been able to get them back. *boggle* 
I've done a bit more work on the server dashboard. I'm concentrating on what I think I can release relatively soon, so I removed a few things that were not ready for 1.1. Here is the dashboard when it can't find a Windows service for svnserve.exe: 
This will be tweaked a bit more to indicate when a version of Subversion is too old to have native support for Windows services. Here is the initial look when the dashboard finds that there is a running instance of the svnserver.exe Windows service: 
Here is the same view, but with the panel expanded: 
PainlessSVN will now be able to start or stop the Windows service, if it has enough security rights to interact with it. There are some instances where PainlessSVN won't be able to acquire a reference to the service, if the target machine is different from the one PainlessSVN is running on. Here is a screenshot with the dashboard detecting that the service is installed, but not running: 
Ok, the last UI was bad even it being just a test. The colors were just clashing badly, and it was mostly an eyesore. I promise I won't inflict that on the world at large. I did a lot of tweaks and tests, and came up with what I think is a winner. I still want to put more information on the screen, but I believe this will be the general layout from now on. Here are screenshots: 

I'm following Vista UI as my guide. Less is definitely more in this case.
I been looking for how to present the information about the server in the server view. I kept going back to the UI for the Security Center in Windows XP. I couldn't find any controls out there that would mimic the controls in the Security Center. Again, I turned to my friend, Brandon Dobbie, and he created an expandable panel with functionality very similar to the ones in the Security Center. This control has not been released yet. I'm doing private testing for him right now. He created this control in less than a day. It's still not ready for public consumption, but I'm very happy with the results so far. Here's a screenshot with a Subversion server that has svnserve installed as a Windows Service: 
Here's a screenshot with a Subversion server that does not have svnserve installed as a Windows Service: 
This version of the server info view is a lot closer to the vision that I have for it. This is not the final form, but it is very close to it. Brandon is building a couple more custom controls for me. These controls are mostly Vista and Windows 7 specific, but they should work with Windows XP.
I asked my good friend, Brandon Dobbie, if he could come up with something for a non-MMC PainlessSVN client. He did an excellent job, as always. He's a UI wizard, and if you need to fix your UI, he's the guy to talk to. Here's what he came up with: 
I thought that I could use some of this for the server node view. After some pounding on the keyboard, I came up with something not quite as good as his, but good enough for the current MMC version of PainlessSVN. Here's a screenshot of a Subversion server that is installed as a windows service: 
I'm still having some issue with images on Windows XP. The next screenshot is on Vista Ultimate 64-bit and Subversion server is not installed as a service: 
I'm a very visual guy, and I really enjoy posting screenshots. This is one way to help me keep track of my progress. I know a lot of developers like to work in secrecy, but I'm not one of them. At least I don't think I work in total secrecy. Hope you are enjoying my journey through improving PainlessSVN as much as I am.
I just got done coding the new UI elements for user tasks. Here is what it looks like when you click on a user node for the first time: 
Here is when you click the "Umask" button: 
Here is when you click on the "Change Password" linkbutton: 
The Save button becomes active once the passwords match: 
Here is when the passwords get unmasked by clicking on the "Unmask" button: 
I'm giving most of the nodes on the treeview on the left, this same treatment. It will make the different command available without having to sweat it out. Version 1.1.0 is shaping up very nicely. I had to really dig in with the object browser to see how to use Winforms in the result pane. The samples in the MMC 3.0 SDK didn't come close to show how to pass external data to the view. Google didn't turn up any answers, but thankfully, it only took me a couple hours to figure out. I'm hoping to have a blog post with code ready around Saturday.
I got a view attached to the server leaf in PainlessSVN. This will give you at a glance info on what version of svnserve you are running, and whether or not it is running as a service. Here's a screenie: 
After much work reinstalling Vista and Visual Studio 2008, I found out that I still can't debug 32bit MMC 3.0 snapins in Vista 64. You still need to attach the debugger manually to the running process. Unfortunately, this means that you won't be able to debug stuff while your code is loading. I really was not ready to go back to 32 bit, so I compromised by creating a VMWare image that contains Windows XP SP3, Visual Studio 2008 SP1, and all the other necessary dev tools. I now have a rig that I know always lets me debug. TortoiseSVN makes it simple to keep my VM and desktop synched. Score that a WIN!
I had a issue where I didn't know how in the heck to debug PainlessSVN in my new Windows Ultimate x64. Thankfully, I found the answer after only a couple Google queries. MMC 3.0 comes in both x32 and x64 versions. Normally, I would call the mmc.exe host with just C:\Windows\System32\mmc.exe in the debug tab of the project properties. I found out that I needed to append a -32 parameter at the end of this path. Here is how it is setup in the tab: 
That command-line argument that I highlighted in red is very important. I found the answer in this blog post: http://blogs.technet.com/askperf/archive/2008/04/25/controlling-your-mmc-snap-ins-on-64-bit-operating-systems.aspx
| |
|
|