Contents tagged with Tools
-
GhostDoc 1.9.1 (for Visual Studio 2005) Released
Version 1.9.1 is a bugfix release of GhostDoc for Visual Studio 2005 (download on the GhostDoc homepage).
The VB.Net support will remain experimental in this release, so it is turned off by default and you have to turn it on in the configuration dialog. A couple of issues (caused by small differences between the C# and the VB.Net CodeDOM) have been fixed, and things are looking good in general so I’m confident I can drop the experimental status pretty soon.
Important: When updating from 1.9.0, please uninstall 1.9.0, start Visual Studio once, exit and then install 1.9.1. If you have customized your configuration, please export it before uninstalling 1.9.0, then import it after installation of 1.9.1. All steps are explained in detail in the ReadMe.txt file in the ZIP archive.
ChangeLog:
- Fixed: Use of generics causing documentation not being generated.
- Fixed: Installation not possible if "My Documents" folder is on network drive/share.
- Fixed: VB.Net support: Inherited documentation causing either error messages or mixed up comments.
- Fixed: VB.Net support: Property accessors being treated as methods.
- Fixed: VB.Net support: Minor differences between C# and VB.Net CodeDOM causing trouble.
- Fixed: Some add-in issues (uninstallation, add-in manager)
- Changed: The add-in is no longer installed to a sub-folder of the AddIns directory. Instead, any location can be chosen now on the harddrive.
- Changed: In the generated comments, references to types ("<see cref="..." />) are now using the "T:" prefix that you may know from the inherited comments. This is to avoid the (new) warnings that Visual Studio 2005 is generating.
Thanks to Markus Hogsved for his detailed feedback on VB.Net support.
-
GhostDoc is one of "10 Must-Have Add-Ins" in MSDN Magazine
MSDN Magazine 12/2005: Visual Studio Add-Ins Every Developer Should Download Now
Wow… GhostDoc is one of them… I’d only wish the example would have been just a little bit more convincing (
SavePerson()
-><summary>Saves the Person<summary>
— hmm… ok…). But I must admit that it’s pretty tough to really show off GhostDoc’s features in only about a dozen sentences. I’d recommend you watch the video, or even better download and install GhostDoc. In case you’re impatient, the help file has a short chapter “How do I see some action without reading boring stuff?” ;-). -
GhostDoc 1.9.0 (for Visual Studio 2005) Released
The highly anticipated version of GhostDoc for Visual Studio 2005 has just been released (download on the GhostDoc homepage)
Originally I had planned to give it the version number 2.0, but for various reasons I couldn’t do much more than just porting version 1.3.0 (the most recent release for 2003) to Visual Studio 2005.
So the big feature is: GhostDoc 1.9.0 runs inside Visual Studio 2005 and the dialogs more or less match the style of the GUI (icons, general look). Unfortunately I didn’t have time to update the screenshots in the help file, but no functionality has changed so I’m pretty sure you can live with that ;-)
Umm… OK… one more thing: Anyone interested in VB.Net support? I’ve added what I call “experimental support”. In Visual Studio 2005, the CodeDOM for VB.Net now supports the DocComment property, so it was pretty easy to get this running in principle (some adjustments had to be done, though). But to be honest, I didn’t have the time (and experience in VB.Net) to test this enough to be an official feature of GhostDoc 1.9.0. So VB.Net support is turned off by default and you have to turn it on in the configuration dialog, on the “Options” tab. To the VB.Net developers out there: give it a try and tell me what you think. Oh, it would be very nice if somebody could port the demo project to VB.Net – the VB syntax keeps my head spinning… (sorry, I’m a curly braces guy since Turbo C 2.0).
By the way, this release is my entry for the Larkware 2005 Developer Tool Programming Contest; let’s see how things turn out for me and what the other competitors came up with.
-
GhostDoc 1.3.0 Final Released
It took longer than expected, but the final of GhostDoc 1.3.0 has just been released (download on the GhostDoc homepage). Now that it’s out the door, I’m ready to move on to work on a VS2005 version.
What’s new in 1.3.0
Final compared to beta 2:
- Added: Some more "of the" trigger words and adjectives.
- Added: Command "RebuildDocumentation". It works like the "DocumentThis" command, but always creates the documentation from scratch. Note: The command was added pretty late in the release process; to minimize impact on the release date, it does not appear in any menu and can only be assigned to a hotkey via the Visual Studio options dialog.
- Added: Minor additions to the documentation.
1.3.0 beta 2 compared to beta 1:
- Added: New options for determining what should be the representation of the C# language keywords "true", "false" and "null" in a documentation comment.
- Added: New Macros $(True), $(False) and $(Null) to be used in text templates.
- Added: New Macros for the current date, the name of the current user, etc. ("environment macros").
- Added: New custom text that will be added once to a newly added documentation comment. As this text will not be updated, can be used for e.g. marking the date and time when a class member was added.
- Added: New summary template for default property rule (text generation was hard-coded in previous versions).
- Added: Template for methods with parameters for SingleWordMethodRule (text generation was hard-coded in previous versions).
- Added: Preliminary documentation for the dialogs.
- Changed: Default textual representation of "null", "true" and "false" back to the values of version 1.2.1 (<c>null</c>, <c>true</c> and <c>false</c>)
- Changed: Value text of the default property rule is no longer empty by default.
- Changed: Macros: Words.AsSentence -> Words.AllAsSentence
- Fixed: Various bugs related to customization features.
1.3.0 Beta 1 compared to 1.2.1:
- Added: New rules for using "inherited" documentation, including base class members and members of implemented interfaces. The inherited documentation will be cleaned from single <para> tags and the texts will be tweaked (e.g. when the summary for an interface method starts with "When implemented by a class....", and the summary is inherited by the method that is an implementation).
- Added: GhostDoc updates existing documentation. Empty tags (<summary>, <returns>, <param>) will be filled according to the generation rules, existing text remains unchanged. The update reorders the parameter documentation if the order of the parameter changes, and removes documentation for parameters that no longer exist.
- Added: User defined ("custom") rules using e.g. regular expressions for matching names and/or types.
- Added: New rule for "On..." methods -- no more "Ons the click" ;-)
- Added: Rule for static constructors.
- Added: Rule for the Finalize method (destructor syntax in C#).
- Added: Rule for event handler methods as they are created by the WinForms designer.
- Added: Rule for boolean properties.
- Added: Rules (both custom and built-in) can now be customized by editing templates that are used by the text generation rules.
- Added: Export of partial configurations is now possible (e.g. for exporting only a single custom rule).
- Changed: Summary text of the default constructor rule is now 'Initializes a new instance of the <see cref="ClassName" /> class.', i.e. uses the wording in the Microsoft documentation. The old "Creates a new <see cref="ClassName" /> instance" is debatable - is it the constructor that actually creates the instance, or is the constructor called when the instance is created? Thus the Microsoft wording is preferable.
- Changed: The configuration is now stored in the ApplicationData\Weigelt\GhostDoc directory. Old configurations in the installation directory (versions before 1.3.0) will be upgraded and stored in the new location.
- Fixed: <returns> tag no longer disappears if the return type is an array.
- Fixed: Overall handling of array types.
-
GhostDoc 1.3.0 Beta 2 Released
Beta 2 of GhostDoc 1.3.0 has been released, which in terms of features should be pretty close to the release version. The documentation has made a major step forward, but stills needs some work (proofreading, more and better Howtos, especially tutorials for defining custom rules).
What’s new in 1.3.0 beta 2 compared to beta 1:
- Added: New options for determining what should be the representation of the C# language keywords "true", "false" and "null" in a documentation comment.
- Added: New Macros $(True), $(False) and $(Null) to be used in text templates.
- Added: New Macros for the current date, the name of the current user, etc. ("environment macros").
- Added: New custom text that will be added once to a newly added documentation comment. As this text will not be updated, can be used for e.g. marking the date and time when a class member was added.
- Added: New summary template for default property rule (text generation was hard-coded in previous versions).
- Added: Template for methods with parameters for SingleWordMethodRule (text generation was hard-coded in previous versions).
- Added: Preliminary documentation for the dialogs.
- Changed: Default textual representation of "null", "true" and "false" back to the values of version 1.2.1 (<c>null</c>, <c>true</c> and <c>false</c>)
- Changed: Value text of the default property rule is no longer empty by default.
- Changed: Macros: Words.AsSentence -> Words.AllAsSentence
- Fixed: Various bugs related to customization features.
For those who missed the release of beta 1 and still work with 1.2.1:
1.3.0 Beta 1 compared to 1.2.1:
- Added: New rules for using "inherited" documentation, including base class members and members of implemented interfaces. The inherited documentation will be cleaned from single <para> tags and the texts will be tweaked (e.g. when the summary for an interface method starts with "When implemented by a class....", and the summary is inherited by the method that is an implementation).
- Added: GhostDoc updates existing documentation. Empty tags (<summary>, <returns>, <param>) will be filled according to the generation rules, existing text remains unchanged. The update reorders the parameter documentation if the order of the parameter changes, and removes documentation for parameters that no longer exist.
- Added: User defined ("custom") rules using e.g. regular expressions for matching names and/or types.
- Added: New rule for "On..." methods -- no more "Ons the click" ;-)
- Added: Rule for static constructors.
- Added: Rule for the Finalize method (destructor syntax in C#).
- Added: Rule for event handler methods as they are created by the WinForms designer.
- Added: Rule for boolean properties.
- Added: Rules (both custom and built-in) can now be customized by editing templates that are used by the text generation rules.
- Added: Export of partial configurations is now possible (e.g. for exporting only a single custom rule).
- Changed: Summary text of the default constructor rule is now 'Initializes a new instance of the <see cref="ClassName" /> class.', i.e. uses the wording in the Microsoft documentation. The old "Creates a new <see cref="ClassName" /> instance" is debatable - is it the constructor that actually creates the instance, or is the constructor called when the instance is created? Thus the Microsoft wording is preferrable.
- Changed: The configuration is now stored in the ApplicationData\Weigelt\GhostDoc directory. Old configurations in the installation directory (versions before 1.3.0) will be upgraded and stored in the new location.
- Fixed: <returns> tag no longer disappears if the return type is an array.
- Fixed: Overall handling of array types.
FAQ
- When is the final coming out?
Before the PDC. - What about VS2005 support?
After the PDC.
-
GhostDoc 1.3.0 Beta 1 Released
I’m pleased to announce that beta 1 of GhostDoc 1.3.0 has been released. A big “Thank You” to the steadily growing number of testers who helped me testing a couple of preview builds, pointed out a few minor issues and gave me an overall “Thumbs up”.
What’s New
- New: New rules for using "inherited" documentation, including base class members and members of implemented interfaces. The inherited documentation will be cleaned from single <para> tags and the texts will be tweaked (e.g. when the summar for an interface method starts with "When implemented by a class....", and the summary is inherited by the method that is an implementation).
- New: GhostDoc updates existing documentation. Empty tags (<summary>, <returns>, <param>) will be filled according to the generation rules, existing text remains unchanged. The update reorders the parameter documentation if the order of the parameter changes, and removes documentation for parameters that no longer exist.
- New: User defined ("custom") rules using e.g. regular expressions for matching names and/or types.
- New: New rule for "On..." methods -- no more "Ons the click" ;-)
- New: Rule for static constructors.
- New: Rule for the Finalize method (descructor syntax in C#).
- New: Rule for event handler methods as they are created by the WinForms designer.
- New: Rule for boolean properties.
- New: Rules (both custom and built-in) can now be customized by editing templates that are used by the text generation rules.
- New: Export of partial configurations is now possible (e.g. for exporting only a single custom rule).
What’s Missing
There are a couple of small features I’d like to see in 1.3.0 final. And then there’s a huge update of the help file waiting to be done.
FAQ
- When is the final coming out?
My personal deadline is end of August. - What about VS2005 support?
I guess i’ll wait for the PDC bits of VS2005
-
GhostDoc: Looking for Testers
I’m planning a first public beta of GhostDoc 1.3.0 towards the end of July. A couple of private builds have already been released to colleagues and people on the net who offered their help. So far feedback has been pretty good. People like the new features, some issues have been found, most of them could be fixed in the following builds.
Now I would like to have a couple more people to test the current build. If you’re interested, contact me via the contact form. Please tell me about your system (e.g. which other Add-ins are installed), since when you have been using GhostDoc and how often you use it. I’ll then send you an email with the download link (when waiting for a reply, please take time zone differences into account ;-).
Here are the new features you can try out in the preview:
- New rules for using "inherited" documentation, including base class members and members of implemented interfaces. The inherited documentation will be cleaned from single <para> tags and the texts will be tweaked (e.g. when the summary for an interface method starts with "When implemented by a class....", and the summary is inherited by the method that is actually the implementation).
- GhostDoc now updates existing documentation. Empty tags (<summary>, <returns>, <param>) will be filled according to the generation rules, existing text remains unchanged. The update reorders the parameter documentation if the order of the parameter changes, and removes documentation for parameters that no longer exist.
- User defined ("custom") rules using e.g. regular expressions for matching names and/or types.
- New rule for "On..." methods -- no more "Ons the click" ;-)
- Rule for static constructors.
- Rule for the Finalize method (destructor syntax in C#).
- Rule for event handler methods as they are created by the WinForms designer.
- Rule for boolean properties.
- Rules (both custom and built-in) can now be customized by editing templates that are used by the text generation rules.
A few words about the quality of this preview: Answering the obvious question “does it fry my data and/or my Visual Studio installation?”, I can say that the Visual Studio integration and installation/uninstallation are at least as good as in version 1.2.1, so I wouldn’t hesitate to run the setup on production machines. The current problems are mostly missing features, some usability issues and the online help that hasn’t been updated yet.
-
LastBoxStanding 0.9.1 (bugfix release)
-
LastBoxStanding 0.9.0
Summary: LastBoxStanding is a Windows service that pings a configurable list of machines in your LAN to determine whether at least one of them is still running. If no machine responds, the service performs a custom action, e.g. a shutdown.
Some time ago I built a server for my LAN from old parts (e.g. a P2B mainboard with a PII 400 and some RAM I had in a drawer). I use it for storing backup images and running SourceGear Vault (source control) and Dragnet (bug tracking) mainly used for my GhostDoc project. The server is not connected to a monitor and it’s really quiet (thanks to some hard-core silent modding), so it’s not uncommon that I simply forget to shut it down before going to bed. That usually means that the server keeps running until I come back from work the next evening – what a waste of electricity.
I solved the problem by writing a Windows service to shut down the server automatically when it’s no longer needed, which is defined as when no other potential client on the LAN is running. The current version of LastBoxStanding can be configured to call any executable when the computer running the service is “the last box standing”.
You can download the most recent version on the LastBoxStanding homepage.
Update: Unfortunately, a small issue with 0.9.0 was found. If you set the check interval on your server to say 5 minutes, (re)start the service and then switch off all other machines on the LAN, LastBoxStanding does not perform the shutdown (or any other action you have configured). This is because the service has to reach at least one of the configured clients once and – this is the problem – the first check is not performed when the service starts, but after the (timer) interval has elapsed. If at that time none of the machines can be reached, LastBoxStanding assumes that the server is running standalone (e.g. for maintenance) where you don’t want the automatic shutdown.
Even if this issue does not affect usage in “Real Life” that much, it’s a huge problem if people download LastBoxStanding and want to try it out. I’ll look into providing a fix this evening when I get back from work.
-
The Power of First Impression
After months of ZIPping up the GhostDoc source files every now and then, I finally have a source code management solution running (better late than never ;-). I've built and set up a server from spare parts, mainly to be used for storing files (e.g. backups and VMWare images), on which I installed SourceGear Vault. Using SourceSafe at work, this was an obvious choice for me. Usually I don't shy away from learning new things, but this time I didn't want to invest time to learn to use a system with a different philosophy (like e.g. SubVersion).
Now I have to admit a few things: While there are quite a few things I'm really good at, I have no or only superficial knowledge when it comes to administering/configuring
- databases
- IIS
- ASP.net applications
So this is me, not wanting to invest a lot of time, and I want to install a product that
- uses a database (MSDE in my case, which I have never installed before)
- is running on IIS
- is an ASP.net application
And you know what? I got things running without any problems worth mentioning. The combination of a good installer (e.g. no editing of configuration files required) and an installation guide on the product's website with lots of screenshots enabled me to install this product. Creating a repository was also pretty easy and just a matter of minutes.
So I'm happy to report that GhostDoc is now under source control.
Maybe it turns out that I just installed the worst product imaginable. Maybe things go wrong from now on in every imaginable way. But right now I trust this product. It just feels right. From the splash screen (nice, but not too fancy) up to the help file (not really spectacular, but it was able to answer the few questions I had). Everything made good first impression.
Now there's another application I installed on the server (I will not mention the name here, as it would be pretty unfair). When I start it, I get a "SqlException: SQL Server does not exist or access denied" error message. I couldn't find what to do in the documentation, the product's website does not have a FAQ, there's no forum, only a email address I can write to. This is what I'll to, because I'm pretty sure that once things are running, the application will be what I was looking for. But I guess you agree that the first impression is spoiled.
As a developer I know that I'm completely unfair here, but as a customer (even though in both cases I don't have to pay as a single user) I don't care about being fair. Whether you like it or not, the first impression plays a vital role how users view your software.
So do yourself a favor: When you release software (even if it's just a small tool), invest enough time in what could be called "the most important minutes" of your program. After a couple of months since the release of GhostDoc, I'm happy to notice people praise the "out of the box experience". Let me tell you it didn't come easy. Things weren't perfect from a start and a lot of time and testing went into getting things right. I actually bought VMWare Workstation especially for testing GhostDoc on different system configurations (virtual machines simply rock, period). Did all the effort pay of? After all, I could have implemented lots and lots of features, so GhostDoc would produce less funny results in certain situations and would be as useful as I know it could be. But all I can say is yes, it was worth the effort. GhostDoc was downloaded a bit more than 1000 times (all versions combined) and while this may not be too impressive, I'm proud that I didn't receive a single question about the first steps. I receive bugs and feature requests regarding the text generation, people wanting to tweak things, people wanting to code their own rules, but not a single of those "I can't get it to run, what now?" questions that quickly eat away lots of time from actually developing software.