[C#] Coding Standards

Pagina: 1
Acties:
  • 971 views sinds 30-01-2008
  • Reageer

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 17:28
Ik heb gezocht en gezocht maar niets tegengekomen van C# (CSharp) specifiek. De .NET SDK Help is oko relatief vaag. Wie kan mij richting een documentje wijzen waar specifiek een coding standaard behandeld wordt voor C#.

Genoeg Java/Camle/Vanilla/etc maar geen artikel over C# te vinden.

Verwijderd

[topic=398919/1/255]

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 17:28
Ja maar dit is dus zeker niet wat ik bedoel... een mooi overzicht zoals je dat bv hier van Java kunt vinden:

http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Dit zou ik graag ergens vinden mbt C#, en nee het is op GoT niet te vinden middels de search ;)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
In de .NET Framework SDK Docs staat wel iets (heel wat zelfs :)) onder Reference / Design Guidelines for Class Library Developers, maar niet echt specifiek voor C# idd. De voorbeelden zijn echter wel allemaal C# voor zover ik heb gezien.

Waarom wil je eigenlijk zo graag een standaard? Belangrijker is dat je je eigen stijl consequent toepast.

Verwijderd

From "Inside C#" author: Tom Archer MS press.

Hungarian notation is the system used by most C and C++ developers
(including those at Microsoft). It's a complete naming system created by
Microsoft Distinguished Engineer Charles Simonyi. Back in the early 1980s,
Microsoft adopted this famous-or infamous, depending on your point of
view-naming system based on ideas from Simonyi's doctoral thesis,
"Meta-Programming: A Software Production Method."
Hungarian notation specifies that a prefix be added to each variable to
indicate its type. However, not every type was given a standard prefix. In
addition, as other languages were introduced and new types created, new
prefixes had to be created. This is why even if you go into a shop that
employs Hungarian notation, you might see some prefixes you're not
accustomed to seeing. (By the way, the term "Hungarian notation" comes from
the fact that the prefixes make the variables look as if they are written in
a language other than English; plus, Mr. Simonyi is from Hungary.)

Perhaps the most important publication that encouraged the use of Hungarian
notation was the first book read by almost every Windows and OS/2 developer:
Charles Petzold's Programming Windows (Microsoft Press), which used a
dialect of Hungarian notation throughout its demo applications. In addition,
Microsoft employed the notation in its own development. When MFC was
released, a bunch of new prefixes specific to C++ development were released
with its source code, thereby guaranteeing the continued use of Hungarian
notation.

So why not simply continue using Hungarian notation? Because Hungarian
notation is useful in situations where it's beneficial to know the type, or
scope, of a variable being used. However, as you'll see in more detail in
the next chapter, all types in C# are objects and based on the .NET
System.Object class. Therefore, all variables have a basic set of
functionality and behavioral characteristics. For this reason, the need for
Hungarian notation is lessened in the .NET environment.

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 17:28
marcusk:
Jah in de .NET help is me dat ook opgevallen...geen duidelijke stijl definitie

Stijl, omdat uhm ik graag een uniforme standaard wil leren ipv mijn eigen techniek. Eigen techniek blijkt niet te werken in team projecten dus vandaar

Yarvieh:
Uhm ja camel is ruim en breed uitgemeten tijdens de introductie van .NET (helaas niet meer in .NET dus), maar ik begrijp even niet wat dit met mijn vraag m.b.t. standarisatie te maken heeft. Ik ben dus op zoek naar een online referentie waar de guidelines aldus van Microsoft m.b.t. .NET/C# uiteengezet word.

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Nou het belangrijkste waar je rekening mee moet houden is dat in C# de klassnamen beginnen met een Hoofdletter, verder staat er geen C van class voor (zoals bv CHuman).
De functies beginnen ook met een Hoofdletter. Verder beginnen de variabelen met een kleine letter en is elk opvolgend woord met een hoofdletter (als in Java).
Ik zie in de C# voorbeelden dat de brackets vaak als volgt worden geplaatst
code:
1
2
3
4
void DitIsEenFunctie()
{
    // code
}

Deze stijl gebruik ik persoonlijk ook en vind ik verreweg het duidelijkst, maar dit is zeer persoonlijk. Ik zie dan ook genoeg C# voorbeelden waarbij de bracket direct na de functie voorschrift staat (Kernighan and Ritchie stijl dacht ik).

Maargoed dit wist je verder waarschijnlijk al :)
ik kan je niet aan iets uitgebreids helpen, maar gewoon ff wat voorbeelden bekijken op MSDN zal genoeg beantwoorden denk ik.

ps. Het is ook een goede gewoonte om dit te gebruiken voor elke taal voor .NET (waar mogelijk)

  • KinkyClown
  • Registratie: Maart 2000
  • Laatst online: 13-06-2025

KinkyClown

Eenvoud is beter dan twee fout

Op donderdag 04 april 2002 22:35 schreef paulgielens het volgende:
Ik heb gezocht en gezocht maar niets tegengekomen van C# (CSharp) specifiek. De .NET SDK Help is oko relatief vaag. Wie kan mij richting een documentje wijzen waar specifiek een coding standaard behandeld wordt voor C#.

