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

Κατανόηση του Microsoft .NET 5

Ένα από τα βασικά θέματα της στρατηγικής προγραμματιστών της Microsoft για το 2020 είναι ίσως καλύτερα να θεωρηθεί η μετατόπιση μεταξύ των γενεών. Είναι μια σχετικά ομαλή παράδοση, που πλαισιώνεται ως ενοποίηση παλαιών και νέων τρόπων εργασίας. Αλλά στο τέλος, είτε πρόκειται για Project Reunion, WinUI 3 είτε για την κυκλοφορία του .NET 5, η νέα τεχνολογία προχωρά μπροστά, αφήνοντας την παλιά πίσω.

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

Ένα νέο .NET για έναν νέο κόσμο

Όλοι αυτοί οι λόγοι συναντώνται κατά τη μετάβαση από το .NET Framework σε .NET 5. Πριν από είκοσι χρόνια όταν οριζόταν το αρχικό .NET Framework, δημιουργήσαμε μονολιθικές εφαρμογές διακομιστή-πελάτη σε στενά καθορισμένα περιβάλλοντα IT. Τώρα χτίζουμε έναν συνδυασμό ελαφριών κατανεμημένων μικροϋπηρεσιών και εφαρμογών για κινητά πολλαπλών πλατφορμών, χρησιμοποιώντας ταχέως μεταβαλλόμενες υποδομές. Είναι, παρά το κλισέ, ένας εντελώς νέος κόσμος.

Το .NET Core σχεδιάστηκε για αυτόν τον τρόπο εργασίας. cross-platform από την αρχή της ζωής του και είχε ως στόχο να υποστηρίξει νέες εφαρμογές για κινητές συσκευές, καθώς και παραδοσιακά πρότυπα και πρακτικές ανάπτυξης .NET. Πήρε όλο και περισσότερα API μέσω τριών σημαντικών εκδόσεων και όταν οι Βασικές βιβλιοθήκες .NET άρχισαν να προσφέρουν έναν κοινό στόχο για κώδικα που διευκόλυνε την κοινή χρήση έργων σε αυτό, το .NET Framework και το Xamarin.

.NET 5: Μια πορεία για μελλοντική ανάπτυξη

Τεχνικά αυτή η νέα έκδοση θα πρέπει να είναι .NET Core 4, αλλά η Microsoft παραλείπει έναν αριθμό έκδοσης για να αποφύγει τη σύγχυση με την τρέχουσα έκδοση του .NET Framework. Ταυτόχρονα, η μετάβαση σε έναν υψηλότερο αριθμό έκδοσης και η απόρριψη του Core από το όνομα δείχνει ότι αυτό είναι το επόμενο βήμα για όλους. Δύο έργα διατηρούν ακόμη το όνομα Core: ASP.NET Core 5.0 και Entity Framework Core 5, καθώς εξακολουθούν να υπάρχουν έργα παλαιού τύπου με τους ίδιους αριθμούς έκδοσης.

Είναι ένα σημαντικό ορόσημο, σηματοδοτώντας το σημείο όπου πρέπει να σκεφτείτε να ξεκινήσετε όλα τα νέα έργα στο .NET 5 και να μετακινήσετε τυχόν υπάρχοντα κώδικα από το .NET Framework. Παρόλο που η Microsoft δεν καταργεί την υποστήριξη από το .NET Framework, βρίσκεται σε λειτουργία συντήρησης και δεν θα λάβει νέες δυνατότητες σε μελλοντικές εκδόσεις σημείων. Όλα τα νέα API και η ανάπτυξη της κοινότητας θα βρίσκονται στο .NET 5 (και τη μακροπρόθεσμη υποστήριξη του 2021. NET 6).

