{"id":402557,"date":"2024-06-29T16:35:27","date_gmt":"2024-06-29T16:35:27","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=402557"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2024-06-29T16:35:27","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=402557","title":{"rendered":"<span>\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 .NET 6?<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u043e\u043a \u0432\u044b\u0448\u043b\u043e \u0443\u0436\u0435 \u0441\u0435\u043c\u044c \u043f\u0440\u0435\u0432\u044c\u044e-\u0432\u0435\u0440\u0441\u0438\u0439 .NET 6. \u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043b\u0438\u0437-\u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b. \u0412\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0447\u0438 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u0438\u0434\u0451\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0430, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f. \u041e\u0436\u0438\u0434\u0430\u0442\u044c \u0447\u0435\u0433\u043e-\u0442\u043e \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 RC-\u0432\u0435\u0440\u0441\u0438\u044f\u0445, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0443\u0436\u0435 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442. \u041f\u0440\u0438\u0448\u043b\u0430 \u043f\u043e\u0440\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c .NET 6 \u043f\u043e\u0431\u043b\u0438\u0436\u0435.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0441\u0441-\u0440\u0435\u043b\u0438\u0437 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u0439 \u0438 \u0443\u0431\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c-\u0442\u043e \u0432\u0441\u0435\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0435\u0449\u0451 \u043b\u0443\u0447\u0448\u0435, \u0438 \u043a\u0430\u043a \u043c\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u0436\u0438\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u2014 \u0443\u043c\u0443 \u043d\u0435\u043f\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u043e. \u0413\u0434\u0435-\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u043d\u0435 \u0432\u0440\u0443\u0442, \u0433\u0434\u0435-\u0442\u043e \u043d\u0435 \u0434\u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u044e\u0442, \u0433\u0434\u0435-\u0442\u043e \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0442. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0435\u043c\u044c \u043f\u0440\u0435\u0441\u0441-\u0440\u0435\u043b\u0438\u0437\u043e\u0432, \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0443 \u0441\u043c\u0435\u0436\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0413\u0438\u0442\u0445\u0430\u0431\u0435. \u0412\u0441\u0451 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0435\u043c \u043e\u043d\u0438 \u0442\u0430\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0438 \u0447\u0442\u043e \u0432\u044b\u043a\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043d\u0430\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u044d\u0442\u043e\u043c.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2 id=\"proizvoditelnost\">\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/h2>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 .NET \u0432\u0441\u0435\u0433\u0434\u0430 \u0434\u0435\u043b\u0430\u043b\u0438 \u0443\u043f\u043e\u0440 \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0432 \u044f\u0437\u044b\u043a \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u2014 <a href=\"https:\/\/docs.microsoft.com\/ru-ru\/dotnet\/csharp\/language-reference\/builtin-types\/struct#ref-struct\" rel=\"nofollow noopener noreferrer\"><code>ref struct<\/code><\/a>, <a href=\"https:\/\/docs.microsoft.com\/ru-ru\/dotnet\/csharp\/language-reference\/operators\/stackalloc\" rel=\"nofollow noopener noreferrer\"><code>stackalloc<\/code><\/a>, <a href=\"https:\/\/docs.microsoft.com\/dotnet\/api\/system.span-1\" rel=\"nofollow noopener noreferrer\"><code>System.Span&lt;T><\/code><\/a> \u0438 \u0432\u0441\u0451 \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u043e\u0447\u0435\u0435. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0441 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 .NET \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u2014 <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/tiered-compilation-preview-in-net-core-2-1\/\" rel=\"nofollow noopener noreferrer\">\u043c\u043d\u043e\u0433\u043e\u043f\u0440\u043e\u0445\u043e\u0434\u043d\u0430\u044f (tiered) \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f<\/a>, <a href=\"https:\/\/docs.microsoft.com\/ru-ru\/windows\/uwp\/dotnet-native\/\" rel=\"nofollow noopener noreferrer\">\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434<\/a> \u0438, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440. \u0413\u0440\u0430\u043c\u043e\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 \u0434\u0430\u0451\u0442 \u0441\u0432\u043e\u0439 \u044d\u0444\u0444\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0440\u043e\u0448\u043e \u0432\u0438\u0434\u043d\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0431\u043e\u0435\u0432\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412 NET 6 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0442\u0440\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u044e\u0442 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u041f\u0440\u0438\u0447\u0451\u043c, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0441\u0430\u043c\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d\u0435, \u043d\u043e \u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0420\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043e \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u043d\u043e\u0439 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 (\u0447\u0435\u0440\u0435\u0437 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 Crossgen2), \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (PGO) \u0438 \u0433\u043e\u0440\u044f\u0447\u0435\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438.<\/p>\n<p>  <\/p>\n<blockquote><p>\u0421\u0442\u0440\u043e\u0433\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u2014 \u044d\u0442\u043e \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445. \u041d\u043e \u044d\u0442\u0430 \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0443 \u043d\u043e\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439.<\/p><\/blockquote>\n<p>  <\/p>\n<h3 id=\"predvaritelnaya-kompilyaciya\">\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438\u043c\u0435\u044e\u0442 \u0441\u0432\u043e\u044e \u0446\u0435\u043d\u0443. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u00ab\u043f\u0440\u043e\u0433\u0440\u0435\u0432\u0430\u00bb \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u0440\u0442\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u043e\u043b\u043e\u0442\u044c \u0440\u0430\u0437\u043e\u043c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e IL-\u043a\u043e\u0434\u0430. \u042d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0443\u0436\u0435 \u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0440\u0435\u0448\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0435\u0439 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441\u0440\u0430\u0437\u0443 \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434, \u0442\u0430\u043a\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/docs.microsoft.com\/dotnet\/core\/deploying\/ready-to-run\" rel=\"nofollow noopener noreferrer\">Ready To Run<\/a>. \u041d\u043e \u0432 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 \u0435\u0451 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438.<\/p>\n<p>  <\/p>\n<blockquote><p>\u0421\u043f\u0440\u0430\u0432\u043a\u0430: \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0435\u0439 \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0430\u0431\u0431\u0440\u0435\u0432\u0438\u0430\u0442\u0443\u0440\u0430 AOT (Ahead Of Time), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0430\u044f \u0432 \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u0445.<\/p><\/blockquote>\n<p>\u0421\u0442\u0430\u0440\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0431\u044b\u043b\u0430 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u0430 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u0442\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u044b\u043b\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 crossgen. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043b\u0438 \u0435\u0451 \u0441 \u043d\u0443\u043b\u044f \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c \u043a\u043e\u0434\u0435 \u0438 \u043d\u0430\u0437\u0432\u0430\u043b\u0438 Crossgen2. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u0430\u0432\u0442\u043e\u0440\u044b \u0434\u0435\u043b\u0430\u044e\u0442 \u0443\u043f\u043e\u0440 \u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c (Windows\/Linux\/macOS\/x64\/Arm). \u0412\u0441\u0451 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 \u0443\u0442\u0438\u043b\u0438\u0442\u044b.<\/p>\n<p>  <\/p>\n<p>\u0412\u043a\u0440\u0430\u0442\u0446\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a: Crossgen2 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 IL-\u043a\u043e\u0434, \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043d\u0435\u043a\u0438\u0439 \u0433\u0440\u0430\u0444 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0417\u0430\u0442\u0435\u043c \u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0435\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0431\u044f JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0434\u043b\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b, \u0430 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440, \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0433\u0440\u0430\u0444, \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044f \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u0414\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438, \u0443\u0442\u0438\u043b\u0438\u0442\u0430 Crossgen2 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 x64, \u043d\u043e \u043e\u043d\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0438 \u0434\u0430\u0436\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f Arm64. \u0418, \u0440\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442 \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u043e\u0434 .NET SDK \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0443\u0436\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Crossgen2, \u0430 \u0441\u0442\u0430\u0440\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 crossgen \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u043f\u0435\u043d\u0441\u0438\u044e.<\/p>\n<p>  <\/p>\n<h3 id=\"optimizaciya-na-osnove-profilirovaniya\">\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>\u0415\u0449\u0451 \u043e\u0434\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0440\u0430\u044f \u0444\u0438\u0448\u043a\u0430 \u0432 .NET 6 \u2014 \u044d\u0442\u043e Profile-Guided Optimization (PGO). \u041d\u0438 \u0434\u043b\u044f \u043a\u043e\u0433\u043e \u043d\u0435 \u0441\u0435\u043a\u0440\u0435\u0442, \u0447\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u0432\u0435\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434. \u041a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0430\u0449\u0435 \u0434\u0440\u0443\u0433\u0438\u0445, \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u0434\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0430 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438\u043a\u043e\u0433\u0434\u0430. \u041d\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u0430 \u043b\u0443\u0447\u0448\u0435 \u0431\u044b \u0437\u043d\u0430\u043b. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u043c\u0443 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f PGO-\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f. \u0415\u0451 \u0441\u043c\u044b\u0441\u043b \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u0435\u0439\u0441\u0430\u0445, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u0418\u0442\u043e\u0433\u0438 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c, \u0438 \u043e\u043d \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043c\u0435\u0441\u0442\u0430 \u043a\u043e\u0434\u0430, \u0443\u0434\u0435\u043b\u044f\u044f \u0438\u043c \u043e\u0441\u043e\u0431\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044f \u0438\u0445 \u0431\u043e\u043b\u0435\u0435 \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u043e\u0439 \u0441\u0435\u0442\u0438. \u041a \u0441\u043b\u043e\u0432\u0443, \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u0430\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f PGO \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e, \u043d\u043e \u0432 .NET \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0439\u0447\u0430\u0441. \u042d\u0442\u0430 \u0442\u0435\u043c\u0430 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043d\u043d\u0430\u044f, \u0438 \u0440\u0435\u0431\u044f\u0442\u0430 \u0437\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u0435\u0439 \u043e\u0447\u0435\u043d\u044c \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u043f\u043e\u0434\u0445\u043e\u0434\u043e\u0432 \u2014 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043d\u0430 \u0447\u0430\u0441\u0442\u043e \u0438 \u0440\u0435\u0434\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043a\u043e\u0434 (hot-cold splitting). \u0422\u0435 \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0447\u0430\u0441\u0442\u043e (hot code), \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u043f\u043e\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0440\u044f\u0434\u043e\u043c \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0435. \u0415\u0441\u043b\u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u0432\u0435\u0437\u0451\u0442, \u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u0432 \u043a\u0435\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430, \u0438 \u0432\u044b\u0437\u043e\u0432\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u043c\u0438 \u0438 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u044b\u043c\u0438. \u041d\u0430\u043f\u0440\u043e\u0442\u0438\u0432, \u043d\u0435\u043a\u0438\u0439 \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u0434\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u043a\u043e\u0434 (very cold code) \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>else<\/code>-\u0432\u0435\u0442\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u0422\u0430\u043a\u043e\u0439 \u043a\u043e\u0434 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 IL-\u043a\u043e\u0434\u0430 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e. \u0422\u0430\u043a\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435, \u043d\u043e \u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u0414\u0440\u0443\u0433\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f PGO. \u0422\u043e \u0435\u0441\u0442\u044c, \u0432\u0441\u0435 \u044d\u0442\u0430\u043f\u044b \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f, \u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0438 \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043a\u043e\u0434\u0430 \u0432 \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u0442\u043e \u043f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u044d\u0442\u043e \u043c\u043d\u043e\u0433\u043e\u043f\u0440\u043e\u0445\u043e\u0434\u043d\u0430\u044f (tiered) \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f (\u0443\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u0442\u0430\u0442\u044c\u0438). \u041d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e \u0435\u0451 \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u043b\u0438.<\/p>\n<p>  <\/p>\n<p>\u0422\u0440\u0435\u0442\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u041e\u0431\u0435 \u044d\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u043a\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a \u043c\u043e\u0436\u0435\u0442 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0442\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u043d\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0434 (inlining), \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u0445\u043d\u0438\u043a\u0430 PGO \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0442\u0435\u0441\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 \u0443\u0442\u0438\u043b\u0438\u0442\u043e\u0439 Crossgen2 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043a\u043e\u0434, \u0430 \u0442\u0430\u043a\u0436\u0435 \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0435 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0445 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432. \u041d\u043e \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u0435 \u043e\u0442\u0447\u0451\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f PGO \u2014 \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0412\u0435\u0434\u044c \u0435\u043c\u0443 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e (\u0430 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438) \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0440\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 Crossgen2. \u0418 \u0445\u043e\u0440\u043e\u0448\u043e, \u0435\u0441\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u044b \u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u044b \u2014\u00a0\u0442\u043e\u0433\u0434\u0430 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e. \u0421\u043a\u0430\u0436\u0435\u043c, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u0440\u043e\u0433\u0440\u0435\u0432\u0430\u0442\u044c\u0441\u044f. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u0444\u0430\u043a\u0442\u043e\u0440, \u043d\u043e \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u0446\u0435\u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u2014 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u0437\u0430\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u043d\u0430 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438 \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0440\u0435\u0434\u0435 \u0432\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0443\u043f\u043e\u0440 \u043d\u0430 \u0440\u0435\u0434\u043a\u0438\u0435 \u043a\u0435\u0439\u0441\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0433\u043e\u043d\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438, \u043f\u044b\u0442\u0430\u044f\u0441\u044c \u0432\u0441\u0451 \u0441\u043b\u043e\u043c\u0430\u0442\u044c), \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0431\u043e\u0435\u0432\u044b\u0445. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442, \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0435 \u0443 \u0432\u0430\u0441 \u043f\u0440\u0435\u0434\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0442\u043e\u0442 \u043a\u043e\u0434.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e, \u0441\u043b\u0430\u0432\u0430 \u0431\u043e\u0433\u0443, \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f PGO, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0437\u0430\u0442\u0440\u0430\u0442 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u044b\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u043b\u0435\u0442\u0443, \u043f\u0440\u0438\u0447\u0451\u043c, \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e, \u0447\u0435\u043c \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043c\u043d\u043e\u0433\u043e\u043f\u0440\u043e\u0445\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438. \u041f\u0440\u0430\u0432\u0434\u0430, \u043a\u0430\u043a \u0432\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u0441\u0442\u0430\u0440\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u0432\u0441\u044f\u043a\u0438\u0439 \u0440\u0430\u0437 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u043d\u043e\u0432\u043e.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u044b\u0431\u043e\u0440 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c. \u0414\u0435\u043b\u0430\u0439\u0442\u0435 \u0435\u0433\u043e \u043f\u043e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<h3 id=\"goryachaya-perezagruzka-prilozheniy\">\u0413\u043e\u0440\u044f\u0447\u0430\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/h3>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u043d\u043e\u0432\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u0435\u0442. \u041b\u044e\u0431\u043e\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u0435\u043b\u043a\u0438\u0439 \u043a\u0443\u0441\u043e\u043a \u043a\u043e\u0434\u0430 \u0431\u0435\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0437\u0430\u043d\u043e\u0432\u043e \u0432\u0441\u0435\u0433\u043e \u043f\u0443\u0442\u0438 \u043a \u043c\u0435\u0441\u0442\u0443 \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u0422\u0430\u043a\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u0438 \u0440\u0430\u043d\u044c\u0448\u0435, \u043d\u043e \u0432 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043c\u043e\u0449\u043d\u043e\u0439 IDE, \u0432\u0440\u043e\u0434\u0435 Visual Studio. \u0422\u0435\u043f\u0435\u0440\u044c \u0436\u0435 \u0435\u0451 \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u043b\u0438 \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u043e\u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0443\u0439\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438\u0437\u0431\u0430\u0432\u0438\u0432\u0448\u0438\u0441\u044c \u043e\u0442 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430-\u043f\u0440\u0430\u0432\u043a\u0430-\u0440\u0435\u0431\u0438\u043b\u0434-\u0434\u0435\u043f\u043b\u043e\u0439-\u0437\u0430\u043f\u0443\u0441\u043a-\u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435 \u0442\u043e\u0447\u043a\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438, \u043f\u0440\u0438\u0447\u0451\u043c, \u0432 \u043b\u044e\u0431\u043e\u0439 IDE, \u0434\u0430\u0436\u0435 \u0432 VS Code.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0435\u0449\u0451 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u0447\u0435\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0435\u0431\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c. \u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0431\u0440\u0435\u0439\u043a\u043f\u043e\u0439\u043d\u0442 \u0438\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0430\u0443\u0437\u0443 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0445 \u043f\u0440\u044f\u043c\u043e \u043a \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e. \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0431\u0438\u043b\u0434\u0430\u0445 Visual Studio \u044d\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043b\u0435\u0433\u043a\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/y8\/i5\/vq\/y8i5vqjmetsmudxm2nfbkmuw1qa.gif\" data-src=\"https:\/\/habrastorage.org\/webt\/y8\/i5\/vq\/y8i5vqjmetsmudxm2nfbkmuw1qa.gif\"\/><\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435\u0441\u044c \u043d\u0435 \u0441\u0442\u0443\u0434\u0438\u0435\u0439, \u0430 VS Code, \u0442\u043e \u0432\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u0443\u0449\u0435\u043c\u043b\u0435\u043d\u044b. \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>dotnet watch<\/code>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043b\u044e\u0431\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b, \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0432 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u043a\u0430\u043a\u0438\u0445-\u043b\u0438\u0431\u043e \u0442\u0435\u043b\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0439 \u0441 \u0432\u0430\u0448\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b. \u0412\u044b \u0443\u0432\u0438\u0434\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041f\u0440\u043e\u0449\u0435 \u043d\u0435\u043a\u0443\u0434\u0430, \u0438 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  <\/p>\n<blockquote><p>\u0421\u043e\u0432\u0435\u0442: \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0433\u043e\u0440\u044f\u0447\u0435\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043b\u0443\u0447\u0448\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u0418\u043d\u0430\u0447\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0430\u0432\u0442\u043e\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d. \u0413\u043e\u0440\u044f\u0447\u0430\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0444\u0430\u0439\u043b\u043e\u0432, \u0430 \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0430\u0448\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u043f\u0430\u0443\u0437\u0443.<\/p><\/blockquote>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u043e\u0441\u0435\u0440\u044c\u0451\u0437\u043d\u0435\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 ASP.NET) \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0432 <code>launchSettings.json<\/code>, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0443\u044e \u0433\u043e\u0440\u044f\u0447\u0443\u044e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443, \u0447\u0442\u043e \u0432\u0440\u044f\u0434 \u043b\u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439.<\/p>\n<p>  <\/p>\n<p>\u041b\u043e\u0436\u043a\u043e\u0439 \u0434\u0451\u0433\u0442\u044f \u0432\u043e \u0432\u0441\u0451\u043c \u044d\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u0442 \u0444\u0430\u043a\u0442, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u044f\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0433\u043e\u0440\u044f\u0447\u0435\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0435\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e-\u0433\u043e\u0440\u044f\u0447\u0435\u043c\u0443, \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c <a href=\"https:\/\/github.com\/dotnet\/roslyn\/blob\/main\/docs\/wiki\/EnC-Supported-Edits.md\" rel=\"nofollow noopener noreferrer\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0410\u0445, \u0434\u0430: \u0432 F# \u0433\u043e\u0440\u044f\u0447\u0430\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435. \u041c\u043e\u0436\u0435\u0442, \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u0437\u0436\u0435. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043e\u0431 \u044d\u0442\u043e\u043c.<\/p>\n<p>  <\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e \u0433\u043e\u0440\u044f\u0447\u0435\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/569094\/\">\u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0435 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"prochie-proizvoditelnye-plyushki\">\u041f\u0440\u043e\u0447\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043b\u044e\u0448\u043a\u0438<\/h3>\n<p>  <\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044b\u0445 \u0442\u0440\u0451\u0445 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b\u0445 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0432 \u043e\u0431\u044b\u0447\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u043c\u0430\u0441\u0441\u0443 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0435\u0441\u0442 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0443\u0441\u043a\u043e\u0440\u0438\u0432 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0431\u0438\u043b\u0434\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439: \u043b\u0438\u043a\u0432\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u044b \u043e\u0432\u0435\u0440\u0445\u0435\u0434\u043e\u0432, \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 MSBuild, \u043f\u0435\u0440\u0435\u0432\u0435\u043b\u0438 Razor-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043d\u0430 Roslyn source generator \u0438 \u0434\u0430\u0436\u0435 \u043f\u043e\u0437\u0430\u0431\u043e\u0442\u0438\u043b\u0438\u0441\u044c \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0440\u0435\u0436\u0435 \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0438 \u0437\u0440\u044f \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c \u0430\u043d\u0442\u0438\u0432\u0438\u0440\u0443\u0441\u043d\u043e\u0435 \u041f\u041e.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0443\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u044b\u0440\u0430\u0441\u0442\u0438. \u041f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u043d\u0430 \u044d\u0442\u043e \u043d\u0430\u043c\u0435\u043a\u0430\u0435\u0442 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0438\u043b\u0434\u043e\u0432.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hs\/vf\/i9\/hsvfi9shku1iyrstq2cwfg6n7xs.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hs\/vf\/i9\/hsvfi9shku1iyrstq2cwfg6n7xs.png\"\/><\/p>\n<p>  <\/p>\n<h2 id=\"podderzhka-oc-i-platform\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u041eC \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c<\/h2>\n<p>  <\/p>\n<p>.NET 6 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043e\u043a \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c. \u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u043f\u043e <a href=\"https:\/\/github.com\/dotnet\/core\/blob\/main\/release-notes\/6.0\/supported-os.md\" rel=\"nofollow noopener noreferrer\">\u044d\u0442\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435<\/a>. \u0411\u043e\u043b\u044c\u0448\u043e\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0443\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Arm64 \u0432 \u0446\u0435\u043b\u043e\u043c: \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Windows Arm64 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Arm64-\u0447\u0438\u043f\u043e\u0432 Apple. \u0427\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445, \u0442\u043e, \u043a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u044d\u0442\u0438 \u0447\u0438\u043f\u044b \u0443\u043c\u0435\u044e\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043a \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0442\u0430\u043a \u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u0438 x64. .NET 6 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u0435\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 x64, \u0442\u0430\u043a \u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0434\u043b\u044f Arm64 \u043a\u043e\u0434. \u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 macOS \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0443\u0442 \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432: <code>net6.0-macos<\/code> \u0434\u043b\u044f x64 \u0438 <code>net6.0-maccatalyst<\/code> \u0434\u043b\u044f Arm64 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0432\u044b\u0445 Target Framework&#8217;\u043e\u0432 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<ul>\n<li><code>net6.0<\/code><\/li>\n<li><code>net6.0-android<\/code><\/li>\n<li><code>net6.0-ios<\/code><\/li>\n<li><code>net6.0-maccatalyst<\/code><\/li>\n<li><code>net6.0-macos<\/code><\/li>\n<li><code>net6.0-tvos<\/code><\/li>\n<li><code>net6.0-windows<\/code><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e, \u0441 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0434\u043b\u044f Apple-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u044e\u0430\u043d\u0441: \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u044a\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c, \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u043c\u044b\u043c \u0432 App Store. \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0445\u043e\u0447\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u043e\u0441\u044c \u043a\u0430\u043a \u043d\u0430 x64, \u0442\u0430\u043a \u0438 \u043d\u0430 Arm64 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445, \u0442\u043e \u043e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043a\u0430\u043a <a href=\"https:\/\/developer.apple.com\/documentation\/apple-silicon\/building-a-universal-macos-binary\" rel=\"nofollow noopener noreferrer\">Universal Binaries<\/a>. \u0412\u043e\u0442 \u0441 \u044d\u0442\u0438\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u043a\u0430 \u0432\u0441\u0451 \u043f\u043b\u043e\u0445\u043e: \u043e\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 .NET 6. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 .NET 7 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u044f\u0442, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u044d\u0442\u043e \u043d\u0435 \u0441\u0430\u043c\u043e\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435, \u043f\u043e\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0436\u0438\u0442\u044c \u0438 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0431\u0440\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u041c\u0430\u043a\u0431\u0443\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 .NET 6 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043d\u043e\u0432\u044b\u0445 Linux-\u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432: Alpine 3.13, Debian 11 \u0438 Ubuntu 20.04 \u2014 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 docker-\u043e\u0431\u0440\u0430\u0437\u044b \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0435\u0432\u044c\u044e .NET 6.<\/p>\n<p>  <\/p>\n<h2 id=\"unifikaciya-pogloschenie-xamarin-optional-workloads-i-maui\">\u0423\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u043f\u043e\u0433\u043b\u043e\u0449\u0435\u043d\u0438\u0435 Xamarin, &#171;optional workloads&#187; \u0438 MAUI<\/h2>\n<p>  <\/p>\n<p>\u0415\u0449\u0451 \u043f\u0430\u0440\u0443 \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 .NET <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/introducing-net-5\/\" rel=\"nofollow noopener noreferrer\">\u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438<\/a>, \u0447\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0432 \u043e\u0434\u043d\u043e\u043c .NET-\u0444\u043b\u0430\u043a\u043e\u043d\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443. \u041d\u0443, \u0442\u043e \u0435\u0441\u0442\u044c, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0430 \u0431\u0443\u0434\u0435\u0442 <del>\u043e\u0434\u043d\u043e \u0441\u043f\u043b\u043e\u0448\u043d\u043e\u0435 \u0442\u0435\u043b\u0435\u0432\u0438\u0434\u0435\u043d\u0438\u0435<\/del> \u043e\u0434\u0438\u043d \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u0442\u044c \u043d\u0430 \u0441\u0432\u0435\u0442\u0435 \u2014 \u0438 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439, \u0438 \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439, \u0438 \u0434\u043b\u044f \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0438 \u0434\u043b\u044f IoT, \u0438 \u0434\u043b\u044f\u2026 \u043d\u0435 \u0437\u043d\u0430\u044e, \u0447\u0442\u043e \u0442\u0430\u043c \u0435\u0449\u0451 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c. \u0418 \u043e\u043d\u0438 \u043d\u0430\u0437\u0432\u0430\u043b\u0438 \u044d\u0442\u043e .NET 5, \u043f\u0435\u0440\u0435\u0441\u043a\u043e\u0447\u0438\u0432, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0440\u0441\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u044b \u0441 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c .NET Framework 4.x, \u0430 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441 Core, \u043a \u0447\u0435\u043c\u0443 \u0441\u0442\u0440\u0435\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430, \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e \u0448\u043b\u0438 \u043e\u043a\u043e\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u043e\u0444\u0438\u0442\u0430 \u043e\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u0438\u0441\u044c \u0434\u0432\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0444\u0438\u0448\u043a\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043e\u0434\u043d\u043e\u0433\u043e API;<\/li>\n<li>\u0432\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0442\u043e, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0435 \u043d\u0430\u0434\u043e: \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0437\u0434\u0440\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0439, \u0438 \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043a\u0443\u0447\u0443 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a.<\/li>\n<\/ul>\n<p>  <\/p>\n<blockquote><p>\u041b\u044e\u0434\u0438, \u0437\u043d\u0430\u044e\u0449\u0438\u0435 .NET, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0435\u0449\u0451 \u043f\u0435\u0448\u043a\u043e\u043c \u043f\u043e\u0434 \u0441\u0442\u043e\u043b \u0445\u043e\u0434\u0438\u043b, \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438 \u043f\u0440\u0438\u043f\u043e\u043c\u0438\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0438\u0435 \u0436\u0435 \u043e\u0431\u0435\u0449\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u043b\u0435\u0432\u043e \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043e \u0434\u0432\u0430\u0434\u0446\u0430\u0442\u044c \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 (\u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u043b\u0438\u0441\u044c \u0441 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c Silverlight \u0438 UWP). \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u0432\u0440\u043e\u0434\u0435 \u043a\u0430\u043a, \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u044d\u0442\u0438 \u0436\u0435 \u0441\u0430\u043c\u044b\u0435 \u0446\u0435\u043b\u0438, \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u044b\u043b \u043d\u0435\u0434\u0435\u043b\u0438\u043c\u044b\u043c, \u043a\u0430\u043a \u0430\u0442\u043e\u043c, \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043e\u043c, \u0437\u0430\u0442\u043e\u0447\u0435\u043d\u043d\u044b\u043c \u043f\u043e\u0434 \u043e\u0434\u043d\u0443 \u041e\u0421. \u041e\u0434\u043d\u0430\u043a\u043e, \u043c\u0438\u0440 \u043c\u0435\u043d\u044f\u043b\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u043d\u0435 \u0432 \u0442\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041d\u043e \u0432 MS \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u043e\u043f\u043e\u043c\u043d\u0438\u043b\u0438\u0441\u044c \u0438 \u0443\u043c\u0443\u0434\u0440\u0438\u043b\u0438\u0441\u044c \u0437\u0430\u043f\u0440\u044b\u0433\u043d\u0443\u0442\u044c \u0432 \u0443\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0435\u0437\u0434, \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0432 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e Core, \u0434\u0430 \u0435\u0449\u0451 \u0438 \u0432\u044b\u0432\u0435\u0434\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0432 Open Source.<\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 .NET \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0432\u0430\u0433\u043e\u043d\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0435\u0437\u0434\u0430, \u0438, \u043f\u043e\u0445\u043e\u0436\u0435, \u0442\u043e\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0443\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0437\u0430 \u0433\u043e\u0440\u0430\u043c\u0438.<\/p><\/blockquote>\n<p>\u0422\u0430\u043a \u0432\u043e\u0442. \u041f\u044f\u0442\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e .NET \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b\u0438, \u043d\u043e \u0443\u043d\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f: \u0434\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0434\u043e Xamarin \u0438 <del>\u043f\u043e\u0433\u043b\u043e\u0442\u0438\u043b\u0438 \u0435\u0433\u043e<\/del> \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u043b\u0438 \u0435\u0433\u043e \u0441 .NET 6. \u0420\u0435\u0447\u044c \u0438\u0434\u0451\u0442, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043f\u043e\u0434 Android, iOS \u0438 macOS. \u0412\u043e\u043e\u0431\u0449\u0435, \u0432\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0438 \u0431\u0435\u0437 Xamarin \u0438\u043c\u0435\u0435\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0431\u0440\u0430\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>dotnet new android<\/code> \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0410\u043d\u0434\u0440\u043e\u0438\u0434. \u0410 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0435 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>dotnet run<\/code>. \u041d\u043e \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u2014 \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0422\u0430\u043a\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u0430\u0436\u0435 \u043d\u0435\u0442 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043f\u0440\u0435\u0432\u044c\u044e-\u0432\u0435\u0440\u0441\u0438\u0438 .NET 6. \u042d\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u0434 \u0410\u043d\u0434\u0440\u043e\u0438\u0434 (\u0430 \u0442\u0430\u043a\u0436\u0435 iOS \u0438 macOS) \u2014 \u043d\u0443, \u0442\u043e \u0435\u0441\u0442\u044c, \u0442\u043e, \u0447\u0442\u043e \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u044b\u043b\u043e \u0447\u0430\u0441\u0442\u044c\u044e Xamarin \u2014 \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e .NET SDK. \u0418\u0445 \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e. \u0412 \u043f\u0435\u0440\u0432\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u044d\u0442\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u043d\u043e\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043c\u043e\u043d\u043e\u043b\u0438\u0442. \u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u0441\u0451 \u043f\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 Xamarin, \u0432\u044b\u043d\u0435\u0441\u0435\u043d\u043e \u0432 &#171;Optional SDK Workloads&#187; \u2014 \u043d\u0435\u043a\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430, \u043d\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 SDK. \u0418\u043d\u0430\u0447\u0435 \u0440\u0430\u0437\u043c\u0435\u0440 SDK \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0435\u043f\u0440\u0438\u043b\u0438\u0447\u043d\u044b\u043c, \u0430 \u0441\u0430\u043c \u043e\u043d \u043d\u0430\u0447\u043d\u0451\u0442 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0442\u044c \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0446\u0435\u043b\u0435\u0439: \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043a\u0443\u0447\u0443 \u043d\u0435\u043d\u0443\u0436\u043d\u043e\u0433\u043e.<\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u044d\u0442\u043e\u0442 \u0432\u043e\u0442 \u043d\u043e\u0432\u044b\u0439 &#171;Optional SDK Workloads&#187; \u0442\u0435\u043f\u0435\u0440\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u044c\u044e .NET 6 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442\u044c \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 .NET 7. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0438\u044f\u043d\u0438\u0435 Xamarin \u0441 .NET. \u041d\u043e Xamarin \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e-\u0442\u043e \u043e\u0442\u0434\u0430\u0451\u0442, \u043d\u043e \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0432\u0437\u0430\u043c\u0435\u043d: \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u0432\u0435\u0441\u0442\u0438\u0441\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0435\u0434\u0438\u043d\u043e\u0439 BCL, \u0432 \u0435\u0434\u0438\u043d\u043e\u043c \u0441\u0442\u0438\u043b\u0435 \u0438 \u0441 \u0435\u0434\u0438\u043d\u044b\u043c\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0434\u0438\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432\u0441\u0435\u0445 .NET-\u0443\u0442\u0438\u043b\u0438\u0442, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u043e\u0439 <code>dotnet new android<\/code>. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0430\u043a\u0446\u0435\u043d\u0442 \u0438 \u043d\u0430 \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u0438\u043b\u0434\u0430, \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u0436\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0441\u0451, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 Xamarin. \u0410\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 .NET Multiplatform App UI (MAUI) \u2014 \u00ab\u044d\u0432\u043e\u043b\u044e\u0446\u0438\u044f\u00bb Xamarin Forms. \u0421 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430, \u0434\u0443\u043c\u0430\u044e, \u043f\u0440\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 &#171;Xamarin Forms&#187; \u043c\u043e\u0436\u043d\u043e \u0443\u0436\u0435 \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c. \u041e\u0442\u043d\u044b\u043d\u0435 \u0432\u0441\u044f \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0430\u044f UI-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f MAUI. \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0443\u0442\u0438 MAUI \u2014 \u044d\u0442\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0430\u044f \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0446\u0438\u044f \u043d\u0430\u0434 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c\u0438 UI, \u0440\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u041d\u0430 MAUI \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u043d\u0430 Blazor, \u0438 \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 \u0438 \u0434\u0430\u0436\u0435 \u0432 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>  <\/p>\n<blockquote><p>\u0422\u0430\u043a\u0436\u0435, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0447\u0430\u0442\u044c \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c \u0438 \u043f\u0440\u043e Mono, \u0438 \u043f\u0440\u043e \u0441\u0430\u043c Xamarin. \u0412 \u0448\u0435\u0441\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 .NET \u043e\u043d\u0438 \u043f\u043e\u043a\u0430 \u0435\u0449\u0451 \u0436\u0438\u0432\u044b \u043a\u0430\u043a \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b, \u043d\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u0441\u0435\u0434\u044c\u043c\u0430\u044f \u043f\u043e\u0433\u043b\u043e\u0442\u0438\u0442 \u0438\u0445 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>  \u0410 \u043f\u043e\u043a\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0430 Xamarin \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u043e\u0434\u043d\u043e\u0439 .NET 6.0 SDK \u0434\u043b\u044f \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<\/p><\/blockquote>\n<p>\u041a\u0430\u043a \u0436\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0441 \u044d\u0442\u0438\u043c \u0432\u0441\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>dotnet new android<\/code>? \u041d\u0443, \u0443\u0442\u0438\u043b\u0438\u0442\u0443 <code>dotnet<\/code>, \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e, \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438: \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 &#171;optional SDK workloads&#187; \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <code>dotnet workload<\/code>. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u043e\u043d\u0430 <em>\u043f\u043e\u043a\u0430<\/em> \u043d\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 <code>dotnet --help<\/code>, \u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e:<\/p>\n<p>  <\/p>\n<pre><code class=\"plaintext\">>dotnet workload search android  Workload ID                            Description ---------------------------------------------------------------- microsoft-android-sdk-full             Android SDK maui-android                           .NET MAUI SDK for Android microsoft-net-runtime-android          Android Mono Runtime microsoft-net-runtime-android-aot      Android Mono AOT Workload<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0438\u043a\u0442\u043e \u043d\u0435 \u043c\u0435\u0448\u0430\u0435\u0442 \u0432\u0430\u043c \u0443\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 SDK \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 &#171;Hello World&#187; \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0439 \u043c\u043e\u0431\u0438\u043b\u043a\u0438. \u0418 \u0434\u0430\u0436\u0435, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0431\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 Xamarin. \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0435: \u043e\u0431\u0435\u0449\u0430\u044e\u0442, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u044d\u0442\u0438\u043c \u0432 VS Code, \u043d\u0435 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u043e\u0433\u0443\u0447\u0443\u044e \u0438 \u043d\u0435\u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043b\u0438\u0432\u0443\u044e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e \u0421\u0442\u0443\u0434\u0438\u044e. \u0416\u0435\u043b\u0430\u044e\u0449\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441, \u0441\u043a\u0430\u0447\u0430\u0432 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0437 <a href=\"https:\/\/github.com\/dotnet\/maui-samples\" rel=\"nofollow noopener noreferrer\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f<\/a>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/sj\/za\/pi\/sjzapit0hsdihqgimsrkxj-qfve.png\" data-src=\"https:\/\/habrastorage.org\/webt\/sj\/za\/pi\/sjzapit0hsdihqgimsrkxj-qfve.png\"\/><\/p>\n<p>  <\/p>\n<p>\u0416\u0434\u0451\u043c \u0432 .NET-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u0440\u0438\u0442\u043e\u043a\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u0449\u0438\u043a\u043e\u0432?<\/p>\n<p>  <\/p>\n<blockquote><p>\u041e\u043f\u044b\u0442\u043d\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u0434 iOS \u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u043c \u0436\u0434\u0443\u0442 \u0432\u044b\u0445\u043e\u0434\u0430 \u0440\u0435\u043b\u0438\u0437\u0430 .NET 6 \u0438 \u0445\u043e\u0442\u044f\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c .NET-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u043e\u0434 iOS <em>\u0431\u0435\u0437<\/em> Apple-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0438 Xcode. \u041e\u0431\u0435\u0449\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441 \u043c\u0430\u0448\u0438\u043d \u043d\u0430 Windows \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c Apple \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430\u0445. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c.<\/p><\/blockquote>\n<p>  <\/p>\n<h2 id=\"blazor-na-desktope\">Blazor \u043d\u0430 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u0435<\/h2>\n<p>  <\/p>\n<p>\u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, Blazor \u0441\u0442\u0430\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c (\u043f\u043e \u0437\u0430\u0432\u0435\u0440\u0435\u043d\u0438\u044f\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 .NET), \u043f\u0440\u0438\u0447\u0451\u043c, \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0435\u0441\u043a\u0442\u043e\u043f-\u0432\u0435\u0440\u0441\u0438\u044e Blazor-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041c\u043e\u0434\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c Blazor-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043a\u0430\u043a WebAssembly, \u043d\u043e \u0438 \u043d\u0430 Windows \u0438 macOS \u043a\u0430\u043a \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0434\u0435\u0441\u043a\u0442\u043e\u043f\u043d\u043e\u0435.<\/p>\n<p>  <\/p>\n<h2 id=\"uluchsheniya-v-systemtextjson\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 <code>System.Text.Json<\/code><\/h2>\n<p>  <\/p>\n<p>\u0412\u043e\u0442 \u0438 \u0434\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u0434\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 SDK. \u0410 \u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043d\u043e\u0433\u043e, \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043c\u0438\u043c\u043e. \u041d\u0430\u0447\u043d\u0451\u043c \u0441 <code>System.Text.Json<\/code> \u2014 \u044d\u0442\u0443 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u043b\u0438.<\/p>\n<p>  <\/p>\n<blockquote><p>\u0412\u0441\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u0430\u043b\u0435\u0435 \u0432\u0437\u044f\u0442\u044b \u0438\u0437 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0441\u0441-\u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 .NET.<\/p><\/blockquote>\n<p>  <\/p>\n<h3 id=\"ignor-ciklichnyh-ssylok\">\u0418\u0433\u043d\u043e\u0440 \u0446\u0438\u043a\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a<\/h3>\n<p>  <\/p>\n<p>\u0412 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043e\u043f\u0446\u0438\u044e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">class Node {     public string Description { get; set; }     public object Next { get; set; } }  void Test() {     var node = new Node { Description = \"Node 1\" };     node.Next = node;      var opts = new JsonSerializerOptions { ReferenceHandler = ReferenceHandler.IgnoreCycles };      string json = JsonSerializer.Serialize(node, opts);     Console.WriteLine(json); \/\/ Prints {\"Description\":\"Node 1\",\"Next\":null} }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 <code>null<\/code>, \u0430 \u043d\u0435 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n<p>  <\/p>\n<blockquote><p>\u0415\u0441\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u043e, \u0442\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435. \u041d\u043e \u0431\u0443\u0434\u0435\u043c \u0438\u043c\u0435\u0442\u044c \u0432 \u0432\u0438\u0434\u0443.<\/p><\/blockquote>\n<p>  <\/p>\n<h3 id=\"podderzhka-iasyncenumerablet\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <code>IAsyncEnumerable&lt;T><\/code><\/h3>\n<p>  <\/p>\n<p>\u0421\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 <code>System.Text.Json<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 <code>IAsyncEnumerable&lt;T><\/code>-\u043e\u0431\u044a\u0435\u043a\u0442\u044b. \u041f\u0440\u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u043d \u0438\u0445 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u044b:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">using System; using System.Collections.Generic; using System.IO; using System.Text.Json;  static async IAsyncEnumerable&lt;int> PrintNumbers(int n) {     for (int i = 0; i &lt; n; i++) yield return i; }  using Stream stream = Console.OpenStandardOutput(); var data = new { Data = PrintNumbers(3) }; await JsonSerializer.SerializeAsync(stream, data); \/\/ prints {\"Data\":[0,1,2]}<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 JSON-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u043c\u0430\u0441\u0441\u0438\u0432 \u043d\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 <code>JsonSerializer.DeserializeAsyncEnumerable<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">using System; using System.IO; using System.Text; using System.Text.Json;  var stream = new MemoryStream(Encoding.UTF8.GetBytes(\"[0,1,2,3,4]\")); await foreach (int item in JsonSerializer.DeserializeAsyncEnumerable&lt;int>(stream)) {     Console.WriteLine(item); }<\/code><\/pre>\n<p>  <\/p>\n<h3 id=\"json-dom\">JSON DOM<\/h3>\n<p>  <\/p>\n<p>\u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u2014 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 JSON-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u043a\u0430\u043a \u0441 DOM. \u042d\u0442\u0430 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u0430, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0447\u0430\u0441\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043b\u043e\u0434\u0438\u0442\u044c POCO-\u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u044d\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">\/\/ Parse a JSON object JsonNode jNode = JsonNode.Parse(\"{\"MyProperty\":42}\"); int value = (int)jNode[\"MyProperty\"]; Debug.Assert(value == 42); \/\/ or value = jNode[\"MyProperty\"].GetValue&lt;int>(); Debug.Assert(value == 42);  \/\/ Parse a JSON array jNode = JsonNode.Parse(\"[10,11,12]\"); value = (int)jNode[1]; Debug.Assert(value == 11); \/\/ or value = jNode[1].GetValue&lt;int>(); Debug.Assert(value == 11);  \/\/ Create a new JsonObject using object initializers and array params var jObject = new JsonObject {     [\"MyChildObject\"] = new JsonObject     {         [\"MyProperty\"] = \"Hello\",         [\"MyArray\"] = new JsonArray(10, 11, 12)     } };  \/\/ Obtain the JSON from the new JsonObject string json = jObject.ToJsonString(); Console.WriteLine(json); \/\/ {\"MyChildObject\":{\"MyProperty\":\"Hello\",\"MyArray\":[10,11,12]}}  \/\/ Indexers for property names and array elements are supported and can be chained Debug.Assert(jObject[\"MyChildObject\"][\"MyArray\"][1].GetValue&lt;int>() == 11);<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0432 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 <code>Utf8JsonWriter<\/code>\/<code>Utf8JsonReader<\/code>, \u043d\u043e DOM-\u043f\u043e\u0434\u0445\u043e\u0434 \u0442\u043e\u0436\u0435 \u043d\u0435\u043f\u043b\u043e\u0445.<\/p>\n<p>  <\/p>\n<blockquote><p>\u041d\u0430\u0434\u043e \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0435\u0431\u0435 \u043e\u0442\u0447\u0451\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e DOM-\u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 JSON \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e \u0432\u0435\u0434\u0451\u0442 \u043a \u043f\u0430\u0434\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u0445\u043e\u0434\u0443 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0442, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a, \u0438 \u0447\u0442\u043e Writable DOM Feature \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430, \u043d\u043e \u043d\u0430\u0441 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0441\u0441\u0443\u0434\u044f\u0442 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0435\u043c-\u043d\u0438\u0431\u0443\u0434\u044c \u0431\u0443\u0434\u0443\u0442 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u043c.<\/p><\/blockquote>\n<p>  <\/p>\n<h3 id=\"podderzhka-source-generators-dlya-serializacii\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 source generators \u0434\u043b\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h3>\n<p>  <\/p>\n<p>\u0412 \u043f\u043b\u0430\u043d\u0435 \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u0445\u043e\u0434\u0430 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043e\u0442 DOM-\u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u0441\u0442\u0430\u0451\u0442 \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f. \u041e\u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u0438, \u0430 \u044d\u0442\u043e \u0437\u0430\u0432\u0435\u0434\u043e\u043c\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u0443\u0447\u0448\u0435 \u0431\u044b\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 <code>...Writer<\/code> \u0438 <code>...Reader<\/code> \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 (\u044d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 JSON, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0438 \u0441 XML). \u0422\u0430\u043a\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u043e \u043e\u043a\u0443\u043f\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d\u0435.<\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 .NET 6 \u0438 \u0442\u0443\u0442 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u043e\u0431\u0445\u043e\u0434\u043d\u043e\u0439 \u043c\u0430\u043d\u0451\u0432\u0440 \u0434\u043b\u044f \u043e\u0431\u043b\u0435\u0433\u0447\u0435\u043d\u0438\u044f \u0436\u0438\u0437\u043d\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432: source generators. \u042d\u0442\u0443 \u043d\u043e\u0432\u0443\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e \u0437\u0430\u0432\u0435\u0437\u043b\u0438 \u0432 <code>System.Text.Json<\/code>, \u0438 \u043e\u043d\u0430 \u0440\u0435\u0448\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043d\u0438\u0437\u043a\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432: \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u0440\u0442\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044e. \u0427\u0442\u043e \u0436\u0435 \u0442\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0437\u0430\u043c\u0435\u043d, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044f? \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 <code>Utf8JsonWriter<\/code>, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 JSON.<\/p>\n<p>  <\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a\u0430\u044f \u0442\u0435\u0445\u043d\u0438\u043a\u0430 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u043a\u0430\u043a \u0438 \u043f\u0440\u0438 \u043b\u044e\u0431\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 source generators. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0435 \u0442\u0438\u043f \u0434\u043b\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\/\u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">namespace Test {     internal class JsonMessage     {         public string Message { get; set; }     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u043e\u043d \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043d\u043e \u0434\u043b\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e. \u0417\u0430\u0442\u0435\u043c \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0435 <code>partial<\/code>-\u043a\u043b\u0430\u0441\u0441 \u0438 \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u0435\u0442\u0435 \u0435\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">using System.Text.Json.Serialization;  namespace Test {     [JsonSerializable(typeof(JsonMessage)]     internal partial class JsonContext : JsonSerializerContext     {     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432\u0430\u0448 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">internal partial class JsonContext : JsonSerializerContext {     public static JsonContext Default { get; }      public JsonTypeInfo&lt;JsonMessage> JsonMessage { get; }      public JsonContext(JsonSerializerOptions options) { }      public override JsonTypeInfo GetTypeInfo(Type type) => ...; }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0427\u0435\u0440\u0435\u0437 \u043e\u0434\u043d\u043e \u0438\u0437 \u044d\u0442\u0438\u0445 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u2014 <code>JsonMessage<\/code> \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0443, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">using MemoryStream ms = new(); using Utf8JsonWriter writer = new(ms);  JsonContext.Default.JsonMessage.Serialize(writer, new JsonMessage { \"Hello, world!\" }); writer.Flush();  \/\/ Writer contains: \/\/ {\"Message\":\"Hello, world!\"}<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u043d \u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e source generator \u043a\u043e\u0434:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">\/\/ \u0421\u043f\u043e\u0441\u043e\u0431 1 JsonSerializer.Serialize(jsonMessage, JsonContext.Default.JsonMessage);  \/\/ \u0421\u043f\u043e\u0441\u043e\u0431 2 JsonSerializer.Serialize(jsonMessage, typeof(JsonMessage), JsonContext.Default);<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435, \u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0443\u0434\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0441\u0442\u0430\u0440\u0430\u044f \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044e.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u0434\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u0438\u043f\u044b, \u043d\u043e \u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435, \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435), \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0438 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435.<\/p>\n<p>  <\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0447\u0435\u0440\u0435\u0437 source generators <em>\u043f\u043e\u043a\u0430<\/em> \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438, \u2014 \u044d\u0442\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u043c \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">\/\/ \u0421\u043f\u043e\u0441\u043e\u0431 1 JsonSerializer.Deserialize(json, JsonContext.Default.JsonMessage);  \/\/ \u0421\u043f\u043e\u0441\u043e\u0431 2 JsonSerializer.Deserialize(json, typeof(JsonMessage), JsonContext.Default);<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u043e \u0434\u0430\u0436\u0435 \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 <code>Utf8JsonReader<\/code> \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0422\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0444\u043b\u0435\u043a\u0441\u0438\u044f, \u0442\u043e\u043b\u044c\u043a\u043e \u0445\u0430\u0440\u0434\u043a\u043e\u0440.<\/p>\n<p>  <\/p>\n<h3 id=\"podderzhka-notifikaciy-pri-deserializacii\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 \u043f\u0440\u0438 (\u0434\u0435)\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h3>\n<p>  <\/p>\n<p>\u0412 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0435\u0439\u043c\u0441\u043f\u0435\u0439\u0441 <code>System.Text.Json.Serialization<\/code> \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0447\u0435\u0442\u044b\u0440\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430: <code>IJsonOnDeserialized<\/code>, <code>IJsonOnDeserializing<\/code>, <code>IJsonOnSerialized<\/code> \u0438 <code>IJsonOnSerializing<\/code>. \u041e\u043d\u0438 \u043d\u0443\u0436\u043d\u044b \u0434\u043b\u044f \u0432\u044b\u0437\u043e\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 (\u0434\u0435)\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0432 \u0446\u0435\u043b\u044f\u0445 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">public class Person : IJsonOnDeserialized, IJsonOnSerializing {     public string FirstName{ get; set; }      void IJsonOnDeserialized.OnDeserialized() => Validate(); \/\/ Call after deserialization     void IJsonOnSerializing.OnSerializing() => Validate(); \/\/ Call before serialization      private void Validate()     {         if (FirstName is null)         {             throw new InvalidOperationException(\"The 'FirstName' property cannot be 'null'.\");         }     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c \u0438 \u043a\u0430\u043a\u043e\u0435-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u0432\u043e\u0451 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<h3 id=\"poryadok-sledovaniya-poley-pri-serializacii\">\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043f\u0440\u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h3>\n<p>  <\/p>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430 <code>JsonPropertyOrder<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 JSON:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">public class Person {     public string City { get; set; } \/\/ No order defined (has the default ordering value of 0)      [JsonPropertyOrder(1)] \/\/ Serialize after other properties that have default ordering     public string FirstName { get; set; }      [JsonPropertyOrder(2)] \/\/ Serialize after FirstName     public string LastName { get; set; }      [JsonPropertyOrder(-1)] \/\/ Serialize before other properties that have default ordering     public int Id { get; set; } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u043f\u043e\u0440\u044f\u0434\u043e\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u043e\u043b\u044f \u043f\u043e\u043f\u0430\u0434\u0430\u043b\u0438 \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 JSON, \u0431\u044b\u043b, \u0441\u043a\u0430\u0436\u0435\u043c \u0442\u0430\u043a, \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c.<\/p>\n<p>  <\/p>\n<h3 id=\"utf8jsonwriter-vozmozhnost-vyvesti-napryamuyu-json-tekst\"><code>Utf8JsonWriter<\/code>: \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e JSON-\u0442\u0435\u043a\u0441\u0442<\/h3>\n<p>  <\/p>\n<p>\u0412 \u043a\u043b\u0430\u0441\u0441 <code>System.Text.Json.Utf8JsonWriter<\/code> \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 <code>WtiteRawValue<\/code>, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432 JSON \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c raw-\u0442\u0435\u043a\u0441\u0442:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">JsonWriterOptions writerOptions = new() { WriteIndented = true, };  using MemoryStream ms = new(); using UtfJsonWriter writer = new(ms, writerOptions);  writer.WriteStartObject(); writer.WriteString(\"dataType\", \"CalculationResults\");  writer.WriteStartArray(\"data\");  foreach (CalculationResult result in results) {     writer.WriteStartObject();     writer.WriteString(\"measurement\", result.Measurement);      writer.WritePropertyName(\"value\");     \/\/ Write raw JSON numeric value using FormatNumberValue (not defined in the example)     byte[] formattedValue = FormatNumberValue(result.Value);     writer.WriteRawValue(formattedValue, skipValidation: true);      writer.WriteEndObject(); }  writer.WriteEndArray(); writer.WriteEndObject();<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430: \u043e\u043d \u043d\u0435 \u043f\u0438\u0448\u0435\u0442 \u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0440\u0430\u0432\u043d\u0430 \u043d\u0443\u043b\u044e. \u0422\u043e \u0435\u0441\u0442\u044c, \u0447\u0438\u0441\u043b\u043e 1.1 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e \u0441 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e, \u0430 \u0447\u0438\u0441\u043b\u043e 1.0 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u043e \u043a\u0430\u043a \u0446\u0435\u043b\u043e\u0435. \u0412 \u0440\u044f\u0434\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0442\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0435\u043f\u0440\u0438\u0435\u043c\u043b\u0435\u043c\u043e, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<blockquote><p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u043e\u043a \u043c\u0435\u0442\u043e\u0434 <code>WriteRawValue<\/code> \u0433\u043e\u0442\u043e\u0432, \u043d\u043e \u0435\u0449\u0451 \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e \u0432\u0435\u0442\u043a\u0443 \u043a\u043e\u0434\u0430 \u0438 \u0431\u043e\u043b\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u043f\u0443\u043b\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432. \u041d\u043e \u0441\u0430\u043c\u0430 \u0444\u0438\u0447\u0430 \u0437\u0430\u043f\u043f\u0440\u0443\u0432\u043b\u0435\u043d\u0430 \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0440\u0435\u043b\u0438\u0437. \u041f\u0440\u043e\u0441\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0434\u043e\u0448\u0451\u043b \u0445\u043e\u0434 \u0434\u043e \u043d\u0435\u0451.<\/p><\/blockquote>\n<p>  <\/p>\n<h3 id=\"deserializaciya-iz-stream\">\u0414\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u0437 <code>Stream<\/code><\/h3>\n<p>  <\/p>\n<p>\u041e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0442\u043e\u043a. \u0422\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">using MemoryStream ms = GetMyStream(); MyPoco poco = JsonSerializer.Deserialize&lt;MyPoco>(ms);<\/code><\/pre>\n<p>  <\/p>\n<blockquote><p>\u0418 \u044d\u0442\u0430 \u0444\u0438\u0447\u0430 \u0442\u043e\u0436\u0435 \u043f\u043e\u043a\u0430 \u0431\u043e\u043b\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0443\u043b\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0435.<\/p><\/blockquote>\n<p>  <\/p>\n<h2 id=\"novaya-kollekciya-priorityqueue\">\u041d\u043e\u0432\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f <code>PriorityQueue<\/code><\/h2>\n<p>  <\/p>\n<p>\u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0442\u0443 \u0436\u0435 \u0441\u0430\u043c\u0443\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u043d\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442. \u041f\u0440\u0438 \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0432\u044b \u044d\u0442\u043e\u0442 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435. \u041f\u0440\u0438 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0437 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044e\u0442\u0441\u044f \u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u043c\u0435\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">\/\/ creates a priority queue of strings with integer priorities var pq = new PriorityQueue&lt;string, int>();  \/\/ enqueue elements with associated priorities pq.Enqueue(\"A\", 3); pq.Enqueue(\"B\", 1); pq.Enqueue(\"C\", 2); pq.Enqueue(\"D\", 3);  pq.Dequeue(); \/\/ returns \"B\" pq.Dequeue(); \/\/ returns \"C\" pq.Dequeue(); \/\/ either \"A\" or \"D\", stability is not guaranteed.<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u0430, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0432\u0435\u043d\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u0432 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d.<\/p>\n<p>  <\/p>\n<p>\u041e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f, \u0432\u043f\u043e\u043b\u043d\u0435 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442 \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432.<\/p>\n<p>  <\/p>\n<h2 id=\"source-generator-dlya-ilogger\">Source Generator \u0434\u043b\u044f <code>ILogger<\/code><\/h2>\n<p>  <\/p>\n<p>\u041d\u043e\u0432\u0430\u044f \u0444\u0438\u0447\u0430 .NET 5 \u2014 Source Generators \u2014 \u0434\u043e\u0431\u0440\u0430\u043b\u0430\u0441\u044c \u0434\u043e \u043b\u043e\u0433\u0433\u0435\u0440\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u0433\u0438\u043d\u0433\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0412\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u0438\u0448\u044c \u043f\u043e\u043c\u0435\u0442\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u043c <code>LoggerMessageAttribute<\/code>, \u0438 \u0432\u0435\u0441\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0431\u0443\u0434\u0435\u0442 \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0437\u0430 \u0432\u0430\u0441, \u043f\u0440\u0438\u0447\u0451\u043c, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">public static partial class Log {     [LoggerMessage(EventId = 0, Level = LogLevel.Critical, Message = \"Could not open socket to `{hostName}`\")]     public static partial void CouldNotOpenSocket(ILogger logger, string hostName); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u043f\u043e\u043c\u0435\u0442\u0438\u0442\u044c \u0438 \u043c\u0435\u0442\u043e\u0434, \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 \u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c <code>partial<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0414\u0435\u0442\u0430\u043b\u0438 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/docs.microsoft.com\/ru-ru\/dotnet\/core\/extensions\/logger-message-generator\" rel=\"nofollow noopener noreferrer\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>.<\/p>\n<p>  <\/p>\n<h2 id=\"uluchsheniya-v-systemlinq\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 <code>System.Linq<\/code><\/h2>\n<p>  <\/p>\n<p>\u0412 LinqExtensions \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0444\u0438\u0447. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u043e\u0432 \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0442\u043e\u0440\u043e\u0439 \u0441 \u043a\u043e\u043d\u0446\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">Enumerable.Range(1, 10).ElementAt(^2); \/\/ returns 9<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u0432 \u043c\u0435\u0442\u043e\u0434 <code>Take()<\/code> \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043a\u043b\u0430\u0441\u0441\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0443:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">source.Take(..3);       \/\/ instead of source.Take(3) source.Take(3..);       \/\/ instead of source.Skip(3) source.Take(2..7);      \/\/ instead of source.Take(7).Skip(2) source.Take(^3..);      \/\/ instead of source.TakeLast(3) source.Take(..^3);      \/\/ instead of source.SkipLast(3) source.Take(^7..^3);    \/\/ instead of source.TakeLast(7).SkipLast(3)<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u043e\u0432\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 <code>TryGetNonEnumeratedCount()<\/code> \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0434\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0431\u0435\u0437 \u0435\u0451 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">List&lt;T> buffer = source.TryGetNonEnumeratedCount(out int count) ? new List&lt;T>(capacity: count) : new List&lt;T>(); foreach (T item in source) {     buffer.Add(item); }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 <code>source<\/code> \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0442\u0438\u043f\u0430 <code>IEnumerable<\/code>, \u0442\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0410 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>TryGetNonEnumeratedCount()<\/code> \u043c\u043e\u0436\u043d\u043e \u0438 <del>\u0440\u044b\u0431\u043a\u0443 \u0441\u044a\u0435\u0441\u0442\u044c<\/del> \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0430\u043b\u043b\u043e\u043a\u0430\u0446\u0438\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0431\u043e\u0440 \u043e\u0442\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>  <\/p>\n<p>\u0427\u0435\u0442\u044b\u0440\u0435 \u043d\u043e\u0432\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430 <code>DistinctBy<\/code>\/<code>UnionBy<\/code>\/<code>IntersectBy<\/code>\/<code>ExceptBy<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435-\u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">Enumerable.Range(1, 20).DistinctBy(x => x % 3); \/\/ {1, 2, 3}  var first = new (string Name, int Age)[] { (\"Francis\", 20), (\"Lindsey\", 30), (\"Ashley\", 40) }; var second = new (string Name, int Age)[] { (\"Claire\", 30), (\"Pat\", 30), (\"Drew\", 33) }; first.UnionBy(second, person => person.Age); \/\/ { (\"Francis\", 20), (\"Lindsey\", 30), (\"Ashley\", 40), (\"Drew\", 33) }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0410 \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u043d\u0438\u043c \u0437\u0430\u0432\u0435\u0437\u043b\u0438 \u0435\u0449\u0451 \u0434\u0432\u0430 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430: <code>MaxBy<\/code>\/<code>MinBy<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">var people = new (string Name, int Age)[] { (\"Francis\", 20), (\"Lindsey\", 30), (\"Ashley\", 40) }; people.MaxBy(person => person.Age); \/\/ (\"Ashley\", 40)<\/code><\/pre>\n<p>  <\/p>\n<blockquote><p>\u0410 \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u0441\u0438\u043b\u044c\u043d\u043e \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e.<\/p><\/blockquote>\n<p>\u0421\u0442\u0440\u0430\u043d\u043d\u043e, \u0447\u0442\u043e \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0434\u043e\u0434\u0443\u043c\u0430\u043b\u0438\u0441\u044c \u0440\u0430\u043d\u044c\u0448\u0435, \u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e \u0435\u0441\u0442\u044c. \u041c\u0435\u0442\u043e\u0434\u044b <code>FirstOrDefault<\/code>\/<code>LastOrDefault<\/code>\/<code>SingleOrDefault<\/code> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 nullable-\u0442\u0438\u043f\u043e\u0432 <code>GetValueOrDefault<\/code>:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">Enumerable.Empty&lt;int>().SingleOrDefault(-1); \/\/ returns -1<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0443 \u0438 \u043d\u0430\u043f\u043e\u0441\u043b\u0435\u0434\u043e\u043a. \u041c\u0435\u0442\u043e\u0434 <code>Zip<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u043c\u0435\u0435\u0442 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0443 \u0434\u043b\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0442\u0440\u0451\u043c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044f\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">var xs = Enumerable.Range(1, 10); var ys = xs.Select(x => x.ToString()); var zs = xs.Select(x => x % 2 == 0);  foreach ((int x, string y, bool z) in Enumerable.Zip(xs,ys,zs)) { }<\/code><\/pre>\n<p>  <\/p>\n<blockquote><p>\u041a\u0442\u043e-\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0432 \u043a\u0443\u0440\u0441\u0435, \u0447\u0442\u043e \u0442\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e?<\/p><\/blockquote>\n<p>  <\/p>\n<h2 id=\"data-i-vremya\">\u0414\u0430\u0442\u0430 \u0438 \u0432\u0440\u0435\u043c\u044f<\/h2>\n<p>  <\/p>\n<p>\u0411\u043e\u0440\u044c\u0431\u0430 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u0430\u0444\u043e\u0440\u0430 \u0438\u0437 \u0436\u0438\u0437\u043d\u0438, \u044d\u0442\u043e \u0435\u0449\u0451 \u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0431\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u044f\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u043c\u0438\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u041f\u041e. \u0414\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0430\u0442\u043e\u0439 \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c. \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u043b\u0430 \u0432 \u043e\u0433\u043e\u043d\u044c \u043d\u0435\u0432\u0435\u0436\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u043b\u0438\u0432\u0430\u044e\u0442 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 .NET \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u043e \u043b\u0438 \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442\u044c, \u0442\u043e \u043b\u0438 \u0443\u0441\u0443\u0433\u0443\u0431\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u0434\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u0430\u0440\u0443 \u043d\u043e\u0432\u044b\u0445 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440: <code>DateOnly<\/code> \u0438 <code>TimeOnly<\/code>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0448\u0430\u043c\u0430\u043d\u0438\u043b\u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u043e\u043d \u0438 \u0435\u0449\u0451 \u043f\u043e \u043c\u0435\u043b\u043e\u0447\u0438. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043e\u0431\u0437\u043e\u0440 \u044d\u0442\u0438\u0445 \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/567338\/\">\u044d\u0442\u043e\u0439<\/a> \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u0418 \u043e\u043d \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u043a \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u044e \u0438 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c\u0443 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u0438\u044e.<\/p>\n<p>  <\/p>\n<h2 id=\"preview-features-i-srazu-generic-math\">Preview Features \u0438 \u0441\u0440\u0430\u0437\u0443 Generic Math<\/h2>\n<p>  <\/p>\n<p>\u0412\u044b\u043f\u0443\u0441\u043a \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 .NET \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0432\u0441\u0442\u0430\u043b \u043d\u0430 \u043f\u043e\u0442\u043e\u043a: \u0432 \u0433\u043e\u0434 \u2014 \u043f\u043e LTS-\u0432\u0435\u0440\u0441\u0438\u0438. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0431\u044b\u043b\u043e \u0440\u0430\u043d\u044c\u0448\u0435 \u0441 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u043c, \u0438 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0441 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b: \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0435\u0435 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0432\u044b\u043a\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0444\u0438\u0447\u0438 \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u2014 \u043d\u0435 \u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u0440\u043e\u0434\u0438\u043b\u043e \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u043c \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043e\u043c. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 .NET \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043d\u043e\u0432\u044b\u0435 \u0444\u0438\u0447\u0438 \u043e\u043d\u0438 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u044e\u0442 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u0432\u043e \u0432\u0441\u0435\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u0445 \u0437\u0430 \u0433\u043e\u0434. \u041d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u0443\u0436\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0444\u0438\u0434\u0431\u0435\u043a \u043f\u043e \u043d\u0438\u043c.<\/p>\n<p>  <\/p>\n<p>\u0418 \u043e\u043d\u0438 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c Preview Features. \u0422\u0435\u043f\u0435\u0440\u044c LTS-\u0432\u0435\u0440\u0441\u0438\u044e .NET \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441 <del>\u043d\u0435\u0434\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u043c\u0438<\/del> \u043f\u0440\u0435\u0432\u044c\u044e-\u0444\u0438\u0447\u0430\u043c\u0438. \u0422\u043e, \u0447\u0442\u043e \u0440\u0430\u043d\u044c\u0448\u0435 \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0440\u0435\u0432\u044c\u044e- \u0438 RC-\u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430, \u043e\u0442\u043d\u044b\u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043b\u0435\u0433\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u044b \u0438 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u043d. \u0412 \u0446\u0435\u043b\u044f\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u044d\u0442\u043e \u0432\u0441\u0451 \u043e\u0431\u0432\u0435\u0448\u0430\u043d\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u044b\u0442\u044c \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c. \u0422\u043e \u0435\u0441\u0442\u044c, \u0432\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0438\u0432\u0448\u0438\u0441\u044c. \u0410 \u0432\u043e\u0442 \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u043d\u0435\u0442 \u2014 \u0434\u0435\u043b\u043e \u0432\u0430\u0448\u0435.<\/p>\n<p>  <\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u0430\u043c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u0440\u0435\u0432\u044c\u044e-\u0444\u0438\u0447\u0430, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0432\u0435\u0441\u044c \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c: \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432. \u042d\u0442\u0430 \u0444\u0438\u0447\u0430 \u043a\u0430\u043a \u0440\u0430\u0437 \u0438\u0437 \u0442\u0435\u0445, \u0447\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c <em>\u0431\u044b\u0441\u0442\u0440\u043e<\/em>. \u0415\u0451 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u043e\u0431\u043a\u0430\u0442\u0430\u0442\u044c \u0432 \u043f\u0440\u0435\u0432\u044c\u044e-\u0432\u0435\u0440\u0441\u0438\u044f\u0445 .NET 6 \u0438 \u0440\u0435\u0448\u0438\u043b\u0438 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 LTS-\u0432\u0435\u0440\u0441\u0438\u0438 \u0432 \u0442\u043e\u043c \u0432\u0438\u0434\u0435, \u0432 \u043a\u0430\u043a\u043e\u043c \u0443\u0441\u043f\u0435\u044e\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043a \u0440\u0435\u043b\u0438\u0437\u0443. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u043e \u043f\u0440\u0435\u0432\u044c\u044e-\u0444\u0438\u0447\u0430, \u0442\u043e \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0439, \u0447\u0442\u043e \u043e\u043d\u0430 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0434\u0430\u0436\u0435 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u0434\u0432\u0443\u0445 RC-\u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0445 .NET 6. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e: \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0439, \u0447\u0442\u043e \u043e\u043d\u0430 \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0432 \u0430\u043f\u0434\u0435\u0439\u0442\u0430\u0445 .NET 6 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u043b\u0438\u0437\u0430. \u041d\u0430 \u044d\u0442\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u0444\u0438\u0447\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0438 \u0432 \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u0445. \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 <a href=\"https:\/\/habr.com\/ru\/post\/572902\/\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>, \u0438 \u0437\u0432\u0443\u0447\u0438\u0442 \u044d\u0442\u043e \u043d\u0435\u043f\u043b\u043e\u0445\u043e.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u043e\u0433\u043e, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u0440\u0435\u0432\u044c\u044e-\u0444\u0438\u0447 \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 .NET, \u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0430 .NET \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043b\u0438\u0448\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043e\u0431\u043a\u0430\u0442\u043a\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u0438\u0434\u0435\u0439. \u0412\u043e\u043f\u0440\u043e\u0441: \u0430 \u043d\u0435 \u0432\u044b\u043b\u044c\u0435\u0442\u0441\u044f \u043b\u0438 \u044d\u0442\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u0432 \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0432\u043e \u0447\u0442\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c HTML \u0438 CSS? \u041d\u0443, \u0442\u043e \u0435\u0441\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0432\u0435\u0440\u0441\u0438\u0439 \u0443\u0436\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0430 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u0444\u0438\u0447\u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0432\u044c\u044e-\u0441\u0442\u0430\u0434\u0438\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c, \u043f\u043e\u0441\u043b\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u0432 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e?<\/p>\n<p>  <\/p>\n<h2 id=\"bolshe-analizatorov-bogu-analiza\">\u0411\u043e\u043b\u044c\u0448\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0431\u043e\u0433\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0430!<\/h2>\n<p>  <\/p>\n<p>\u0421 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c Roslyn \u043d\u0430\u0441\u0442\u0443\u043f\u0438\u043b\u0430 \u044d\u0440\u0430 Roslyn-\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u0432\u043e\u043e\u0431\u0449\u0435-\u0442\u043e, \u0437\u0434\u043e\u0440\u043e\u0432\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435. \u0412 .NET 5 \u0432 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 250 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432, \u0438 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 nuget-\u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0421 \u043a\u0430\u043a\u043e\u0433\u043e-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <code>dotnet build<\/code> \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0434\u0438\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043e\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a <del>\u0433\u043e\u0432\u043d\u043e\u043a\u043e\u0434\u0438\u0442<\/del> \u043f\u0438\u0448\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0442\u043e. \u0421 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u044d\u0442\u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u043c\u0438, \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u043a\u043e\u0441\u044f\u043a\u0438 \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u0434 \u0447\u0438\u0449\u0435. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043b\u043e\u0436\u043d\u044b\u0445 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u0432\u0441\u0451 <a href=\"https:\/\/docs.microsoft.com\/ru-ru\/dotnet\/fundamentals\/code-analysis\/overview#enable-additional-rules\" rel=\"nofollow noopener noreferrer\">\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c<\/a>, \u043d\u043e \u043d\u0430 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>  <\/p>\n<p>\u0412 .NET 6 \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u043e\u043c, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 (\u043f\u0440\u0430\u0432\u0434\u0430, \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445 \u0435\u0441\u0442\u044c \u0438 \u0442\u0435, \u0447\u0442\u043e \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e). \u041e\u043a\u0438\u043d\u0443\u0432 \u0431\u0435\u0433\u043b\u044b\u043c \u0432\u0437\u0433\u043b\u044f\u0434\u043e\u043c <a href=\"https:\/\/github.com\/dotnet\/runtime\/issues\/43617\" rel=\"nofollow noopener noreferrer\">\u0441\u043f\u0438\u0441\u043e\u043a<\/a> \u043d\u043e\u0432\u044b\u0445 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432, \u043d\u0435\u043b\u044c\u0437\u044f \u043d\u0435 \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0441\u0440\u0435\u0434\u0438 \u043d\u0438\u0445, \u0431\u0435\u0437\u0443\u0441\u043b\u043e\u0432\u043d\u043e, \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445.<\/p>\n<p>  <\/p>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u043f\u043e\u0440\u0442\u044f\u043d\u043a\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0439\u0442\u0435 \u0441\u0432\u043e\u044e \u0441\u0440\u0435\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432.<\/p>\n<p>  <\/p>\n<h2 id=\"api-dlya-vydeleniya-pamyati\">API \u0434\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438<\/h2>\n<p>  <\/p>\n<p>\u041b\u0451\u0433\u043a\u0438\u043c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0440\u0443\u043a\u0438 C# \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432 C. \u0418 \u044d\u0442\u043e \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0448\u0443\u0442\u043a\u0430: \u0432 .NET 6 \u0437\u0430\u0432\u0435\u0437\u043b\u0438 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438. \u0417\u0430 \u044d\u0442\u043e \u0434\u0435\u043b\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0432 \u043d\u043e\u0432\u043e\u043c \u043a\u043b\u0430\u0441\u0441\u0435 <code>System.Runtime.InteropServices.NativeMemory<\/code>.<\/p>\n<p>  <\/p>\n<pre><code class=\"cs\">namespace System.Runtime.InteropServices {     public static class NativeMemory     {         public static unsafe void* Alloc(nuint byteCount);         public static unsafe void* Alloc(nuint elementCount, nuint elementSize);          public static unsafe void* AllocZeroed(nuint byteCount);         public static unsafe void* AllocZeroed(nuint elementCount, nuint elementSize);          public static unsafe void* Realloc(void* ptr, nuint byteCount);          public static unsafe void Free(void* ptr);          public static unsafe void* AlignedAlloc(nuint byteCount, nuint alignment);         public static unsafe void AlignedFree(void* ptr);         public static unsafe void* AlignedRealloc(void* ptr, nuint byteCount, nuint alignment);     } }<\/code><\/pre>\n<p>  <\/p>\n<p>\u041a \u0447\u0451\u0440\u0442\u0443 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b, \u043a \u0447\u0451\u0440\u0442\u0443 \u0441\u0431\u043e\u0440\u0449\u0438\u043a \u043c\u0443\u0441\u043e\u0440\u0430. \u0414\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u044e\u0442 <code>alloc<\/code> \u0438 <code>free<\/code> \u043c\u0435\u0442\u043e\u0434\u044b! \u0420\u0430\u0437\u0443\u043c\u0435\u0435\u0442\u0441\u044f, \u0432\u0441\u044f\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u043b\u044f \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432. \u041d\u043e \u043c\u044b \u043a\u0430\u043a-\u0442\u043e \u0443\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0443\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 C# \u0441\u0442\u0430\u043b \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u044f\u0437\u044b\u043a \u0434\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0432\u0435\u0449\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043e\u0447\u0435\u043d\u044c \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e \u0437\u0430\u0438\u0433\u0440\u0430\u043b\u0438\u0441\u044c \u0432 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e. \u041f\u043e\u043a\u0430 \u043d\u0435\u0442 \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u043c\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0447\u0451\u0442 \u0442\u043e\u0433\u043e, \u0445\u043e\u0440\u043e\u0448\u043e \u044d\u0442\u043e \u0438\u043b\u0438 \u043f\u043b\u043e\u0445\u043e. \u0424\u0430\u043d\u0430\u0442\u044b \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439 \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u041d\u043e \u043b\u044e\u0434\u0435\u0439 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u043d\u0430\u0441\u0442\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u0442\u044c <em>\u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0443\u044e<\/em> \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u0441\u0440\u0430\u0437\u0443.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u044c\u0448\u0435? \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u044b\u0435 \u0430\u0441\u0441\u0435\u043c\u0431\u043b\u0435\u0440\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0432 \u043a\u043e\u0434\u0435? \u0418\u043b\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 C++? \u041f\u043e\u0434\u043e\u0436\u0434\u0451\u043c .NET 7.<\/p>\n<p>  <\/p>\n<h2 id=\"i-tak-dalee\">\u0418 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435<\/h2>\n<p>  <\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0432 .NET \u043a\u0443\u0434\u0430 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435. \u041d\u043e \u043d\u0430\u0434\u043e \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0441\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u043e\u0441\u0442\u0435 \u2014 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u0431\u043e\u0440. \u041f\u0440\u043e\u0441\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u043d\u044c\u043a\u043e \u043f\u0440\u043e\u0439\u0434\u0451\u043c\u0441\u044f \u043f\u043e \u043e\u0441\u0442\u0430\u0432\u0448\u0435\u043c\u0443\u0441\u044f:<\/p>\n<p>  <\/p>\n<ul>\n<li>\u043f\u0443\u043b \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u043d \u0441 \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u043d\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u043a\u043e\u0434;<\/li>\n<li>\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438: \u043e\u043d\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0433\u0443\u0442 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430;<\/li>\n<li>\u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 (\u0431\u0443\u0434\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c Pattern Matching);<\/li>\n<li>\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e\u0439 \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>dotnet sdk check<\/code> \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0438\u0445 SDK;<\/li>\n<li>\u0432\u0435\u0431\u0441\u043e\u043a\u0435\u0442\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u0438\u044e;<\/li>\n<li><code>BigInteger<\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0430\u0440\u0441\u0438\u0442 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u043e\u0447\u0442\u0438 \u043d\u0430 90% \u0431\u044b\u0441\u0442\u0440\u0435\u0435;<\/li>\n<li><code>Vector&lt;T><\/code> \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u044b <code>nint<\/code> \u0438 <code>nuint<\/code>;<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 OpenTelemetry.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u041d\u043e \u0434\u0430\u0436\u0435 \u044d\u0442\u043e \u043d\u0435 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a.<\/p>\n<p>  <\/p>\n<p>\u0410 \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u0437\u0430 \u043a\u0430\u0434\u0440\u043e\u043c \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432 \u044f\u0437\u044b\u043a\u0435 C# 10. \u041e\u0431 \u044d\u0442\u043e\u043c \u2014 \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/573434\/\"> https:\/\/habr.com\/ru\/articles\/573434\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-1\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u043e\u043a \u0432\u044b\u0448\u043b\u043e \u0443\u0436\u0435 \u0441\u0435\u043c\u044c \u043f\u0440\u0435\u0432\u044c\u044e-\u0432\u0435\u0440\u0441\u0438\u0439 .NET 6. \u0414\u0430\u043b\u044c\u0448\u0435 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043b\u0438\u0437-\u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u044b. \u0412\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0447\u0438 \u0443\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u043e \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a, \u0438\u0434\u0451\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0430, \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f. \u041e\u0436\u0438\u0434\u0430\u0442\u044c \u0447\u0435\u0433\u043e-\u0442\u043e \u043a\u0430\u0440\u0434\u0438\u043d\u0430\u043b\u044c\u043d\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 RC-\u0432\u0435\u0440\u0441\u0438\u044f\u0445, \u043f\u043e\u0436\u0430\u043b\u0443\u0439, \u0443\u0436\u0435 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442. \u041f\u0440\u0438\u0448\u043b\u0430 \u043f\u043e\u0440\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c .NET 6 \u043f\u043e\u0431\u043b\u0438\u0436\u0435.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0435\u0441\u0441-\u0440\u0435\u043b\u0438\u0437 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0441\u0445\u0432\u0430\u043b\u0435\u043d\u0438\u0439 \u0438 \u0443\u0431\u0435\u0436\u0434\u0435\u043d\u0438\u0439 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c-\u0442\u043e \u0432\u0441\u0435\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0435\u0449\u0451 \u043b\u0443\u0447\u0448\u0435, \u0438 \u043a\u0430\u043a \u043c\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u0436\u0438\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u2014 \u0443\u043c\u0443 \u043d\u0435\u043f\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u043e. \u0413\u0434\u0435-\u0442\u043e \u0430\u0432\u0442\u043e\u0440\u044b \u043d\u0435 \u0432\u0440\u0443\u0442, \u0433\u0434\u0435-\u0442\u043e \u043d\u0435 \u0434\u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u044e\u0442, \u0433\u0434\u0435-\u0442\u043e \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044e\u0442. \u041f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0435\u043c\u044c \u043f\u0440\u0435\u0441\u0441-\u0440\u0435\u043b\u0438\u0437\u043e\u0432, \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0441\u0443 \u0441\u043c\u0435\u0436\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0413\u0438\u0442\u0445\u0430\u0431\u0435. \u0412\u0441\u0451 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0435\u043c \u043e\u043d\u0438 \u0442\u0430\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u0438 \u0447\u0442\u043e \u0432\u044b\u043a\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043d\u0430\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e\u0431 \u044d\u0442\u043e\u043c.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-402557","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/402557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=402557"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/402557\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=402557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=402557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=402557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}