2009-09-25 13 views
74

Ich erzeuge den Großteil meines ASP.NET MVC-Gerüstcodes. Alle generierten Dateien sind partielle Klassen, die Standardnamenskonventionen verwenden. Zum Beispiel heißt meine Mitarbeiter-Controller-Datei EmployeeController.cs. Wenn ich den EmployeeController mit einer benutzerdefinierten, nicht generierten Logik erweitern möchte, erstelle ich eine zweite partielle Klassendatei namens EmployeeControllerCustom.cs. Ich teile die benutzerdefinierte und generierte Logik in zwei verschiedene Dateien auf, damit beim nächsten Generieren von EmployeeController meine benutzerdefinierten Änderungen nicht überschrieben werden. Das Hinzufügen des Suffix "Custom" zum Dateinamen erscheint mir vernünftig, aber gibt es eine etabliertere Namenskonvention für partielle Klassendateien, der ich folgen sollte?Namenskonventionen für partielle Klassendateien

Antwort

121

Ich verwende . Trennung - zum Beispiel EmployeeController.SomeSpecialBehaviour.cs. Ich verbinde es auch über "dependentUpon" oder was auch immer es im csproj ist, in den Projektbaum, damit es unter der Datei (im Solution Explorer) ordentlich verschachtelt wird. Sie müssen das von Hand (bearbeiten Sie die csproj) oder mit einem Add-In, obwohl; zum Beispiel:

<Compile Include="Program.cs" /> 
<Compile Include="Program.Foo.cs"> 
    <DependentUpon>Program.cs</DependentUpon> 
</Compile> 

erscheint als:

  • Program.cs
    • Program.Foo.cs
+0

nicht erkennen, die DependentUpon auf alle Dateien gearbeitet ... – thecoop

+2

Die DependentUpon Vorschlag ist wirklich cool und funktioniert super. Danke für's Bemerken. Wenn ich richtig lese, verwenden Sie nicht einfach ein Standardsuffix wie "Benutzerdefiniert". Ihr Suffix drückt immer die Absicht der Funktionalität der partiellen Klassendatei aus. Gibt es auch einen Grund, warum Sie das verwenden? Trennung gegenüber Gehäuse? Macht der. bieten mehr als nur verbesserte Lesbarkeit? Vielen Dank. –

+7

Korrekt - der Dateiname gibt die Absicht des Codes in * diesem Teil * an. Wenn ich also eine exotische Schnittstelle implementiere (und den Code getrennt halte), könnte es "SomeType.ICustomTypeDescriptor.cs" sein. Das "." (IMO) trennt die zwei Dinge: den eigentlichen Typ ("SomeType") und den Vorsatz "ICustomTypeDescriptor" - beide sind bereits vollständig eingeschlossen; Außerdem passt es perfekt zu Dingen wie 'SomeForm.Designer.cs' ;-p –

9

zu Marc GRA ♦ 's Antwort hinzuzufügen, hatte ich eine Situation mit Dateien in einem Unterordner und die DependentUpon Knoten wird ignoriert. Die kurze davon ist, dass in einem solchen Fall ist es meine xml sein musste:

<Compile Include="foo\bar.cs" /> 
<Compile Include="foo\bar.baz.cs"> 
    <DependentUpon>bar.cs</DependentUpon> <!-- Note that I do not reference the subfolder here --> 
</Compile> 

Ich hoffe, das hilft jemand :)

+0

Hat mir geholfen, danke. – heltonbiker

Verwandte Themen