Ορισμένες οικείες τεχνολογίες όπως οι φόρμες Web και το Ίδρυμα επικοινωνίας των Windows καταργούνται στο .NET 5. Εάν εξακολουθείτε να τις χρησιμοποιείτε, είναι καλύτερο να παραμείνετε στο .NET Framework 4 για τώρα και να σχεδιάσετε μια μετεγκατάσταση σε νεότερες, υποστηριζόμενες τεχνολογίες, όπως ως σελίδες ξυραφιών ASP.NET ή gRPC. Υπάρχουν σχέδια για κοινοτική υποστήριξη για εναλλακτικά πλαίσια που θα προσφέρουν παρόμοια API, αλλά η συνεργασία με νεότερες προσεγγίσεις θα βοηθήσει τον κώδικα μελλοντικής απόδειξης και θα διευκολύνει την εργασία σε πλατφόρμα.

Μια ελαφρώς συγκεχυμένη πτυχή του .NET 5 είναι πώς λειτουργεί με τις τυπικές βιβλιοθήκες .NET. Ωστόσο, δεν πρόκειται να φύγουν. Ο κωδικός NET 5 δεν χρειάζεται να τις αναφέρει απευθείας, καθώς είναι πλέον ένα υποσύνολο του .NET 5, πλαίσιο πλαισίου στόχευσης (TFM). Αυτό το νέο TFM αντικαθιστά το παλιό netcoreapp και καθαρό πρότυπο TFM, αν και αν γράφετε κώδικα που πρέπει να κοινοποιείται σε όλα τα πλαίσια, μπορείτε ακόμα να χρησιμοποιήσετε το .NET Standard 2.0 TFM για σκοπούς συμβατότητας. Στις περισσότερες περιπτώσεις, ωστόσο, είναι πιθανό να εργάζεστε μόνο σε περιβάλλον .NET 5, ώστε να μπορείτε να κολλήσετε με ασφάλεια σε ένα καθαρό5.0 Δήλωση TFM.

Ξεκινώντας με το .NET 5

Το .NET 5.0 συνεχίζει να φιλοξενεί το ίδιο γνωστό σύνολο γλωσσών, συμπεριλαμβανομένων των νέων εκδόσεων και των C # και F #. Αυτά προσθέτουν πολλές νέες δυνατότητες και έρχονται ως μέρος του Visual Studio 16.8 ή με την ενημερωμένη επέκταση κώδικα C # Visual Studio. Η Microsoft έχει μετακινήσει το πλαίσιο και όλες τις υλοποιήσεις του, όπως και το μεγαλύτερο μέρος του Mono, σε ένα μοναδικό αποθετήριο GitHub, ενοποιώντας την ανάπτυξη και διασφαλίζοντας ότι όλες οι εκδόσεις έχουν τις ίδιες βασικές δυνατότητες. Καθώς η Microsoft μεταβαίνει στο .NET 6, θα φέρει άλλες εφαρμογές υψηλότερου επιπέδου, συμπεριλαμβανομένου του Xamarin.

Το νέο .NET παραμένει βασισμένο στις τεχνικές μεταγλωττιστή ακριβώς στο χρόνο που αναπτύχθηκαν για το αρχικό Runtime Common Language. Το νέο CoreCLR συνεχίζει να βελτιώνει την απόδοση, ενώ εργάζεται σε πολλές αρχιτεκτονικές επεξεργαστών. Με την άφιξη των επεξεργαστών που βασίζονται στο M1 ARM της Apple, ο κωδικός που είναι γραμμένος στο .NET για macOS θα εκτελείται ως εγγενές δυαδικό υλικό τόσο σε υλικό που βασίζεται σε Intel όσο και σε ARM, οπότε ο κώδικας δεν χρειάζεται να περάσει από ένα δεύτερο επίπεδο προσομοίωσης. Η υποστήριξη για το ARM64 θα επιτρέπει την εφαρμογή εγγενών εφαρμογών .NET 5 σε Windows σε υλικό ARM, εκμεταλλευόμενοι τις δυνατότητες των επεξεργαστών SQ1 και SQ2 της Microsoft.

