Best Practices in ASP.Net MVC

Dies ist ein weiterer Beitrag in der Artikelserie zu Best Practices. In diesem Fall werde ich die Best Practices vorstellen, die bei der Arbeit mit dem ASP.Net MVC-Framework befolgt werden sollten.

Worum geht es beim MVC-Entwurfsmuster?

Lassen Sie uns zunächst einen kurzen Überblick über die Grundlagen geben. Worum geht es beim MVC-Entwurfsmuster (Model View Controller)? Warum wird es überhaupt gebraucht? Nun, die Benutzeroberfläche enthält oft viel überfüllten Code, hauptsächlich wegen der komplizierten Logik, die sie handhaben muss. Die Präsentationsmuster sind in erster Linie mit dem Ziel konzipiert, den komplexen Code in der Präsentationsschicht zu reduzieren und den Code in der Benutzeroberfläche sauber und übersichtlich zu gestalten.

Mit dem MVC-Framework können Sie Anwendungen erstellen, die einfacher zu testen und zu warten sind. Es besteht aus drei Hauptkomponenten, nämlich dem Modell (repräsentiert die Daten und die Geschäftslogik der Anwendung), der Ansicht (dies repräsentiert die Präsentationsschicht) und dem Controller (dies repräsentiert normalerweise die Geschäftslogik Ihrer Anwendung). Mit dem MVC-Entwurfsmuster können Sie die Bedenken eingrenzen und den Code Ihrer Anwendung einfacher testen und warten.

Der Controller

Sie sollten die Demo-Code-Dateien löschen - die Datei AccountController.cs, da Sie sie sowieso nicht benötigen würden. Der AccountController wird standardmäßig erstellt und nicht benötigt - einfach löschen! Sie sollten auch die Kopplung zwischen Ihren Controllern und anderen Abhängigkeiten wie Datenzugriffskomponenten, Ausnahme- und Protokollierungsblöcken usw. verringern. Ihre Controller sollten so schlank wie möglich sein und viel weniger Code enthalten. Im Idealfall sollten Sie den Kontrollfluss nur an eine Geschäftslogikkomponente in Ihrer Controller-Klasse delegieren. Der Controller in einer ASP.Net MVC-Anwendung sollte von der Datenzugriffsschicht isoliert sein. Der Controller ist dafür verantwortlich, die entsprechende Ansicht zur Laufzeit basierend auf bestimmten Aktionen zu rendern.

Bündeln und Minimieren der Skript- und CSS-Dateien

Sie sollten Ressourcen, die Ihre Anwendung wie CSS-Dateien verwenden muss, in einer herunterladbaren Ressource zusammenfassen. Dieser Vorgang wird auch als Bündelung bezeichnet. Sie sollten auch die Skripte und CSS-Dateien minimieren, die Sie zum Entfernen unnötiger Zeichen, Kommentare und Leerzeichen verwenden würden.

Das folgende Codefragment zeigt, wie Sie ein Bundle-Objekt für das CSS erstellen können, das Ihre Anwendung verwenden muss.

public static void RegisterBundles (

                       BundleCollection-Bundles)

{

   bundles.Add (neues StyleBundle ("~ / Content / Styles")

       .Include ("~ / Content / Styles / bootstrap.css",

                "~ / Content / Styles / .css"));

}}

Der folgende Code zeigt, wie Sie die Skriptdateien bündeln können, die Sie in Ihrer Anwendung verwenden müssen.

  .Einschließen(

     "~ / Content / Scripts / -1.0.0.js",

     "~ / Content / Scripts / knockout-3.0.0.js")

);

Beachten Sie, wie die ScriptBundle-Klasse zum Bündeln des Skriptinhalts verwendet wird. In ähnlicher Weise wird die StyleBundle-Klasse (wie im vorherigen Beispiel gezeigt) verwendet, um den zuvor diskutierten CSS-Inhalt zu bündeln.

Sie sollten auch die Überprüfung von Routen deaktivieren, es sei denn, dies ist unbedingt erforderlich, um den unnötigen Verarbeitungsaufwand zu vermeiden.

Ansichten

Sie sollten nach Möglichkeit stark typisierte Ansichten verwenden. Ich würde empfehlen, POCOs an die Ansichten in Ihrer ASP.Net MVC-Anwendung zu senden. Sie sollten die gesamte Verarbeitung in Ihren Controllern und nicht in den Ansichten durchführen. Die Ansichten sollten schlank sein und keinen Geschäftslogikcode enthalten. Sie sollten in Ihren HTML-Helfern nur eine minimale Anzahl von TagHelpers verwenden, und Sie sollten daran denken, HtmlHelpers nur dann zu verwenden, wenn Sie bedingte Entscheidungen über die Daten in den Ansichten treffen müssen. Wenn in Ihrer Ansicht eine bedingte Anweisung erforderlich ist, sollten Sie sie in einen HtmlHelper verschieben. Die HtmlHelpers sollten niemals Code enthalten, der die Datenzugriffsschicht aufruft, dh Sie sollten keine Datenzugriffslogik in die HtmlHelpers schreiben. Sie sollten keinen JavaScript-Code in Ihre Ansicht einfügen - trennen Sie sie in verschiedene Skriptdateien.

Zwischenspeichern Sie Ihre Daten

Um die Leistung und Reaktionsfähigkeit Ihrer Anwendung zu verbessern, können Sie das Caching nutzen. Caching ist eine Technik, mit der Sie relativ veraltete Daten im Speicher speichern können, um den Netzwerkbandbreitenverbrauch zu reduzieren. Das folgende Codefragment zeigt, wie Sie das Caching in Ihren Controllern verwenden können.

public class Controller: Controller

{

    [OutputCache (Dauer = 3600,

VaryByParam = "keine")]

    öffentlicher ActionResult Index ()

    {

    }}

}}

Sie sollten auch Seiten mit häufigem Zugriff zwischenspeichern, die freigegebene Daten enthalten und nicht autorisiert werden müssen. Das folgende Codefragment zeigt, wie Sie dies tun können.

[OutputCache (Dauer = 3600)]

öffentlicher ActionResult Index ()

{

  return View ("Index", myDataObject);

}}

Das MVC-Entwurfsmuster hilft bei der Durchsetzung einer sauberen Trennung von Bedenken zwischen den Modellen, Ansichten und Controllern in Ihrer Anwendung. Auf diese Weise kann Ihr Code einfach getestet und gewartet werden. Ich habe einige wichtige Punkte besprochen, die Sie bei der Arbeit mit ASP.Net MVC berücksichtigen können, um Anwendungen zu erstellen, die eine hohe Leistung aufweisen, einfacher zu testen, zu warten und zu skalieren sind. Ich werde in den kommenden Beiträgen hier mehr über ASP.Net MVC diskutieren. Also bleibt gespannt!