Genoeg Java/Camle/Vanilla/etc maar geen artikel over C# te vinden.
Waarom zouden de coding standards van C# moeten afwijken van die van Java / C++ / C / Delphi / enz.?
Ikzelf programmeer in verschillende programmeertalen en probeer zoveel mogelijk dezelfde coding standards te hanteren zover dat kan. Ik gebruik de LNC (Lazinsky Naming Convension; Hongaarse conding standard) in combinatie met de coding standards opgelegd door mijn werkgever.
Je moet zelf een goede standaard vinden die het best bij je past en daar bij blijven.

Verwijderd

Als je SharpDevelop download (zoek maar eens met Google) zit daar een help bestand bij met coding standards waar zij zich aan houden, ze zijn niet officieeel voor zover ik weet, maar misschien heb je er wat aan.

Verwijderd

Ik heb een document van 3/4 pagina's geschreven, waarin ik een coding style voor C# vastleg. Hierbij volg ik zoveel mogelijk de MS richtlijnen. Als iemand interresse heeft wil ik wel een linkje plaatsen :).

Verwijderd

Graag :)

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-09 00:49
Op vrijdag 05 april 2002 08:35 schreef KinkyClown het volgende:
[..]
Waarom zouden de coding standards van C# moeten afwijken van die van Java / C++ / C / Delphi / enz.?
Omdat van mijn C++ coding standards ongeveer 90% C++
specifiek is ?

En dat is serieus; ongeveer 10 regels van de 100 zijn generiek.

Bijvoorbeeld:
#0: Gebruik ISO C++.
Hoe vertaalt dat voor C#? Gebruik Microsoft C# zoals het op 13 februari was gedefinieerd? Of
#67 Dont use reinterpret_cast<>

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-09 00:49
Op donderdag 04 april 2002 22:38 schreef Yarvieh het volgende:
[topic=398919/1/255]
pvnwWie wwGebruikt bwEr bwNou bnwHongaarse znwNotatie, vwDat wwIs bwToch bnwOnleesbaar? :Y)

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

Op vrijdag 05 april 2002 16:09 schreef Zef het volgende:
Graag :)
Ik zal ze zo online zetten, maar ik moet eerst nog een host vinden, als ik ze bij brinkster.com upload crasht m'n computer (winXP)! :( Hij loopt echt helemaal vast :'(.

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Ik gebruik ook door alle talen heen grotendeels dezelfde standaard formatting en dinges. Maar dat is meer die van Java, die vind ik wel netjes. Alleen staat bij mij de { dus wel ALTIJD achter de functienaam.

Rustacean


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Op vrijdag 05 april 2002 19:03 schreef KoenM het volgende:
Ik zal ze zo online zetten, maar ik moet eerst nog een host vinden, als ik ze bij brinkster.com upload crasht m'n computer (winXP)! :( Hij loopt echt helemaal vast :'(.
k Host ze wel. manuzhai@xavamedia.nl

Rustacean


Verwijderd

Op vrijdag 05 april 2002 19:04 schreef Manuzhai het volgende:
k Host ze wel. manuzhai@xavamedia.nl
tanx voor het aanbod :), maar ik heb al bij 50megs.com wat gevonden. Is een beetje traag en met reclame, maar het werkt :).

http://koenm.50megs.com/Coding%20guidelines.html

Ik heb dit trouwens opgezet voor een project voor de UU, dus mischien staan daar wat verwijzingen naartoe.

O ja, mocht iemand suggesties/opmerkingen/commentaar hebben: ik hou me aanbevolen :) (zolang het maar constructief is ;))

Verwijderd

Ze waren toch van hungarian notatie af, maar gebruiken het nog wel voor GUI componenten? Of is dat iets dat jij ingevoerd hebt?

Verwijderd

Op vrijdag 05 april 2002 19:25 schreef Zef het volgende:
Ze waren toch van hungarian notatie af, maar gebruiken het nog wel voor GUI componenten? Of is dat iets dat jij ingevoerd hebt?
Over GUI componenten zeggen zij niks. Dat heb ik dus ingevoerd, vooral om duidelijk te maken dat het idd om GUI elementen gaat, en niet over andere dingen.

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Je hebt het over 4 spaties in een tab .. maar nu zie ik dat je 8 spaties hebt, 2 tabs ofzo :?
Ik gebruik zelf een enkele tab van 4 spaties, en eigenlijk zie ik maar zelden de 8 spaties, ook niet in C#. Is hier nog een reden voor?

Verwijderd

Op vrijdag 05 april 2002 19:48 schreef Orphix het volgende:
Je hebt het over 4 spaties in een tab .. maar nu zie ik dat je 8 spaties hebt, 2 tabs ofzo :?
Ik gebruik zelf een enkele tab van 4 spaties, en eigenlijk zie ik maar zelden de 8 spaties, ook niet in C#. Is hier nog een reden voor?
Dat is inderdaad niet helemaal logisch, maar ik heb in de stylesheet nog niet de breedte van de tabs kunnen instellen... Daarom lijken de tabs veel te groot. Ik zal 's kijken of ik dat kan aanpassen. Tanx :).

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
uit de guidelines:
Maak geen gebruik van out parameters.
Hoe wil je dan netjes meer dan een variabele retourneren? (Géén arrays)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Als je mooi OO programmeert zou het eigenlijk niet nodig moeten zijn om meerdere vars te returnen.

