Aspnetcore: рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб Blazor рдкрд░ рд╡рд╛рдкрд╕ рд░реЗрдЬрд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдорд╛рд░реНрдЪ 2019  ┬╖  50рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/aspnetcore

рд╣рдордиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ Blazor 0.5.0 рдореЗрдВ Blazor рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЙрдбрд▓ рдкреЗрд╢ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ .NET Core 3.0 рдореЗрдВ рд╢рд┐рдк рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдмреНрд▓реЗрдЬрд╝рд░ рдореЗрдВ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдореЙрдбрд▓ рдХреЛ рдПрдХ рдирдпрд╛ рдирд╛рдо рджреЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛: рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рднреНрд░рдо рдкреИрджрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ рд╣реИред

рдЗрд╕ рднреНрд░рдо рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд▓ рдХреЛ Blazor рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред Blazor рдРрдкреНрд╕ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ .NET Core рдкрд░ рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ WebAssembly рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб Blazor рд╕рдкреЛрд░реНрдЯ .NET Core 3.0 рдХреЗ рд╕рд╛рде рд╢рд┐рдк рд╣реЛрдЧрд╛ рдФрд░ рдЬреИрд╕реЗ рд╣реА WebAssembly рд╕рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕рдкреЛрд░реНрдЯ рдмрд╛рдж рдореЗрдВ рдЖрдПрдЧрд╛ред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг:

  • .NET Core 3.0 рдореЗрдВ рд░реЗрдЬрд╝рд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "рдмреНрд▓реЗрдЬрд╝рд░ (рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб)" рдХрд░реЗрдВред
  • рдкреВрд░реНрдг рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП Blazor рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ "Blazor (рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб)" рдХрд░ рджреЗрдВред
  • services.AddRazorComponents() рдирд╛рдо рдмрджрд▓реЗрдВ -> services.AddServerSideBlazor()
  • routes.MapComponentHub<TComponent>() рдирд╛рдо рдмрджрд▓реЗрдВ -> routes.MapBlazorHub<TComponent>()
  • рдирд╛рдо рдмрджрд▓реЗрдВ components.server.js blazor.server.js рдХреЛ рд▓реЗрдиреЗ рдФрд░ components.webassembly.js blazor.webassembly.js рдХреЛ рд╡рд╛рдкрд╕
  • .NET рдХреЛрд░ 3.0 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Blazor рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░реЗрдВ (#8859)
  • рдЕрдиреНрдп рдмреНрд▓реЗрдЬрд╝рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдмреНрд▓реЗрдЬрд╝рд░ (рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб)" рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдЖрдЗрдХрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
Done area-blazor enhancement

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрджрдо рд╣реИред рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдмреНрд▓реЗрдЬрд╝рд░ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд▓реЗрдХрд░ рднреНрд░рдо рдХрд╛ рдХреЛрдИ рдЕрдВрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╣рдж рддрдХ рдХрд┐ рд▓реЛрдЧреЛрдВ рдиреЗ рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдврд╛рдВрдЪреЗ рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗред

рд╕рд╛рде рд╣реА, рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдп рдореЗрдВ, Blazor рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рд╣реИред

рд╕рднреА 50 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╕реНрд╡реАрдХреГрдд рдирд┐рд░реНрдгрдп рд╣реИ? рдХреНрдпрд╛ рд╣рдо рдЕрднреА рднреА рд╡реЛрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдирд┐рдЬреА рддреМрд░ рдкрд░ рдореИрдВ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдПрдХ рдмреЗрд╣рддрд░ рдирд╛рдо рд╣реИред :(

@xclud рдпрд╣ рдПрдХ рдЦреБрд▓рд╛ рдордВрдЪ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ

рд╣рдо рдЕрднреА рднреА рдШрдЯрдХ рдореЙрдбрд▓ рдХреЛ рд░реЗрдЬрд╝рд░ рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдВрдЧреЗ (рдЕрд░реНрдерд╛рдд рдПрдХ .рд░реЗрдЬрд╝рд░ рдлрд╝рд╛рдЗрд▓ рдЕрднреА рднреА рдПрдХ рд░реЗрдЬрд╝рд░ рдШрдЯрдХ рд╣реЛрдЧреА), рд▓реЗрдХрд┐рди рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИ рддреЛ рд╣рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдо рд░рдЦрдирд╛ рдмрд╣реБрдд рдмреЛрдЭрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред Blazor рдирд╛рдо рдХреЗ рдкреАрдЫреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдЧрддрд┐ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдирд╛рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╣реИрдВ - рд╣рдо рдЪрд╛рд╣реЗ рдХреЛрдИ рднреА рдирд╛рдо рдЪреБрдиреЗрдВ, рд╣рд░ рдХреЛрдИ рдЦреБрд╢ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реЗрдЬрд╝рд░ рдиреЗ рдЕрдм рддрдХ рд╣рдорд╛рд░реА рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╕реЗрд╡рд╛ рдХреА рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрджрдо рд╣реИред рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдмреНрд▓реЗрдЬрд╝рд░ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд▓реЗрдХрд░ рднреНрд░рдо рдХрд╛ рдХреЛрдИ рдЕрдВрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╣рдж рддрдХ рдХрд┐ рд▓реЛрдЧреЛрдВ рдиреЗ рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдврд╛рдВрдЪреЗ рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗред

рд╕рд╛рде рд╣реА, рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░рд╛рдп рдореЗрдВ, Blazor рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рд╣реИред

рдПрдХ рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛ рдмреНрд▓реЗрдЬрд╝рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрдХреНрд╕рд░ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИред рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рднреНрд░рдо рд╣реИред рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ: рдЬрдм рдПрдХ рдмреНрд▓реЗрдЬрд╝рд░ рдРрдк рдПрдХ рд░реЗрдЬрд╝рд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдРрдк рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд░реЗрдЬрд╝рд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ [рд░реЗрдЬрд╝рд░ рдкреЗрдЬ рдФрд░ рд░реЗрдЬрд╝рд░ рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝] рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд░реЗрдЬрд╝рд░/рдмреНрд▓реЗрдЬрд╝рд░ рдХрд╣рддреЗ рд╕рдордп рдЦреБрдж рдкрд░ рдЯреНрд░рд┐рдкрд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ Blazor рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рднреА рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИ, SEO рдХрдард┐рди, рдореИрдВ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддрд╛ рдерд╛ред

рд╡рд┐рд╡реЗрдХ рдкреНрд░рдмрд▓ рд╣реЛрддрд╛ рд╣реИ! рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

.razor рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реБрдЖ, рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдЬрд╝рд░ рдкреГрд╖реНрда рдЕрднреА рднреА .cshtml рд╣реИрдВ рдФрд░ рдШрдЯрдХ .razor рд╣реИрдВ, рдЗрд╕реЗ .blazor рдХрд╣рдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╛ рд░реЗрдЬрд╝рд░ рдкреЗрдЬреЛрдВ рдХреЛ .cshtml рдХреЗ рдмрдЬрд╛рдп .razor рднреА рдХрд╣рддреЗ рд╣реИрдВ?
рдХрд╛рдлреА рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд

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

рдмреНрд▓реЗрдЬрд╝рд░ рд╣реЛрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ:

  • рд╕реАрдПрд╕рдкреА рд╕реБрд░рдХреНрд╖рд╛ рд╣реЗрдбрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛
  • SRI рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ blazor.webassembly.js рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)
  • рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдирд╛ (рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ рдбреАрдПрд▓рдПрд▓ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ wasm рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╕реАрдбреАрдПрди рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреБрдЪрд┐рдд рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ рдЖрдЬрдорд╛рдпрд╛ рдерд╛)

рддреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣реЛрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрднреА рднреА рдореМрдЬреВрдж рд░рд╣реЗрдЧрд╛ред

рдореБрдЭреЗ рдпрд╣ рдирд╛рдо рдмрджрд▓рдХрд░ рд╕рд┐рд░реНрдл "рдмреНрд▓реЗрдЬрд╝рд░" рдкрд╕рдВрдж рд╣реИред рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде Blazor рдФрд░ Razor рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдЯреАрдПрдо рд╕рд┐рд░реНрдл рд╕рд╛рджрд╛ рднреНрд░рдо рд╣реИред

Blazor рдПрдХ рдЯреНрд░реЗрдХреНрдиреЛрд▓реЙрдЬреА рд╣реИ (рдХрдо рд╕реЗ рдХрдо) рджреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЙрдбрд▓ред рддреЛ, рдореБрдЭреЗ рдмреНрд▓реЗрдЬрд╝рд░ рдкрд╕рдВрдж рд╣реИ!

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

рдореИрдВ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдБ! рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдпрд╛ (рдпрд╛ рдкреБрд░рд╛рдирд╛) рдирд╛рдордХрд░рдг рдмрд╣реБрдд рдХрдо рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдореИрдВ @vertonghenb рд╕реЗ рд╕рд╣рдордд .blazor рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред .cshtml рдФрд░ .razor рджреЛрдиреЛрдВ рдореЗрдВ рд░реЗрдЬрд╝рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдХреЗ рдкрд╛рд╕ Blazor рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ .blazor рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдФрд░ рдХрдо рдЕрд╕реНрдкрд╖реНрдЯ IMHO рдмрдирд╛ рджреЗрдЧрд╛ред

рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЯрд┐рдкреНрдкрдгреА: рдореИрдВ _рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕_ рд╕реЗ _рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдмреНрд▓реЗрдЬрд╝рд░_ рдореЗрдВ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред

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

рдмреНрд▓реЗрдЬрд╝рд░ рдирд╛рдо рдХрд╛ рд▓рд╛рдн:

  • рдпрд╣ рд╕рдореБрджрд╛рдп рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╛рдо рд╣реИред рджрд░рдЕрд╕рд▓ рдЗрд╕реЗ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ .NET рдЪрд▓рд╛рдиреЗ рдХреА рддрдХрдиреАрдХ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ 100% рд╕рд╣реА рдирд╣реАрдВ рд╣реИред
  • рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛/рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Blazor рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкрд░ .NET рдХреЗ рдмрд┐рдирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдХреЗ)ред

рд░реЗрдЬрд░ рдШрдЯрдХ рдирд╛рдо рдХрд╛ рд▓рд╛рдн:

  • рд░реЗрдЬрд░ рдФрд░ ASP.NET рдХреЛрд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рдиреЗ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдХрд┐ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЛ рдЙрдЪрд┐рдд рд╕рдорд░реНрдерди рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдорд┐рд▓реЗрдЧреАред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдмреНрд▓реЗрдЬрд╝рд░ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдмрд╣реБрдд рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реНрдерд┐рд░ рддрдХрдиреАрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд░реЗрдЬрд░ рд╕рдВрдХрд▓рди рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдХреИрд╕реЗ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ .razor рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░ рдЙрддреНрдкрдиреНрди рд░реЗрдЬрд░ рдкреЗрдЬ рднреА рд╣реЛрдВрдЧреЗ рдФрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ .razor рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд░рдЦреВрдВрдЧрд╛ред рдореВрд▓ рд░реВрдк рд╕реЗ .xaml рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдпрдВрддреНрд░рдг, рдкреГрд╖реНрда, рд╕рдВрд╕рд╛рдзрди, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд░реЗрдЬрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рддреЛ рдмреНрд▓реЗрдЬрд╝рд░ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП .blazor рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ред

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

рдЗрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░, рд╡рд╣ рднреНрд░рдо рджреВрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдХрдВрдкреЛрдЬрд╝реЗрдмрд▓ рд░реЗрдЬрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХрд╛ рдореМрдХрд╛ рд╣реЛрддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ .razor рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп .blazor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░реА рд╣реЛрдЧреАред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЙрди рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдмреНрд▓реЗрдЬрд╝рд░ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддрд░реНрдХ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЧреИрд░-рдмреНрд▓реЗрдЬрд╝рд░ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рд╕рд╛рде рд╣реА, рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб Blazor рдШрдЯрдХ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ .blazor рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ Blazor рдШрдЯрдХреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИ (рдЬрд┐рд╕реЗ рддрдм рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) .

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ @poke рдФрд░ @duracellko рджреЛрдиреЛрдВ рдиреЗ рдЧреБрдЬрд░рдиреЗ рдореЗрдВ рд╢рдмреНрдж рдмреНрд▓реЗрдЬрд╝рд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдПрдХ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред __рдмреНрд▓реЗрдЬрд╝рд░ (рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб)__ рдХреЗ рдмрдЬрд╛рдп __рдмреНрд▓реЗрдЬрд╝рд░ рдШрдЯрдХреЛрдВ__ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдУрд╣ред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╛рдо рдХреЗ рд▓рд┐рдП .blazor рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

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

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

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдмреНрд▓реЗрдЬрд╝рд░ рдШрдЯрдХ рдерд╛ рдЬреЛ рдореБрдЭреЗ рдирд╛рдо рдкрд░ рдмреЗрдЪрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреИрд╕рд╛ рд╣реИ рд╡реИрд╕рд╛ рд╣реА рдмрддрд╛рдУ рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рднреА рд▓рдЧрддрд╛ рд╣реИред :)

...рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХреЗ рдмреАрдЪ рднреНрд░рдо рднреА рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдП рдмрд┐рдирд╛ рдХрд╣рд╛рдиреА рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рд╣рд╛рдВ! рдЕрдВрдд рдореЗрдВ :) Blazor рдЕрд╕рд▓реА рдирд╛рдо рд╣реИред

рдХреНрдпрд╛ рддреБрдо рднреА рдЬрд▓рддреЗ рд╣реЛ?

рд╣рд╛рдВ

рдореЗрд░реЗ рд▓рд┐рдП рдмреНрд▓реЗрдЬрд╝рд░ = WASM.

рддреЛ 'рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕' (SignarR!) рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдЕрдВрддрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ: рдмреНрд▓реЗрдЬрд╝рд░ рдХрд╛ WASM рд╣реИред

IMHOред

рдпрд╣ рдирд┐рд╢реНрдЪрдп рд╣реА рд╕рд╣реА рдирд┐рд░реНрдгрдп рд╣реИред рдирдпрд╛ "рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕" рд╢рдмреНрдж рдкреЗрд╢ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рднреА, рдореИрдВ рдФрд░ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдЕрднреА рднреА рдЗрд╕реЗ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдмреНрд▓реЗрдЬрд╝рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореИрдВ .blazor рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдпрд╛ .component рдЬреИрд╕рд╛ рдХреБрдЫ рднреА рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред MVC рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рд░реЗрдЬрд╝рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП .razor рдЕрддрд┐рд░рд┐рдХреНрдд рднреНрд░рдо рд▓рд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЛ рд╡рд╛рдкрд╕ рдмреНрд▓реЗрдЬрд╝рд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдпреВ-рдЯрд░реНрди рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдШрдЯрдХ рд╡рд┐рд╕реНрддрд╛рд░ .razor рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд░реЗрдЬрд╝рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реЛрдиреЗ рдореЗрдВ рднреНрд░рдорд┐рдд рд╣реИред ( .cshtml рдФрд░ .razor )

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ .blazor рдпрд╛ .component рдПрдХреНрд╕рдЯреЗрдВрд╢рди .razor рд╕реЗ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдВрдЧреЗред

рдЗрд╕ рдирд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рдмреНрд▓реЗрдЬрд╝рд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдХрд╛рдлреА рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╛рд╣рдд рдорд╣рд╕реВрд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рд▓реЛрд▓рд╡рдЯ рдерд╛? рд╡рд╣ рдХреНрд╖рдг рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╛рдо рдмрджрд▓рдХрд░ рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдореЗрдВ рд╕реБрдирд╛ред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реЗрдЬрд░ рд╢рдмреНрдж рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реИ:

  • рдЙрд╕реНрддрд░рд╛
  • рдЙрд╕реНрддрд░рд╛ рджреГрд╢реНрдп
  • рд░реЗрдЬрд░ рдкреЗрдЬ
  • рд░реЗрдЬрд░ рдкреЗрдЬ рдХрдВрдЯреНрд░реЛрд▓рд░
  • рд░реЗрдЬрд░ рдкреЗрдЬ рдореЙрдбрд▓
  • рд░реЗрдЬрд░ рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
  • рд░реЗрдЬрд░ рдЖрдВрд╢рд┐рдХ рджреГрд╢реНрдп
  • рд░реЗрдЬрд░ рд╡реНрдпреВ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕
  • : рдирдпрд╛: рд░реЗрдЬрд░ рдШрдЯрдХ: рднреНрд░рдорд┐рдд: //confusing much yet?
  • рдЕрдЧрд▓рд╛ рд░реЗрдЬрд░-рдкрд╛рд░рд┐рд╡рд╛рд░рд┐рдХ рд╕реБрд╡рд┐рдзрд╛: рд░реЗрдЬрд░ рдШрдЯрдХ рджреЗрдЦреЗрдВ // just kidding :)

рд╣рдордиреЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЗрди рд╕рднреА рд░реЗрдЬрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдХрд┐рд╕реА рдирдП рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред

рди рдХреЗрд╡рд▓ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдиреБрднреВрддрд┐ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛, рдмрд▓реНрдХрд┐ рд╡рд░реНрдгрди рдФрд░ рд╕рдордиреНрд╡рдп (рдХреИрд╕реЗ/рдХрдм/рдХреНрдпрд╛) рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдЯреАрдореЛрдВ рдкрд░ "рд╕рд╣реА" рд╢рдмреНрджрд╛рд╡рд▓реА рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред

Blazor рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝ рдЪреБрдХреЗ рд╣реИрдВред рдпреЛ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд░реЗрдЬрд░ рд╕реЙрдХреЗрдЯ рднреА рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рд╕реЗ рдмреЗрд╣рддрд░ рдирд╛рдо рд╣реЛрддрд╛ред рдзреВрдк рдХрд╛ рдЪрд╢реНрдорд╛:

рд╕рд╛рде рд╣реА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ .razor рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ .blazor рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдирд╛рдордХрд░рдг рдХрдард┐рди рд╣реИред
рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд░рд▓ рд░рдЦреЗрдВред

-рдмреНрд░рд╛рдпрди :)

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

@Mitiko рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб Blazor рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб Blazor (WebAssembly рдкрд░ рдЖрдзрд╛рд░рд┐рдд) рдХреЗ рдирд┐рд░реНрдгрдпреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдмрд╛рдж рд╡рд╛рд▓рд╛ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдк рдЕрднреА рднреА рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдмреНрд▓реЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рджреЛрдиреЛрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЙрдбрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЙрдирдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрддрддрдГ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рддрд░реНрдХ рд╣реИ рдЬреЛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдБ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ? рдлрд┐рд░ рдврд╛рдВрдЪрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ "рдЦреЛрд▓" рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдирд╛рдо рдмрджрд▓рддрд╛ рд╣реИред рд╕рд┐рд░реНрдл рджреЛ рдирд╛рдо рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред @poke рдХреА рдмрд╛рдд рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВ: @Mitiko

https://www.youtube.com/watch?v=dNQ7MgPZby4

рдмреНрд▓реЗрдЬрд╝рд░ рд╣реЛрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

@ghidello рдпрд╣ рд╡реИрд╕реЗ рд╣реА рд░рд╣рддрд╛ рд╣реИред рддреЛ рддреАрди рдмреНрд▓реЗрдЬрд╝рд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реЛрдВрдЧреЗ: рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб, ASP.NET рдХреЛрд░ рд╣реЛрд╕реНрдЯреЗрдб рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб

рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдХрд░ рдЦреБрд╢реА рд╣реБрдИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ - рдирд╛рдо рдХрд╛ рдПрдХ рдЕрд░реНрде рдФрд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдПрдХ рдЧрддрд┐ рд╣реИ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдореЙрдбрд▓ рдордЬрдмреВрдд рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред

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

рдШрдЯрдХ рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЗрд╕рдХрд╛ рднреА рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдФрд░ .razor рдлрд╛рдЗрд▓реЗрдВ .blazor рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ Blazor рддрдХрдиреАрдХ рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВред рдЕрдиреНрдпрдерд╛ рдЙрдиреНрд╣реЗрдВ рдЖрдо рд░реЗрдЬрд░ рдПрдорд╡реАрд╕реА рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрднреА рднреА рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд:

рддреЛ рдЕрдЧрд░ рдореИрдВ рдПрдХ рдШрдЯрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдмреНрд▓реЗрдЬрд╝рд░ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдореИрдВ рдШрдЯрдХреЛрдВ рдХреЛ "рдмреНрд▓реЗрдЬрд╝рд░ рдШрдЯрдХ" рдпрд╛ "рд░реЗрдЬрд╝рд░ рдШрдЯрдХ" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ?

@egil рдбреИрди рд░реЛрде рдиреЗ рдКрдкрд░ рдЬреЛ рдХрд╣рд╛ рд╣реИ,

рд╣рдо рдЕрднреА рднреА рдШрдЯрдХ рдореЙрдбрд▓ рдХреЛ рд░реЗрдЬрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдВрдЧреЗ (рдЕрд░реНрдерд╛рдд рдПрдХ .razor рдлрд╝рд╛рдЗрд▓ рдЕрднреА рднреА рдПрдХ рд░реЗрдЬрд░ рдШрдЯрдХ рд╣реЛрдЧреА)

рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рдореЗрд░реЗ рдЕрдиреБрдореЛрджрди рдХреЗ рдордд рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛, рдПрдХ RazorComponent рдПрдХ рд╕реА # рдШрдЯрдХ рд╣реИ рдЬреЛ рд░реЗрдЬрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рд╕реА # рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо RazorComponents рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ Blectron (StorageExplorer рдбреЗрдореЛ рдореЗрдВ), HTML-рдЬрдирд░реЗрдЯрд░ (рдЬреИрд╕реЗ рдИрдореЗрд▓ рдмреЙрдбреА рдЬреЗрдирд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдХрд┐ RazorGenerator .cshtml рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред Blazor рддрдХ рд╣реА рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, Blazor рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЙрдбрд▓ (WebAssembly рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ RazorComponents рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред

image

рдореИрдВрдиреЗ рдПрдХ рдЖрд░реЗрдЦ рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ .. рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ

Blazor (рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб w/WASM) рдФрд░ Blazor (рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб w/.NET Core) рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ!

рджреЛрдиреЛрдВ рдХреЗ UI рдХреЗ рд▓рд┐рдП рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕, рдмреНрд▓реЗрдЬрд╝рд░ рдХреЗ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЙрдбрд▓ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред рд╕рд░рд▓, рд╕рд╛рдл-рд╕реБрдерд░рд╛, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рд╣рд╛рд╕реНрдп рдХрд▓рд╛рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╣реЗрдВрдЧреЗ... GIT R DONE!

