Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# Namespaces vernünftig zuordnen? (https://www.delphipraxis.net/73624-namespaces-vernuenftig-zuordnen.html)

Jürgen Thomas 20. Jul 2006 18:04


Namespaces vernünftig zuordnen?
 
Hallo,

ich habe verschiedene kleinere Erweiterungen für NET-Basisklassen geschrieben und diese (mit schlechtem Gewissen) den NET-Standard-Namespaces zugeordnet, z.B.:
Code:
namespace System {
    /// <summary>
    /// Zusammenfassende Beschreibung für MathEx.
    /// Methoden aus System.Math werden ergänzt:
    /// **  Min( int[] varArray )
    /// **  Max( int[] varArray )
    /// **  analog für byte, decimal, double, short, long, float
    /// </summary>
    public class MathEx   {
        //  Max und Min für int[]
   static public int Max(int[] varArray) {
       int Result;
       if (varArray.Length == 0)
      Result = System.Int32.MaxValue;
       else {
      Result = varArray[0];
      for (int x1 = 1; x1 < varArray.Length; x1++) {
          if (varArray[x1] > Result)   Result = varArray[x1];
      }
       }
       return Result;
   }
    }
}
Analog habe ich Controls, die Erweiterungen von Standard-Controls sind, eingebunden in den Namespace System.Windows.Forms mit einer Klasse ControlsEx.

Für dieses Verfahren bin ich an anderer Stelle bereits kritisiert worden:
Zitat:

Zitat von Khabarakh
Zu den Standard-Namespaces würde ich übrigens nichts noch hinzufügen, schafft imho nur Chaos.

Mich würden Argumente anderer Entwickler interessieren, nach welchen Regeln man die Namespaces für solche Erweiterungen zuordnen sollte.

Jürgen

Khabarakh 20. Jul 2006 18:32

Re: Namespaces vernünftig zuordnen?
 
Ich hatte zwar erst zweimal das Vergnügen, mir einen Namespace ausdenken zu dürfen, aber jedenfalls habe ich es so gehandhabt:
Root-Namespace = Dein Name/Nick/Sonstwas bzw. der Name deiner Firma + der Name deines Projektes,
beispielsweise
Code:
Kha.GenPar
oder
Code:
ICSharpCode.SharpDevelop
Diesen Rootnamespace kannst du nun in weitere Namespaces unterteilen, falls sie zu groß werden und der User nur eine bestimmte Teilmenge der Typen brauchen könnte.
Beispiel:
Code:
Kha.GenPar.Infix
Kha.GenPar.UPN // ok, den gibts gar nicht, aber auch egal ^^
Elementare Typen wie zum Beispiel deine MathEx-Klasse würde ich entweder in deinen Namens-Namespace ( :mgrgreen: ) oder einen "Core"-Namespace werfen. Da habe ich mich noch nicht ganz entschieden ;) .

Nur übertreiben sollte man es mit dem Aufteilen nicht. FxCop moniert sich beispielsweise über Namespaces mit weniger als 6 Typen.

MathiasSimmack 20. Jul 2006 20:21

Re: Namespaces vernünftig zuordnen?
 
Ich richte mich nach den Vorgaben von SharpDevelop. :stupid:

1. #d fragt mich nach dem Namen des Tools und benennt so auch den Namespace.
2. Ich erzeuge Unterordner "bla" mit neuer Klasse, daraus wird "<namespace>.bla"
3. Ich gucke, was FxCop dazu sagt und führe Namespaces mit Klassen < 5 zusammen. :mrgreen:

Khabarakh 20. Jul 2006 21:13

Re: Namespaces vernünftig zuordnen?
 
Zitat:

Zitat von MathiasSimmack
2. Ich erzeuge Unterordner "bla" mit neuer Klasse, daraus wird "<namespace>.bla"

Leider habe ich oft viel mehr Ordner, als ich Namespaces bräuchte, also vergebe ich letztere doch lieber selbst ;) .

PS: Cool wäre eine Option, bei Ordnern den Rootnamespace zu ändern oder sie aus der Namespace-Generierung ausschließen zu können :love: ... Vielleicht finde ich dazu mal Zeit :) .


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz