рдЭрдЯрдкрдЯ рдбрд┐рдЬрд╛рдЗрди

рд▓реЛрдЧ рдкреБрд░рд╛рдиреА рдкреБрд╕реНрддрдХреЛрдВ рд╕реЗ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реАрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рдереАрдВред рдХрд┐рддрд╛рдмреЗрдВ рдЕрдЪреНрдЫреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЙрд╕ рд╕рдордп рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрд╕ рд╕рдордп рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╕рдордп рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рд╕реА # рдЬрд╛рд╡рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдФрд░ рдХреБрдЫ рдирдИ рдЕрдЪреНрдЫреА рдХрд┐рддрд╛рдмреЗрдВ рд╣реИрдВред

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

рдпрд╣ рд▓реЗрдЦ DotNext 2018 рдорд╛рд╕реНрдХреЛ рд╕рдореНрдореЗрд▓рди рд╕реЗ рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХрд╛ рдПрдХ рдкреНрд░рддрд┐рд▓реЗрдЦ рд╣реИред рдкрд╛рда рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдЯ рдХреЗ рдиреАрдЪреЗ рд╕реНрд▓рд╛рдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реАрдбрд┐рдпреЛ рдФрд░ рдПрдХ рд▓рд┐рдВрдХ рд╣реИред



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

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

  • рдорд╛рдирджрдВрдб
  • рд╕реНрдерд╛рдкрддреНрдп рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрддрд┐рд╣рд╛рд╕ (рдХреНрдпрд╛ рдерд╛, рдХреНрдпрд╛ рдмрди рдЧрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ);
  • рдХреНрд▓рд╛рд╕рд┐рдХ рдкрдл рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рдЦрд╛рдорд┐рдпреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди
  • рдирд┐рд░реНрдгрдп
  • рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЧреЛрддрд╛рдЦреЛрд░реА рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЪрд░рдг-рджрд░-рдЪрд░рдг рд╡рд┐рд╢реНрд▓реЗрд╖рдг
  • рдкрд░рд┐рдгрд╛рдо рд╣реИред

рдорд╛рдкрджрдВрдб


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



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

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

рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд╡рд┐рдХрд╛рд╕


рдПрдХ рдмрд╛рд░, рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рд┐рд░реНрдл рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рдереЗ, рддрдм рднреА рдХреЛрдИ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдирд╣реАрдВ рдерд╛, рдФрд░ рд╣рд░ рдХреЛрдИ рд╣рд░ рдЪреАрдЬ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рдерд╛ред



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



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



рдЕрдЧрд▓рд╛ рдЪрд░рдг рддрдерд╛рдХрдерд┐рдд рдкреНрдпрд╛рдЬ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдерд╛ ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИ: рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЫреЛрдЯрд╛ рд╡рд░реНрдЧ рдерд╛, рдФрд░ рдпрд╣рд╛рдВ рд╕рд░реНрдХрд▓ рдереЗред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд▓рдЧрддрд╛ рд╣реИред



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



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

рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгред рдИрдореЗрд▓ рдЕрдкрдбреЗрдЯ


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддрд┐рдорд╛рди рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдИрдореЗрд▓ рдкрддреЗ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ред



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



рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рдирдХ ASP.NET MVC рд╕рддреНрдпрд╛рдкрди рд╣реИ, рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ORM рд╣реИ, рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдИрдореЗрд▓-рдкреНрд░реЗрд╖рдХ рд╣реИ рдЬреЛ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рднреЗрдЬрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╣реИ рдирд╛? рдПрдХ рдЪреЗрддрд╛рд╡рдиреА - рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВред

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



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



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

рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ? рдмрди рдЧрдпрд╛ рд╣реИ! рдФрд░ рдЕрдм рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЖрдЗрдП рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦреЗрдВред



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



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