рдмреНрд▓реЗрдЬрд╝рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред
рдФрд░ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░реЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреНрдп рдиреЗ рдХрд╣рд╛ рд╣реИ, .blazor (рдФрд░ "рдмреНрд▓реЗрдЬрд╝рд░ рдШрдЯрдХ" рдирд╛рдо) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрд╛рд░рдг рд╣реИрдВред рдХреНрдпрд╛ .razor (рдФрд░ рдЗрд╕рдХрд╛ "рд░реЗрдЬрд░ рдШрдЯрдХ" рдирд╛рдо) рд░рдЦрдиреЗ рдХреЗ рдкреАрдЫреЗ рдФрд░ рддрд░реНрдХ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ рддрд░реНрдХ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ:

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

const string serverSideName = "Blazor (server-side)";
const string clientSideName = "Blazor (client-side)";

string componentModel = "Razor Components";
string ext = ".razor";

if (serverSideName.Contains("Blazor") && clientSideName.Contains("Blazor"))
{
    componentModel = "Blazor Components";
    ext = ".blazor";
} 

Console.WriteLine(componentModel);
Console.WriteLine(ext);

рд╣рдо .razor рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдХреНрдпреЛрдВ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдЗрд╕рдХреЗ рдХреБрдЫ рдХрд╛рд░рдг рд╣реИрдВ:

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

@ danroth27 рдЬреЛ рдореБрдЭреЗ рдкрд░реЗрд╢рд╛рди рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд░реЗрдЬрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ .cshtml рдФрд░ .razor рджреЛрдиреЛрдВ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднреНрд░рдо рд╣реЛрдЧрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд░реЗрдЬрд░ рдкреЗрдЬ/рдШрдЯрдХ/рдПрдорд╡реАрд╕реА рд╡реНрдпреВ рдХреЗ рд▓рд┐рдП рд╣реИред

рдЕрдиреНрдп рджреЛ рдмрд┐рдВрджреБ рдХрд╛рдлреА рдЙрдЪрд┐рдд рд╣реИрдВред

@ рдбреИрдирд░реЛрде27

рдирд╛рдо рдЕрднреА рднреА рд╕рдЯреАрдХ рдФрд░ рд╡рд░реНрдгрдирд╛рддреНрдордХ рд╣реИред рдПрдХ .razor рдлрд╝рд╛рдЗрд▓ рдПрдХ UI рдШрдЯрдХ рд╣реИ рдЬрд┐рд╕реЗ рд░реЗрдЬрд╝рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

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

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

рдЗрд╕рд▓рд┐рдП рд╣рдо рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди .razor рдФрд░ "рд░реЗрдЬрд░ рдШрдЯрдХ" рдирд╛рдо рдХреЛ рд░реЗрдЬрд░ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рд▓реЙрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдПрдореНрдмреЗрдбреЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд▓реЗ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

@ danroth27 рд▓рдЧрднрдЧ рд╣рд░ рдХреЛрдИ (рдореЗрд░реЗ рд╕рд╣рд┐рдд) рдЗрд╕реЗ .blazor рдмрдЬрд╛рдп .razor рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ .razor рдХреНрдпреЛрдВ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдореЗрдВ рдХреЛрдИ рддрдХрдиреАрдХреА рдЪреБрдиреМрддрд┐рдпрд╛рдВ рд╣реИрдВ? рдпрд╛ рдмрд╕ рдпрд╣реА рдЖрдк рдФрд░ рдЖрдкрдХреА рдЯреАрдо рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рджред

рдЬреИрд╕рд╛ рдХрд┐ @ danroth27 рдиреЗ рдХрдИ рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рдордиреНрд╡рдп рдХрд░рдиреЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ, рд╡реАрдПрд╕ рдЯреАрдо, рд░реЗрдЬрд░ рдЯреАрдо рдЯреАрдо, рдпрд╣ рдХрд╛рдо рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЯреАрдо рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред

рдореИрдВ .razor рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлрд┐рдЯрд┐рдВрдЧ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЪреАрдЬ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реА рд╣реИ рдЬреЛ рд░реЗрдЬрд░ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ рдЬреИрд╕реЗ рдбреЗрд╕реНрдХрдЯреЙрдк рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП .xaml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд╣реЗрдВ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЖрдк рд░реЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рдореВрд▓ UWP / xaml рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рди рдХрд┐ html рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд▓реНрдХрд┐ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рджреЗрд╢реА, рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдЬрд╝рд░ рдХреА рдирд┐рд░реНрдорд╛рдг рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЕрдирд┐рд╡рд╛рд░реНрдп рд╢реИрд▓реА .xaml's рд▓рд┐рдП рдПрдХ рд╕рдореНрдореЛрд╣рдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреА рд╣реИ

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

рдореИрдВ рдмреНрд▓реЗрдЬрд╝рд░ рдХреЛ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ рд░реЗрдЬрд░ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ ( .razor ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдХреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдШрдЯрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП .jsx/.tsx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ .jsx/.tsx рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЕрдиреНрдп рд╕рдорд╛рди рдврд╛рдВрдЪреЗ рдкрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЬреИрд╕реЗ рдХрд┐ рдХреИрд╕реЗ Vue рдФрд░ TKO .jsx/.tsx рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдХреЗ рдХрд┐ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо .jsx/.tsx рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред рд░реЗрдЬрд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдмреНрд▓реЗрдЬрд╝рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!

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

рдХреГрдкрдпрд╛ рд▓реЗрдмрд▓ рдлреАрдЪрд░-рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдлреАрдЪрд░-рдмреНрд▓реЗрдЬрд░ рднреА рдХрд░ рджреЗрдВред

рдбрд┐рдпрд░реНрд╕, рдореИрдВ рдмрдирд╛рдо 2019 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдмреНрд▓реЗрдЬрд╝рд░ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрд░ 3 рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди 4 рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдмреНрд▓реЗрдЬрд╝рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рд╣реИ, рд╕рднреА рдкреЗрдЬ рдЕрдм .cshtml рдХреЗ рдмрдЬрд╛рдп .razor рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╣реИрдВ, рдореИрдВрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рджреЗ рд░рд╣рд╛ рдерд╛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ... Index.razor рдкреЗрдЬ рдкрд░ рдЬрд╛рдП рдмрд┐рдирд╛, рдХреГрдкрдпрд╛ рдХреЛрдИ рдорджрдж рдХрд░реЗрдВред рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

@ImadMichaelAyoub рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдпрд╛ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб Blazor рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?

рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред Blazor Gitter рдЪреИрдирд▓ (https://gitter.im/aspnet/Blazor) рд╕реЗ рдЬреБрдбрд╝рдирд╛ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╣рдо рд╡рд╣рд╛рдВ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдмреНрд▓реЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди wwwroot рдореЗрдВ index.html рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдкреЗрдЬ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ index.cshtml рдкрд░ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рд░реЗрдЬрд░ рдФрд░ рдмреНрд▓реЗрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдБред рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдСрдирд▓рд╛рдЗрди рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд░реЗрдЬрд░ рдпрд╛ рдкреБрд░рд╛рдиреЗ рд╕рд╛рдорд╛рди рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдм рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдзрд┐рдХ рднреНрд░рдо рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдирдП рдирд╛рдо (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ .blazor рддрдХ) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдзрд┐рдХ рд╡реЛрдЯ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╣рдо рдЦреЛрдЬ рд╕рдХреЗрдВ рдФрд░ рдирд╡реАрдирддрдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВред

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

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ - "рдпрд╣ рд╡рд╣реА .razor рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ .. рд▓реЗрдХрд┐рди, рдЗрд╕реЗ .razor рд╕реЗ рдЕрд▓рдЧ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдХреА рдпреЛрдЬрдирд╛ рди рд╣реЛ"?

"рдорд╣рд╛рди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдПрдХ рдорд╣рд╛рди рдирд╛рдо рднреНрд░рдо рдХреЗ рд╕рд╛рде рдЖрддреА рд╣реИ"

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

aurokk picture aurokk  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guardrex picture guardrex  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rbanks54 picture rbanks54  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

githubgitgit picture githubgitgit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rynowak picture rynowak  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