.Net: рдЧреНрд░реВрдо рдкреЛрд░реНрдЯреЗрдмрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдпреВрдЖрдИ

рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдВрддреНрд░рдг, рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ: WPF, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ 4-5, WinPhone 7-8, рд╡рд┐рдВрдбреЛрдЬ рд╕реНрдЯреЛрд░ рдРрдк (x86, x64, ARM)

рдПрдХ рдмрд╛рд░ рдореЗрдВ, рдЕрд╕реНрд╡реАрдХрд░рдг рдПрдХ рд░реЛрд╕реЗрдЯрд╛ рдкрддреНрдерд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдЪрд╛рд▓ рд╣реИ рдЬреЛ рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ UserControl рд╣реИ рдЬреЛ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИ, рддреЛ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рдмреЛрдирд╕ - рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рд╡реАрдбрд┐рдпреЛ - рд▓реЗрдЦ рд╕рд░рд▓ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ, рдФрд░ рд╡реАрдбрд┐рдпреЛ рд╢рд╛рдирджрд╛рд░ рд╕рдВрдЧреАрдд рдХрд╛ 8 рдорд┐рдирдЯ рд╣реИред рд╕рднреА рдХреЗ рдкрд╛рд╕ Windows8 рдирд╣реАрдВ рд╣реИ, рдмрд╣реБрдд рд╕реЗ рд╢рд╛рдпрдж W8 + VS2012 рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реЛрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рднреНрд░рдорд┐рдд рд╣реЛ рдЧрдпрд╛ред

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

рдЗрд╕рд▓рд┐рдП, рдкреЛрд░реНрдЯреЗрдмрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдкрд░рд┐рдЪрд┐рдд рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рд╣реБрдЖ - рдЗрд╕рдиреЗ рдореБрдЭреЗ рдПрдХ рдРрд╕реЗ рдорд╛рдорд▓реЗ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛ рджреА рдЬрдм рдПрдХ рд▓рдбрд╝рдХреА рдбреАрдЬреЗ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдИ рдФрд░ рдЕрд▓реНрд▓реЗрдЧреНрд░реЛрд╡рд╛ рд╕реЗ рдмреЛрд▓реА: тАЬрдореИрдВ рддреБрдореНрд╣рд╛рд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реА рдереА, рдЗрд╕рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛, рддреБрдо рдореЗрд░реЗ рдирд┐рд░рд╛рд╢ рд╕рдкрдиреЗ рдереЗ ! "(рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдорд╛рд▓рд┐рдХреЛрдВ рдиреЗ рд╕рдВрдЧреАрдд рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ ..)

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

рд▓рдШреБ рд╡реАрдбрд┐рдпреЛ рд╡рд┐рд╡рд░рдг:

1. рд╣рдо рдПрдХ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдореЗрдВ WPF UserControl рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред рдпрд╣ рд╣рдорд╛рд░рд╛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╣реЛрдЧрд╛, рдпрд╣ рдЗрд╕рдореЗрдВ рд╣реИ рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕реНрд╡рдпрдВ рдЙрддреНрдкрд╛рджрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдирд╛рдо рджрд┐рдпрд╛ рдФрд░ рд╕реНрдХреЛрд░ рдХрд┐рдпрд╛ред
1 рдХред рд╣рдо рдХреЗрд╡рд▓ рдирдЧреНрди XAML рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред XAML рд╕реЗ рд╡рд░реНрдЧ рдирд╛рдо рдирд┐рдХрд╛рд▓реЗрдВ, .cs рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡рдпрдВ рд╣рдЯрд╛рдПрдВред
1bред рд╣рдо XAML рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ GUI рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреНрд▓реЗрдВрдб рдореЗрдВред

2. рд╣рдо рдкреЛрд░реНрдЯреЗрдмрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╕рдВрд╡рд╛рдж рд╕реЗ рдЬреЛ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЙрд╕рдХреЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
2 рдПред рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╕реЗ PL рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ XAML рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВред рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдЕрдиреНрдпрдерд╛, рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА рдЬреАрдпреВрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╣рд░ рдмрд╛рд░ рд╣рд╛рдереЛрдВ рд╕реЗ рдЦреАрдВрдЪрдирд╛ рд╣реЛрдЧрд╛ред
2 рдмреАред рдПрдВрдмреЗрдбреЗрдб рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
2cред рдПрдВрдмреЗрдбреЗрдб рд╕рдВрд╕рд╛рдзрди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдордп рдкрд░ рдЕрдзрд┐рдЧреНрд░рд╣рд┐рдд рдФрд░ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
public class Class1 { public Stream GetXaml() { string[] names = this.GetType().Assembly.GetManifestResourceNames(); Stream s = this.GetType().Assembly.GetManifestResourceStream(names[0]); return s; } } 
рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдкреАрдПрд▓ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡реИрдз рдПрдХреНрд╕рдПрдПрдордПрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЪреЗрдХ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ! рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдХреЛрдб рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред

3. рд╣рдо рд░рд┐рд╢реНрддреЗрджрд╛рд░реЛрдВ рдХреЗ WPF рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдХреЛрдИ рднреА GUI рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдмрд╣реБ-рдордВрдЪ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╣рддреНрдпрд╛рд░реА рд╕реБрд╡рд┐рдзрд╛ рдПрдХреНрд╕рдПрдПрдордПрд▓ рд░реИрдВрдЯрд╛рдЗрдо рдореЗрдВ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╣реИред рд╣рдо рдЗрд╕реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
 private void MainWindow_OnLoaded(object sender, RoutedEventArgs e) { Class1 class1 = new Class1(); DependencyObject importedXaml; using (Stream stream = class1.GetXaml()) { importedXaml = XamlReader.Load(stream) as DependencyObject; stream.Close(); } UserControl control = importedXaml as UserControl; rootGrid.Children.Add(control); } 
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдореИрдВ рдЖрдкрдХреЛ рдЬрд╛рдБрдЪреЛрдВ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдБред

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

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

рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╡реАрдбрд┐рдпреЛ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ 8 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдореВрд▓ рдкреЗрдВрдЪрдХрд╛рд╕реНрдЯ ~ 45 рдорд┐рдирдЯ рдерд╛)ред Vimeo рдиреЗ рдЙрд╕реА рд╕рдВрдХрд▓реНрдк рдкрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрд╕реНрд╡реАрд░ рджреАред рдпреВрдЯреНрдпреВрдм "рдЖрдЙрдЯ рдСрдл рдж рдмреЙрдХреНрд╕" рдПрдЪрдбреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЦрд░рд╛рдм рдЧреБрдгрд╡рддреНрддрд╛ред

Vimeo

рдпреВрдЯреНрдпреВрдм

рд╕реАрдзрд╛ рд▓рд┐рдВрдХ:
Vimeo
рдпреВрдЯреНрдпреВрдм

рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рд╣реЛ!

рдкреБрдирд╢реНрдЪ I рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред

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


All Articles