בנובמבר 2022, מיקרוסופט שחררה גרסה חדשה של .NET 7, עם שיפור בביצועים ותכונות חדשות רבות עבור C#, ASP.NET Core, Blazor, .NET MAUI, Web APIs, WPF, WinForms ועוד רבים אחרים. בואו נעבור על השינויים המעניינים ביותר.

.NET 7 ממשיך במסלול

.NET היא פלטפורמת המפתחים בקוד פתוח של Microsoft לבניית סוגים שונים של אפליקציות עבור מערכות הפעלה שונות. התשתית ממשיכה להתפתח כפלטפורמת פיתוח מאוחדת לבניית מגוון רחב של אפליקציות שיכולות לפעול במערכות הפעלה שונות, תוך הקלה על המפתחים ללמוד. C# 11 משוחררת יחד עם .NET 7 עם תכונות חדשות נהדרות ושיפורים בביצועים. לגרסה החדשה של .NET יש פוטנציאל רב בתחומים שונים.

Microsoft .NET promotional slide titled "Build anything with a unified platform." A central .NET logo connects via dotted lines to seven application targets: Cloud, Web, Desktop, Mobile, Gaming, IoT, and AI. Below, three supporting categories are shown — Tools (Visual Studio Family, Visual Studio Code, CLI), Operating System (Windows, Linux, macOS), and Ecosystem (NuGet, GitHub, components and library vendors).

מקור: Microsoft .NET conf 2022

אימות הוא חלק חיוני ב-APIs. בשל מורכבותו, גרסה חדשה מציעה תצורת אימות והרשאה מפושטת. אימות מפושט דורש קריאה למתודה אחת בלבד, מה שמקל על עבודת המפתחים.

קונטיינרים הם אחת הדרכים הקלות ביותר לארוז ולשלוח אפליקציות בענן על כל פלטפורמה, ולכן השיפור בתמיכת .NET בקונטיינרים שימושי מאוד. .NET 7 מציע תמיכה מובנית בקונטיינרים, מה שמאפשר ליצור ולפרסם קונטיינרים בקלות באמצעות CLI ללא שימוש בכלים חיצוניים כמו Docker for desktop או אחרים.

ASP.NET Core תומך בפרוטוקולים ובתקנים העדכניים ביותר. עם שחרור .NET 7 נתמכים פרוטוקול HTTP/3 ו-Web Sockets over HTTP/2. כמו כן, נוספה תמיכה ניסיונית חדשה בפרוטוקול WebTransport, שניתן להשתמש בה לריבוב זרמים על אותה חיבור HTTP/3.

קוד C# משותף מועבר בדרך כלל בין הפרויקטים באמצעות Class Library כקובץ .dll או כחבילת nuget. ניתן לשתף רכיבי ASP.NET Core Razor ומודלים של נתונים ב-Razor Class Library, כך שנוכל להשתמש בהם בפרויקטים אחרים והם יכולים לשמש לקוחות Blazor server, WebAssembly ו-.NET MAUI.

Architecture diagram showing the Razor Class Library as the top layer, containing Razor components, Controllers, Razor views, View components, Page models, and Data models. Below it, two consumer platforms are shown: ASP.NET Core (used by Blazor Server and Blazor WebAssembly) and .NET MAUI (used by .NET Android, .NET Mac, .NET iOS, and WinUI).

לכל המפתחים המשתמשים ב-ASP.NET המעוניינים לעבור ל-ASP.NET Core, קיים כלי חדש ל-Visual Studio בשם Incremental upgrade tool המאפשר העברת נקודות קצה אחת לאחת, כך שנוכל לתחזק ולפתח את הגרסה הישנה תוך כדי השדרוג.

Entity Framework Core 7 – מה חדש?

גרסה חדשה של Entity Framework Core 7 שוחררה עם תמיכה בעמודות JSON, המאפשרת מיפוי אגרגטים הבנויים מטיפוסים למסמכי JSON. התכונה החדשה מספקת את היכולת למפות אגרגט לעמודת JSON במסד הנתונים SQL Server בקריאת מתודה אחת בלבד. אנו יכולים להשתמש בשאילתות LINQ על האגרגטים שיתורגמו לשאילתות SQL כדי להתעמק ב-JSON.

Entity Framework Core 7 עוקב אחר שינויים בישויות, וכאשר נקראת המתודה SaveChanges, הוא מעדכן ישויות ששונו במסד הנתונים. EF7 מציג את המתודות החדשות ExecuteUpdate ו-ExecuteDelete, שיכולות לערוך או למחוק ישויות ללא שימוש ב-change tracker ויפעלו ביעילות רבה יותר.

EF7 גם משפר את הביצועים של שיטות SaveChanges ו-SaveChangesAsync שמייצרות שאילתות SQL מהירות יותר. הגרסה החדשה מציגה תמיכה במיפוי פקודות insert, update ו-delete לנהלים מאוחסנים.

מחרוזות חיבור של SQL Server ב-.NET 7 כוללות ערך ברירת מחדל של Encrypt המוגדר כ-true, בעוד שבגרסאות קודמות ערך ברירת המחדל היה false. הדבר מבטיח שהשרת מוגדר עם תעודה תקפה והלקוח חייב לסמוך על תעודה זו, אחרת תיזרק חריגת SqlException.

.NET Blazor

ישנם שיפורים רבים בבניית Web UI עם ASP.NET Core ו-Blasor. עם Blazor אנו יכולים ליצור Web UI ב-C#, ורכיבים אלה יכולים להיות משותפים בין אפליקציות אינטרנט, מובייל ושולחן עבודה. אנו יכולים להשתמש ברכיבי Blazor באפליקציות קיימות מבוססות JavaScript עם התמיכה החדשה ב-custom elements.

צוות Blazor יצר תכונה חדשה בשם Blazor hybrid המאפשרת לרכיבי Razor לפעול באפליקציית שולחן עבודה (Windows Forms), באינטרנט (WPF) או באפליקציה ניידת מקורית (.NET MAUI). רכיבי Razor אינם פועלים בדפדפן. הם מרונדרים לרכיב Web View מוטמע ויש להם גישה ליכולות המכשיר המקוריות עם סגנונות רכיבים המותאמים לפלטפורמה.

רוב התכונות החדשות יעבדו באותו אופן בכל מודלי האחסון – Blazor server, WebAssembly או היברידי עם .NET MAUI, אך חלק מהתכונות ייחודיות למודל אחסון מסוים.

QuickGrid הוא הפיצ'ר החדש עבור כל מודלי האחסון, הזמין כתצוגה מקדימה. הוא אינו מחליף רשתות אחרות, אלא מספק סט בסיסי של תכונות שיכסה את התרחישים הנפוצים ביותר. QuickGrid תומך בעימוד ובווירטואליזציה, כך שנוכל לעבוד עם כמויות גדולות יותר של נתונים בביצועים טובים.

אלמנטים מותאמים אישית הם תוספת חדשה ומעניינת נוספת המאפשרת רישום רכיבי Blazor כאלמנטים מותאמים אישית שניתן לרנדר בטכנולוגיות אינטרנט אחרות. אנו יכולים להשתמש בתכונה זו עם רינדור בצד הלקוח כמו Angular, React, Vue או דומות, וכן עם רינדור בצד השרת כמו PHP או Rails.

ב-Blaser WebAssembly, קיימים שיפורים משמעותיים בביצועי ה-runtime, שיפורים נעשו באימות המעניקים למפתחים יותר שליטה עליו. התקדמות הטעינה היא גם תכונה חדשה נהדרת שמציגה את התקדמות טעינת האפליקציה כברירת מחדל, דבר שהוא מועיל מאוד למשתמשים בחיבור רשת איטי.

מ-Xamarin ל-.NET MAUI

.NET Multiplatform Application UI framework ‏(MAUI) הוא התפתחות של Xamarin. זוהי פלטפורמה מאוחדת לבניית אפליקציות לקוח מקוריות עבור Windows, Mac, Android ו-iOS עם .NET.

עם שחרור .NET 7, MAUI נתמכת גם בגרסה הקודמת .NET 6. מפתחים יכולים ליצור אפליקציות מבסיס קוד אחד שיכול לפעול ב-Windows, Android, macOS, iOS ו-Tizen OS של Samsung. השינויים הבולטים ביותר בגרסה החדשה ששוחררה הם שיפורי ביצועים, ופתרון בעיות ביצועי פריסה (layout) עם רינדור עמודים מהיר ב-51% וגלילה מהירה יותר. השדרוג של .NET MAUI כולל כעת את כל מה שאנו צריכים כדי לעבור את תהליך הפיתוח – בדיקה – בנייה – הפצה – ניטור.

Xamarin התפתח ל-.NET MAUI ויקבל תמיכה עד מאי 2024. Microsoft ממליצה להעביר יישומים מ-Xamarin Forms ל-.NET MAUI ומ-Xamarin ל-.NET 6 או .NET 7.

.NET Multi-platform App UI (MAUI) diagram marked "Generally available," showing a single project system and single codebase connecting to four platforms — WinUI, Mac Catalyst, iOS, and Android — represented by icons for Windows laptop, macOS, iPhone, and Android device. Key benefits listed: Unified .NET, Mobile/desktop/hybrid support, Productive development, and Native APIs with native performance.

כדי לסייע למפתחים בהגירת אפליקציות חלקה, כלי העוזר שודרג לתמיכה ב-.NET MAUI – התיעוד והדוגמאות כיצד לבצע הגירה עדיין בהכנה. במהלך ההגירה יש לבצע שינויים מסוימים בתוך הפרויקט, אך אין מדובר בשכתוב מלא של האפליקציה.

Timeline diagram titled "Release schedule, support & patching" showing .NET MAUI, Xcode, Android, and Xamarin support across three .NET releases: .NET 7 (November 2022), .NET 8 (November 2023), and .NET 9 (November 2024). Xamarin reaches End of Support in May 2024. Key notes: each .NET MAUI major version ships with .NET and receives patches for 6 months after a successor ships; Xamarin SDKs are supported until May 2024.

הפיתוח והתמיכה העתידיים עבור .NET 7

.NET 7 משוחרר כתמיכה סטנדרטית STS ויתמך במשך שישה חודשים לאחר שחרור STS או LTS עוקב.

.NET 8 מתוכנן לצאת בנובמבר 2023 כמהדורת תמיכה ארוכת טווח LTS שתקבל תמיכה חינם לשלוש שנים. לוח זמנים כזה נותן לנו מספיק זמן לגלות תכונות חדשות ומדהימות ולשדרג את האפליקציות שלנו לגרסה החדשה ביותר.

Timeline diagram showing .NET release history split into two tracks: LTS (Long-Term Support, patched for 3 years) covering .NET Core 3.1 (December 2019), .NET 6 (November 2021), and .NET 8 (November 2023); and STS (Standard-Term Support, patched for 18 months) covering .NET 5 (November 2020), .NET 7 (November 2022), and future releases.

כיסינו רק חלק מהיכולות והפתרונות המדהימים של .NET 7 שיועילו מאוד לכל מפתח שעובד איתו. יש עוד הרבה לגלות, אז קדימה – התנסו בו! התייחסו למאמר זה כמדריך פשוט למסע הצלילה העמוק שלכם ב-.NET 7.

מבט לאחור על Learn & Chill הקרואטי האחרון

רוצים לדעת עוד על האירוע שלנו? כאן תמצאו מידע נוסף וטופס הרשמה.