рдФрд░ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реБрдЖред рдпрджрд┐ рдЖрдк рдЧреВрдЧрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдо рд╕реЗ рдХрдо рддреАрди рд╕рдореНрдорд╛рдирдиреАрдп рдкрддрд┐ рдПрдХ рд╣реА рдмрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ: рд╕реНрдЯреАрдлрди .NET рдЬрдВрдХреА (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЙрд╕рдХрд╛ рдЕрдВрддрд┐рдо рдирд╛рдо рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХрд╣реАрдВ рднреА рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ), рд╕рд╛рдзрд╛рд░рдг рдЗрдВрдЬреЗрдХреНрдЯрд░ рдЖрдИрдУрд╕реА рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓реЗрдЦрдХред рдЕрдЧрд▓рд╛ рдЬрд┐рдореНрдореА рдмреЛрдЧрд╛рд░реНрдб рдСрдЯреЛрдореИрдкрд░ рдХрд╛ рд▓реЗрдЦрдХ рд╣реИред рдФрд░ рдиреАрдЪреЗ рдордЬрд╝рд╛ рдФрд░ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рд╕реНрдХреЙрдЯ # Vlashin, F # рдХреЗ рд▓реЗрдЦрдХ рд╣реИрдВред



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



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



рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВред рд╣рдо рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВред рдФрд░ рд╣рдо рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдирд┐рдХрд╛рд▓ рджреЗрдВрдЧреЗред рдФрд░ рдлрд┐рд░ рдХреНрд▓рд╛рд╕ рд▓реЗрдВ рдФрд░ рдирд┐рдХрд╛рд▓реЗрдВред



рдЖрдЗрдП рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдХреНрдпрд╛ рдпреЗ рдХрдХреНрд╖рд╛рдПрдВ рд╕рдордХрдХреНрд╖ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ? GetUser рд╡рд░реНрдЧ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдпрд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рджреЗрдВ" рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред UpdateEmail рдФрд░ BanUser рдХрдХреНрд╖рд╛рдПрдВ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рддреА рд╣реИрдВ рдФрд░ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рд╣рдо рд╕рд░реНрд╡рд░ рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ: "рдХреГрдкрдпрд╛ рд░рд╛рдЬреНрдп рдХреЛ рдмрджрд▓реЗрдВ, рдЖрдкрдХреЛ рдХреБрдЫ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред"



рдЖрдЗрдП HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рджреЗрдЦреЗрдВред рдПрдХ GET рд╡рд┐рдзрд┐ рд╣реИ, рдЬреЛ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдбреЗрдЯрд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдФрд░ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



CQRS рдкреНрд░рддрд┐рдорд╛рди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИред рдХреНрд╡реЗрд░реА GET рдСрдкрд░реЗрд╢рдиреНрд╕ рд╣реИрдВ, рдФрд░ рдХрдорд╛рдВрдб PUT, POST, DELETE рд╣реИрдВ - рдХреБрдЫ рднреА рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред



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



рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдХрдорд╛рдВрдбрд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рди рд╣реИ: рдЗрд╕ рдЬреЗрдиреЗрд░рд┐рдХ рдХреЛ рдПрдХ рдФрд░ рдЪрд╛рд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рджреЗрдЦреЗрдВрдЧреЗред

рд╣реИрдВрдбрд▓рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд╣реИрдВрдбрд▓рд░, рд╣рдордиреЗ рдШреЛрд╖рдгрд╛ рдХреА, рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреНрдпрд╛ рд╣реИ?



рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд╣рд╛рдБ? рд▓рдЧрддрд╛ рд╣реИ рдХреБрдЫ рдлреЗрд▓ рд╣реЛ рдЧрдпрд╛ред

рдбреЗрдХреЛрд░реЗрдЯрд░ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рджреМрдбрд╝ рдкрдбрд╝реЗ


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



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



рдЕрдм рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рдХреА рдорджрдж рд╕реЗ рдЖрдк рдПрдХ рдкреВрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЯреАрдореЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдерд╛? рдЗрдирдкреБрдЯ рдорд╛рди, рд╕рддреНрдпрд╛рдкрди, рдПрдХреНрд╕реЗрд╕ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди, рддрд░реНрдХ рд╕реНрд╡рдпрдВ, рдЗрд╕ рддрд░реНрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреБрдЫ рдШрдЯрдирд╛рдПрдВ, рдФрд░ рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред



рдЖрдЗрдП рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВред рдЯрд╛рдЗрдк рдЯреА рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛рдУрдВ рд╕реЗ IEnumerable рдЗрд╕ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рдо рдЙрди рд╕рднреА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ IEnumerable<validationresult> , рддреЛ рд╣рдо рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдХрд╛рд░ рдорд┐рд▓рд╛рди рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЕрдЧрд░ рдпрд╣ рдХреБрдЫ рдЕрдиреНрдп рд╣реИрдВрдбрд░ рд╣реИ, рддреЛ рдареАрдХ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИ, рдПрдХ рдФрд░ рд░рд┐рдЯрд░реНрди рдорд╛рди рдХрд╛ рдкреНрд░рдХрд╛рд░ред



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

рдЖрджрд┐рдо рдХреЗ рд╕рд╛рде рдЬреБрдиреВрди


рддрд░реНрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдереЛрдбрд╝реЗ рдкрд╣рд▓реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЕрд░реНрдерд╛рддреН рдЗрдирдкреБрдЯ рдорд╛рди рдЬреЛ рд╡рд╣рд╛рдВ рдЖрддреЗ рд╣реИрдВред



рдЕрдм, рдпрджрд┐ рд╣рдо рдРрд╕реЗ рд╡рд░реНрдЧ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдРрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдХрдо рд╕реЗ рдХрдо рдХреЛрдб рдЬреЛ рдореИрдВ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреЗ рдХрд╛рдо рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред



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



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



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



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



рдЕрдЧрд▓рд╛ рдмрд┐рдВрджреБ рдореИрдВ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╡рд░реНрдЧ рдореЗрдВ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдХреНрд╕рд░ рдПрдХ рдПрдиреАрдорд┐рдХ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╕ рдПрдХ рд╡рд░реНрдЧ, рдХрдИ рдЧреЗрдЯреНрдЯрд░-рд╕реЗрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЬрдЯрд┐рд▓ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреЛрдб рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рд╣реЛред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, ORM рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЕрд╕рд▓реА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЗрд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛрдб рдореЗрдВ рдЗрд╕реЗ рдХреЙрд▓ рди рдХрд░ рд╕рдХреЗрдВ, рдФрд░ ORM рдирд╣реАрдВ рдХрд░ рд╕рдХреЗред рдпрд╣рд╛рдВ рд╣рдо рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдИрдореЗрд▓ рдкреНрд░рдХрд╛рд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рд╣реА рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╢реВрдиреНрдп рд╣реИ, рддреЛ рд╣рдо рдЕрднреА рднреА рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддреЗ рд╣реИрдВред рдЖрдк рдХреБрдЫ Fody, PostSharp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди C # 8 рдЬрд▓реНрдж рд╣реА рдЖрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдПрдХ рдЧреИрд░-рдЕрд╢рдХреНрдд рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛, рдФрд░ рднрд╛рд╖рд╛ рдореЗрдВ рдЗрд╕рдХреЗ рд╕рдорд░реНрдерди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЕрдЧрд▓реЗ рдХреНрд╖рдг, рдпрджрд┐ рд╣рдо рдирд╛рдо рдФрд░ рдЙрдкрдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИред



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



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



рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдбрдЯреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╕реНрддреБрдПрдВ рдирд╣реАрдВ рд╣реИрдВред рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо deserialized рдбреЗрдЯрд╛ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд╡реЗ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреА рдХреЗрд╡рд▓ рдПрдХ рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ - рдпрд╣ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдФрд░ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрдирд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рд▓рдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдореЙрдбрд▓рдмрд┐рдВрджреБ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ, рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рдЬреЛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдердХрд╛рдК рд╣реЛ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдирдП рдврд╛рдВрдЪреЗ рдХреЗ рдирдП рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдорд╛рд░реНрдХ рд╕рд╛рдЗрдорди рдиреЗ "рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдирд╣реАрдВ рд╣реИрдВ" рдпрд╣ рд╕рдм рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдЧрд░ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рдЙрдирдХреЗ рдкреЛрд╕реНрдЯ рдХреЛ рдкрдврд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рд╡рд╣рд╛рдВ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



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

рд╣реИрдВрдбрд▓рд░


рдЗрди рд╕рднреА рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдмрд╛рдж, рд╣реИрдгреНрдбрд░ рдпрд╣рд╛рдБ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛?



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

рдШрдЯрдирд╛рдХреНрд░рдо


рдбреЛрдореЗрди рдШрдЯрдирд╛рдПрдБред



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



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



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

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



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

рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ




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

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛


рдкреВрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдХреЗрд╡рд▓ Dto рдХреЛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЖрдЧреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, JSON рдХреЛ рд╕реАрд░реАрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рдЫреЛрдЯреА рд╕реА рдмрд╛рдд, рдРрд╕реА рдмрд╛рдд рдЬреЛ рдХрднреА-рдХрднреА рднреБрд▓рд╛ рджреА рдЬрд╛рддреА рд╣реИ: рд╣рд░ рд╕реНрддрд░ рдкрд░, рдПрдХ рдЕрдкрд╡рд╛рдж рдпрд╣рд╛рдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдЙрдирдХреА рдЬрд░реВрд░рдд рд╣реИред



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



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



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



рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ LINQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ LINQ рди рдХреЗрд╡рд▓ IEnumerable рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк SelectMany рдФрд░ Select Methods рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ C # рдХрдВрдкрд╛рдЗрд▓рд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдк рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП LINQ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╣рд╛рд╕реНрдХреЗрд▓ рдбреВ-рдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдпрд╛ рдПрдл # рдореЗрдВ рдПрдХ рд╣реА рдХрдореНрдкреНрдпреВрдЯреЗрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдкреЗрдкрд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдЗрд╕реЗ рдХреИрд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рддреАрди рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ, рдФрд░ рдпрджрд┐ рддреАрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ r1 + r2 + r3 рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЬреЛрдбрд╝реЗрдВред рдкрд░рд┐рдгрд╛рдореА рдореВрд▓реНрдп рдХрд╛ рдкреНрд░рдХрд╛рд░ рднреА рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдирдпрд╛ рдкрд░рд┐рдгрд╛рдо, рдЬрд┐рд╕реЗ рд╣рдо рдЪрдпрди рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рд╣реИ, рдЕрдЧрд░ рдПрдХ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ред



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



рд╕реА # рдПрдл # рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЛрдИ рдЕрд▓рдЧ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдЬрдм рд╣рдо рдЧреНрд▓реЛрдм рдкрд░ рдПрдХ рдЙрд▓реНрд▓реВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣рд▓реНрдХрд╛, рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реЛрддрд╛ рд╣реИред



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



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

рдХреНрд╡реЗрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди


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

рд╕реБрд░рдХреНрд╖рд╛


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



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

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



ORM рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдХрд╛рдИ рдврд╛рдВрдЪреЗ рдореЗрдВ рдЧреНрд▓реЛрдмрд▓ рдлрд┐рд▓реНрдЯрд░? рдлрд┐рд░, рдЕрдкрдиреЗ рд▓рд┐рдП рдХреЛрдИ рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛ рди рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрдкрдиреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкрд░рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╣рд╛рдиреА рдирд╣реАрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

рдХреНрд╡реЗрд░реА рдкрд╛рдЗрдкрд▓рд╛рдЗрдиред рдореЙрдбрд▓ рдкрдврд╝реЗрдВ


рдпрд╣ рдкрдврд╝рдиреЗ рдХреЗ рдореЙрдбрд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред CQRS рдкреНрд░рддрд┐рдорд╛рди рд░реАрдбрд┐рдВрдЧ рд╕реНрдЯреИрдХ рдореЗрдВ рдбреЛрдореЗрди рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рддреБрд░рдВрдд рдЙрд╕ Dto рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдлрд┐рд▓рд╣рд╛рд▓ рдЪрд╛рд╣рд┐рдПред



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



