Προγραμματισμός

Βέλτιστες πρακτικές στο ASP.Net MVC

Αυτή είναι μια άλλη ανάρτηση για τη σειρά άρθρων σχετικά με τις βέλτιστες πρακτικές. Σε αυτό, θα παρουσιάσω τις βέλτιστες πρακτικές που πρέπει να ακολουθούνται ενώ δουλεύω με το πλαίσιο ASP.Net MVC.

Ποιο είναι το μοτίβο σχεδιασμού MVC;

Πρώτα απ 'όλα, ας ρίξουμε μια γρήγορη περιήγηση στα βασικά. Τι είναι το σχέδιο σχεδίασης MVC (Model View Controller); Γιατί είναι απαραίτητο; Λοιπόν, η διεπαφή χρήστη συχνά περιέχει πολλή ακαταστασία κώδικα κυρίως λόγω της περίπλοκης λογικής που πρέπει να χειριστεί. Τα μοτίβα παρουσίασης έχουν σχεδιαστεί πρωτίστως με έναν στόχο κατά νου: μείωση του σύνθετου κώδικα στο επίπεδο παρουσίασης και καθιστώντας τον κώδικα στη διεπαφή χρήστη καθαρό και διαχειρίσιμο.

Το πλαίσιο MVC σάς βοηθά να δημιουργήσετε εφαρμογές που είναι ευκολότερες για δοκιμή και συντήρηση. Αποτελείται από τρία βασικά στοιχεία, δηλαδή, το Μοντέλο (αντιπροσωπεύει τα δεδομένα της εφαρμογής και τη λογική της επιχείρησης), την Προβολή (αυτό αντιπροσωπεύει το επίπεδο παρουσίασης) και τον Ελεγκτή (αυτό αντιπροσωπεύει συνήθως την επιχειρηματική λογική της εφαρμογής σας). Το σχέδιο σχεδίασης MVC σάς δίνει τη δυνατότητα να απομονώσετε τις ανησυχίες και να κάνετε τον κώδικα της εφαρμογής σας πιο εύκολο στη δοκιμή και τη συντήρηση.

Ο ελεγκτής

Θα πρέπει να διαγράψετε τα αρχεία κώδικα επίδειξης - το αρχείο AccountController.cs καθώς δεν θα το χρειαζόταν ούτως ή άλλως. Το AccountController έχει δημιουργηθεί από προεπιλογή και δεν χρειάζεται - απλώς διαγράψτε το! Θα πρέπει επίσης να μειώσετε τη σύνδεση μεταξύ των ελεγκτών σας και άλλων εξαρτήσεων, όπως το στοιχείο πρόσβασης δεδομένων, τα μπλοκ εξαίρεσης και καταγραφής κ.λπ. Οι ελεγκτές σας πρέπει να είναι όσο το δυνατόν πιο λεπτοί και να περιέχουν πολύ λιγότερο κώδικα. Στην ιδανική περίπτωση, θα πρέπει απλώς να εκχωρήσετε τη ροή ελέγχου σε κάποιο στοιχείο επιχειρησιακής λογικής εντός της κλάσης ελεγκτή. Ο ελεγκτής σε μια εφαρμογή ASP.Net MVC θα πρέπει να απομονωθεί από το επίπεδο πρόσβασης δεδομένων - ο ελεγκτής είναι υπεύθυνος να αποδίδει την κατάλληλη προβολή κατά το χρόνο εκτέλεσης βάσει συγκεκριμένης ενέργειας.

Ομαδοποίηση και ελαχιστοποίηση των αρχείων σεναρίου και CSS

Πρέπει να ομαδοποιήσετε τους πόρους που πρέπει να χρησιμοποιεί η εφαρμογή σας όπως αρχεία CSS σε έναν πόρο με δυνατότητα λήψης. Αυτή η διαδικασία είναι επίσης γνωστή ως ομαδοποίηση. Θα πρέπει επίσης να ελαχιστοποιήσετε τα σενάρια και τα αρχεία CSS που θα χρησιμοποιούσατε για να αφαιρέσετε τους περιττούς χαρακτήρες, τα σχόλια και τους λευκούς χαρακτήρες.

Το παρακάτω απόσπασμα κώδικα απεικονίζει πώς μπορείτε να δημιουργήσετε ένα αντικείμενο δέσμης για το CSS που χρειάζεται η εφαρμογή σας.

δημόσια στατικά άκυρα RegisterBundles (

Πακέτα συλλογής BundleCollection)

{

bundles.Add (νέο StyleBundle ("~ / Content / Styles")

. Συμπεριλάβετε ("~ / Content / Styles / bootstrap.css",

"~ / Περιεχόμενο / Στυλ / .css"));

}

Ο παρακάτω κώδικας δείχνει πώς μπορείτε να ομαδοποιήσετε τα αρχεία σεναρίων που πρέπει να χρησιμοποιήσετε στην εφαρμογή σας.

.Περιλαμβάνω(

"~ / Περιεχόμενο / Σενάρια / -1.0.0.js",

"~ / Περιεχόμενο / Σενάρια / νοκ-άουτ-3.0.0.js")

);

Σημειώστε πώς χρησιμοποιείται η κλάση ScriptBundle για τη δέσμευση του περιεχομένου σεναρίου. Ομοίως, η κλάση StyleBundle (όπως φαίνεται στο προηγούμενο παράδειγμα) χρησιμοποιείται για τη δέσμευση του περιεχομένου css που συζητήσαμε νωρίτερα.

Θα πρέπει επίσης να απενεργοποιήσετε τον έλεγχο των δρομολογίων, εκτός εάν είναι απολύτως απαραίτητο, ώστε να εξαλειφθούν οι περιττές δαπάνες επεξεργασίας.

Προβολές

Θα πρέπει να χρησιμοποιείτε έντονα δακτυλογραφημένες προβολές όπου είναι δυνατόν - θα συνιστούσα να στέλνετε POCO στις προβολές στην εφαρμογή ASP.Net MVC. Θα πρέπει να κάνετε όλη την επεξεργασία στους ελεγκτές σας και όχι στις προβολές - οι προβολές πρέπει να είναι λιτές και να μην περιέχουν κώδικα επιχειρηματικής λογικής. Θα πρέπει να χρησιμοποιείτε ελάχιστο ποσό TagHelpers στους βοηθούς σας Html και θα πρέπει να θυμάστε να χρησιμοποιείτε το HtmlHelpers μόνο όταν χρειάζεστε αποφάσεις υπό όρους για τη λήψη των δεδομένων μέσω των προβολών. Εάν υπάρχει ανάγκη μιας δήλωσης υπό όρους στην άποψή σας, θα πρέπει να τη μετακινήσετε σε HtmlHelper. Το HtmlHelpers δεν πρέπει ποτέ να περιέχει κώδικα που επικαλείται το επίπεδο πρόσβασης δεδομένων, δηλ. Δεν πρέπει να γράφετε λογική πρόσβασης δεδομένων μέσα στο HtmlHelpers. Δεν πρέπει να βάλετε κώδικα JavaScript στην προβολή σας - διαχωρίστε τους σε ξεχωριστά αρχεία σεναρίου.

Κρυφή μνήμη των δεδομένων σας

Για να βελτιώσετε την απόδοση και την ανταπόκριση της εφαρμογής σας, μπορείτε να επωφεληθείτε από την προσωρινή αποθήκευση. Η προσωρινή αποθήκευση είναι μια τεχνική που σας επιτρέπει να αποθηκεύετε σχετικά παλιότερα δεδομένα στη μνήμη, ώστε να μειώσετε την κατανάλωση εύρους ζώνης δικτύου. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να χρησιμοποιήσετε την προσωρινή αποθήκευση στους ελεγκτές σας.

δημόσια τάξη Ελεγκτής: Ελεγκτής

{

[OutputCache (Διάρκεια = 3600,

VaryByParam = "κανένας")]

δημόσιο Δείκτης ActionResult ()

    {

    }

}

Θα πρέπει επίσης να αποθηκεύσετε προσωρινά την προσωρινή μνήμη σελίδες που περιέχουν κοινόχρηστα δεδομένα και δεν χρειάζεται να έχετε εξουσιοδότηση. Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να το κάνετε αυτό.

[OutputCache (Διάρκεια = 3600)]

δημόσιο Δείκτης ActionResult ()

{

Επιστροφή Προβολή ("Ευρετήριο", myDataObject);

}

Το σχέδιο σχεδίασης MVC βοηθά στην εφαρμογή ενός καθαρού διαχωρισμού ανησυχιών μεταξύ των μοντέλων, των προβολών και των ελεγκτών εντός της εφαρμογής σας. Αυτό βοηθά τον κώδικά σας να δοκιμάζεται και να συντηρείται εύκολα. Έχω συζητήσει ορισμένα σημαντικά σημεία που μπορείτε να λάβετε υπόψη όταν συνεργάζεστε με το ASP.Net MVC για τη δημιουργία εφαρμογών υψηλής απόδοσης, ευκολότερης δοκιμής, συντήρησης και κλίμακας. Θα συζητήσω περισσότερα για το ASP.Net MVC στις επόμενες δημοσιεύσεις εδώ. Λοιπόν, μείνετε συντονισμένοι!

$config[zx-auto] not found$config[zx-overlay] not found