Hey,
Ik ben aan het werken aan het implementeren van een script engine (in VB.NET), dat wil zeggen dat ik functies moet aanmaken die de gebruiker mbv een scriptje (gewoon via een textbox) kan aanroepen. Dit houdt in: de naam van de functie bepalen, het aantal en type argumenten, een eventuele return type, en de implementatie.
Nu moet ik deze functies documenteren, zodat men later kan zien welke functies ik allemaal aangemaakt heb zonder mijn code te moeten doorspitten.
Ik ben al vaker tooltjes als SandCastle (of NDoc ofzoiets) tegengekomen die heel mooi en snel documentatie in een soort van MSDN stijl kan maken, door gewoon executables of DLLs en de XML comments te lezen. Zo kun je in VB.NET simpel XML comments boven je classes, functies etc zetten en zal SandCastle er een mooi help bestandje van maken waar je kan browsen door de verschillende namespaces, de classes in die namespaces, die functies in die classes, etc.
Nu zou het mooi zijn als ik zo'n zelfde soort documentatie kon maken. Het probleem echter is nu dat deze tooltjes op .NET code werken (wellicht ook met andere talen, dat is niet het punt), maar ik moet de documentatie van mijn functies in de script engine hebben (dus niet de documentatie van de source van de script engine zelf, enkel de functies die ik erin definieer). Voor zover ik weet kan SandCastle dit natuurlijk niet automatisch genereren (ik zou niet weten waar hij de informatie vanaf moet halen), maar ik hoop dat ik misschien handmatig de functies erin kan gooien, met een omschrijving en een lijstje van argumenten, en dat zo'n tooltje dan alsnog een mooie help file (of een aantal HTML bestanden van mijn part) aanmaakt.
Ik kan de script taal het beste omschrijven als enkel bestaande uit static functies. Elke functie heeft een 'Namespace' (hoewel 'static class' misschien een betere naam is) en een functie naam, en natuurlijk een lijstje met argumenten.
Een stom voorbeeldje kan zijn:
De functies zijn hier:
- Log.WriteString, waarbij Log de 'namespace' (zoals ik al zei, static class is misschien beter) is en Write de functie naam,
- Log.WriteInt, Log is de namespace en WriteInt de functienaam.
- Message.Show, Message is de namespace en Show de functienaam.
Simpel genoeg lijkt me...
De documentatie die hieruit moet rollen zou dan zoiets zijn als:
Klikken op Log levert dan:
Klikken op WriteInt levert dan
of iets dergelijks...
In andere woorden: een soort van MSDN stijl help file of webpagina zelfs waar je makkelijk door de namespaces kan klikken om functies op te zoeken, dan de informatie over die functie op te zoeken, en zo steeds door te klikken.
Weet iemand of er tooltjes bestaan die dit mogelijk maken? Of werken deze tooltjes echt alleen met bestaande code zoals een .NET executable + XML comments, en is er geen manier om handmatig de functies, omschrijvingen, argumenten etc op te geven?
Ik snap dat ik alle informatie zelf moet gaan opgeven (dus een namespace maken met omschrijven, daarin functies gaan maken met omschrijving, etc), maar dat is geen probleem, er is geen manier om dit automatisch te laten doen.
Bedankt voor enige informatie
EDIT
Waar ik al aan gedacht had is om deze functies daadwerkelijk in een VB.NET/C# projectje aan te maken, gewoon losse functies zonder implementatie, met wat XML comments, en er daarna SandCastle op los te laten. Dat heb ik even snel geprobeerd, maar dat levert toch niet op wat ik wil. Het grootste probleem is dat onze naamgeving van namespace niet overeenkomt met de naamgeving in .NET (of elke andere taal denk ik), en dat de types die de script engine ondersteunen niet exact overeenkomen met de types in .NET. Ook geeft SandCastle veel te veel informatie, dingen als chain of inheritance enzo heb ik allemaal helemaal niet nodig. Heel simpel functie naam + omschrijving + lijstje argumenten (elk argument met omschrijving) is meer dan voldoende.
Als er niets gevonden wordt dan kan ik altijd zelf nog een tooltje schrijven wat een simpel documentje aanmaakt ofzo (een heel help bestand met doorlinken etc zal teveel tijd gaan kosten), maar als er al zoiets bestaat wil ik natuurlijk niet alles opnieuw gaan uitvinden.
Ik ben aan het werken aan het implementeren van een script engine (in VB.NET), dat wil zeggen dat ik functies moet aanmaken die de gebruiker mbv een scriptje (gewoon via een textbox) kan aanroepen. Dit houdt in: de naam van de functie bepalen, het aantal en type argumenten, een eventuele return type, en de implementatie.
Nu moet ik deze functies documenteren, zodat men later kan zien welke functies ik allemaal aangemaakt heb zonder mijn code te moeten doorspitten.
Ik ben al vaker tooltjes als SandCastle (of NDoc ofzoiets) tegengekomen die heel mooi en snel documentatie in een soort van MSDN stijl kan maken, door gewoon executables of DLLs en de XML comments te lezen. Zo kun je in VB.NET simpel XML comments boven je classes, functies etc zetten en zal SandCastle er een mooi help bestandje van maken waar je kan browsen door de verschillende namespaces, de classes in die namespaces, die functies in die classes, etc.
Nu zou het mooi zijn als ik zo'n zelfde soort documentatie kon maken. Het probleem echter is nu dat deze tooltjes op .NET code werken (wellicht ook met andere talen, dat is niet het punt), maar ik moet de documentatie van mijn functies in de script engine hebben (dus niet de documentatie van de source van de script engine zelf, enkel de functies die ik erin definieer). Voor zover ik weet kan SandCastle dit natuurlijk niet automatisch genereren (ik zou niet weten waar hij de informatie vanaf moet halen), maar ik hoop dat ik misschien handmatig de functies erin kan gooien, met een omschrijving en een lijstje van argumenten, en dat zo'n tooltje dan alsnog een mooie help file (of een aantal HTML bestanden van mijn part) aanmaakt.
Ik kan de script taal het beste omschrijven als enkel bestaande uit static functies. Elke functie heeft een 'Namespace' (hoewel 'static class' misschien een betere naam is) en een functie naam, en natuurlijk een lijstje met argumenten.
Een stom voorbeeldje kan zijn:
code:
1
2
3
4
5
6
7
8
9
| int i string s i = 1 s = "Hello" Log.WriteString(s) Log.WriteInt(i) Message.Show(i + 1) |
De functies zijn hier:
- Log.WriteString, waarbij Log de 'namespace' (zoals ik al zei, static class is misschien beter) is en Write de functie naam,
- Log.WriteInt, Log is de namespace en WriteInt de functienaam.
- Message.Show, Message is de namespace en Show de functienaam.
Simpel genoeg lijkt me...
De documentatie die hieruit moet rollen zou dan zoiets zijn als:
[b]Namespaces:[/b] - Log - Message
Klikken op Log levert dan:
[b]Functions in namespace Log:[/b] - WriteString(string message) - WriteInt(int value)
Klikken op WriteInt levert dan
[b]Function Log.WriteInt[/b] [u]Description[/u]: writes an integer value to the log. [u]Arguments[/u]: - value: int. The integer value to write to the log.
of iets dergelijks...
In andere woorden: een soort van MSDN stijl help file of webpagina zelfs waar je makkelijk door de namespaces kan klikken om functies op te zoeken, dan de informatie over die functie op te zoeken, en zo steeds door te klikken.
Weet iemand of er tooltjes bestaan die dit mogelijk maken? Of werken deze tooltjes echt alleen met bestaande code zoals een .NET executable + XML comments, en is er geen manier om handmatig de functies, omschrijvingen, argumenten etc op te geven?
Ik snap dat ik alle informatie zelf moet gaan opgeven (dus een namespace maken met omschrijven, daarin functies gaan maken met omschrijving, etc), maar dat is geen probleem, er is geen manier om dit automatisch te laten doen.
Bedankt voor enige informatie
EDIT
Waar ik al aan gedacht had is om deze functies daadwerkelijk in een VB.NET/C# projectje aan te maken, gewoon losse functies zonder implementatie, met wat XML comments, en er daarna SandCastle op los te laten. Dat heb ik even snel geprobeerd, maar dat levert toch niet op wat ik wil. Het grootste probleem is dat onze naamgeving van namespace niet overeenkomt met de naamgeving in .NET (of elke andere taal denk ik), en dat de types die de script engine ondersteunen niet exact overeenkomen met de types in .NET. Ook geeft SandCastle veel te veel informatie, dingen als chain of inheritance enzo heb ik allemaal helemaal niet nodig. Heel simpel functie naam + omschrijving + lijstje argumenten (elk argument met omschrijving) is meer dan voldoende.
Als er niets gevonden wordt dan kan ik altijd zelf nog een tooltje schrijven wat een simpel documentje aanmaakt ofzo (een heel help bestand met doorlinken etc zal teveel tijd gaan kosten), maar als er al zoiets bestaat wil ik natuurlijk niet alles opnieuw gaan uitvinden.
[ Voor 15% gewijzigd door NickThissen op 06-12-2010 21:41 ]