Escolar Documentos
Profissional Documentos
Cultura Documentos
Para a linguagem C# os marcadores de documentao so trs barras /// que gera o cdigo de comentrio exibido na figura a seguir:
Observe que em cada linguagem temos um conjunto de tags XML que so geradas, e, alm delas existem outras tags XML que voc pode usar para definir os seus comentrios. Com a ajuda do IntelliSense voc pode visualizar a lista de tags na linguagem que esta usando conforme mostra a figura abaixo:
Como todas as tags XML voc coloca texto no interior das tags abrindo-as <> e depois fechando-as </>. Como exemplo temos o trecho de cdigo a seguir que exibe alguns comentrios na linguagem Visual Basic :
A tabela abaixo lista algumas das tags XML recomendadas tanto para a linguagem C# como para VB .NET. Tag XML <c>
Descrio Esta tag utilizada para designar o cdigo, por isso podem ser usadas para identificar o cdigo de exemplo associado a uma entidade particular dentro do cdigo fonte. Note-se que a tag s pode ser usada para representar uma nica linha de cdigo ou para indicar que parte do texto em uma linha deve ser marcado como cdigo. Exemplo: <c > Dim oExemplo As Object </ c > Esta tag utilizada para designar mais de uma linha de cdigo, por isso podem ser usadas para identificar as reas mais longas de cdigo de exemplo Esta tag pode ser usada para descrever um exemplo do uso de um determinado mtodo ou classe. possvel incluir exemplos de cdigo dentro da tag por exemplo, fazendo uso de qualquer das marcas c ou cdigo. Esta tag permite que um mtodo de exceo seja documentado. O atributo cref permite que o espao do manipulador de exceo possa ser includo. Exemplo: <exception cref="System.Exception">Lana uma exceo se o cliente no for localizado.</exception> Permite que a documentao seja importada a partir de um arquivo XML externo ao invs de ser armazenado dentro do prprio cdigo. Pode ser til se a documentao escrita por outras pessoas que no os desenvolvedores. Permite que listas numeradas ou tabelas a sejam adicionados aos comentrios XML. Indica que o texto dentro das tags deve ser formatado como um pargrafo. Como tal, pode ser usado para formatar o texto dentro de outras tags tais como summary ou returns. Exemplo: <para> Este um pargrafo </ para> usada para documentar os argumentos de um mtodo. O atributo name da tag especifica o nome do argumento ao qual a tag se refere. A tag tambm usada pelo IntelliSense para exibir uma descrio dos argumentos dos mtodos. Tambm pode ser usada pelo Object Browser. Exemplo: <param name="FileName"> O Nome do arquivo a ser carregado.</param> Essa tag pode ser usada para se referir ao argumento de um mtodo em outro lugar dentro dos comentrios XML do mtodo. O atributo name da tag especifica o nome do argumento a que a marca se refere. Note que a tag param realmente usada para descrever o parmetro. Exemplo: Use o argumento <paramref name="FileName"/> para especificar o nome do arquivo a ser carregado. Esta tag pode ser usada para descrever as permisses especiais que um objeto especifico precisa. O objeto ao qual a permisso se refere esta includo como um atributo cref. Esta tag pode ser usada para fornecer informaes adicionais sobre um sobre um mtodo ou classe, completando as indicaes dadas na tag de resumo (summary). Como a tag summary, essa tag tambm usada pelo Intellisense e pelo Object Browser. Descreve o valor de retorno de um mtodo. Exemplo: <returns> True se o usurio tem permisso para acessar o recurso, caso contrrio, False </ returns>. Esta tag usada praa referenciar outras entidades (como classes) no projeto. A tag see se destina ao uso no interior de outras tags como a tag summary. Exemplo: <see cref="System.Configuration"/> Esta se parece com a tag see e possui um sintaxe idntica, exceto que o texto se destina a ser usado para criar uma seo seealso separada para documentao da entidade. Esta tag descreve um mtodo ou uma classe, por isso a tag mais importante. Para alm de ser utilizado na documentao do projeto, a tag tambm usada pelo sistema IntelliSense para mostrar uma descrio do mtodo ou classe que est sendo referenciado. Tambm usado pelo Object Browser. Typeparam utilizada de forma idntica aos parmetros, exceto que ele utilizado para documentar um tipo associado a uma classe ou funo genrica. A tag value usada somente quando documentamos uma propriedade, e usada para descrever o valor atribudo a ela. O comentrio no exigido para propriedades que so marcadas como somente leitura. Exemplo: <value>Define o valor do salrio </value>
<code> <example>
<exception>
<param>
<paramref>
Quando voc compilar o seu projeto usando o parmetro /doc o compilador ir procurar pelas tags XML no cdigo fonte e ir criar um arquivo XML com a documentao. Para criar a documentao final com o arquivo XML gerado voc pode usar uma ferramenta como o Sandcastle, ou criar a sua prpria ferramenta.
A seguir temos uma tabela com dicas sobre quais tags XML voc pode usar dependendo do tipo ou do membro existente no cdigo do seu projeto: Tipo/Membro Classes Mtodos Tags XML (sugesto) Summary, Remarks e Example (if necessary) Summary, Remarks, Param, Returns e Exception Summary, Value, Remarks e Exception Na tag Summary indicar se a propriedade read/write, read-only ou write-only Propriedades Ao incluir esta informao na tag Summary , o desenvolvedor ser capaz de v-la no IntelliSense quando ele for consumir a library. Campos Constantes Delegates A tag especfica Value indica o valor da constate e permite que o mesmo seja visto no IntelliSense. Summary, Remarks, Param e Returns Summary Summary e Value
A seguir eu vou criar uma classe com no projeto chamada CalculadoraNatural que ir conter os 4 mtodos : Somar, Subtrair, Multiplicar e Dividir, que iro efetuar clculos com nmeros naturais. Para incluir uma classe no projeto selecione o menu Project -> Add Class e informe o nome Calculos.vb :
A seguir inclua o cdigo a seguir nesta classe incluindo as tags XML para documentao para o VB .NET: Obs: Estou excluindo o nmero zero do conjunto dos nmeros naturais. Public Class Calculos ''' <summary> ''' Funao Somar - Soma dois nmeros inteiros: n1 + n2 ''' </summary> ''' <param name="n1">n1</param> ''' <param name="n2">n2</param> ''' <returns>retorna a soma dos dois nmeros naturais</returns> ''' <remarks>n1 e n2 tem que ser maior que zero</remarks> Public Function Somar(ByVal n1 As Integer, ByVal n2 As Integer) As Integer If n1 = 0 Or n2 = 0 Then Throw New Exception("Os nmeros naturais tem que ser maior que zero.") Else Return n1 + n2 End If End Function ''' <summary> ''' Funo Subtrair - Subtrai dois nmeros inteiros : n1 - n2 ''' </summary> ''' <param name="n1">n1</param> ''' <param name="n2">n2</param> ''' <returns>Retorna a diferena entre os dois nmeros naturais</returns> ''' <remarks>n1 tem que ser maior que n2</remarks> Public Function Subtrair(ByVal n1 As Integer, ByVal n2 As Integer) As Integer If n2 > n1 Then Throw New Exception("O primeiro nmero natural tem que ser maior que o primeiro") Else Return n1 - n2 End If End Function ''' <summary> ''' Funo Multiplicar - Calcula o valor da multiplicao entre dois nmeros naturais ''' </summary> ''' <param name="n1">n1</param> ''' <param name="n2">n2</param> ''' <returns>Um nmero natural que representa o valor de n1xn2</returns> ''' <remarks>Os nmeros naturais tem que ser maior que zero</remarks> Public Function Multiplicar(ByVal n1 As Integer, ByVal n2 As Integer) As Integer If n1 = 0 Or n2 = 0 Then Throw New Exception("Os nmeros naturais tem que ser maior que zero.") Else Return n1 * n2 End If End Function
''' <summary> ''' Funo Dividir - Calcula o valor da diviso entre dois nmero naturais : n1/n2 ''' </summary> ''' <param name="n1">n1</param> ''' <param name="n2">n2</param> ''' <returns>Retorna a parte inteira do resultado da diviso entre os dois nmeros</returns> ''' <remarks>O primeiro nmero(dividendo) tem que ser maior que o segundo (divisor) , e o divisor no pode ser igual a zero</remarks> Public Function Dividir(ByVal n1 As Integer, ByVal n2 As Integer) As Integer If n2 > n1 Then Throw New Exception("O primeiro nmero natural tem que ser maior que o primeiro") ElseIf n1 = 0 Then Throw New Exception("O divisor no pode ser igual a zero") Else Return CInt(n1 / n2) End If End Function End Class
Agora vejamos como gerar o arquivo XML referente a documentao no projeto Visual Basic. Clique sobre o nome do projeto e no menu suspenso selecione Properties; A seguir na guia Debug informe em : Command line arguments => /doc:CalculadoraNatural.xml Dessa forma quando compilarmos a aplicao ser gerado o arquivo CalculadoraNatural.xml na pasta /bin/Release do projeto;
Na janela Solution Explorer clique o cone Show all files para exibir os arquivos do projeto:
Se espiarmos na pasta do projeto via Window s Explorer veremos o arquivo conforme a figura abaixo:
<summary> Returns the cached ResourceManager instance used by this class. </summary> </member><member name="P:CalculadoraNatural.My.Resources.Resources.Culture"> <summary> Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. </summary> </member><member name="T:CalculadoraNatural.My.Resources.Resources"> <summary> A strongly-typed resource class, for looking up localized strings, etc. </summary> </member> </members> </doc>
Com o documento XML gerado temos duas opes para gerar a documentao: Escrever o seu prprio arquivo XLST para transformar o documento XML em um formato legvel como HTML, PDF, etc.; Usar um componente de terceiros para automaticamente gerar a documentao; Na primeira opo voc deve colocar o arquivo XLST no mesmo local onde o arquivo XML foi gerado e usar um editor que interprete XLST como o Internet Explorer. Eu estou colocando o arquivo documentacaoXML.xls que voc pode usar para testar a gerao da documentao porm ser preciso realizar ajustes no cdigo. Pegue o projeto completo aqui: CalculadoraNatural.zip