Διαφορά μεταξύ του πυρήνα ASP.NET και του ASP.NET MVC 5

Ο καλύτερος τρόπος για να μάθετε κάτι νέο σε οποιαδήποτε τεχνολογία είναι να τη συγκρίνετε με την προηγούμενη έκδοση. Εδώ θα χρειαστεί να δημιουργήσετε μια εφαρμογή δείγματος και να συγκρίνετε τη δομή της λύσης του έργου μεταξύ τους για να κατανοήσετε τη διαφορά μεταξύ του ASP.NET Core (MVC) και του ASP.NET MVC 5.

Λοιπόν, έχουμε μεγάλη διαφορά μεταξύ του ASP.NET Core MVC και του ASP.NET MVC 5, οπότε ας τις εξερευνήσουμε χωρίς να γράψουμε κώδικα.

Το ASP.NET Core είναι ένα βολικό και σύνθετο σύστημα για τη δημιουργία εφαρμογών ιστού και cloud. Ο πυρήνας ASP.NET είναι μια πλήρως ανοικτή πηγή.

Έχοντας μια πλήρη ανοιχτή πηγή δεν είναι εύκολο έργο, η Microsoft έχει κάνει μεγάλη δουλειά για να λειτουργήσει σε Windows, Mac, Linux OS.

Μια γρήγορη ματιά στις σημαντικές βελτιώσεις του ASP.NET

  • Δημιουργήστε και χρησιμοποιήστε διαγώνιες πλατφόρμες ASP.NET σε Windows, Mac και Linux
  • Δημιουργήθηκε στο .NET Core, το οποίο υποστηρίζει πραγματικά παράπλευρες εκδόσεις της εφαρμογής
  • Νέα εργαλεία που απλοποιούν τη σύγχρονη παραγωγή ιστού
  • Μια επίπεδη συλλογή web για το MVC και το Web API
  • Σύνταξη με βάση το σύννεφο
  • Ενσωματωμένη υποστήριξη για τη δημιουργία και τη χρήση πακέτων NuGet
  • Υποστήριξη της καθιερωμένης έγχυσης εξάρτησης
  • Δυνατότητα φιλοξενίας υπηρεσιών IIS ή αυτο-φιλοξενίας στη δική σας διαδικασία

Αρχικά δημιουργήστε το ASP.NET Core MVC και το ASP.NET MVC 5 χρησιμοποιώντας το Visual Studio 2015 / VS 2017 Community Edition.

Διαφορά 1 - Μια επίπεδη συλλογή ιστού για το ASP.NET Core MVC και το Web API

Το ASP.NET MVC 5 μας επιτρέπει να επιλέγουμε το API MVC ή Web ή και τα δύο κατά τη δημιουργία εφαρμογών ιστού. Αυτό οφείλεται στο γεγονός ότι η διαδικτυακή σουίτα για το MVC 5 και το Web API δεν ήταν το ίδιο. Το Core MVC Core έχει τώρα μια επίπεδη σουίτα Ιστού για API MVC και Web. Η παρακάτω εικόνα εμφανίζει το GREYED για το MVC και το Web API, ενώ το MVC 5 σας επιτρέπει να προσθέσετε Web APIs.

Διαφορά 2 - Αλλαγές στη δομή του έργου (λύση)

Εάν δείτε το ASP.NET Core MVC Searcher στα δεξιά, δεν υπάρχει Web.config, Global.asax. Τότε πρόκειται για το πώς να ξεκινήσετε με τις ρυθμίσεις διαμόρφωσης, τους κωδικούς επαλήθευσης και την εφαρμογή. appsettings.json, τα προσαρμοσμένα αρχεία ρυθμίσεων είναι το ASP.NET MVC 5. Ορισμένα αρχεία που τρέχουν αρχεία που λείπουν. Αν κοιτάξετε φακέλους στους φακέλους, υπάρχουν πολλές αλλαγές.

Διαφορά 3 - βασικοί στόχοι ASP.NET .NET και .NET Basic

Έχουμε εργαστεί σε ένα πλήρες. NET πλαίσιο, το οποίο είναι μια μεγάλη εμπειρία, και εξακολουθεί να είναι. Τότε τι είναι ο .NET πυρήνας;

