带有DoxyGen的Visual Studio用于文档,还是应该使用其他东西?

时间:2010-01-08 14:43:46

标签: c# visual-studio documentation

我们目前正在使用DoxyGen来记录用C / C ++,PHP和Java编写的代码。为了拥有一致的环境,最好也将它用于C#文档。

但是我们想知道:

  • 您是否看到使用DoxyGen之外的其他内容生成的文档布局或结构有任何优势?我们正在为具有C#和.NET平台经验的外部开发人员生成文档。也许他们习惯了某种文档格式?
  • DoxyGen与Visual Studio的集成程度如何?是否有能够从IDE内部一键式生成文档的东西?
  • 是否有其他文档系统与Visual Studio更集成?

5 个答案:

答案 0 :(得分:47)

在Visual Studio中记录C#代码的默认方式是XML documentation comments。在我看来,这是获得C#代码的最佳方式,因为对此的支持已集成在Visual Studio中(注释标记自动完成,警告有关缺失或拼写错误的参数,......)。要记录方法,只需在方法体前面键入三个斜杠(///),Visual Studio将插入一个空的注释模板供您填充,如下所示:

/// <summary>
/// 
/// </summary>
/// <param name="bar"></param>
private void Foo(int bar)
{
    // ...
}

您可以将Visual Studio配置为从所有注释生成XML文件,然后将其提供给文档生成器,如Sandcastle。如果您想使用Doxygen,这不是问题,因为它支持解析XML注释。

总结一下:我建议对C#代码使用特殊Doxygen注释的XML注释。这样你就有了所有的选择。您可以使用组织熟悉的标准Doxygen布局生成文档(因为Doxygen支持XML注释),还可以选择以.NET开发人员已知的格式生成文档(使用Sandcastle和Sandcastle Help FileBuilder)。

啊,还可以尝试GhostDoc ...

答案 1 :(得分:25)

文档有几种选择:

  • 免费的Microsoft方式。使用DocXml文档注释,然后使用Sandcastle或类似工具构建MSDN样式的文档。这样做的好处是Visual Studio可以识别文档(它为注释添加语法颜色),并且Intellisense系统会立即获取文档(因此,如果将鼠标指针悬停在正在调用的方法上,工具提示将显示您在“文档注释”中输入的摘要和参数信息

  • 免费的Doxygen系统。这更容易使用且更灵活,但Visual Studio不支持,因此您失去了intellisense和语法着色优势。从好的方面来说,Doxygen会解析DocXml格式,因此您可以通过使用带有Doxygen的DocXml格式来获得两全其美的效果。

  • DocumentX等商业产品,允许您在WYSIWYG窗口中编辑文档。

我建议从DocXml注释和Doxygen开始生成外部帮助,因为这是最便宜和最简单的入门方式,并保留了VIsual Studio(intellisense等)的所有最佳功能。

我还建议您查看我的加载项Atomineer Pro Documentation,这使得在VS中更快更容易地生成和更新DocXml,Doxygen,Qt或JavaDoc格式的注释 - 这是两者的理想补充Doxygen和Sandcastle。

答案 2 :(得分:13)

Doxygen可以使用C#doc comments(///)就好了。正常记录您的代码并运行doxygen将它们扫描成独立的html,chm和pdf文件。这是迄今为止最通用,最简单和非侵入性的方法。

虽然doxygen未集成到visual studio中,但它配备了一个简单的IDE,并且可以作为自定义外部工具轻松编写脚本。就个人而言,我已将doxygen集成到我的构建脚本中,并且它可以完美运行。

最后,doxygen是跨平台的(如果您发现需要移植到Mono,这是一个优势)并且明显快于SandCastle(设置和运行)。

这是~1Mloc项目中C#代码的doxygen输出示例:http://www.opentk.com/files/doc/annotated.html

答案 3 :(得分:1)

.NET开发人员习惯使用VS帮助中使用的类似MSDN的文档格式。最好直接集成在VS帮助中,因为它提供了一些奖励功能,如F1帮助,过滤器,统一索引和TOC。已经提到了几种工具。我将再添加一个商业一键式解决方案VSdocman

XML doc注释很棒,因为它们也可以在IntelliSense和对象浏览器快速信息中自动使用。

答案 4 :(得分:0)

Visual Studio没有集成的文档系统。

如果您想与其他语言保持一致,可以尝试将Doxygen与Doxycomment Addin for Visual Studio一起使用。

对于C#或.NET文档,存在多种工具,最常用的(据我所知)是Sandcastle

最后,您可以查看此blog entry,它提供了一个小型Python脚本,可将某些C#特定标记转换为Doxygen标记。