Was sind die wichtigsten Vorgehensweisen und Entwurfsmuster, die jeder .NET-Benutzer kennen sollte? [geschlossen]

16

In meiner kurzen Zeit als professioneller Programmierer habe ich viele Anwendungen von Programmierern gesehen, deren gesamte Ausbildung die ersten Kapitel in einem .NET 2.0-Buch gelesen zu haben scheint.

Heck, als ich anfing, schrieb ich die meisten dieser Anwendungen!

Was sind die größten Entwurfsmuster, die für das Schreiben von AWESOME .NET-Anwendungen entscheidend sind?

Mit genial meine ich auch von innen!

Daniel Upton
quelle
Keiner ist entscheidend.
kirk.burleson

Antworten:

22

Erstens: Kennen Sie Ihre grundlegenden Werkzeuge gut

  1. Kennen Sie das ASP.Net-Ereignismodell. Sie werden in ein Chaos geraten, wenn Sie dies nicht tun.

  2. Verstehe die Mechanik von OO. Eine überraschende Anzahl von relativ erfahrenen .NET-Programmierern scheint immer noch zu glauben, dass es sich um 1972 handelt.

  3. Beginnen Sie mit dem Lesen von Code Complete.

Zweitens: Lernen Sie, Bedenken zu trennen

Das häufigste Designverbrechen, das ich in der ASP.Net-Entwicklung sehe, besteht darin, die gesamte Geschäftslogik in den Code-Behind zu stecken. Ich weiß, dass alle Microsoft-Beispiele dies so tun. Ich weiß, dass es bei kleinen Apps gerechtfertigt ist. Und ich weiß, dass ich es manchmal so mache. Aber wirklich, es ist schlechtes Design und ist mein Haustier Hass für die Woche.

Drittens: Alles andere über Design lernen

Die meisten der schlechten .Net-Codes, die ich sehe, sind das Ergebnis eines schlechten OO-Designs. Daher würde ich ein gutes Verständnis empfehlen für:

  • SOLIDE Prinzipien
  • GoF-Entwurfsmuster
  • MVC (für ASP.Net MVC)

Viertens: Lernen Sie mehr Werkzeuge kennen

Sie wissen, wie Microsoft Ihnen die Arbeit erleichtert, indem es viele einsatzbereite Tools bereitstellt? Du wirst früher oder später an ihre Grenzen stoßen. Wenn du das tust, musst du sie entweder nach deinem Willen biegen oder deine eigenen rollen. In jedem Fall müssen Sie sich mit CSS und Javascript ein wenig anstrengen.

Schließlich

Sobald Sie diese Menge getan haben, sind Sie auf dem besten Weg, großartig zu werden.

[Bearbeiten: Die Reihenfolge für das Erlernen dieses Suts wurde korrigiert. Anscheinend konnte ich gestern nicht zählen ...]

Kramii setzt Monica wieder ein
quelle
"Wenn du das tust, musst du sie entweder nach deinem Willen biegen oder deine eigenen rollen." Oder du verwendest etwas Open Source. +1, trotzdem, gute Antwort
pdr
Danke. Wirklich großartige Antwort :-), aber was ist das für ein Buzz über MVVM, IOC, MVP, Repositories, Fabriken ... Fügen Sie hier ein anderes großes Schlagwort ein. Was ist der aktuelle "Microsoft Blessed" -Ansatz zum Erstellen von Web-Apps?
Daniel Upton
3
MVVM - (derzeit) ein sehr WFP / Silverlight-spezifisches Entwurfsmuster. MVP - ein ähnliches Muster wie MVC, mit einigen Unterschieden in den Wechselwirkungen zwischen Klassen / Ebenen. Repositories / Fabriken / IOC - sollten in Ihrer Lesung für "Third" oben behandelt werden, sie beziehen sich auf die Trennung von Bedenken, das DRY-Prinzip und testbares Design. "Microsoft-gesegneter" Ansatz - hängt von Ihren Anforderungen ab. Der aktuelle Trend scheint definitiv MVC3 zu sein, was wesentlich dazu beiträgt, "gutes" Design mit viel weniger Aufwand zu ermöglichen, mit einfachen IOC / DI, testbaren Controllern usw.
mjhilton
3
@ Daniel Es gibt sicherlich viele Schlagworte da draußen. Das Wichtigste, was Sie tun können, ist zu lernen, was sie sind und welche Arten von Problemen sie Ihnen bei der Lösung helfen können. Lassen Sie sich nicht in die Falle locken, Ihre gesamte Anwendung in eine Reihe von Entwurfsmustern zu fassen, die keinen Mehrwert im Bereich der Wartbarkeit oder noch schlimmer - es ist schwer zu verstehen (manchmal so sehr, dass Sie sich nicht an etwas erinnern können) macht 6 Monate nachdem du es geschrieben hast). Lassen Sie sich von den anwendbaren Mustern helfen, komplexe Probleme zu vereinfachen.
Michael Dean
1
@ Daniel: Ich würde mir wirklich nicht zu viele Sorgen über "Microsoft Blessed" -Ansätze machen. Gutes Design ist gutes Design, egal wer es segnet. Tatsächlich hat Microsoft in diesem Bereich häufig Nachholbedarf (z. B. ASP.Net MVC als Antwort auf andere MVC-Frameworks). Sie müssen sich jedoch über die Micosoft- Technologie im Klaren sein . Es ist bekannt, dass großartige Designs scheitern, da sie nicht zum verfügbaren Toolset passen.
Kramii setzt Monica
0

Die von Kramii angesprochenen Punkte sind alle lohnenswert, aber ich möchte die Erwähnung der Arbeit mit den SOLID-Prinzipien hervorheben. Ein wirklich gutes Verständnis davon wird einen großen Unterschied machen, und viele der GoF-Muster usw. werden natürlicher herausfallen. Bei vielen dieser Dinge geht es letztendlich darum, Ihre Bedenken zu trennen und Ihre Abhängigkeiten zu verwalten. Beginnen Sie also an der Quelle, und alles andere ist sinnvoll.

Wenn Sie sich an etwas erinnern, das ich vor meinem letzten OO-Codierungskurs bei JP Boodhoo gemacht habe, bedeutet das Prinzip der Einzelverantwortung weit mehr als Sie denken! Es lohnt sich wirklich zu verstehen, wie klein eine Klasse sein kann, wenn man sich gut daran hält.

eviltobz
quelle