.NET Core είναι μια κοινή πλατφόρμα ανάπτυξης που υποστηρίζεται από την κοινότητα .NET στη Microsoft και στο GitHub. Πρόκειται για μια πλατφόρμα που υποστηρίζει Windows, macOS και Linux και μπορεί να χρησιμοποιηθεί σε σενάρια συσκευών, cloud και εσωτερικών / IoT.

Ω, cross platform !! Ναι, τώρα αναπτύσσουμε εφαρμογές ASP.NET Core web στον πυρήνα .NET και μπορούμε να δουλέψουμε σε Windows, Linux ή Mac. Περιμένετε μέχρι να τελειώσει, μπορούμε να χρησιμοποιήσουμε τον κώδικα του Visual Studio όχι μόνο σε λειτουργικό σύστημα Windows αλλά σε Linux, Mac ή σε οποιονδήποτε άλλο επεξεργαστή κώδικα όπως Vim, Atom, Sublime.

Διαφορά 4 - Οι βασικές εφαρμογές ASP.NET δεν χρειάζονται υπηρεσία IIS για φιλοξενία

Μην εκπλαγείτε, ο σκοπός του ASP.NET Core είναι να είναι μια διασταυρούμενη πλατφόρμα που χρησιμοποιεί το .NET Core. Έχοντας αυτό υπόψη, η Microsoft αποφάσισε να αναπτύξει προγράμματα ASP.NET Core όχι μόνο σε IIS, αλλά μπορεί είτε να αναπτύξει μόνοι του είτε να χρησιμοποιήσει τον διακομιστή Nginx στο Linux. Το Kestrel θα διαθέτει έναν εσωτερικό διακομιστή ιστού για επεξεργασία αιτήματος

Η διαφορά 5 είναι ο φάκελος wwwroot για στατικά αρχεία

Ο φάκελος Wwwroot αντιπροσωπεύει τη ρίζα της εφαρμογής ιστού όταν εκτελείται στον διακομιστή ιστού. Τα στατικά αρχεία, όπως το config.json που δεν είναι διαθέσιμα στο Wwwroot, δεν μπορούν ποτέ να αποκτήσουν πρόσβαση και δεν χρειάζεται να δημιουργήσετε ειδικούς κανόνες για να αποκλείσετε την πρόσβαση σε ευαίσθητα αρχεία. Αυτά τα αρχεία μπορούν να είναι απλά HTML, Javascript, CSS, εικόνες, βιβλιοθήκη κλπ.

Εκτός από τα πλεονεκτήματα ασφαλείας, ο φάκελος wwwroot απλοποιεί επίσης κοινές εργασίες όπως συλλογή και ελαχιστοποίηση, οι οποίες μπορούν τώρα να ενσωματωθούν στην τυπική διαδικασία δημιουργίας και να αυτοματοποιηθούν χρησιμοποιώντας εργαλεία όπως το Ground. Μπορείτε επίσης να μετονομάσετε το φάκελο Wwwroot.

Διαφορά 6 - Αναβάθμιση συστήματος διαχείρισης πακέτων από διακομιστές και πελάτες.

Οποιοσδήποτε κατασκευαστής .NET μπορεί να γνωρίζει ότι αποθηκεύει όλα τα πακέτα DLL, NuGet στο φάκελο Links Links, ειδικά για το .NET Framework. Χρησιμοποιήστε την εμπειρία στο Visual Studio IDE και εγκαταστήστε το λογισμικό ASP.NET Core σε Windows, Linux ή Mac χρησιμοποιώντας το .NET Core.

Διαχείριση συνδέσεων μέσω διακομιστή. Η διαχείριση εξάρτησης πελατών είναι πιο σημαντική επειδή η πλευρά του πελάτη διαφέρει από την πλευρά του διακομιστή στα πακέτα.

Από την πλευρά του πελάτη υπάρχουν σίγουρα πλαίσια jQuery, Bootstrap, Ground, AngularJS, Backbone και άλλα πλαίσια Javascript, εικόνες, αρχεία στυλ. Η διαχείριση πακέτων από την πλευρά του πελάτη στην κοινότητα ανοιχτού κώδικα έχει δύο ονόματα, το LibMan (πρόσφατα άνοιξε) και το NPM. Είναι μέρος των "εξαρτήσεων".

Διαφορά 7 - Τα πακέτα από την πλευρά του διακομιστή σάς επιτρέπουν να εξοικονομήσετε χώρο στον πυρήνα ASP.NET

