рдкреЗрд╢ рд╣реИ рдСрд░рд▓рд┐рдпрдиреНрд╕ 3.0

рдпрд╣ рдСрд░рд▓рд┐рдпрдиреНрд╕ рдЯреАрдо рдХреА рдПрдХ рдЕрддрд┐рдерд┐ рдкреЛрд╕реНрдЯ рд╣реИред рдСрд░рд▓рд┐рдпрдиреНрд╕ .NET рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, https://github.com/dotnet/orleans рджреЗрдЦреЗрдВ ред

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



рдСрд░рд▓рд┐рдпрдиреНрд╕ 2.0 рдХреЗ рдмрд╛рдж рд╕реЗ рдкреНрд░рдореБрдЦ рдкрд░рд┐рд╡рд░реНрддрди


рдСрд░рд▓рд┐рдпрдиреНрд╕ 2.0 рдХреЛ 18 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдереЛрдбрд╝рд╛ рд░рд┐рд▓реАрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рддрдм рд╕реЗ рдСрд░рд▓рд┐рдпрдиреНрд╕ рдиреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдЧрддрд┐ рдХреА рд╣реИред 2.0 рдХреЗ рдмрд╛рдж рд╕реЗ рдХреБрдЫ рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ:

  • рд╡рд┐рддрд░рд┐рдд ACID рд▓реЗрдирджреЗрди - рдХрдИ рдЕрдирд╛рдЬ рдПрдХ рд▓реЗрди-рджреЗрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЙрдирдХрд╛ рд░рд╛рдЬреНрдп рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ
  • рдПрдХ рдирдпрд╛ рдЕрдиреБрд╕реВрдЪрдХ, рдЬрд┐рд╕рдиреЗ рдЕрдХреЗрд▓реЗ рд╣реА рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ 30% рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдмрдврд╝рд╛рдпрд╛
  • рд░реЛрдЬрд▓рд┐рди рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдХреЛрдб рдЬрдирд░реЗрдЯрд░
  • рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдЧрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрд╡рд┐рдХрд╕рд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рд╕рджрд╕реНрдпрддрд╛
  • рд╕рд╣-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рдорд░реНрдерди

рд╕рд╛рде рд╣реА рдХрдИ, рдХрдИ рдЕрдиреНрдп рд╕реБрдзрд╛рд░ рдФрд░ рд╕реБрдзрд╛рд░ред

рдСрд░рд▓рд┐рдпрдиреНрд╕ 2.0 рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж рд╕реЗ, рдЯреАрдо рдиреЗ рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдпрд╛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреБрдгреНрдп рдЪрдХреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдЬреИрд╕реЗ рдХрд┐ рдЬреЗрдиреЗрд░рд┐рдХ рд╣реЛрд╕реНрдЯ, рдирд╛рдорд┐рдд рд╡рд┐рдХрд▓реНрдк, .NET рдЯреАрдо рдХреЗ рд╕рд╛рде рдШрдирд┐рд╖реНрда рд╕рд╣рдпреЛрдЧ рдореЗрдВ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡реЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ .NET рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВред рдХреЛрд░ рд░рд┐рд▓реАрдЬ, рдпреЛрдЧрджрд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ "рдЕрдкрд╕реНрдЯреНрд░реАрдо" рдореЗрдВ рд╕реБрдзрд╛рд░, рдФрд░ рдмрд╛рдж рдореЗрдВ .NET рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рднреЗрдЬ рджрд┐рдпрд╛ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪрди рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рдСрд░рд▓рд┐рдпрдиреНрд╕ 3.0 рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдЪрдХреНрд░ рдЬрд╛рд░реА рд░рд╣рд╛, рд╕рд╛рде рд╣реА рдСрд░рд▓рд┐рдпрдиреНрд╕ 3.0.0-beta1 рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмреЗрдбрд░реЙрдХ рдХреЛрдб рдХреЛ рдЕрдВрддрддрдГ .NET 3.0 рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕реА рддрд░рд╣, рдЯреАрд╕реАрдкреА рд╕реЙрдХреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдкрд░ рдЯреАрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдСрд░рд▓рд┐рдпрдиреНрд╕ 3.0 рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп .NET рдХреЛрд░ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдирд╛ рд╣реИред рд╣рдо рдУрдкрди рд╕реЛрд░реНрд╕ рдХреА рд╕рдЪреНрдЪреА рднрд╛рд╡рдирд╛ рдореЗрдВ рдЗрд╕ рдЪрд▓ рд░рд╣реЗ рд╕рд╣рдпреЛрдЧ рдХреЛ рдмрдбрд╝реЗ .NET рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣рдорд╛рд░реЗ рдпреЛрдЧрджрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред

ASP.NET рдмреЗрдбрд░реЙрдХ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдкрд░рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди


рдЯреАрдПрд▓рдПрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдЭреЗрджрд╛рд░реЛрдВ рд╕реЗ рднреА рдкреНрд░рдореБрдЦ рдорд╛рдВрдЧ рд░рд╣рд╛ рд╣реИред 3.0 рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рд╣рдо TLS рд╕рдорд░реНрдерди рдХреА рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ Microsoft.Orleans.Connections.Security рдкреИрдХреЗрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, TransportLayerSecurity рдирдореВрдирд╛ рджреЗрдЦреЗрдВред

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

