рдЖрдзрд┐рдХрд╛рд░рд┐рдХ ASP.NET MVC 4 рд░реЛрдбрдореИрдк



рдПрдХ рдФрд░ рд╕рд╛рд▓ рдмреАрдд рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ ASP.NET MVC рдХреА рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА ASP.NET MVC 4 рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░реЛрдбрдореИрдк рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдХрд╡рд░ рдХрд░рддреА рд╣реИред

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

рд▓рдХреНрд╖реНрдпреЛрдВ


рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред рдПрдХ рдорд╣рд╛рди рдФрд░ рдЕрджреНрднреБрдд рд▓рдХреНрд╖реНрдп рдХреА рдЦрд╛рддрд┐рд░, рд╣рдо рдЦреБрдж рдХреЛ ASP.NET MVC рдХреЛ рдЖрдзреБрдирд┐рдХ "рд╕рдореГрджреНрдз" рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдордВрдЪ рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ ASP.NET MVC 4 (рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреИрдХ) рдХреА рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬреЛ рд╣рдореЗрдВ рдЗрд╕ рд▓рдХреНрд╖реНрдп рдХреЗ рдХрд░реАрдм рд▓рд╛рдПрдВрдЧреЗред

рджрд┐рд╢рд╛рдУрдВ


рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд╛рд░реА ASP.NET рдЯреАрдо рдиреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдореБрдЦ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХреАред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ ASP.NET MVC рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд╣рдо рдХреЗрд╡рд▓ рд╣рдорд╛рд░реА рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдЙрдирдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП, Microsoft рдХреЗ рдмрд╛рд╣рд░ рдФрд░ рдмрд╛рд╣рд░ рдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛


рдЕрдм рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рдереЗ рд╡рд╣ рд╣реИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛! рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ рд╡рд┐рд╡рд░рдг рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВред

рд╡реНрдпрдВрдЬрдиреЛрдВ (рд╡реНрдпрдВрдЬрдиреЛрдВ - рдХрд╛рд░реНрдп-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рд╕реНрддрд╛рд░ рдЙрдкрдХрд░рдг)

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

ASP.NET MVC 4 рд░реЗрд╕рд┐рдкреА рдПрдХ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рд╣реИ рдЬрд┐рд╕реЗ NuGet рджреНрд╡рд╛рд░рд╛ рдпреВрдЖрдИ рдФрд░ рдХреЛрдб рдХреЗ рд╕рд╛рде рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░реНрдп рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ: OAuth- рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдПрдХрд▓ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ Oauth рдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ UI рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреА рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдПрдХ рдпреВрдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓ рдкреВрдЫреЗрдЧрд╛ рдФрд░ рдЬрд╡рд╛рдмреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред

рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг:
рд▓реЗрдЦрди, рддреИрдирд╛рддреА рдФрд░ рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛

рдиреБрд╕реНрдЦрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдиреБрд╕реНрдЦрд╛ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рдВрд╡рд╛рдж рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ MVC рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ EnvDTE.DTE рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, DTE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ASP.NET MVC рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рднреАрддрд░ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдирд┐рдпрдВрддреНрд░рдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдИ рддрд░реАрдХреЗ рдХреЙрд▓рд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд░реЗрд╕рд┐рдкреА рдПрдкреАрдЖрдИ рдЗрд╕ рд╕реЗрдЯ рдХреЛ рдПрдХ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЗрд╕реЗ NuGet рдкреИрдХреЗрдЬ рдореЗрдВ рдкреИрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдм рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдиреБрд╕реНрдЦрд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдиреБрд╕реНрдЦрд╛ "рдбрд┐рд╕реНрдХ" рд╣реИ

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

image

рдЙрдкрд▓рдмреНрдз рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреА рд╕реВрдЪреА NuGet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреА рд╕реВрдЪреА рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдиреБрд╕реНрдЦрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдпреВрдЖрдИ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреБрд╕реНрдЦрд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

image

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

рдкрдХрд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдПрдкреАрдЖрдИ

рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдиреБрд╕реНрдЦрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рд╣реИред рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ DTE рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХреЛ рд╕реАрдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛ MVC рдбрд┐рдЬрд╝рд╛рдЗрди рд╕рд┐рд╕реНрдЯрдо рдХреА рд╢реИрд▓реА рдореЗрдВ рдПрдХ рд╕рд░рд▓ "рдореБрдЦреМрдЯрд╛" рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдиреБрд╕реНрдЦрд╛ рдПрдкреАрдЖрдИ рдЖрдкрдХреЛ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдбреАрдЯреАрдИ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдп рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВ ред

рдПрдВрдмреЗрдбреЗрдб рд╡реНрдпрдВрдЬрдиреЛрдВ

рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реНрдпрдВрдЬрдиреЛрдВ рдХреЗ рдХреБрдЫ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рд╡рд┐рдХрд▓реНрдк: OAuth, рдЕрдЬрд╛рдХреНрд╕ рдЧреНрд░рд┐рдб, WIFред рд╕рд╣рд┐рдд рд╣рдо рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореЛрдмрд╛рдЗрд▓ рдХрд╛ рд╕рд╣рд╛рд░рд╛


рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕, рдЬреИрд╕реЗ рдлреЛрди рдФрд░ рдЯреИрдмрд▓реЗрдЯ, рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдЬрдирд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдЗрд╕ рддрдереНрдп рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЖрдк рдЫреЛрдЯреЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдФрд░ рдПрдХ рдЯрдЪ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред ASP.NET MVC 4 рдореЗрдВ, рд╣рдордиреЗ рдЖрдкрдХреЛ рдПрдХ рдирдИ рд╕рд╛рдЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд▓рдЪреАрд▓реЗ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рджрд┐рдпрд╛ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди

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