Verwijderd

precies. Je moet dan gewoon een struct of object terug geven. out parameters maken je code onduidelijk en zijn zeker niet OO te noemen.
Ze zitten er volgens mij alleen in voor de luie medemens ;(, jammer, want het maakt de taal er niet beter op... ook van het goto statement vindt ik het vreemd dat ze dat er in hebben gedaan.

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 17:28
Op vrijdag 05 april 2002 19:18 schreef KoenM het volgende:

[..]

tanx voor het aanbod :), maar ik heb al bij 50megs.com wat gevonden. Is een beetje traag en met reclame, maar het werkt :).

http://koenm.50megs.com/Coding%20guidelines.html

Ik heb dit trouwens opgezet voor een project voor de UU, dus mischien staan daar wat verwijzingen naartoe.

O ja, mocht iemand suggesties/opmerkingen/commentaar hebben: ik hou me aanbevolen :) (zolang het maar constructief is ;))
kijk hier was ik dus naar opzoek! Ziet er netjes uit...

Verwijderd

Op zaterdag 06 april 2002 13:19 schreef paulgielens het volgende:
kijk hier was ik dus naar opzoek! Ziet er netjes uit...
tanx :). Ik had ze toch al gemaakt, maar mooi dat ik er nog iemand blij mee kan maken :).

Verwijderd

"Vermijd het gebruik van de ... ? ... : ... constructie"

Uhm, waarom dat? Ik vind dit net zeer netjes uitzien, mits er achter ? gewoon iedere keer een woord staat... dus zoiets als:
boolean ? Obj1 : Obj2

is toch prachtig?

Greetz, daRoBBie.

Verwijderd

Op zondag 07 april 2002 11:47 schreef daRoBBie het volgende:
is toch prachtig?
ja en nee ;). Zoals jij het zegt zitten er idd wel voordelen aan, maar het probleem is dat deze constructie ook 'misbruikt' kan worden, waardoor je code onleesbaarder wordt.
Ik heb er voor gekozen om deze constructie in z'n geheel af te raden, hoewel er idd mooie toepassingen voor zullen zijn.

Aangezien coding guidelines altijd een persoonlijke (en dus subjectieve) interpretatie van netjes coden zijn, zullen er altijd mensen zijn die het er (gedeeltelijk) niet mee eens zijn, wat natuurlijk niet erg is.
Zolang je maar als team dezelfde stijl gebruikt, en dat is het doel van deze guidelines :).

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 17:28
Op zondag 07 april 2002 17:15 schreef KoenM het volgende:

[..]

ja en nee ;). Zoals jij het zegt zitten er idd wel voordelen aan, maar het probleem is dat deze constructie ook 'misbruikt' kan worden, waardoor je code onleesbaarder wordt.
Ik heb er voor gekozen om deze constructie in z'n geheel af te raden, hoewel er idd mooie toepassingen voor zullen zijn.

Aangezien coding guidelines altijd een persoonlijke (en dus subjectieve) interpretatie van netjes coden zijn, zullen er altijd mensen zijn die het er (gedeeltelijk) niet mee eens zijn, wat natuurlijk niet erg is.
Zolang je maar als team dezelfde stijl gebruikt, en dat is het doel van deze guidelines :).
Juistem daarom! Een duidelijke guideline bevat altijd dingen waar de coder het niet mee eens is! Feit blijft, of je houd je eraan of de complete guideline is nutteloos. Een uniform opmaak model werkt perfect allenig als alle betrokkenen 100% conform de richtlijnen werken.

De guideline van Koen bevalt prima!

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 17:28
http://www.execpc.com/~gopalan/dotnet/csharptips/csharptips.html

Koen misschien dat je hier iets aan hebt

Verwijderd

Op maandag 08 april 2002 08:44 schreef paulgielens het volgende:
http://www.execpc.com/~gopalan/dotnet/csharptips/csharptips.html

Koen misschien dat je hier iets aan hebt
Ziet er zeer interresant uit! Ik zal vanmiddag/vanavond wel ff kijken wat ik er uit ga overnemen. Het nadeel van zo'n lange lijst is natuurlijk dat je niet kan verwachten dat iedereen zich hieraan houdt. Van een document van 5 kantjes kan dat nog wel...
Maar ik zal er zeker een linkje naar zetten.

Bedankt voor je feed-back :).

Verwijderd

De guidelines zijn verhuisd naar http://www.students.cs.uu.nl/people/pmuilwij/coding/Coding%20guidelines.html

Nu staan ze op de server van de UU, dus lekker snel en zonder reclame :). De oude versie (van de vorige link) zal niet meer onderhouden worden, deze versie echter nog wel.
Pagina: 1