Contents tagged with GhostDoc

  • Welcome 2010

    Things that have happened

    • I’m no longer responsible for maintaining GhostDoc, SubMain has taken over the development and this has freed up a considerable amount of time. Some of this time went into playing more computer games, a larger portion went into seriously digging into WPF.
    • The dotnet Cologne 2009, a community conference organized by the neighboring .NET user group Cologne and Bonn-to-Code.Net (which I founded exactly 4 years ago) became a huge success. In fact, almost too much of a success - we had to close registration a full month before the conference and the rooms sometimes were pretty crowded. There are plans for a dotnet Cologne 2010, but it’s too early to go into details.

    Things I have learned

    • The concept of “open space” / “unconference” can actually work. I attended the .NET Open Space 2009 in Leipzig and what I experienced blew away my initial skepticism. One thing to keep in mind is that this approach is not really a replacement for a conference in classic style – in my opinion the two styles supplement each other.
    • The more I learn about Silverlight and WPF, the more I start to see how much I don’t know yet. While the actual amount of concepts to learn is finite, knowing how to combine these to achieve a specific goal is something completely different.
    • Not much of a big surprise, just an observation: The lambda expressions introduced in C# 3.0 slowly but surely start to influence the way I think about/plan my code and (small scale) architecture.

    Things I’m looking forward to

    • Visual Studio 2010 when/if it’s released in good quality (please MS, take your time to get this release right, I still remember VS2005 before the SP!). I’m especially looking forward to the extensions for the editor that are now possible; when I saw the first samples, I was immediately reminded of one of my old blog posts back from 2003. Looks like we’re finally getting there!
    • Silverlight 4 and WPF 4: The basic concepts of WPF and Silverlight are promising, but at the same time there are still many quirks and missing pieces. It’s nice to see Microsoft is pushing hard to close the gaps, at the same time I still see a long way to go (enough work for version 5, 6 and 7). Performance is improving from version to version, but still can be a source of frustration. And I’m definitely looking forward to the day when Silverlight is a bit more specific about errors than just telling me AG_E_SOMETHING – but I guess I’ll have to wait for something after version 4 for that.
  • Upgrading from “Weigelt” GhostDoc to “SubMain” GhostDoc

    As I wrote in an update to my “The Future of GhostDoc” blog post, the uninstaller of GhostDoc 2.1.3 contains a bug which (under specific circumstances) may lead to losing your Visual Studio settings – I’m really sorry about that.

    In the days after the first SubMain release in May (version 2.5.09150) I have helped the guys from SubMain in developing a working uninstaller for old GhostDoc versions, which is now included in the setup of the current GhostDoc version 2.5.09166 (published mid-June, though the website has been only updated recently).

    So the “right way” to upgrade from an old “Weigelt” GhostDoc version (up to 2.1.3) to a new “SubMain” GhostDoc version (starting with 2.5.09166) is:

    • DO NOT uninstall Weigelt GhostDoc
    • Just run the SubMain GhostDoc setup

    Everything else will be taken care of. Future updates (from one version of SubMain GhostDoc to another) also involve just running the installer of the new version.

  • The Future of GhostDoc

    Today is the day that I'm finally able to speak about why things have been pretty quiet lately regarding the future of GhostDoc.

    I'm happy to announce GhostDoc has been acquired by SubMain, developer of tools like CodeIt.Right. The agreement covers the usage of GhostDoc's documentation generation technology in their products, as well as the availability of GhostDoc as a standalone product. SubMain will continue to maintain and distribute a non-crippled version of GhostDoc free of charge, and will make sure that it will work with future versions of Visual Studio like the upcoming VS2010. The first step is a new version 2.5 of GhostDoc that has been released just moments ago.

    For more information please take a look at a Q&A with Serge Baranovsky from SubMain and me that covers past, present and future of GhostDoc.

    As I already mentioned in the Q&A, from my experiences of working with the guys at SubMain (both on the legal and the technical stuff), I can say that GhostDoc is in good hands. The developers now have my issue tracking database where I collected and annotated all the feature requests of the recent years, but I also would like to ask every GhostDoc user to please let them know if you have ideas how to improve this tool.

    I'd like to use this opportunity to say a big Thank You to all GhostDoc users out their for their (overwhelmingly positive) feedback over the recent years. Thank You!

    Update: Important note for existing GhostDoc users
    There are uninstall issues with the old GhostDoc version 2.1.3 (and versions before) that under specific circumstances may lead to losing your Visual Studio settings on Vista machines. I'm already working on a solution to the problem (with help from one of the SubMain developers), in the meantime please back up your settings as described in this step-by-step guide before uninstalling the old GhostDoc version. During uninstallation, if a Visual Studio instance pops up and asks you to choose a developer profile, choose one and continue. This will lead to the loss of the settings, which then can be restored by importing the backup you just made before. Note that you have to choose a profile; cancelling the dialog will lead to a corrupted state of the uninstallation.

    The new GhostDoc from SubMain is using different install/uninstall/VS integration technology that has been proven in their other products and does not have such problems.

    Update 2: Please read this blog post on upgrading to GhostDoc 2.5 and later.

  • Spanish Configuration File for GhostDoc 2.1.3

    After an Italian configuration for GhostDoc there's now also a Spanish configuration available. As mentioned for the Italian version, I cannot comment on the quality. Also, please note that GhostDoc is intended for English documentation, which means that tweaking it for other languages is likely to run into problems sooner or later.

    On the other hand, a lot can be achieved with the help of some clever custom rules, so I recommend to try out the Spanish configuration. As usual, exporting the current configuration as a backup is definitely not a bad idea.

  • GhostDoc Tweaks

    When moving to a new development machine recently, I noticed that I was using a couple of (minor) customizations to GhostDoc on the old machine that are not included in the default configuration. Most of them were rather specific, but three custom rules that may be of general interest are for overrides of the methods ToString(), Equals() and GetHashCode(). Without the rules, the documentation is inherited from System.Object:

    /// <summary>
    /// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
    /// </summary>
    /// <returns>
    /// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
    /// </returns>
    public override string ToString()
    /// <summary>
    /// Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>.
    /// </summary>
    /// <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:System.Object"/>.</param>
    /// <returns>
    /// true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:System.Object"/>; otherwise, false.
    /// </returns>
    /// <exception cref="T:System.NullReferenceException">The <paramref name="obj"/> parameter is null.</exception>
    public override bool Equals( object obj )
    /// <summary>
    /// Serves as a hash function for a particular type.
    /// </summary>
    /// <returns>
    /// A hash code for the current <see cref="T:System.Object"/>.
    /// </returns>
    public override int GetHashCode()  

    The comments are OK at first sight, but I don't really like the references to System.Object, I prefer "the current instance" instead. Fortunately, changing this in GhostDoc is pretty easy.

    In general, to replace the generated documentation for a specific method, property, etc., simply define a custom rule and make sure has a higher priority than the rule that would create the documentation otherwise (in the case of the above methods that would be the "inherited documentation" rule).

    The new rules are available as a configuration file you can download here (see the included ReadMe for instructions how to use it).

    Importing this file will not affect other parts of your configuration, but creating a backup of your current configuration is never a bad idea. After the import the rules will automatically have the highest priority, so no other steps are necessary.

  • Usage of GhostDoc in Large Corporations

    A message to all developers in large corporations out there: If you try/have to approve the usage of GhostDoc because of company policy, you may get the response that legal problems prohibit the usage as no agreement could be reached with the author (i.e. me). To avoid the impression that I'm trying to rip off your company in any way, I'd like to explain this:

    If a company approaches me asking whether the usage of GhostDoc is allowed for commercial purposes, I point them to the license which clearly states that this is the case. If company policy still requires an explicit statement regarding commercial use, I don't have any problem with that, either.

    But: I will not sign any multi-page legalese for a piece of software that I didn't actively offer, let alone try to sell to a company in the first place. If my freeware license is not compatible with company policy, then that's unfortunate, but it's nothing I will do anything about - sorry.

  • Italian Configuration File for GhostDoc 2.1.3

    Even though GhostDoc is intended for English documentation (and there are no plans for future versions to change that), Luca Tagliaferri from Italy has created an Italian configuration file for GhostDoc 2.1.3. While I cannot comment on the quality (I haven't tried it, non parlo l'italiano), I recommend checking it out here. Just be sure to export your current configuration as a backup.

  • GhostDoc: A Look Back at 2007

    Here are some statistics for my Visual Studio add-in GhostDoc for the year 2007.

    Downloads for Visual Studio 2005

    • Version 1.9.5 (released back in 2006): 15294
    • Version 2.0.0 (released 2007–05–01): 11395
    • Version 2.1.0 (released 2007–06–24): 2351
    • Version 2.1.1 (released 2007–07–04): 24909
    • Version 2.1.2 (released 2007–11–25): 4873
    • Total: 58822

    Downloads for Visual Studio 2008

    • Version 2.0.0 (released 2007–05–01): 444
    • Version 2.1.0 (released 2007–06–24): 153
    • Version 2.1.1 (released 2007–07–04): 3202
    • Version 2.1.2 (released 2007–11–25): 3140
    • Total: 6939

    Downloads for Visual Studio .NET 2003

    • Version 1.3.0 (released back in 2005): 4409

    Donations by chosing an item from my Amazon WishLists (US, UK, DE):

    • Total: 7 (a huge Thank You to you guys and gals!)


  • GhostDoc 2.1.2 Released

    GhostDoc is a free add-in for Visual Studio that automatically generates XML
    documentation comments for C#. Either by using existing documentation inherited
    from base classes or implemented interfaces, or by deducing comments from
    name and type of e.g. methods, properties or parameters.

    20071125_GhostDocQuick Facts

    • Bugfix release
    • Download on the GhostDoc Website
    • Users of earlier versions: Please read the ReadMe on upgrading!

    About this Release

    Version 2.1.2 fixes a problem with side-by-side installations of GhostDoc versions for Visual Studio 2005 and 2008.

    What’s New in GhostDoc 2.1.2:

    • Fixed: GhostDoc versions for Visual Studio 2005 and Visual Studio 2008 interfering when installed side-by-side.
    • Changed: An upgrade installation by starting the MSI file while an older version is installed is no longer supported, i.e. you have to uninstall GhostDoc before running the new setup. Note that this does not affect an upgrade of the configuration of earlier versions: the configuration file is not removed during uninstallation of the GhostDoc add-in, so you'll still be offered to upgrade your configuration when installing the new version. For detailed installation instructions, please take a look at the ReadMe in the ZIP file.
    • Added: A few special words for ("of the" trigger and prefix words, "no the" words).

    Note that VB.Net support is turned off by default and has to be turned on in the configuration dialog.

  • Vortrag über Visual Studio Extensibility in Braunschweig

    Nach Leipzig bin ich nun am nächsten Montag, 16.7.2007, in Braunschweig bei der dortigen .NET Developer Group zu Gast. Ab 19:00 halte ich einen Vortrag über Visual Studio Extensibility mit den folgenden Themen:

    • Code Snippets
    • Project/Item Templates und Wizards
    • Makros
    • Add-ins

    Ein gewisser Schwerpunkt wird bei den Visual Studio Add-ins liegen, wo ich u.a. auf den einen oder anderen Fallstrick hinweisen werde, über den ich bei der Entwicklung von GhostDoc gestolpert bin.

    Die Teilnahme ist kostenlos und ohne vorherige Anmeldung möglich, die Veranstalter freuen sich aber bestimmt über einen kurzen vorherigen Kontakt. Veranstaltungsort ist das Restaurant Flair.

    Zur offiziellen Ankündigung