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

Νέες δυνατότητες στο MVC 6

Το μοτίβο ελεγκτή προβολής μοντέλου είναι ένα από τα πιο δημοφιλή μοτίβα σχεδιασμού που σας βοηθούν να δημιουργήσετε εφαρμογές που είναι ευκολότερες στη δοκιμή και τη συντήρηση. Το πλαίσιο Model View Controller (κοινώς γνωστό ως MVC) προωθεί την ευκολότερη δοκιμή και την επαναχρησιμοποίηση κώδικα. Το πλαίσιο ASP.Net MVC είναι χτισμένο πάνω από το χρόνο εκτέλεσης ASP.Net και ακολουθεί το σχέδιο σχεδίασης MVC. Σε αυτήν την ανάρτηση θα εξετάσω το σχέδιο σχεδίασης του Model View Controller και θα παρουσιάσω επίσης μια επισκόπηση των νέων δυνατοτήτων στο ASP.Net MVC 6.

Το πρότυπο σχεδίασης του Model View Controller όπως υποδηλώνει το όνομα, αποτελείται από τρία βασικά στοιχεία. Αυτά περιλαμβάνουν τα ακόλουθα:

  1. Μοντέλο - αυτό είναι το επίπεδο που αντιπροσωπεύει τα δεδομένα της εφαρμογής
  2. Προβολή - αντιπροσωπεύει την παρουσίαση ή το επίπεδο διεπαφής χρήστη
  3. Ελεγκτής - αυτό το επίπεδο περιέχει συνήθως την επιχειρηματική λογική της εφαρμογής σας

Το σχέδιο σχεδίασης του Model View Controller σάς δίνει τη δυνατότητα να απομονώσετε τις ανησυχίες και να κάνετε τον κώδικα της εφαρμογής σας πιο εύκολο στη δοκιμή και τη συντήρηση.

Η τελευταία έκδοση αυτού του πλαισίου είναι το MVC 6. Με το MVC 6 η εξάρτηση από το System.Web.dll έχει εξαλειφθεί - θα πρέπει να συμπεριλάβετε το χώρο ονομάτων Microsoft.AspNet.Mvc σε αντίθεση με το System.Web.Mvc που κάνατε στις προηγούμενες εκδόσεις του πλαισίου ASP.Net MVC. Η εξάρτηση από το System.Web έχει αφαιρεθεί καθώς ήταν πολύ ακριβό - το MVC 6 σας προσφέρει ένα πολύ πιο λιτό πλαίσιο, γρηγορότερο χρόνο εκκίνησης και μειωμένη κατανάλωση πόρων.

Το πλαίσιο MVC 6 έχει σχεδιαστεί για το cloud και ενσωματώνεται ως μέρος του ASP.Net 5 που έχει βελτιστοποιηθεί στο cloud, το οποίο με τη σειρά του θα ήταν διαθέσιμο ως μέρος του Visual Studio 2015. Το πλεονέκτημα ενός πλαισίου βελτιστοποιημένου cloud είναι ότι μπορείτε να έχετε διαφορετικά Οι εκδόσεις του CLR βρίσκονται δίπλα-δίπλα για διαφορετικούς ιστότοπους που εκτελούνται στο cloud. Με το ASP.Net 5, τα πλαίσια MVC και Web API έχουν ενοποιηθεί σε ένα μόνο μοντέλο προγραμματισμού. Έτσι, τα MVC, Web API και ο χρόνος εκτέλεσης ASP.Net συγχωνεύονται πλέον σε ένα ενιαίο μοντέλο προγραμματισμού. Το MVC 6 είναι αγνωστικός φιλοξενούμενος - εκτός από το ότι έχει τη δυνατότητα να φιλοξενείται σε IIS, μπορεί να φιλοξενείται επίσης. Το MVC 6 παρέχει επίσης υποστήριξη για την αφαίρεση OWIN και περιλαμβάνει Web API και ιστοσελίδες για την εξάλειψη της αλληλεπικάλυψης μεταξύ αυτών των τριών πλαισίων.

Το Dependency injection (επίσης γνωστό ως Inversion of Control) είναι ένα σχέδιο σχεδιασμού λογισμικού που χρησιμοποιείται για την εφαρμογή χαλαρών συζευγμένων, δοκιμασμένων και επαναχρησιμοποιήσιμων αντικειμένων στην εφαρμογή σας. Μπορείτε να αξιοποιήσετε τη διεπαφή IServiceProvider για να προσθέσετε το δοχείο έγχυσης προσαρμοσμένης εξάρτησής σας. Αυτή η διεπαφή παρέχει ένα επίπεδο αφαίρεσης σε σχέση με την πραγματική εφαρμογή του δοχείου έγχυσης εξάρτησης. Λάβετε υπόψη ότι έχετε ένα προεπιλεγμένο δοχείο έγχυσης εξάρτησης αλλά με περιορισμένη λειτουργικότητα. Μπορείτε να χρησιμοποιήσετε αυτό το προεπιλεγμένο δοχείο έγχυσης εξάρτησης εάν χρειάζεστε περιορισμένη λειτουργικότητα. Εάν χρειάζεστε πρόσθετη λειτουργικότητα, μπορείτε να δημιουργήσετε το δικό σας δοχείο έγχυσης εξάρτησης και να χρησιμοποιήσετε τη διεπαφή IServiceProvider για να προσθέσετε το προσαρμοσμένο δοχείο έγχυσης εξάρτησης που έχετε δημιουργήσει.

Σε αντίθεση με τα προηγούμενα αντίστοιχα, το MVC 6 υποστηρίζει ένα σύστημα διαμόρφωσης βάσει περιβάλλοντος - η ανάπτυξη εφαρμογών MVC 6 στο cloud είναι πλέον απλή. Όταν δημιουργείτε ένα νέο έργο MVC 6 στο Visual Studio, το νέο σύνολο αρχείων διαμόρφωσης που θα παρατηρήσετε περιλαμβάνει τα εξής:

  1. Config.json - αυτό συνήθως θα περιέχει τη διαμόρφωση της εφαρμογής
  2. Project.json - αυτό το αρχείο περιέχει τις πληροφορίες εξάρτησης του έργου
  3. Startup.cs - αυτό το αρχείο περιέχει την κλάση εκκίνησης που με τη σειρά της περιέχει μια μέθοδο διαμόρφωσης
  4. Global.json - αυτό το αρχείο περιέχει πληροφορίες σχετικά με τις αναφορές του έργου

Αφού δημιουργήσετε ένα έργο MVC 6 στο Visual Studio, το αρχείο Startup.cs μοιάζει με αυτό:

χρησιμοποιώντας το Microsoft.Owin;

χρησιμοποιώντας το Owin;

[συνέλευση: OwinStartupAttribute (typeof (.Startup))]

χώρος ονομάτων

{

εκκίνηση δημόσιας μερικής τάξης

    {

διαμόρφωση δημόσιου κενού (εφαρμογή IAppBuilder)

        {

        }

    }

}

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

διαμόρφωση δημόσιου κενού (εφαρμογή IApplicationBuilder)

    {   

var config = new Configuration (). AddJsonFile ("config.json"). AddEnvironmentVariables ();

    }

Σημειώστε την παράμετρο IApplicationBuilder (αυτή η παράμετρος περνά από τον κεντρικό υπολογιστή κατά την εκκίνηση της εφαρμογής) στη μέθοδο Configure. Δημιουργείται μια παρουσία κλάσης διαμόρφωσης και περνούν οι πηγές διαμόρφωσης Μπορείτε να έχετε οποιοδήποτε αριθμό πηγών διαμόρφωσης - κάθε πηγή διαμόρφωσης σχετίζεται με έναν πάροχο τιμών διαμόρφωσης. Αυτή η προσέγγιση διευκολύνει τη μεταφορά της εφαρμογής σας στο cloud, αν χρειαστεί, απρόσκοπτα.

Μπορείτε επίσης να χρησιμοποιήσετε τη μέθοδο ConfigureServices για να προσθέσετε υπηρεσίες Entity Framework στο κοντέινερ υπηρεσιών. Το παρακάτω απόσπασμα κώδικα δείχνει πώς θα μοιάζει μια τυπική μέθοδος ConfigureServices.

public void ConfigureServices (υπηρεσίες IServiceCollection)

        {

services.AddEntityFramework (). AddSqlServer (). AddDbContext ();

υπηρεσίες.AddMvc ();

// Άλλος κωδικός

        }

Μπορείτε επίσης να καθορίσετε τις πληροφορίες διαδρομής χρησιμοποιώντας τη μέθοδο επέκτασης UseMvc όπως φαίνεται στο απόσπασμα κώδικα παρακάτω.

            {

διαδρομές. MapRoute (

όνομα: "προεπιλογή",

πρότυπο: "{controller} / {action} / {id}",

προεπιλογές: νέο {controller = "", action = "Index"});

Σημειώστε ότι τα AddEntityFramework () και AddMvc () είναι μέθοδοι επέκτασης που ορίζονται στη διεπαφή IServiceCollection.

Θα γράψω περισσότερα άρθρα για το MVC 6 στις μελλοντικές αναρτήσεις ιστολογίου μου εδώ. Λοιπόν, μείνετε συντονισμένοι!

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