рд╣реИрдВрдбрд▓ рд╡рд┐рдзрд┐ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ TQuery рдлрд╝рд┐рд▓реНрдЯрд░ рдореВрд▓ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдо рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдХреНрд╡реЗрд░реА рд╡рд┐рд╕реНрддрд╛рд░ AutoMapper'a рд╣реИред рдпрджрд┐ рдХреЛрдИ рдЕрднреА рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рддреЛ AutoMapper LINQ рдореЗрдВ рдЕрдиреБрдорд╛рдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдЬреЛ рдЪрдпрди рд╡рд┐рдзрд┐ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛, рдФрд░ рдЗрд╕реЗ рд╕реНрдореГрддрд┐ рдореЗрдВ рдореИрдк рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдлрд┐рд░ рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ, рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдФрд░ рдпрд╣ рд╕рдм рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред , DotNext, , , , , , expression' , .

SQL


. , DotNext', тАФ SQL. Select , , , queryable- .



, . , Title, Title , . , . SubTitle, , , - , queryable- . , .

, . , , . , , . ┬лJsonIgnore┬╗, . , , Dto. , , . JSON, , Created LastUpdated , SubTitle тАФ , . , , , , , . , - .



. , -, , . , pipeline, . тАФ , , . , SaveChanges, Query SaveChanges. , , , NuGet, .

. , - , , . , , , , , тАФ . , , : ┬л ┬╗, тАФ . .


, ?



- . .



, , , . MediatR , . , , тАФ , MediatR pipeline behaviour. , Request/Response, RequestHandler' . Simple Injector, тАФ .



, , , , TIn: ICommand.



Simple Injector' constraint' . , , , constraint', Handler', constraint. , constraint ICommand, SaveChanges constraint' ICommand, Simple Injector , constraint' , Handler'. , , , .

? Simple Injector MeriatR тАФ , , Autofac', -, , , . , .

,


, ┬л┬╗.



, ┬лClean architecture┬╗. .



- - , MVC, , .



, , , Angular, , , , . , : ┬л тАФ MVC-┬╗, : ┬л Features, : , Blog - Import, - ┬╗.

, , , , MVC-, , - , . MVC . , , тАФ . .





- , - -, .

-, , . , . , - , User Service, pull request', , User Service , . , - , - , . - , .

. , . , , , . , , , , , , , - . , ( , ), , ┬лDelete┬╗: , , . .

тАФ ┬л┬╗, , , , . , : , , , . , . , , . , , .

: . ┬л ┬╗, : , , . , , , , , , , . , . , - pull request , тАФ , тАФ - , . VCS : - , ? , - , , .



, , , . : . , . , , , , . , , , . , , . ┬л ┬╗, , . , , тАФ , , .

: , - , . . - , , , , . - , - , , , , . .



. , IHandler . .

IHandler ICommandHandler IQueryHandler , . , , . , CommandHandler, CommandHandler', .

рдРрд╕рд╛ рдХреНрдпреЛрдВ? , Query , Query тАФ . , , , Hander, CommandHandler QueryHandler, - use case, .

тАФ , , , , : , .

, . , . , -.

C# 8, nullable reference type . , , , , .

ChangeTracker' ORM.

Exception' тАФ , F#, C#. , - , - , . , , Exception', , LINQ, , , , , , Dapper - , , , .NET.

, LINQ, , permission' тАФ . , , - , , . , тАФ .

. :






тАФ . . тАФ ┬лDomain Modeling Made Functional┬╗, F#, F#, , , , , . C# , , Exception'.

, , тАФ ┬лEntity Framework Core In Action┬╗. , Entity Framework, , DDD ORM, , ORM DDD .

рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд╛ рдорд┐рдирдЯред 15-16 2019 .NET- DotNext Piter, . , .

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


All Articles