Έχουμε χρησιμοποιήσει το NuGet Package Manager για να προσθέσουμε πληροφορίες σε συναντήσεις, βιβλιοθήκες, πλαίσια ή άλλα πακέτα. Θα γίνει λήψη από το NuGet, το οποίο θα δημιουργήσει το φάκελο "Πακέτα" στη δομή του έργου.

Υπάρχουν 30 παραδείγματα εφαρμογών ASP.NET, τα οποία χρησιμοποιούν πακέτα NuGet για συνδέσμους, έκαστο των περίπου 70 MB χώρου στο δίσκο, οπότε χρησιμοποιούμε σχεδόν 2GB δίσκου για να διατηρήσουμε όλα τα πακέτα τα ίδια. Μερικοί προγραμματιστές SMART γνωρίζουν αυτό το πρόβλημα και έχουν κάποιες λύσεις.

Ο ASP.NET Core πρέπει να αποθηκεύσει όλα τα αναπτυξιακά πακέτα του στο φάκελο Χρήστες και κατά τη δημιουργία προγραμμάτων ASP.NET Core, το Visual Studio προσφέρθηκε να τα ανακατευθύνει από το φάκελο χρηστών. Αυτή η δυνατότητα είναι γνωστή ως το Runtime Store για το .NET Core 2. Ακόμα και αν έχετε 100 προγράμματα ASP.NET Core τώρα, όλα αναφέρονται στο dotnet σε ένα φάκελο χρήστη που είναι μόνο μερικά MB μακριά.

Διαφορά 8 - Ενσωματωμένη υποστήριξη εξάρτησης (DI) για τον πυρήνα ASP.NET

Η έγχυση αδελφοποίησης (DI) επιτυγχάνει έναν χαλαρό και επαληθεύσιμο κώδικα, ο οποίος είναι σημαντικός επειδή βοηθάει στον έλεγχο των μπλοκ γραφής. Στην εφαρμογή ASP.NET MVC 5/4 ή σε κλασσικές εφαρμογές ASPX, χρησιμοποιούμε χωριστά δοχεία DI όπως Unity, AutoFac, StructuralMap και άλλα. Έπρεπε να οικοδομήσουμε το σχέδιό μας να χρησιμοποιήσουμε το DI, την πρόσθετη δύναμή του.

Τώρα δεν υπάρχει ένεση εξάρτησης στα κύρια προγράμματα του ASP.NET, δηλαδή, πονοκεφάλους για το DI. Απλά δημιουργήστε ορισμένες υπηρεσίες και ετοιμαστείτε να χρησιμοποιήσετε το DI. Στην πραγματικότητα, η βασική παράμετρος MVC έχει εγκατεστημένο DI, ανοίγει το Startup.cs και αναζητά τη μέθοδο "ConfigureServices (υπηρεσίες IServiceCollection)".

Ο κύριος σκοπός του είναι να ρυθμίσει τις παραμέτρους EF, Authentication, MVC και χειρόγραφες προσαρμοσμένες υπηρεσίες όπως το IEmailServer και το ISmsSender.

Διαφορά 9 - Βασικά μυστικά χρηστών ASP.NET

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

Μπορούμε να περάσουμε λίγο αργότερα. Οι εφαρμογές βασισμένες σε πυρήνα ASP.NET έχουν τώρα μια φιλική προς το χρήστη έννοια. Το εργαλείο εμπιστευτικού διαχειριστή παρέχει έναν κοινό μηχανισμό αποθήκευσης ευαίσθητων δεδομένων για επεξεργασία έξω από το δέντρο έργου σας.

Το Secret Manager δεν κρυπτογραφεί αποθηκευμένα μυστικά και δεν πρέπει να θεωρείται αξιόπιστο κατάστημα. Είναι μόνο για ανάπτυξη.

Υπάρχουν πολλές διαφορές σε σχέση με το ASP.NET MVC 5/4, αλλά αν βρούμε αυτές τις διαφορές, σημαίνει ότι η Microsoft έχει σημειώσει κάποια πρόοδο όσον αφορά τη μετατροπή της σε open source χωρίς να γράψει έναν μόνο κώδικα.

Αρχικά δημοσιεύθηκε στη διεύθυνση www.mithunvp.com.