Ορισμένα σενάρια, όπως η Συνέλευση Ιστού και τα λειτουργικά συστήματα για κινητά, απαιτούν προ-μεταγλωττισμένο κώδικα και το .NET 5 προσφέρει έναν μεταγλωττιστή εκ των προτέρων παράλληλα με τα εργαλεία JIT. Ο μεταγλωττιστής AOT είναι πλέον διαθέσιμος για οποιοδήποτε περιβάλλον ανάπτυξης, και η ομάδα της Uno Platform βλέπει ήδη σημαντικές αυξήσεις ταχύτητας για την υποστήριξη Web Assembly, με τάξη 7 έως 15 φορές από τον προηγούμενο διερμηνέα γλωσσών Web Assembly.

Υπάρχουν σχέδια για τη διάθεση του μεταγλωττιστή AOT ως επιλογή για εφαρμογές που χρειάζονται γρήγορη εκκίνηση και χαμηλότερο αποτύπωμα μνήμης, για παράδειγμα σε έξυπνα ρολόγια περιορισμένου πόρου και υλικό IoT. Μια άλλη επιλογή είναι η ανάπτυξη ενός αρχείου. Όλα όσα χρειάζονται για μια εφαρμογή (συμπεριλαμβανομένου του χρόνου εκτέλεσης) ομαδοποιούνται σε ένα μόνο πακέτο, καθιστώντας ευκολότερη την ανάπτυξη εφαρμογών .NET σε κοντέινερ ή σε συστήματα εκτός Windows.

Το νέο .NET δεν πρέπει να εμφανίζεται μεμονωμένα. Πρόσθετες εξελίξεις γύρω από το Web Assembly με Blazor και την ανάπτυξη διεπαφής διεπαφής πλατφόρμας με MAUI (multiplatform app UI), είναι επίσης σημαντικές. Χρησιμοποιώντας έναν συνδυασμό αυτών των τεχνολογιών, πολύ λίγα δεν μπορούν να στοχευτούν με το .NET 5, από υλικό Raspberry Pi-class σε τηλέφωνα Android έως κοντέινερ που φιλοξενούνται στο Kubernetes και λειτουργούν με AWS και Azure.

Στις .NET 6 το 2021

Ένα σημαντικό σημείο είναι ότι αυτό είναι μόνο ένα ακόμη βήμα σε μια διαδικασία. Το .NET 5 είναι μια βασική τεχνολογία για το διαχωρισμό των API των Windows από το λειτουργικό σύστημα, τη συγχώνευση του Project Reunion των API WinRT και Win32 και τη μετάβαση σε WinUI 3 και MAUI ως επίπεδα UI. Μεγάλο μέρος αυτού του έργου συνεχίζεται με την κυκλοφορία του .NET 6 από το 2021 - στόχος για πολλά από αυτά τα έργα. Δεν χρειάζεται να περιμένετε το .NET 6 για να ξεκινήσετε με τις μετεγκαταστάσεις. Όσο πιο γρήγορα ξεκινήσετε, τόσο το καλύτερο, δίνοντάς σας χρόνο για να αντιμετωπίσετε τυχόν ζητήματα που ενδέχεται να προκύψουν.

Θα πρέπει να δείτε το .NET 5 ως πρώτο βήμα στο επόμενο σκέλος του ταξιδιού .NET, εκεί όπου πρέπει να αρχίσετε να παίρνετε όλο αυτόν τον παλαιού κώδικα και να αποφασίσετε τι είναι απαραίτητο να προωθήσετε με μεταφορά και ενημέρωση και τι πρέπει να αντικατασταθεί πλήρως . Καθώς το 2020 θα τελειώσει, είναι πιθανό να σχεδιάζετε το πρόγραμμα ανάπτυξης του 2021. Έχοντας αυτό κατά νου, το .NET 5 θα πρέπει να είναι ένας φακός που θα σας βοηθά να εστιάζετε σε ό, τι πρέπει να κάνετε για να διατηρήσετε το κτήμα του λογισμικού σας έτοιμο για ένα πολύ ταχύτερα μετακινούμενο μέλλον που δεν συνδέεται πλέον με τις εκδόσεις των Windows - ή στα Windows καθόλου.