image

рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ "рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди"

рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдЕрдЧрд▓рд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдФрд░ рдЯреИрдмрд▓реЗрдЯ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдорд╛рд░реНрдХрдЕрдк, рд╡рд┐рдЪрд╛рд░, рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЬреИрд╕реЗ jQuery рдореЛрдмрд╛рдЗрд▓) рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдРрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдПрдХ рд╕рдореГрджреНрдз рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдПрдХ рдкреГрд╖реНрда рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

image

рдбрд┐рд╡рд╛рдЗрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рджреГрд╢реНрдп

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рдкреНрд░рддреНрдпрдп "ред рдореЛрдмрд╛рдЗрд▓" рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдЪрд╛рд░ рдмрдирд╛рдХрд░ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдЪрд╛рд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

image

рд╣рдо рдирдП jQuery рдХреЗ рдореЛрдмрд╛рдЗрд▓-рдЖрдзрд╛рд░рд┐рдд рд╡реНрдпреВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореМрдЬреВрджрд╛ рдХрдВрдЯреНрд░реЛрд▓рд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рдиреЗ рд╡рд╛рд▓реЗ jQuery рдХреЗ рдореЛрдмрд╛рдЗрд▓-рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпреВ рдФрд░ рдРрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдРрдб рдмреЙрдХреНрд╕ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ред рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдРрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдЬреИрд╕рд╛ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ "рд░рд┐рдХреНрдд" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

image

рд╡реНрдпреВ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╕реНрддреБрддрд┐ рдЗрдВрдЬрди рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ ред рд╡рд┐рдХрд▓реНрдк рдЬреЛ рджреГрд╢реНрдп рд╕реЗ рджреГрд╢реНрдп рдореЗрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рджреЗрдЦрдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

image

рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрд╡рд┐рдЪрд░

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

рд░реЗрдЬрд╝рд░ рд╣реЗрд▓реНрдкрд░реНрд╕ рд╕рдкреЛрд░реНрдЯ


ASP.NET рд╡реЗрдм рдкреЗрдЬ рд░реЗрдЬрд╝рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣рд╛рдпрдХ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред App_Code рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ .shtml рдпрд╛ .vbhtml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ред ASP.NET MVC рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ ASP.NET MVC рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯ (рдЬреИрд╕реЗ ViewContext) рдпрд╛ ASP.NET MVC HtmlHelper рдЙрджрд╛рд╣рд░рдг рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрдЧреАред

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

рдЯрд╛рд╕реНрдХ рдФрд░ рдЯрд╛рд╕реНрдХ <T> AsyncController рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ


ASP.NET MVC рдХреЗ рдореМрдЬреВрджрд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдПрдХреНрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди ASP.NET MVC 3 рд╕реНрдирд┐рдкреЗрдЯ рдПрдХ рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдзрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

public void IndexAsync(string city) { AsyncManager.OutstandingOperations.Increment(2); NewsService newsService = new NewsService(); newsService.GetHeadlinesCompleted += (sender, e) => { AsyncManager.Parameters["headlines"] = e.Value; AsyncManager.OutstandingOperations.Decrement(); }; newsService.GetHeadlinesAsync(); SportsService sportsService = new SportsService(); sportsService.GetScoresCompleted += (sender, e) => { AsyncManager.Parameters["scores"] = e.Value; AsyncManager.OutstandingOperations.Decrement(); }; sportsService.GetScoresAsync(); } public ActionResult IndexCompleted(string[] headlines, string[] scores, string[] forecast) { return View("Common", new PortalViewModel { NewsHeadlines = headlines, SportsScores = scores, }); } 

ASP.NET MVC 4 рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ Async CTP рдХреЗ рд╕рд╛рде (рдпрд╛ рдЬрдм C # 5 рдЬреЛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреАрд╡рд░реНрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ), рдпрд╣ рд╕реНрдирд┐рдкреЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

 public async Task<ActionResult> Index(string city) { var newsService = new NewsService(); var sportsService = new SportsService(); return View("Common", new PortalViewModel { NewsHeadlines = await newsService.GetHeadlinesAsync(), SportsScores = await sportsService.GetScoresAsync() }); } 

рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреИрдХреЗрдЬрд┐рдВрдЧ


ASP.NET MVC 4 рдореЗрдВ рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреИрдХ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред рдкреИрдХреЗрдЬрд┐рдВрдЧ рд╡рд┐рднрд┐рдиреНрди .css рдФрд░ .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддреА рд╣реИ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░рд┐рдХреНрдд рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ (minification) рдХреЛ рд╣рдЯрд╛рдХрд░ рдЕрдВрддрд┐рдо рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рддреА рд╣реИред рдпрд╣ рдЯреНрд░реИрдлрд╝рд┐рдХ рдФрд░ рд▓реЛрдб рд╕рдордп рджреЛрдиреЛрдВ рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╡реЗрдм рдкреЗрдЬреЛрдВ рдХреЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдЧрддрд┐ рджреЗрдЧрд╛ред

рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛


рд╣рдордиреЗ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдкреНрд░рддреНрдпреЗрдХ рдирд╡рд╛рдЪрд╛рд░ рдХреА рдРрд╕реА рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕рдорд░реНрдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЕрдиреНрдп рдЯреАрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВредрдкреБрдирд╢реНрдЪ: рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдорджрдж рдХреЗ рд▓рд┐рдП рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдмреЗрд▓реЛрдЯреЗрд░реНрд╕рдХреЛрд╡рд╕реНрдХреА рдХрд╛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред

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


All Articles