[C#, MediaWiki] Code documentatie genereren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben actief in de Open-Source GIS applicatie MapWindow GIS.
We gebruiken MediaWiki voor de documentatie en helpteksten.
De applicatie is in C#, VB.NET en C++ (ocx) gemaakt en de laatste tijd zijn er veel aanpassingen gedaan en uitbreidingen toegevoegd.
Uiteraard proberen we de documentatie bij te houden, maar zoals zo vaak loopt die inmiddels flink achter.

Nu was ik aan het denken om een aparte applicatie te maken (C#), die met Reflection tekstbestanden maakt die we met Include kunnen toevoegen aan de wiki.

Voordat ik me hier helemaal in ga storten, wil ik graag weten of anderen hier al ervaringen mee hebben of dat er misschien andere opties zijn.

Hier is een voorbeeld van zo'n wiki pagina:
http://www.mapwindow.org/...nGIS:Shapefile_Projection
Deze zal dan nog wel handmatig moeten worden uitgebreid, maar we hebben dan wel al iets.

Alvast bedankt.

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

Je wilt dus Reflection gebruiken om zoiets automatisch te maken?

Waarom gebruik je niet gewoon de XML documentatie die VS genereert? Daar staat iedere methode, property, field en type in die je hebt gedocumenteerd met de welbekende XML documentatie.
XML:
1
2
3
4
5
6
7
8
9
<member name="M:Namespace.Company.Product.Lib.Class.FirstDateOfWeek(System.Globalization.CultureInfo,System.Int32,System.Int32)">
            <summary>
             Gets the first date of a specified week in a specified year using the given or current culture
            </summary>
            <param name="culture"></param>
            <param name="year"></param>
            <param name="weekOfYear"></param>
            <returns></returns>
        </member>

Met een M staat een method aangegeven, en met T een type, enzovoort.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik had al naar de XML gekeken, maar ik heb alleen XML bestanden voor de C# en VB.NET dlls en exe, niet voor de OCX (C++) en de meeste wijzigingen zitten nu net in de OCX ;(

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Kan je voor C++ niet gebruik maken van doxygen, en dan beide documenten met een simpele converten naar het juiste type converteren. Dat lijkt me makkelijker dan dat je met refflection gaat werken.

Overigens heeft doxygen ook support voor C#, maar daar heb ik geen ervaring mee.

[ Voor 17% gewijzigd door Woy op 18-05-2010 10:21 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

Ik ben niet bekend met C++ OCX maar hoe heb je daar alles gedocumenteerd? XML documentatie stijl, Javadoc stijl? Anders kan je iets maken dat gewoon de sourcecode scant.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik hou me verre van de ontwikkelingen met de OCX. Ik doe vrnl. C# spul.
Ik zal eens kijken hoe er nu wordt gedocumenteerd en ik zal ook eens naar doxygen kijken.
Maar is doxygen niet meer een vervanging voor onze wiki, ipv. alleen de inhoud?

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Met doxygen kun je volgens mij gewoon allerlei types output genereren, en dus ook voor je wiki.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Houd er wel rekening mee dat het aanpassen van pagina's op een mediawiki-installatie niet geheel triviaal is: je kunt niet zomaar de tekst in de database aanpassen (vanwege caches).

Het gemakkelijkste is om een mediawiki-bot-library te gebruiken, maar dan krijg je wel een lijst van revisies in mediawiki. Wil je dat niet, dan zul je ofwel de pagina steeds moeten wissen om opnieuw aan te maken, of de tekst in de text-table moeten veranderen.

Dat laatste is niet triviaal: je zult dan voor die pagina - en volgens mij ook voor iedere pagina waar je die pagina geinclude is - een purge-request moeten sturen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb naar doxygen gekeken en het lijkt er inderdaad wel op dat het daar mee zou kunnen. Ik zal de komende tijd wat testjes uitvoeren.
Bedankt voor de waarschuwing over MediaWiki. Ik ben er nog niet uit hoe ik de wiki pagina's het beste kan updaten. Ik zal je opmerking zeker meenemen.
Pagina: 1