рдпрд╣ рд▓реЗрдЦ рдЗрд╕ рдмрд╛рдд рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдХреЗ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдИрдЯреА-рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдмрдЬрдЯ рдкрд░ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХреА рдХреБрдЫ рд╕реАрдорд╛рдУрдВ / рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдкрд░рд┐рдкрдХреНрд╡рддрд╛ред
рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ рдореЗрдВ C # рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рднрд╛рд╖рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕реЗрдЯ рд╕реЗ, рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, 'рдЙрдкрдЬ' рд╕рдмрд╕реЗ рдЕрдЪреВрдХ рдХреАрд╡рд░реНрдб рд╣реИред рдЖрдк рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЧреБрдЪреНрдЫрд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ, рдорд╛рди рд▓реЗрдВ рдХрд┐ 'рдЙрдкрдЬ' рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ 'рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ' рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдХрд░реНрддрд╛ рдХреЛ 'рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ' рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ IEnumerable рд╕реНрд░реЛрдд рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣рд╛рдБ рдореБрд╢реНрдХрд┐рд▓ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рднрд╛рд╖рд╛ рдореЗрдВ IEnumerable рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ: рд╕реВрдЪреА, рд╢рдмреНрджрдХреЛрд╢, рд╣реИрд╢рд╕реЗрдЯ, рдХрддрд╛рд░ рдФрд░ рдЖрджрд┐ред рдФрд░ рдореЗрд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ, рдХреБрдЫ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдп рдХреА рд╕рдВрддреБрд╖реНрдЯрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪреБрдирд╛рд╡ рдЧрд▓рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рдм рдЬреЛ рдХреБрдЫ рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо 'рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ' - рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реНрдпрд╡рд╕рд╛рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣реИ рдирд╛? рдЖрдорддреМрд░ рдкрд░, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрдм рддрдХ рдЬрдм рддрдХ рдХрд┐ рд╕реЗрд╡рд╛ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреИрдирд╛рдд рди рд╣реЛ рдЬрд╛рдПред
рд╕рдорд╕реНрдпрд╛ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджреНрдпрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдорд╛рдорд▓рд╛ / рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рд╣рдо рд▓реЗрдЦ рдХреЗ рджреМрд░рд╛рди рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЙрджреНрдпрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рдкреИрдорд╛рдиреЗ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ рд╕реЗрдЯ рдореЗрдВ рдЕрдкрдирд╛ рдорд╛рдорд▓рд╛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
рдХрд╛рд░реНрдп рдХрд╛ рдЙрджрд╛рд╣рд░рдг:
- рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдпрд╛ DB рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВред
- рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдорд╛рди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рди рдореЗрдВ рдмрджрд▓реЗрдВред
- рдлрд╝рд╛рдЗрд▓ рдпрд╛ DB рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рд╣реЗрдЬреЗрдВред
рдЖрдЗрдП рдХрдИ рдорд╛рдорд▓реЛрдВ рдХреЛ рдорд╛рдиреЗрдВ рдЬрд╣рд╛рдВ рдпрд╣ рддрд░реНрдХ рд▓рд╛рдЧреВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕рдордп, рдореБрдЭреЗ рджреЛ рдорд╛рдорд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:
- рдпрд╣ рд╢рд╛рдпрдж рдХреБрдЫ рдХрдВрд╕реЛрд▓ ETL рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
- рдпрд╣ MVC рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рдЕрдВрджрд░ рдПрдХ рддрд░реНрдХ рд╣реИред
рдпрджрд┐ рд╣рдо рдХрд╛рд░реНрдп рдХреЛ рдЕрдзрд┐рдХ рддрдХрдиреАрдХреА рддрд░реАрдХреЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдзреНрд╡рдирд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ: "(1) рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ, (2) рджреГрдврд╝рддрд╛ рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓реЛрдб рдХрд░реЗрдВ, (3) рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ (4) рдлрд╝реНрд▓рд┐рдк рд░рд┐рдХреЙрд░реНрдб рд╕реНрдореГрддрд┐ рдореЗрдВ рд╣рда рднрдВрдбрд╛рд░рдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиред " рдпрд╣рд╛рдБ рд╡рд░реНрдгрди рдореЗрдВ рдкрд╣рд▓рд╛ рд╡рд╛рдХреНрдпрд╛рдВрд╢ "(1) рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ" рдЖрдкрдХреА рдЧреИрд░-рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╣рд╕рдВрдмрдВрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреА рдиреМрдХрд░реА / рд╕реЗрд╡рд╛ рдХреЛ рдХреБрдЫ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ 'рд▓рд╛рдЗрд╡' рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╕реАрдорд╛рдПрдБ / рдкреНрд░рддрд┐рдмрдВрдз рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 150Mb рдкреНрд░рддрд┐ рдорд╛рдЗрдХреНрд░реЛ-рд╕реЗрд╡рд╛) рдФрд░ рдмрдЬрдЯ рдореЗрдВ рдЖрдкрдХреА рд╕реЗрд╡рд╛ рдкрд░ рдЦрд░реНрдЪ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреА рд╕реНрдореГрддрд┐ рд░рд╛рд╢рд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдХреМрди рд╕реА рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рдЖрдорддреМрд░ рдкрд░ рд╣рдо рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдореЗрдореЛрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВ)ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдореЗрдВ рдЖрдкрдХреА рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдореГрддрд┐ 'рдкрджрдЪрд┐рд╣реНрди' рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдЗрдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдореГрддрд┐ рдкрджрдЪрд┐рд╣реНрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдореИрдВ рд╕рдордп-рд╕рдордп рдкрд░ рдЙрджреНрдпрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рднреА рдвреВрдВрдврдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 'рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА' рдкреИрдЯрд░реНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ 'рд╣реВрдб' рдХреЗ рддрд╣рдд, рдмрд╕ рдРрд╕реЗ рд╢рдмреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ: 'ToList', 'ToArray', 'ToReadonlybollection' рдФрд░ рдЖрджрд┐ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐:
1. рдлрд╝рд╛рдЗрд▓ / рдбреАрдмреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ / рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ / рдбреАрдмреА (рдпрд╛рдиреА var рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) ({FirstName = 'Test', LastName = 'Test2'}) рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЧреБрдг рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВред
2. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 'ToArray' рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдХреБрдЫ рд╕рдВрдЧреНрд░рд╣ (рдпрд╛рдиреА var users = new List) (); Users.Add (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛) рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ, рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрджрд░реНрдн рдХреЛ рдХреБрдЫ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
private static IEnumerable<User> LoadUsers2() { var list = new List<User>(); foreach(var line in File.ReadLines("text.txt")) { var splittedLine = line.Split(';'); list.Add(new User() { FirstName = splittedLine[0], LastName = splittedLine[1] }); } return list;
рдореЗрдореЛрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдкрд░рд┐рдгрд╛рдо:

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рддрд╕реНрд╡реАрд░ рдореИрдВрдиреЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реБрдХрдиреЗ / рдкреБрдирдГ рд▓реЛрдб рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд░ рдмрд╛рд░ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рджреЗрдЦреА рдереАред
рддреЛ, рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрджрдЪрд┐рд╣реНрди, рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдореЗрдореЛрд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рддрд┐ рд░рд┐рдХреЙрд░реНрдб рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреА рд╣реИред рдФрд░, рд╕реНрдореГрддрд┐ рдХреЗ рдЗрд╕ рдЫреЛрдЯреЗ рд╕реЗ рдЧрдбреНрдвреЗ рдХрд╛ рдпреЛрдЧ рд╣рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕реНрдореГрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реА рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рднрд╕реНрдо рд╣реЛ рд╕рдХрддреА рд╣реИ - рдпрд╣ рд╕реЗрд╡рд╛ рдХрд╛ рдкрджрдЪрд┐рд╣реНрди рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдкрджрдЪрд┐рд╣реНрди рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдпреЛрдЧреНрдп рд╣реИ? рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдирд╣реАрдВред рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рд░рд┐рдХреЙрд░реНрдб рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдФрд░, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдХрдИ рдмрд╛рд░ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдиреБрдордд рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреНрд╖рдг рд╣реИред рдЕрдЧрд▓реА рдзрд╛рд░рдгрд╛ рд╕реЗ рд╣рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдкрджрдЪрд┐рд╣реНрди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ: "рдкрджрдЪрд┐рд╣реНрди рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП"ред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЗ рдЕрдзрд┐рдХрддрдо рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЖрдХрд╛рд░ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред
рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддреА рд╣реИ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдХреЗрд╡рд▓ рдПрдХ рдХреАрд╡рд░реНрдб рдХреА рдорджрдж рд╕реЗ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреА рд╣реИ - * рдЙрдкрдЬ '*редрдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдордп:
class Program { static void Main(string[] args) {
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЧрдИ рд╣реИ: 'рдпреАрд▓реНрдб рд░рд┐рдЯрд░реНрди рдиреНрдпреВ рдпреВрдЬрд░ ()' рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рднрд░рддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдпреЛрдЧреНрдп рд╕реНрдореГрддрд┐ рдкрджрдЪрд┐рд╣реНрди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЖрдХрд╛рд░ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ FirstName рдФрд░ LastNameред рдЬрдм рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ File.AppendAllLines), рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИред рдФрд░ рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдореЗрдореЛрд░реА рдХреЛ рдбреАрд▓реЙрдХреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА рд▓реЛрдбрдпреВрдЬрд░ рдореЗрдВ 'рдлрд╝реЙрд░рд╡рд░реНрдб' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЕрдЧрд▓рд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐), рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЕрдЧрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рд╕реНрдореГрддрд┐ рдХреА рд╕рдорд╛рди рдорд╛рддреНрд░рд╛ рд╕реНрдореГрддрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рди рд╣реЛрддреА рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХрд▓ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж рдореЗрдореЛрд░реА рдкреНрд░реЛрдлрд╛рдЗрд▓рд░ рдкрд░рд┐рдгрд╛рдо:

рдПрдХ рдЕрдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрджрд┐ рд╣рдо рдКрдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧ MVC рдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд╛рд░реНрдердХ рддрд░реНрдХ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХреЗрдВ:
private static void GetUsersAction() {
рдХреЛрдб рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ: EntityFramework, ASP.net MVC, AutoMapper, Dapper, NHibernate, ADO.net рдФрд░ рдЖрджрд┐ рдЬреИрд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреБрд╕реНрддрдХрд╛рд▓рдп IEnumerables рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ / рдЦрдкрдд рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд▓реЛрдбрдпреВрдЬрд░ рдХреЛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП EntityFramework рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЬреЛ рдлрд╛рдЗрд▓ рдХреЗ рдмрдЬрд╛рдп DB рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдкрдВрдХреНрддрд┐ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред MapToDTO рдХреЛ рдСрдЯреЛрдореЗрдХрд░ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ OkResult рдХреЛ рдХреБрдЫ MVC рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ IActionResult рдХреЗ 'рд╡рд╛рд╕реНрддрд╡рд┐рдХ' рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреНрд░реАрдо рдкрд░ рд╣рдорд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдзрд╛рд░:
private static void OkResult(IEnumerable<User> users) {
рдпрд╣ 'mvc-like' рдЙрджрд╛рд╣рд░рдг рд╣рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрднреА рднреА рд╡реЗрдм-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдлреБрдЯрдкреНрд░рд┐рдВрдЯ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдФрд░ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЧрд┐рдирддреА рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреИрд░-рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рдЧ рд╕рдХрддреА рд╣реИрдВ: "1000 рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдореЗрдореЛрд░реА рд░рд╛рд╢рд┐ рддрдм рдЕрдзрд┐рдХ рдирд╣реАрдВ: 200KB рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ x 1000 рдЕрдиреБрд░реЛрдз ~ 200MBред"
рдЗрд╕ рддрд░рд╣ рдХреА рдЧрдгрдирд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ 100 рдХрдВрдЯреЗрдирд░реЛрдВ / рд╡реАрдПрдо рдкрд░ рд╕реНрдХреЗрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдкрдХреЛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдХрд┐рддрдиреЗ рд╕рдВрд╕рд╛рдзрди рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реВрддреНрд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: 200KB рдкреНрд░рддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ x 1000 рдЕрдиреБрд░реЛрдз x 100VMs ~ 20GBред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрдзрд┐рдХрддрдо рдореЗрдореЛрд░реА рд╣реИ рдФрд░ рдпрд╣ рд░рд╛рд╢рд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдмрдЬрдЯ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдФрд░ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдкреИрд╕рд╛ рдФрд░ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред