.NET рдХреЛрд░ 2.2 рдЬрд╛рд░реА рдХрд┐рдпрд╛ред рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ (1 рдХрд╛ 3)

4 рджрд┐рд╕рдВрдмрд░ рдХреЛ .NET рдХреЛрд░ 2.2 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред "рдПрдХ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рдЦрдмрд░ рд╕реЗ рдХреМрди рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?" - рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рд╕рд╣реА рд╣реЛрдВрдЧреЗ ... рдФрд░ рдХреНрдпрд╛ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдбреЗрдЯ рд╣реИрдВ? )


рдЕрдм рдорд╛рдорд▓реЗ рдкрд░ред рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрд╕реБрдзрд╛рд░, Windows рдХреЗ рд▓рд┐рдП ARM32 рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ SQL рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП Azure рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╕реБрдзрд╛рд░ ASP.NET Core рд╣реИрдВред



ASP.NET Core 2.2 рдФрд░ Entity Framework Core 2.2 рдПрдХ рд╣реА рджрд┐рди рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдереЗред


Windows рдХреЗ рд▓рд┐рдП .NET рдХреЛрд░ 2.2, macOS рдФрд░ рд▓рд┐рдирдХреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдВрдХ рдкрд░ рдЖрдкрдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:



.NET рдХреЛрд░ 2.2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ 15.9 рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдореИрдХ рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛред


рдбреЛрдХрд░ рдХрдВрдЯреЗрдирд░ .NET рдХреЛрд░ рдФрд░ ASP.NET рдХреЛрд░ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП microsoft / dotnet рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред


рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХреА рд╕рдмрд╕реЗ рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА .NET рдХреЛрд░ 2.2 рд░рд┐рд▓реАрдЬрд╝ рдиреЛрдЯреЛрдВ рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ ред рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рд░реНрджреЗрд╢, рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рдФрд░ рдЙрдирдХреЗ рдЖрд╕рдкрд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдбреЙрдЯрдиреЗрдЯ / рдХреЛрд░ # 2098 рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдорд┐рд▓реА рдХрд┐рд╕реА рднреА рдЦрд╛рдорд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВред


рддреАрдЦрд╛ рд╕рдВрдХрд▓рди


рдмрд╣реБрд╕реНрддрд░реАрдп рд╕рдВрдХрд▓рди рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдХреЛ JIT рд╕рдВрдХрд▓рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЖрд╡реЗрджрди рд▓реЙрдиреНрдЪ рдЪрд░рдг рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ .NET рдХреЛрд░ 2.1 рдореЗрдВ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рдереА рдФрд░ рдмрд╛рдж рдореЗрдВ .NET рдХреЛрд░ 2.2 рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди 2 рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рд╣реБрдИред рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдФрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рд╣рдо рдЕрднреА рднреА .NET рдХреЛрд░ 2.2 рдХреА рдЕрдВрддрд┐рдо рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЗрд╕рдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рд╕рд╛рд░реНрдердХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдереЗ, рдЗрд╕рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЗрд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдпрд╛, рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдХрд┐ .NET рдХреЛрд░ 2.1 рдореЗрдВ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, .NET рдХреЛрд░ 3.0 рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред


рд░рдирдЯрд╛рдЗрдо рдЗрд╡реЗрдВрдЯреНрд╕


рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд░рдирдЯрд╛рдЗрдо рд╕реЗрд╡рд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЬреАрд╕реА, рдЬреЗрдЖрдИрдЯреА рдпрд╛ рдереНрд░реЗрдбрдкреВрд▓, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпреЗ рд╕реЗрд╡рд╛рдПрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЬреАрд╡рди рдХреЗ рджреМрд░рд╛рди рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИрдВред рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдИрдЯреАрдбрдмреНрд▓реНрдпреВ рдФрд░ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдИрдЯреАрдбрдмреНрд▓реНрдпреВ рдШрдЯрдирд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдЕрднреА рднреА рдмрд╣реБрдд рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдИрдЯреАрдбрдмреНрд▓реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдпрд╛ рд▓рд┐рдирдХреНрд╕ / macOS рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред


.NET Core 2.2 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, CoreCLR рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ EventListener рдХреНрд▓рд╛рд╕ рджреНрд╡рд╛рд░рд╛ рд╣реИрдВрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреЗ рдШрдЯрдирд╛рдПрдБ GC, JIT, рдереНрд░реЗрдбрдкреВрд▓ рдФрд░ рдЗрдВрдЯрд░реЛрдк рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИрдВред рдпреЗ рд╡рд╣реА рдШрдЯрдирд╛рдПрдБ рд╣реИрдВ рдЬреЛ рдЕрдм рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП CoreCLR ETW рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдпрд╛ рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдПрдХрддреНрд░реАрдХрд░рдг рд╕реЗрд╡рд╛ рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд╣рди рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рдЗрд╕ рддрд░рд╣ рдЖрдк рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ:


 internal sealed class SimpleEventListener : EventListener { //     EventSource. protected override void OnEventSourceCreated(EventSource eventSource) { //   EventSource  .NET runtime     . if (eventSource.Name.Equals("Microsoft-Windows-DotNETRuntime")) { EnableEvents(eventSource, EventLevel.Verbose, (EventKeywords)(-1)); } } //     . protected override void OnEventWritten(EventWrittenEventArgs eventData) { //     . Console.WriteLine($"ThreadID = {eventData.OSThreadId} ID = {eventData.EventId} Name = {eventData.EventName}"); for (int i = 0; i < eventData.Payload.Count; i++) { string payloadString = eventData.Payload[i] != null ? eventData.Payload[i].ToString() : string.Empty; Console.WriteLine($"\tName = \"{eventData.PayloadNames[i]}\" Value = \"{payloadString}\""); } Console.WriteLine("\n"); } } 

SqlConnection рдореЗрдВ AccessToken рдХрд╛ рд╕рдорд░реНрдерди


SQL рд╕рд░реНрд╡рд░, SqlClient рдХреЗ рд▓рд┐рдП ADO.NET рдкреНрд░рджрд╛рддрд╛, рдЕрдм AccessToken рд╕рдВрдкрддреНрддрд┐ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ Azure рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ SQL рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ .NET рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ Microsoft.IdentityModel.Clients.ActiveDirectory рдХреЗ NuGet рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред


рдпрд╣рд╛рдВ Azure AD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП SQL рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:


 //   ,  ADAL.NET var authContext = new AuthenticationContext(authority); var authResult = await authContext.AcquireTokenAsync(appUri, clientCredential); //   SQL Server var sqlConnection = new SqlConnection(connectionString); sqlConnection.AccessToken = authResult.AccessToken; await sqlConnection.OpenAsync(); 

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, ADAL.NET рдФрд░ Azure рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВред


рдореБрдЦреНрдп рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИ


.NET рдХреЛрд░ рдЕрдм рдЖрдкрдХреЛ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдб рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рд╣реБрдХ рдореЗрдЬрдмрд╛рди рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рддреИрдирд╛рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЛрдб рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред


рдпрд╣рд╛рдВ, рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдиреАрддрд┐рдпрд╛рдВ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рдореБрдЦреНрдп рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрд╕реЗрдВрдмрд▓реАрдСрдбрдХреЙрдиреНрдЯреЗрдХреНрд╕ред рд╣реБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ, рдХреЙрд▓рдмреИрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╣реБрдХ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЗрдХрд╛рдИ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред


рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╣реИ ред


рд╡рд┐рдВрдбреЛрдЬ ARM32


рд╣рдо Windows ARM32 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ARM ARM32 рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИред .NET рдХреЛрд░ 2.1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред Windows рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП Win32 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд░рд╣рд╛ рд╣реИ, Windows IoT рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ 2019 рд░рд┐рд▓реАрдЬ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, ARM32 рд╕рдорд░реНрдерди рдиреИрдиреЛрд╕реЗрд╡рд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред .NET Core рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм Nanoserver рдФрд░ IoT Core рджреЛрдиреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдПрдЖрд░рдПрдо 32 рдХреЗ рд▓рд┐рдП рдиреИрдиреЛрд╕рд░реНрд╡рд░ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдбреЙрдХрд░ рд╣рдм рдкрд░ microsoft / dotnet рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред


рд╣рдо рдЖрдЬ рд╡рд┐рдВрдбреЛрдЬ ARM32 рдХреЗ рд▓рд┐рдП .NET рдХреЛрд░ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмреЗрд▓рдЧрд╛рдо рдмрдЧ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╡реНрдпрд░реНрде рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрдирд╡рд░реА 2019 рдХреЗ рдЖрд╕рдкрд╛рд╕ .NET рдХреЛрд░ 2.2.1 рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓реА рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред


рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо


.NET рдХреЛрд░ 2.2 рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИ:


  • рд╡рд┐рдВрдбреЛрдЬ рдХреНрд▓рд╛рдЗрдВрдЯ: 7, 8.1, 10 (1607+)
  • рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░: 2008 R2 SP1 +
  • macOS: 10.12+
  • рдЖрд░рдПрдЪрдИрдПрд▓: рем+
  • рдлреЗрдбреЛрд░рд╛: 26+
  • рдЙрдмрдВрдЯреВ: 16.04+
  • рдбреЗрдмрд┐рдпрди: 9+
  • SLES: 12+
  • OpenSUSE: 42.3+
  • рдЕрд▓реНрдкрд╛рдЗрди: 3.7+

рд╕рдорд░реНрдерд┐рдд рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо:


  • x64 - рд╡рд┐рдВрдбреЛрдЬ, рдореИрдХрдУрдПрд╕ рдФрд░ рд▓рд┐рдирдХреНрд╕
  • x86 - рд╡рд┐рдВрдбреЛрдЬ
  • ARM32 - рд▓рд┐рдирдХреНрд╕ (Ubuntu 16.04+, рдбреЗрдмрд┐рдпрди 9+)
  • ARM32 - рд╡рд┐рдВрдбреЛрдЬ (1809+; рдЬрдирд╡рд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз)

рдирд┐рд╖реНрдХрд░реНрд╖


.NET рдХреЛрд░ 2.2 рдПрдХ рдкреНрд░рдореБрдЦ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╛рд▓реА рд░рд┐рд▓реАрдЬрд╝ рд╣реИред рд╣рдо рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдБ рдФрд░ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, ASP.NET Core 2.2 рдФрд░ Entity Framework 2.2 рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред


рдордд рднреВрд▓реЛ рдХрд┐ 1 рдЬрдирд╡рд░реА рд╕реЗ рдбреЙрдЯрдиреЗрдХреНрд╕реНрдЯ рдХреЗ рдЯрд┐рдХрдЯ рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдВрдЧреЗред рд╡реНрдпрдХреНрддрд┐рдЧрдд - рдПрдХ рд╣рдЬрд╛рд░ рдХреЗ рд▓рд┐рдП, рдФрд░ рдорд╛рдирдХ - рджреЛ рд╣рдЬрд╛рд░ рдХреЗ рд▓рд┐рдПред рдЕрд░реНрд▓реА рдмрд░реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рд╕рд╛рдЗрдЯ рдкрд░ рд╣реИрдВ ред

Source: https://habr.com/ru/post/hi433144/


All Articles