рдкреНрд░рд┐рдЬреНрдо рдбреЗрд╡рд▓рдкрд░ рдХреА рдЧрд╛рдЗрдб - рднрд╛рдЧ 4, рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ

рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛
  1. рдкрд░рд┐рдЪрдп
  2. рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд░рд┐рдЬреНрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ
  3. рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди
  4. рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕
  5. рдПрдорд╡реАрд╡реАрдПрдо рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
  6. рдЙрдиреНрдирдд MVVM рдкрд░рд┐рджреГрд╢реНрдп
  7. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рд░реНрдорд╛рдг
    1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢
  8. рдиреЗрд╡рд┐рдЧреЗрд╢рди
    1. рджреГрд╢реНрдп-рдЖрдзрд╛рд░рд┐рдд рдиреЗрд╡рд┐рдЧреЗрд╢рди
  9. рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдХреНрд░рд┐рдпрд╛

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

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░рдг рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбрд┐рдЬрд╝рд╛рдЗрди рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдореЙрдбреНрдпреВрд▓рд░ рдЖрд╡реЗрджрди

рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рд▓рд╛рдн


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

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

рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдЬреНрдо рд╕рдорд░реНрдерди


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

рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ


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

IModule : рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдЦрдВрдб


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

 public class MyModule : IModule { public void Initialize() { //    . } } 

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

рдореЙрдбреНрдпреВрд▓ рдЬреАрд╡рди рднрд░


рдкреНрд░рд┐рдЬреНрдо рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
  1. рдореЙрдбреНрдпреВрд▓ рдХреА рдкрдВрдЬреАрдХрд░рдг / рдЦреЛрдЬред рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд░рдирдЯрд╛рдЗрдо рдкрд░ рд▓реЛрдб рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓, рдЙрдирдХреЗ рд╕реНрдерд╛рди рдФрд░ рдЙрд╕ рдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдореЙрдбреНрдпреВрд▓ред рдЕрд╕реЗрдВрдмрд▓реА рдЬрд┐рд╕рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдЪрд░рдг рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рджреВрд░рд╕реНрде рд╕реНрдерд╛рди рдпрд╛ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
  3. рдореЙрдбреНрдпреВрд▓ рдХреА рд╢реБрд░реБрдЖрддред рдореЙрдбреНрдпреВрд▓ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдБ рдФрд░ IModule рдорд╛рдзреНрдпрдо рд╕реЗ Initialize рд╡рд┐рдзрд┐ рдХреЛ IModule ред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░рдг рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред



рдореЙрдбреНрдпреВрд▓ рдХреИрдЯрд▓реЙрдЧ


ModuleCatalog рдореЗрдВ рдЙрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ ModuleInfo рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ ModuleInfo рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо, рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реНрдерд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред ModuleCatalog рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде ModuleCatalog рдХреЛ ModuleCatalog рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ:

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

рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ рд╕рдордп рдХрд╛ рдкреНрд░рдмрдВрдзрди


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

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

рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХреАрдХрд░рдг


рдкреНрд░рд┐рдЬрд╝реНрдо рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рдореНрди рд╡рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: UnityBootstrapper рдФрд░ MefBootstrapper ред рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбреНрдпреВрд▓ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЖрдк XAML рдлрд╝рд╛рдЗрд▓, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдерд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреИрдЯрд▓реЙрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░


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

рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ


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

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

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

рдкреНрд░рдореБрдЦ рдирд┐рд░реНрдгрдп


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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрднрд╛рдЧ рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЖрд╡реЗрджрди рдХрд╛ рдкреГрдердХреНрдХрд░рдг


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

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

,

,

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

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

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

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг

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

XAP рдФрд░ рдореЙрдбреНрдпреВрд▓ рдлреИрдХреНрдЯрд░рд┐рдВрдЧ

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

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

рдкреНрд░рддреНрдпреЗрдХ рдПрдХреНрд╕рдПрдкреА рдореЗрдВ рдХрдИ рдмрд╛рд░ рдПрдХ рд╣реА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдвреАрд▓реА рдпреБрдЧреНрдорди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


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

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

.

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ OrdersModuleрдПрдХ рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИOrdersRepository(рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛ рдСрд░реНрдбрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ)ред рдПрдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ CustomerModuleрдПрдХ рд╡рд░реНрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд CustomersViewModelрдХрд░рддреА OrdersRepositoryрд╣реИ рдЬреЛ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╡рд░реНрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ:
  1. рдмреВрдЯрд╕реНрдЯреНрд░реИрдкрд░ рдореЙрдбреНрдпреВрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдбреНрдпреВрд▓рд░ рд▓реЛрдбрд░ рд▓реЛрдб рдФрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ OrdersModuleред
  2. рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ OrdersModule, рдпрд╣ OrdersRepositoryрдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИред
  3. рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ CustomersModuleред рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдСрд░реНрдбрд░ рдХреЛ рдЙрдирдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  4. CustomersModule CustomerViewModel , . CustomerViewModel OrdersRepository ( ) . , , OrdersModule . CustomerViewModel OrderRepository .

рдЯрд┐рдкреНрдкрдгреА
, , OrderRespository ( IOrderRepository ), , , , . , CustomersModule OrdersModule .

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рджреЛрдиреЛрдВ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдВрдЯреЗрдирд░ рдкрд░ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд░реНрднрд░рддрд╛ рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдкреЗрд╢ рдХреА рдЬрд╛рддреА рд╣реИред

рдЖрдзрд╛рд░ рдкрд░рд┐рджреГрд╢реНрдп


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

рдореЙрдбреНрдпреВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛;


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

 public class MyModule : IModule { public void Initialize() { //  . } } 

рдЯрд┐рдкреНрдкрдгреА
рдкреВрд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

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

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

рдкрдВрдЬреАрдХрд░рдг рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреА рдкрд╣рдЪрд╛рди


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

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

рдХреЛрдб рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрдВрдЬреАрдХрд░рдг

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

 protected override void ConfigureModuleCatalog() { Type moduleCType = typeof(ModuleC); ModuleCatalog.AddModule( new ModuleInfo() { ModuleName = moduleCType.Name, ModuleType = moduleCType.AssemblyQualifiedName, }); } 

рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╢реЗрд▓ рд╕реАрдзреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореЙрдбреНрдпреВрд▓ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ AddModuleред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг typeof(Module)рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЯрд┐рдкреНрдкрдгреА
рдпрджрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реАрдзрд╛ рд╕рдВрджрд░реНрдн рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпреЛрдЧреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реНрдерд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреЛрдб рдореЗрдВ рджреГрдврд╝ рд╕рдВрдХрд▓реНрдк рдореЙрдбреНрдпреВрд▓ рд╕реВрдЪреА рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦ StockTraderRIBootstrapper.csрдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЙрдХ рд╡реНрдпрд╛рдкрд╛рд░реА рдЖрд░рдЖрдИ ред
рдЯрд┐рдкреНрдкрдгреА
Bootstrapper CreateModuleCatalog , ModuleCatalog . , ModuleCatalog , .

XAML

рдЖрдк рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ XAML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдШреЛрд╖рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред XAML рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдореЙрдбреНрдпреВрд▓ рдХреИрдЯрд▓реЙрдЧ рдХреНрд▓рд╛рд╕ рдмрдирд╛рдирд╛ рд╣реИ рдФрд░ рдХреМрди рд╕рд╛ рдореЙрдбреНрдпреВрд▓ рдЗрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ .xamlрдЖрдкрдХреЗ рд╢реЗрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИред рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ CreateFromXamlред рдПрдХ рддрдХрдиреАрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг ModuleCatalogрдХреЛрдб рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ XAML рдлрд╝рд╛рдЗрд▓ рдХреЗрд╡рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рддреБрд░рдВрдд рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред

рдирд┐рдореНрди рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдПрдХ XAML рдлрд╝рд╛рдЗрд▓ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

 <Modularity:ModuleCatalog xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:Modularity="clr-namespace:Microsoft.Practices.Prism.Modularity;assembly=Microsoft.Practices.Prism"> <Modularity:ModuleInfoGroup Ref="ModuleB.xap" InitializationMode="WhenAvailable"> <Modularity:ModuleInfo ModuleName="ModuleB" ModuleType="ModuleB.ModuleB, ModuleB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> </Modularity:ModuleInfoGroup> <Modularity:ModuleInfoGroup InitializationMode="OnDemand"> <Modularity:ModuleInfo Ref="ModuleE.xap" ModuleName="ModuleE" ModuleType="ModuleE.ModuleE, ModuleE, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Modularity:ModuleInfo Ref="ModuleF.xap" ModuleName="ModuleF" ModuleType="ModuleF.ModuleF, ModuleF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" > <Modularity:ModuleInfo.DependsOn> <sys:String>ModuleE</sys:String> </Modularity:ModuleInfo.DependsOn> </Modularity:ModuleInfo> </Modularity:ModuleInfoGroup> <!--      --> <Modularity:ModuleInfo Ref="ModuleD.xap" ModuleName="ModuleD" ModuleType="ModuleD.ModuleD, ModuleD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> </Modularity:ModuleCatalog> 

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

рдХрдХреНрд╖рд╛ рдореЗрдВ, BootstrapperрдЖрдкрдХреЛ рд╕рдВрдХреЗрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ XAML рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рд╣реИ ModuleCatalog, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 protected override IModuleCatalog CreateModuleCatalog() { return ModuleCatalog.CreateFromXaml( new Uri("/MyProject.Silverlight;component/ModulesCatalog.xaml", UriKind.Relative)); } 

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЙрдбреНрдпреВрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛

WPF рдореЗрдВ, рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ App.configред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдпрд╛ рдирд┐рдХрд╛рд▓рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рдирд┐рдореНрди рдХреЛрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рд╣реЛ, рддреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ startupLoaded="true"ред

  <modules> <module assemblyFile="ModularityWithUnity.Desktop.ModuleE.dll" moduleType="ModularityWithUnity.Desktop.ModuleE, ModularityWithUnity.Desktop.ModuleE, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="ModuleE" startupLoaded="false" /> <module assemblyFile="ModularityWithUnity.Desktop.ModuleF.dll" moduleType="ModularityWithUnity.Desktop.ModuleF, ModularityWithUnity.Desktop.ModuleF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="ModuleF" startupLoaded="false"> <dependencies> <dependency moduleName="ModuleE"/> </dependencies> </module> </modules> 

рдЯрд┐рдкреНрдкрдгреА
рднрд▓реЗ рд╣реА рдЖрдкрдХреА рдЕрд╕реЗрдВрдмрд▓реА рд╡реИрд╢реНрд╡рд┐рдХ рдЕрд╕реЗрдВрдмрд▓реА рдХреИрд╢ рдореЗрдВ рд╣реЛрдВ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ assemblyFileред рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ moduleTypeрдХреЗ рд▓рд┐рдП рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рдиреЗ рдХреЗ IModuleTypeLoaderрд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

BootstrapperрдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд╛рд╕ рдореЗрдВ , рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рд╣реИ ModuleCatalogред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ConfigurationModuleCatalogрдирд┐рдореНрди рдХреЛрдб рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред

 protected override IModuleCatalog CreateModuleCatalog() { return new ConfigurationModuleCatalog(); } 

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

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

рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛

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

 protected override IModuleCatalog CreateModuleCatalog() { return new DirectoryModuleCatalog() {ModulePath = @".\Modules"}; } 

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

рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдореЙрдбреНрдпреВрд▓


рдпрд╣ ModuleCatalogрднрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж , рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдПрдХ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЛ рдбрд┐рд╕реНрдХ рд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдЕрд╕реЗрдВрдмрд▓реА рдбрд┐рд╕реНрдХ рдкрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрд░реЛрдд рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ .xapрдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдЕрд╕реЗрдВрдмрд▓реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реИ ред ModuleManagerрдЖрд░рдВрднреАрдХрд░рдг рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рдордиреНрд╡рдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдореЙрдбреНрдпреВрд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ


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



рдореЙрдбреНрдпреВрд▓ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдореЙрдбреНрдпреВрд▓ рдПрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдореЙрдбреНрдпреВрд▓ рдмреА , рдореЙрдбреНрдпреВрд▓ рдмреА рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдореЙрдбреНрдпреВрд▓ рдПрдХ ред ModuleManagerрдЗрди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреИрдЯрд▓реЙрдЧ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХреЛрдб, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ XAML рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЛрдб рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛

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

 [Module(ModuleName = "ModuleA")] [ModuleDependency("ModuleD")] public class ModuleA: IModule { ... } 

XAML рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд XAML рд╢реЛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдПрдл рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдореЙрдбреНрдпреВрд▓ рдИ ред

 <Modularity:ModuleInfo Ref="ModuleF.xap" ModuleName="ModuleF" ModuleType="ModuleF.ModuleF, ModuleF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" > <Modularity:ModuleInfo.DependsOn> <sys:String>ModuleE</sys:String> </Modularity:ModuleInfo.DependsOn> </Modularity:ModuleInfo> 

рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛

рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓ App.config рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдбреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдореЙрдбреНрдпреВрд▓ рдмреА ред

 <modules> <module assemblyFile="Modules/ModuleD.dll" moduleType="ModuleD.ModuleD, ModuleD" moduleName="ModuleD"> <dependencies> <dependency moduleName="ModuleB"/> </dependencies> </module> 

рдореЙрдбреНрдпреВрд▓ рдХреА рдСрди-рдбрд┐рдорд╛рдВрдб рд▓реЛрдбрд┐рдВрдЧ


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

рдХреЛрдб рдореЗрдВ рдСрди-рдбрд┐рдорд╛рдВрдб рд▓реЛрдб рдиреМрдХрд░реА

рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдХрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдВрдЧ рдкрд░ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 protected override void ConfigureModuleCatalog() { Type moduleCType = typeof(ModuleC); this.ModuleCatalog.AddModule(new ModuleInfo() { ModuleName = moduleCType.Name, ModuleType = moduleCType.AssemblyQualifiedName, InitializationMode = InitializationMode.OnDemand }); } 

XAML рдореЗрдВ рдбрд┐рдорд╛рдВрдб рдбрд╛рдЙрдирд▓реЛрдб рдЬреЙрдм рдкрд░

InitializationMode.OnDemandрдЬрдм рдЖрдк XAML рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдирд┐рдореНрди рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 ... <Modularity:ModuleInfoGroup InitializationMode="OnDemand"> <Modularity:ModuleInfo Ref="ModuleE.xap" ModuleName="ModuleE" ModuleType="ModuleE.ModuleE, ModuleE, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> ... 

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдСрди-рдбрд┐рдорд╛рдВрдб рд▓реЛрдб рдиреМрдХрд░реА

рдЖрдк InitializationMode.OnDemandрдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ App.config, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

 ... <module assemblyFile="Modules/ModuleC.dll" moduleType="ModuleC.ModuleC, ModuleC" moduleName="ModuleC" startupLoaded="false"/> .... 

рдореЙрдбреНрдпреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдЕрдиреБрд░реЛрдз

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

 private void OnLoadModuleCClick(object sender, RoutedEventArgs e) { moduleManager.LoadModule("ModuleC"); } 

рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд░рд┐рдореЛрдЯ рд▓реЛрдбрд┐рдВрдЧ


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

рд░рд┐рдореЛрдЯ рдмреВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рддреИрдпрд╛рд░ рдХрд░рдирд╛

рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдореЙрдбреНрдпреВрд▓ .xapрдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреИрдХ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ .xapрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ ред рдЖрдк .xap.xap рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд░рдЦрдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ ред
рдЯрд┐рдкреНрдкрдгреА
рдкреНрд░рддреНрдпреЗрдХ .xap рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ Silverlight рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2008 рдФрд░ 2010 рдореЗрдВ, рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ .xapрдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ ред рдЖрдкрдХреЛ рдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЬрд░реВрд░рдд App.xamlрдпрд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрдЧреА MainPage.xamlред

рдЯреНрд░реИрдХрд┐рдВрдЧ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рд╡рд░реНрдЧ ModuleManagerрд▓реЛрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреА рдкреНрд░рдЧрддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдЧрддрд┐ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЧрдП рдмрд╛рдЗрдЯреНрд╕ рдмрдирд╛рдо рдкреВрд░реНрдг рд▓реЛрдб рдЖрдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рджреГрд╢реНрдп рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдЧрддрд┐ рд╕рдВрдХреЗрддрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 this.moduleManager.ModuleDownloadProgressChanged += this.ModuleManager_ModuleDownloadProgressChanged; 

 void ModuleManager_ModuleDownloadProgressChanged(object sender, ModuleDownloadProgressChangedEventArgs e) { ... } 

рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ


ModuleManagerрдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рд╣реЛрдиреЗ рдпрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реЛрдиреЗ рдкрд░ рд╕реЗрд╡рд╛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред

 this.moduleManager.LoadModuleCompleted += this.ModuleManager_LoadModuleCompleted; 

 void ModuleManager_LoadModuleCompleted(object sender, LoadModuleCompletedEventArgs e) { ... } 

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдШрдЯрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ Initializeред

LoadModuleCompletedEventArgsрд╕рдВрдкрддреНрддрд┐ рд╣реЛрддреА рд╣реИ IsErrorHandledред рдпрджрд┐ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди ModuleManagerрддреНрд░реБрдЯрд┐ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ trueред
рдЯрд┐рдкреНрдкрдгреА
рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдФрд░ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдореЙрдбреНрдпреВрд▓ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдЕрдирд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рд┐рдЬреНрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╣реЗрдЬрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореЙрдбреНрдпреВрд▓ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрдЪрд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

MEF рдореЗрдВ рдореЙрдбреНрдпреВрд▓


рдпрд╣ рдЦрдВрдб рдХреЗрд╡рд▓ MEF рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрдВрддрд░ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред
рдЯрд┐рдкреНрдкрдгреА
MEF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, MefBootstrapperрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ MefModuleManagerред рдпрд╣ ModuleManagerрдЗрдВрдЯрд░рдлрд╝реЗрд╕ IPartImportsSatisfiedNotificationрдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ ModuleCatalogрдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдирдП рдкреНрд░рдХрд╛рд░ MEF рджреНрд╡рд╛рд░рд╛ рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

MEF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛

MEF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдк ModuleExportрдореЙрдбреНрдпреВрд▓ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ MEF рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗред

 [ModuleExport(typeof(ModuleB))] public class ModuleB : IModule { ... } 

рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MEF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ AssemblyCatalogрдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рд╕рднреА рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╡рд░реНрдЧ AggregateCatalogрдЬреЛ рдХрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдПрдХ рдПрдХрд▓ рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд░реНрдЧ MefBootstrapperрдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддрд╛ рд╣реИ AggregateCatalogред рдЖрдк ConfigureAggregateCatalogрдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред

 protected override void ConfigureAggregateCatalog() { base.ConfigureAggregateCatalog(); // Module A        . this.AggregateCatalog.Catalogs.Add( new AssemblyCatalog(typeof(ModuleA).Assembly)); this.AggregateCatalog.Catalogs.Add( new AssemblyCatalog(typeof(ModuleC).Assembly)); } 

рдкреНрд░рд┐рдЬреНрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди MEF рдФрд░ рдкреНрд░рд┐рдЬрд╝реНрдо рдХреЛ MefModuleManagerрд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ , рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд┐рдЬрд╝реНрдо рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ редAggregateCatalogModuleCatalogModuleCatalogAggregateCatalog
рдЯрд┐рдкреНрдкрдгреА
MEF рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ Lazy, Value .
MEF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рдЦреЛрдЬ

MEF рдПрдХ рд╡рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ DirectoryCatalogрдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбреНрдпреВрд▓ (рдФрд░ рдЕрдиреНрдп рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП MEF рдкреНрд░рдХрд╛рд░) рд╡рд╛рд▓реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк ConfigureAggregateCatalogрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ ред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗрд╡рд▓ WPF рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

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

 protected override void ConfigureAggregateCatalog() { base.ConfigureAggregateCatalog(); DirectoryCatalog catalog = new DirectoryCatalog("DirectoryModules"); this.AggregateCatalog.Catalogs.Add(catalog); } 

MEF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛

WPF рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, ModuleExportрдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

 [ModuleExport(typeof(ModuleA), DependsOnModuleNames = new string[] { "ModuleD" })] public class ModuleA : IModule { ... } 

MEF , . MEF ModuleCatalog , , ModuleCatalog , XAML ( - ). ModuleCatalog MEF, ModuleCatalog , DependsOnModuleNames . MEF ModuleCatalog Silverlight, XAP.

MEF

MEF ModuleExport , , InitializationMode , , , .

 [ModuleExport(typeof(ModuleC), InitializationMode = InitializationMode.OnDemand)] public class ModuleC : IModule { ... } 

MEF

, Prism, MEF, MEF DeploymentCatalog , .xap .xap . MefXapModuleTypeLoader DeploymentCatalog AggregateCatalog .

.xap , . , , . Microsoft.Practices.Prism.MefExtensions.dll .

, DLL 'Copy Local'=false . .xap . .xap . , , , .xap , , .xap .

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА


рдЕрд╕реЗрдВрдмрд▓реА рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, MSDN рдкрд░ "рдХреИрд╕реЗ рдХрд░реЗрдВ: рдЕрд╕реЗрдВрдмрд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рджреЗрдЦреЗрдВ: http://msdn.microsoft.com/en-us/library/dd833069(VS.95).aspx

рдореЙрдбреНрдпреВрд▓рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд┐рдЬреНрдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ, WPF рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП MEF рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рджреЗрдЦреЗрдВ рдпрд╛ WPF рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХрддрд╛ рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓рд░рд┐рдЯреА рджреЗрдЦреЗрдВред рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, WPF рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓рд░ рдХреНрд╡рд┐рдХрд╕реНрдЯрд╛рд░реНрдЯреНрд╕ рджреЗрдЦреЗрдВ ред

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

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


All Articles