рдСрд░рд▓рд┐рдпрдиреНрд╕ 3.0, рдПрдПрд╕рдкреА.рдиреЗрдЯ рдЯреАрдо рдХреА рдПрдХ рдкрд╣рд▓, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреЗрдбрд░реЙрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрдорд┐рдд рдЕрдкрдиреА рдкреВрд░реА рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдкрд░рдд рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдмреЗрдбрд░реЙрдХ рдХрд╛ рд▓рдХреНрд╖реНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рддреЗрдЬ рдФрд░ рдордЬрдмреВрдд рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реИред

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

рдпрджреНрдпрдкрд┐ рдЗрд╕ рдЙрдкрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рдгрд╛ рдЯреАрдПрд▓рдПрд╕ рд╕рдорд░реНрдерди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдерд╛, рд╣рдо рдЕрдкрдиреЗ рд░рд╛рддреНрд░рд┐ рднрд╛рд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдФрд╕рддрди рдереНрд░реВрдкреБрдЯ рдореЗрдВ рд▓рдЧрднрдЧ 30% рд╕реБрдзрд╛рд░ рджреЗрдЦрддреЗ рд╣реИрдВред

рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд▓реЗрдпрд░ рдлрд┐рд░ рд╕реЗ MemoryPool<byte> рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рдмрдлрд░ рдкреВрд▓рд┐рдВрдЧ рдХреЛ MemoryPool<byte> рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рд╢рд╛рдорд┐рд▓ рдерд╛ рдФрд░ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХрд░рдиреЗ рдореЗрдВ, рдХреНрд░рдордмрджреНрдзрддрд╛ рдЕрдм Span<T> рдХрд╛ рдЕрдзрд┐рдХ рд▓рд╛рдн рдЙрдард╛рддреА рд╣реИред рдХреБрдЫ рдХреЛрдб рдкрде рдЬреЛ рдкрд╣рд▓реЗ рд╕рдорд░реНрдкрд┐рдд рдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд▓реЙрдХрд┐рдВрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдереЗ, рдЬрд┐рдиреНрд╣реЗрдВ рдХреЙрд▓рд┐рдВрдЧ рдХреЙрд▓рд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ BlockingCollection<T> рдЕрдм рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Channel<T> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдо рд╕рдорд░реНрдкрд┐рдд рдереНрд░реЗрдбреНрд╕ рд╣реИрдВ, рдЬреЛ рдХрд╛рдо рдХреЛ .NET рдереНрд░реЗрдб рдкреВрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

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

рдЬреЗрдиреЗрд░рд┐рдХ рд╣реЛрд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╣-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ


рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдЬреИрд╕реЗ рдХрд┐ ASP.NET Core рдХреЗ рд╕рд╛рде рдСрд░рд▓рд┐рдпрдиреНрд╕ рдХреА рд╕рд╣-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ, рдЙрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ .NET .NET рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╕реЗ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдм рдЖрд╕рд╛рди рд╣реИред

рдпрд╣рд╛рдБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ASP.NET Core рдХреЗ рд╕рд╛рде Orleans рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ UseOrleans :
 var host = new HostBuilder() .ConfigureWebHostDefaults(webBuilder => { // Configure ASP.NET Core webBuilder.UseStartup<Startup>(); }) .UseOrleans(siloBuilder => { // Configure Orleans siloBuilder.UseLocalHostClustering(); }) .ConfigureLogging(logging => { /* Configure cross-cutting concerns such as logging */ }) .ConfigureServices(services => { /* Configure shared services */ }) .UseConsoleLifetime() .Build(); // Start the host and wait for it to stop. await host.RunAsync(); 

рдЬреЗрдиреЗрд░рд┐рдХ рд╣реЛрд╕реНрдЯ рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдСрд░рд▓рд┐рдпрдиреНрд╕ рдПрдХ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рдХреА рдЧрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЗрди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдСрд░рд▓рд┐рдпрдиреНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЗрд╡рд▓рдкрд░ IClusterClient рдпрд╛ IGrainFactory рдХреЛ ASP.NET рдХреЛрд░ MVC рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдирд╛рдЬ рдХреЛ рдЕрдкрдиреЗ MVC рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреА рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдпрд╛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреБрдЫ рдЯреАрдо рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ ASP.NET рдХреЛрд░ рд╣реЗрд▓реНрде рдЪреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдкрдиреЗ рдСрд░рд▓рд┐рдпрдиреНрд╕ рд╕рд╛рдЗрд▓реЛ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд▓реАрдирдиреЗрд╕ рдФрд░ рддрддреНрдкрд░рддрд╛ рдЬрд╛рдВрдЪ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣-рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред

рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░


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

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

рдмреЗрд╣рддрд░ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА


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

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

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

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

рдкреНрд░рдпрд╛рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ


рдЕрдм рдЬрдм рдСрд░рд▓рд┐рдпрдиреНрд╕ 3.0 рджрд░рд╡рд╛рдЬрд╛ рдЦреЛрд▓ рд░рд╣рд╛ рд╣реИ рддреЛ рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреА рд░рд┐рд▓реАрдЬ рдкрд░ рдзреНрдпрд╛рди рджреЗ рд░рд╣реЗ рд╣реИрдВ - рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд░реЛрдорд╛рдВрдЪрдХ рдпреЛрдЬрдирд╛рдПрдБ рд╣реИрдВ! рдЖрдУ рдФрд░ GitHub рдФрд░ Gitter рдкрд░ рд╣рдорд╛рд░реЗ рдЧрд░реНрдордЬреЛрд╢реА рд╕реЗ рд╕реНрд╡рд╛рдЧрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ рдФрд░ рдЗрди рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдВред

рдСрд░рд▓рд┐рдпрдиреНрд╕ рдЯреАрдо

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


All Articles