3 Stimmen

Halten Sie C#-Attribute (oder ähnliche Mechanismen) für eine gute Idee oder raten Sie von ihrer Verwendung ab?

Ich habe in den letzten 4 oder 5 Jahren viele Entwürfe und Frameworks entwickelt, die C#-Attribute verwenden.

In letzter Zeit sehe ich jedoch, dass viele Menschen offen von ihrer Verwendung abraten oder ihre Rahmenbedingungen so ändern, dass sie sie nicht mehr benötigen oder verwenden.

Für mich waren sie ein Geschenk des Himmels, aber jetzt frage ich mich, was ich verpasse.

Zur Klarstellung: Use Convention over Configuration wird zu einem wichtigen Prinzip, das vor allem im ORM-Bereich zu befolgen ist. In diesem Bereich können Sie Felder mit einer Konfigurationsdatei (XML) abbilden, ein Attribut verwenden oder eine gemeinsame Namenskonvention haben, die sich direkt auf Felder in Ihren Datenbanktabellen bezieht. Ich habe keine Referenzen, die ich zitieren könnte, aber ich habe einige Gegenreaktionen gegen das Hinzufügen eines weiteren Attributs zu dem Mix gelesen.

Aber ich denke, dass unter den drei Möglichkeiten, die ich gerade aufgelistet habe, die Attribute immer noch am sinnvollsten sind. Eine Config-Datei ist schwieriger zu pflegen und eine gemeinsame Namenskonvention bindet Sie an die Implementierung des Datenbankfeldes. Attribute werden genau dort platziert, wo sie benötigt werden, und die Implementierung kann geändert werden, ohne dass die Verbindung zu dem Feld, in dem es verwendet wird, unterbrochen wird.

0voto

BFree Punkte 100035

Nun, wenn es nach ASP.NET MVC geht, würde ich sagen, dass Sie sich keine Sorgen machen müssen. In diesem Framework wird so viel mit Reflection und Attributen gemacht, dass ich keine Probleme damit sehe. MVC ist ein relativ neues Framework, das überall eingesetzt wird. Von der Validierung von Eingaben, über die Behandlung von Fehlern, bis hin zu dem großartigen ActionFilter-Attribut, gibt es eine Menge davon. Also nein, ich persönlich sehe nichts falsch mit ihnen.

0voto

Reed Copsey Punkte 536986

Ich persönlich denke, dass Attribute, wie die meisten Sprachfunktionen, ihren Platz haben, aber auch missbraucht werden können.

Im richtigen Rahmen sind sie von unschätzbarem Wert. Sie vereinfachen definitiv Dinge wie DI-Frameworks ( MEF ist ein großartiges Beispiel), und sind sehr, sehr nützlich für Dinge wie das Testen von Frameworks.

Ich denke, dass das Hinzufügen von benutzerdefinierten Attributen zu viel des Guten sein kann. Ich persönlich liebe es, Attribute zu verwenden, aber ich versuche, ihre Verwendung auf ein Minimum zu beschränken und sie nur dort einzusetzen, wo sie am meisten Sinn machen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X