Σήμερα, ανακοινώνουμε ότι η επόμενη έκδοση μετά το .NET Core 3.0 θα είναι .NET 5. Αυτή θα είναι η επόμενη μεγάλη κυκλοφορία της σειράς .NET.
Στο μέλλον θα υπάρχει μόνο ένα .NET , με το οποίο θα μπορείτε να αναπτύξετε Windows, Linux, macOS, iOS, Android, tvOS, watchOS και WebAssembly, μεταξύ άλλων.
Παρουσιάζουμε νέα API .NET, δυνατότητες χρόνου εκτέλεσης και δυνατότητες γλώσσας στο .NET 5.
Ξεκινώντας με το έργο .NET Core, προσθέσαμε περίπου πενήντα χιλιάδες API .NET Framework στην πλατφόρμα. Το .NET Core 3.0 καλύπτει τα περισσότερα από τα εναπομείναντα κενά δυνατοτήτων του .NET Framework 4.8, υποστηρίζοντας Windows Forms, WPF και Entity Framework 6. Το .NET 5 βασίζεται σε αυτήν την εργασία, αξιοποιώντας τις καλύτερες δυνατότητες του .NET Core και του Mono για τη δημιουργία μιας πλατφόρμας. Μπορείτε να το χρησιμοποιήσετε για όλο τον σύγχρονο κώδικα .NET.
Σκοπεύουμε να κυκλοφορήσουμε το .NET 5 τον Νοέμβριο του 2020 και να κυκλοφορήσουμε την πρώτη προεπισκόπηση το πρώτο εξάμηνο του 2020. Θα υποστηρίζεται σε μελλοντικές ενημερώσεις για το Visual Studio 2019, το Visual Studio για Mac και το Visual Studio Code.
.NET 5 = .NET Core vNext
Το .NET 5 είναι το επόμενο βήμα στο .NET Core. Το έργο στοχεύει στη βελτίωση της . ΚΑΘΑΡΑ:
- Δημιουργήστε ένα χρόνο εκτέλεσης και ένα πλαίσιο .NET που μπορεί να χρησιμοποιηθεί οπουδήποτε, με ενοποιημένη συμπεριφορά χρόνου εκτέλεσης και εμπειρία προγραμματιστή.
- Αξιοποιώντας πλήρως το .NET Core, . NET Framework, Xamarin και Mono για την επέκταση των δυνατοτήτων του .NET.
- Δημιουργώντας το προϊόν από μια ενιαία βάση κώδικα, οι προγραμματιστές (η Microsoft και η κοινότητα) μπορούν να συνεργαστούν και να επεκταθούν μαζί για να βελτιώσουν όλα τα σενάρια.
Αυτό το νέο έργο και η κατεύθυνση είναι μια σημαντική καμπή για το .NET. Με το .NET 5, ο κώδικας και τα αρχεία του έργου σας θα είναι τα ίδια ανεξάρτητα από τον τύπο της εφαρμογής που δημιουργείτε. Κάθε εφαρμογή έχει πρόσβαση στις ίδιες δυνατότητες χρόνου εκτέλεσης, API και γλώσσας. Περιλαμβάνει επίσης βελτιώσεις απόδοσης στο CoreFX, οι οποίες γίνονται σχεδόν καθημερινά.
Όλα όσα αγαπάτε στο .NET Core θα συνεχίσουν να υπάρχουν:
- Ανοιχτού κώδικα και προσανατολισμένο στην κοινότητα στο GitHub.
- Υλοποίηση πολλαπλών πλατφορμών.
- Υποστήριξη αξιοποίησης λειτουργιών για συγκεκριμένες πλατφόρμες, όπως φόρμες Windows και WPF στα Windows και εγγενείς συνδέσεις για κάθε εγγενή πλατφόρμα από το Xamarin.
- Υψηλή απόδοση.
- Εγκαταστήστε δίπλα-δίπλα.
- Μικρά αρχεία έργου (στυλ SDK).
- Συμβατό με διεπαφές γραμμής εντολών (CLI).
- Ενσωμάτωση Visual Studio, Visual Studio για Mac και Visual Studio Code.
Υπάρχουν επίσης μερικά νέα πράγματα:
- Θα έχετε περισσότερες επιλογές για την εμπειρία χρόνου εκτέλεσης (περισσότερα για αυτό παρακάτω).
- Η διαλειτουργικότητα Java θα είναι διαθέσιμη σε όλες τις πλατφόρμες.
- Πολλαπλά λειτουργικά συστήματα θα υποστηρίζουν τη διαλειτουργικότητα Objective-C και Swift.
- Το CoreFX θα επεκταθεί για να υποστηρίζει εκ των προτέρων (AOT) για .NET, μικρότερο αποτύπωμα και υποστήριξη για περισσότερα λειτουργικά συστήματα.
Θα κυκλοφορήσουμε το .NET Core 3.0 τον Σεπτέμβριο του τρέχοντος έτους, το .NET 5 τον Νοέμβριο του 2020 και, στη συνέχεια, σκοπεύουμε να κυκλοφορήσουμε μια κύρια έκδοση του . ΚΑΘΑΡΑ:
Παραλείψαμε την έκδοση 4 επειδή θα μπέρδευε τους χρήστες που είναι εξοικειωμένοι με το .NET Framework, το οποίο υπάρχει εδώ και πολύ καιρό με τη σειρά 4.x. Επιπλέον, θέλουμε να επικοινωνήσουμε ξεκάθαρα ότι το .NET 5 είναι το μέλλον της πλατφόρμας .NET. Ονομάζοντάς το .NET 5 το καθιστά την υψηλότερη έκδοση που έχουμε κυκλοφορήσει ποτέ.
Δράττουμε επίσης αυτήν την ευκαιρία για να απλοποιήσουμε την ονομασία. Πιστεύουμε ότι αν μόνο ένα .NET είναι το καλύτερο, δεν χρειαζόμαστε έναν διευκρινιστικό όρο όπως "Core". Το συντομότερο όνομα είναι μια απλοποίηση και μεταφέρει επίσης το μήνυμα ότι το .NET 5 έχει ομοιόμορφη λειτουργικότητα και συμπεριφορά. Φυσικά, μπορείτε να συνεχίσετε να χρησιμοποιείτε το όνομα ".NET Core" εάν το επιθυμείτε.
Εμπειρία χρόνου εκτέλεσης
Το Mono είναι η αρχική υλοποίηση πολλαπλών πλατφορμών του .NET. Ξεκίνησε ως εναλλακτική λύση ανοιχτού κώδικα στο .NET Framework και μετατράπηκε σε ειδικά για κινητά με τη δημοτικότητα των συσκευών iPhone/iOS και Android. Το Mono είναι ένας χρόνος εκτέλεσης που χρησιμοποιείται ως μέρος του Xamarin.
Το CoreCLR είναι ένας χρόνος εκτέλεσης που χρησιμοποιείται ως μέρος του .NET Core. Χρησιμοποιείται κυρίως για την υποστήριξη εφαρμογών cloud, συμπεριλαμβανομένης της μεγαλύτερης υπηρεσίας της Microsoft, και τώρα χρησιμοποιείται επίσης σε εφαρμογές επιτραπέζιου υπολογιστή Windows, IoT και μηχανικής εκμάθησης.
Συνοπτικά, οι χρόνοι εκτέλεσης .NET Core και Mono μοιράζονται πολλές ομοιότητες (εξάλλου, είναι και οι δύο χρόνοι εκτέλεσης .NE), αλλά έχουν επίσης πολύτιμα μοναδικά χαρακτηριστικά. Είναι πολύ λογικό να μπορείτε να επιλέξετε την εμπειρία χρόνου εκτέλεσης που θέλετε. Κάνουμε το CoreCLR και το Mono εναλλάξιμα μεταξύ τους. Θα το κάνουμε τόσο απλό όσο η δημιουργία ενός διακόπτη για να επιλέξετε ανάμεσα σε διαφορετικές επιλογές χρόνου εκτέλεσης.
Οι ακόλουθες ενότητες περιγράφουν την κύρια εστίαση που σκοπεύουμε να χρησιμοποιήσουμε για το .NET 5. Παρέχουν μια σαφή προοπτική για το πώς σκοπεύουμε να εξελίξουμε αυτούς τους δύο χρόνους εκτέλεσης μεμονωμένα και μαζί.
Υψηλή απόδοση και υψηλή παραγωγικότητα
Από την αρχή, το .NET βασίστηκε σε μεταγλωττιστές just-in-time (JIT) για τη μετατροπή του κώδικα ενδιάμεσης γλώσσας (IL) σε βελτιστοποιημένο κώδικα μηχανής. Από τότε, έχουμε δημιουργήσει έναν κορυφαίο στον κλάδο διαχειριζόμενο χρόνο εκτέλεσης που βασίζεται σε JIT που έχει πολύ υψηλή απόδοση και βελτιώνει επίσης την εμπειρία προγραμματιστή, κάνοντας τον προγραμματισμό γρήγορο και εύκολο.
Το JIT είναι ιδανικό για μακροχρόνια σενάρια cloud και πελατών. Είναι σε θέση να δημιουργήσουν κώδικα διαμορφωμένο για συγκεκριμένα μηχανήματα, συμπεριλαμβανομένων συγκεκριμένων εντολών CPU. Το JIT μπορεί επίσης να αναδημιουργήσει μεθόδους κατά το χρόνο εκτέλεσης, μια τεχνική που κάνει το JIT πιο γρήγορο, ενώ εξακολουθεί να έχει την επιλογή να δημιουργήσει εξαιρετικά βελτιστοποιημένες εκδόσεις κώδικα εάν γίνει μια μέθοδος που χρησιμοποιείται συχνά.
Οι προσπάθειές μας να κάνουμε το ASP.NET Core να λειτουργεί πιο γρήγορα στο σημείο αναφοράς Techpower είναι ένα εξαιρετικό παράδειγμα της δύναμης του JIT και της επένδυσής μας στο CoreCLR. Οι προσπάθειές μας να σκληρύνουμε το .NET Core για κοντέινερ αποτελούν επίσης απόδειξη της ικανότητας του χρόνου εκτέλεσης να προσαρμόζεται δυναμικά σε περιορισμένα περιβάλλοντα.
Τα εργαλεία προγραμματιστών είναι ένα άλλο εξαιρετικό παράδειγμα του πώς το JIT είναι πραγματικά υπέροχο, όπως τα εργαλεία παρακολούθησης dotnet ή η επεξεργασία και συνέχεια. Τα εργαλεία συχνά χρειάζεται να μεταγλωττίσουν και να φορτώσουν κώδικα πολλές φορές σε μία μόνο διαδικασία χωρίς επανεκκίνηση και πρέπει να το κάνουν πολύ γρήγορα.
Οι προγραμματιστές που χρησιμοποιούν .NET Core ή .NET Framework βασίζονται κυρίως στο JIT. Επομένως, η εμπειρία πρέπει να είναι οικεία.
Η προεπιλεγμένη εμπειρία για τα περισσότερα σενάρια εργασίας .NET 5 θα χρησιμοποιεί τον χρόνο εκτέλεσης CoreCLR που βασίζεται σε JIT. Δύο αξιοσημείωτες εξαιρέσεις είναι το iOS και ο πελάτης Blazor (συναρμολόγηση ιστού), καθώς και τα δύο απαιτούν εγγενή μεταγλώττιση εκ των προτέρων (AOT).
Γρήγορη εκκίνηση, μικρό εμβαδόν βάσης και χαμηλή χρήση μνήμης
Το μεγαλύτερο μέρος του έργου Mono έχει επικεντρωθεί σε κινητά και κονσόλες. Βασικό χαρακτηριστικό και αποτέλεσμα του έργου είναι ο μεταγλωττιστής .NET AOT που βασίζεται στο κορυφαίο στον κλάδο έργο μεταγλωττιστή LLVM. Ο μεταγλωττιστής Mono AOT επιτρέπει την ενσωμάτωση κώδικα .NET σε ένα εγγενές εκτελέσιμο αρχείο κώδικα που μπορεί να εκτελεστεί σε υπολογιστή, όπως και ο κώδικας C++. Οι εφαρμογές που έχουν μεταγλωττιστεί από το AOT μπορούν να εκτελούνται αποτελεσματικά σε μικρότερες τοποθεσίες και να ανταλλάσσουν απόδοση για εκκίνηση όταν χρειάζεται.
Το έργο Blazor χρησιμοποιεί ήδη το Mono AOT. Αυτό θα είναι ένα από τα πρώτα έργα που θα μεταβούν στο .NET 5. Το χρησιμοποιούμε ως μία από τις επιλογές για να αποδείξουμε αυτό το σχέδιο.
Υπάρχουν δύο τύποι λύσεων AOT:
- Απαιτεί μια λύση που έχει μεταγλωττιστεί 100% AOT.
- Ο περισσότερος κώδικας είναι μια λύση μεταγλωττισμένη από AOT, αλλά το JIT ή οι διερμηνείς μπορούν να χρησιμοποιηθούν για μοτίβα κώδικα που δεν είναι φιλικά προς το AOT (όπως τα γενόσημα). Το Mono AOT υποστηρίζει και τις δύο περιπτώσεις. Η Apple απαιτεί το πρώτο AOT για iOS και ορισμένες κονσόλες για λόγους ασφαλείας. Η δεύτερη μέθοδος είναι καλύτερη επιλογή γιατί προσφέρει τα πλεονεκτήματα του AOT και αποφεύγει ορισμένα από τα μειονεκτήματα.
Το .NET Native είναι ο μεταγλωττιστής AOT για εφαρμογές UWP των Windows και είναι επίσης ένα παράδειγμα του πρώτου τύπου AOT που αναφέρεται παραπάνω. Στη συγκεκριμένη υλοποίηση, περιορίζουμε το .NET API και τις δυνατότητες που μπορείτε να χρησιμοποιήσετε. Μάθαμε από αυτή την εμπειρία ότι οι λύσεις AOT πρέπει να καλύπτουν όλες τις πτυχές των API και των μοτίβων .NET.
Η μεταγλώττιση AOT εξακολουθεί να απαιτείται σε iOS, συναρμολόγηση ιστού και ορισμένες κονσόλες. Για εφαρμογές που απαιτούν πιο γρήγορη εκκίνηση ή χαμηλό αποτύπωμα, θα κάνουμε τη μεταγλώττιση AOT μια επιλογή.
Η γέννηση του έργου
Ξεκινήσαμε αυτό το έργο τον Δεκέμβριο του 2018 με μια τεχνική ομάδα στη Βοστώνη. Οι ηγέτες σχεδιασμού από την ομάδα .NET (Mono/Xamarin και .NET Core) και την Unity παρουσίασαν μια ποικιλία τεχνικών δυνατοτήτων και αρχιτεκτονικών κατευθύνσεων.
Τώρα προχωράμε αυτό το έργο ως ομάδα με ένα σύνολο παραδοτέων. Έχουμε σημειώσει μεγάλη πρόοδο σε μια σειρά από έργα από τον Δεκέμβριο:
- Ορίζεται ένα ελάχιστο επίπεδο που καθορίζει το χρόνο εκτέλεσης <-> διαχειριζόμενο επίπεδο κώδικα με στόχο την επίτευξη του >99% του δημόσιου κώδικα CoreFX.
- Το MonoVM μπορεί πλέον να χρησιμοποιεί το CoreFX και τις βιβλιοθήκες κλάσεων του.
- Εκτελέστε όλες τις δοκιμές CoreFX στο MonoVM με την υλοποίηση CoreFX.
- Εκτελέστε ASP.NET εφαρμογές Core 3.0 με το MonoVM.
- Εκτελέστε το MonoDevelop στο CoreCLR και, στη συνέχεια, εκτελέστε το Visual Studio για Mac.
Μετεγκατάσταση σε ένα μόνο αρχείο . Η υλοποίηση του .NET εγείρει ορισμένα σημαντικά ερωτήματα: Ποιο θα είναι το πλαίσιο-στόχος; Είναι οι ίδιοι κανόνες συμβατότητας πακέτων NuGet; Ποιους φόρτους εργασίας πρέπει να υποστηρίζει το .NET 5 SDK; Πώς μπορώ να κωδικοποιήσω μια συγκεκριμένη αρχιτεκτονική; Χρειαζόμαστε ακόμα το .NET Standard; Εργαζόμαστε πάνω σε αυτά τα ζητήματα τώρα και σύντομα θα μοιραστούμε το έγγραφο σχεδιασμού για να το διαβάσετε και να υποβάλετε σχόλια.
Επίλογος
Το έργο .NET 5 είναι μια σημαντική και συναρπαστική νέα κατεύθυνση για το .NET. Θα δείτε το .NET να γίνεται πιο απλό, αλλά και με ένα ευρύτερο φάσμα δυνατοτήτων και βοηθητικών προγραμμάτων. Όλες οι νέες εξελίξεις και δυνατότητες θα αποτελούν μέρος του .NET 5, συμπεριλαμβανομένων των νέων εκδόσεων C#.
Βλέπουμε ένα λαμπρό μέλλον όπου μπορείτε να χρησιμοποιήσετε τα ίδια API και γλώσσες .NET για να στοχεύσετε ένα ευρύ φάσμα τύπων εφαρμογών, λειτουργικών συστημάτων και αρχιτεκτονικών πυριτίου. Στο Visual Studio, το Visual Studio για Mac, το Visual Studio Code, το Azure DevOps ή τη γραμμή εντολών, είναι εύκολο να αλλάξετε τη ρύθμιση παραμέτρων κατασκευής για να δημιουργήσετε διαφορετικές εφαρμογές.
Αρχικός σύνδεσμος:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
|