
рд▓рд╛рд╕ рд╡реЗрдЧрд╛рд╕ рдореЗрдВ рдЕрднреА рдЖрдпреЛрдЬрд┐рдд MIX11 рд╕рдореНрдореЗрд▓рди рдореЗрдВ, рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХрд╛ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╕реАрдПрдордПрд╕, рдЬрд┐рд╕рдореЗрдВ рдПрдордПрд╕рдПрдлрдЯреА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдФрд░ рд╕реНрд╡рд╕реНрде рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдЕрддреНрдпрд╛рдзреБрдирд┐рдХ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдХреЗ рдмрд╛рдж - рдореБрдЭреЗ рд╕реАрдПрдордПрд╕ рдкрд╕рдВрдж рдЖрдпрд╛ (рдореИрдВ рдЗрд╕реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдореНрдмреНрд░реЗрдХреЛ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ) - рдФрд░ рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдСрд░реНрдЪрд░реНрдб рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕ рдореЗрдВ рдЖрдкрдХреА рдЗрдЪреНрдЫрд╛рдПрдБ рдореЗрд░реЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ - рдкрд░ рдкрдврд╝реЗрдВред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рддреЛ, рд╣рдо рд╕реБрдЦрдж, рдЙрдкрдпреЛрдЧреА рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╕реЗ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдХреЙрдХрдЯреЗрд▓ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ - рдФрд░ рд╣рдо рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВрдЧреЗ, рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 9 рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд╣рд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ - рдЕрд░реНрдерд╛рддреН, рдЯрд╛рд╕реНрдХрдмрд╛рд░ рдореЗрдВ рд╕рд╛рдЗрдЯ рдХреЛ рдкрд┐рди рдХрд░реЗрдВ (рдкрд┐рди рдХрд░реЗрдВ) рдФрд░ рд╡рд╣рд╛рдВ рдХреВрдж рд╕реВрдЪреА рдЬреЛрдбрд╝реЗрдВ (рдХреВрдж рд╕реВрдЪреА) )ред
рдЪрд▓реЛ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдХреА рддреИрдпрд╛рд░реА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ:
1) рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ -
orchard.codeplex.com2) рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 9 -
www.beautyoftheweb.comрей) рд╡рд┐рдВрдбреЛрдЬ Windows
4) рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010
рд╕рдВрдХрд▓рд┐рдд рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рджреЛрдиреЛрдВ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдмрд╛рдж рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЬрдмрдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдмрд╣реБрдд рдорд╛рдореВрд▓реА рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рдХреЛрдб рдкрдврд╝рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЬрд▓реНрджреА рд╕реЗ рдСрд░реНрдЪрд░реНрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
XaocCPS [1] рд╕реЗ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ [2] рд╕реЗ рд╡рд┐рдХрд╛рд╕ рд▓реЗрдЦ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 9 рдореЗрдВ рдкрд┐рди рдХреА рдЧрдИ рд╕рд╛рдЗрдЯреЗрдВ рдХреНрдпрд╛ рд╣реИрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рд░реАрдХреА рд╕реЗ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк MSDN [3] рдпрд╛ рдЕрдЪреНрдЫреЗ рд▓реЗрдЦреЛрдВ [4] рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдорд╛рдг
рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╣рдо рдПрдХ рдореЙрдбреНрдпреВрд▓ рд░рд┐рдХреНрдд рдмрдирд╛рдПрдБрдЧреЗред рд╡реЗрдм рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЗрдВрд╕реНрдЯреЙрд▓рд░ [5] рдпрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдПрдордПрд╕ рдХреА рддреНрд╡рд░рд┐рдд рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, cmd.exe рдЦреЛрд▓реЗрдВ, <orchard_folder> \ bin рдкрд░ рдЬрд╛рдПрдВ рдФрд░ orchard.exe рдЪрд▓рд╛рдПрдВред рдкреНрд░рд╛рд░рдВрдн рдХреЗ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж, рд╕рд┐рд╕реНрдЯрдо рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ ("рдСрд░реНрдЪрд░реНрдб>")ред рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдореЙрдбреНрдпреВрд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди, рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдмрдВрдзрди, рдХреЛрдб рдкреАрдврд╝реА рдФрд░ рдкреНрд░рд╡рд╛рд╕рди, рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрди рдФрд░ рдмрд╣реБрдд рдХреБрдЫред рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк orchard.exe рдХреА рд╢рдХреНрддрд┐ рдкрд░ рдЖрдордВрддреНрд░рдг рдФрд░ рдЪрдорддреНрдХрд╛рд░ рдкрд░ рдорджрдж рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЦреБрд╢реА рдХреЗ рдорд┐рдирдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреАрдЫреЗ рд╣реИрдВ, рдпрд╣ рд╢реНрд░рдорд╕рд╛рдзреНрдп рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╣рдо рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдХрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЙрдореНрдкреНрдЯ рд▓рд╛рдЗрди рдореЗрдВ, рджрд░реНрдЬ рдХрд░реЗрдВ
orchard> codegen module Orchard.IE9Pins /IncludeInSolution:true.
рдЬрд╡рд╛рдм рдореЗрдВ, рд╕реАрдПрдордПрд╕ рдирдП рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдЧрд╛ (рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ CMS рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ), рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ (рдмреЗрд╢рдХ, рдпрджрд┐ рдЖрдк рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЦрд╛рд▓реА Orchard рдореЙрдбреНрдпреВрд▓ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ ASP.NET MVC рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣реИ) рдХреА рдпрд╛рдж рддрд╛рдЬрд╛ рдХрд░рддреА рд╣реИред рдЕрдВрдд рдореЗрдВ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рдПрдорд╡реАрд╕реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдк рдЗрд╕реЗ Orchard.IE9pins.cnroro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
рдкрд░:
{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}.
рдпрд╣ MVC рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреА рд╕реБрдЦрдж рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджреЗрдЧрд╛ - рдХрдорд╛рдВрдб рдЬреИрд╕реЗ рдРрдб рд╡реНрдпреВ, рдЧреЛ рд╡реНрдпреВ, рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░, рдПрдб рдХрдВрдЯреНрд░реЛрд▓ рдЖрджрд┐ред [6]ред
рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдФрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реЗ рдкрд┐рдирдб рд╕рд╛рдЗрдЯреНрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рд╕рдВрд░рдЪрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА (рдЙрдореНрдореАрдж рд╣реИ) XaocCPS рд▓реЗрдЦреЛрдВ рд╕реЗ рд╕реАрдЦрд╛ рд╣реИ, рдСрд░реНрдЪрд░реНрдб рдХреА рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдЖрдЗрдЯрдо рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдореЗрдВ рдХрдИ рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рднрд╛рдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдЖрдЗрдП рдЬрдВрдк рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВред рдпрд╣ рддреНрд╡рд░рд┐рдд рдХреВрдж рд╕реВрдЪреА рдХреНрдпрд╛ рд╣реИ? рджрд░рдЕрд╕рд▓, рдпрд╣ рдлреЙрд░реНрдо рдирд╛рдо - рд▓рд┐рдВрдХ - рдЖрдЗрдХрди рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдП: рдЬрд╛рдирдХрд╛рд░реА, рд╕рд╛рдордЧреНрд░реА рднрд╛рдЧ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рддреАрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде DB рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдбред рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдХреЙрдиреНрдЯреЗрдирдкрд╛рд░реНрдЯрд░рдХрд╛рд░реНрдб рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдФрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╕рднреА рдЧреБрдг рдЖрднрд╛рд╕реА рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, JumpListItemRecord.cs рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕ рд▓рдЧрд╛рдПрдВ:
public class JumpListItemRecord : ContentPartRecord
{
public virtual string Name { get ; set ; }
public virtual string Url { get ; set ; }
public virtual string IconUrl { get ; set ; }
}
* This source code was highlighted with Source Code Highlighter .
рдЕрдм, рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЗрд╕ рднрд╛рдЧ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
public class JumpListItemPart : ContentPart<JumpListItemRecord>
{
[Required]
public string Name
{
get { return Record.Name; }
set { Record.Name = value ; }
}
[Required]
public string Url
{
get { return Record.Url; }
set { Record.Url = value ; }
}
public string IconUrl
{
get { return Record.IconUrl; }
set { Record.IconUrl = value ; }
}
}
* This source code was highlighted with Source Code Highlighter .
рдПрдХ рднрд╛рдЧ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди (рдЖрд╡рд╢реНрдпрдХ, рд╕реНрдЯреНрд░рд┐рдВрдЧрд▓рд┐рдВрдХ, рдЖрджрд┐) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ, рднрд╛рдЧ рдХреЗ рдорд╛рди рдмрд╕ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдбреЗрдЯрд╛ рд╣реИрдВред рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рд╣реИред рдФрд░ рдЕрдм рд╕реАрдПрдордПрд╕ рдХреА рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреА рдУрд░ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
рдкреНрд░рд╡рд╛рд╕
рд╣рдо orchard.exe рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
orchard> codegen datamigration Orchard.IE9pins
рд╣рд╛рдВ, рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢реЛрд░-рд╢рд░рд╛рдмреЗ рдФрд░ рдЦреБрд╢реА рд╡реНрдпрдХреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдСрд░реНрдЪрд░реНрдб рдореЗрдВ рд▓рд╛рдЧреВ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдордд рдХрд╣реЛ "рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЖрд░рдУрдЖрд░ рд╣реИ", рдЖрд░рдУрдЖрд░ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ nishtyas рд╣реИрдВ, рдпрд╣ рдЪрд░реНрдЪрд╛ рдХреЛ рддреЛрдбрд╝ рдирд╣реАрдВ рд╣реИред рддреЛ, рдХрдорд╛рдВрдб рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдорд╛рдЗрдЧреНрд░реЗрд╢рди.рдХрд╕реА рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛:
public class Migrations : DataMigrationImpl {
public int Create() {
// Creating table JumpListItemRecord
SchemaBuilder.CreateTable( "JumpListItemRecord" , table => table
.ContentPartRecord()
.Column( "Name" , DbType. String )
.Column( "Url" , DbType. String )
.Column( "IconUrl" , DbType. String )
);
return 1;
}
}
* This source code was highlighted with Source Code Highlighter .
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рдКрдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ - рдФрд░ рдпрд╣ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЪреМрдХрд╕ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди 1 рд▓реМрдЯрддрд╛ рд╣реИ - рдФрд░ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рддреНрд░реБрдЯрд┐ рдХреЛрдб рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд░реНрдЬрди рдирдВрдмрд░ рд╣реИред рдЖрдкрдХреЗ рдмреЗрддрд╣рд╛рд╢рд╛ рд╕рдкрдиреЗ рд╕рдЪ рд╣реЛрддреЗ рд╣реИрдВ - рдСрд░реНрдЪрд░реНрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдФрд░ рдЕрдкрдбреЗрдЯред рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рд╣рдо рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрдмрдХрд┐ рдЬрдВрдк рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ - рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ред рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдЪрд░рдг рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдордп (рдФрд░ рд╕реНрдерд╛рди) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ - рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ рдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ред рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП 1 рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ:
ContentDefinitionManager.AlterTypeDefinition( "JumpListItem" ,
cfg => cfg
.WithPart( "JumpListItemPart" )
);
* This source code was highlighted with Source Code Highlighter .
рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓рддрд╛ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдХреЗрд╡рд▓ JumpListItemPart рднрд╛рдЧ рдХреЗ рд╕рд╛рде рдПрдХ JumpListItem рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рдХрдорд╛рдВрдб рд╣реИред
рд╣реИрдВрдбрд▓рд░ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЗрд╕ рднрд╛рдЧ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЖрдП, рдЖрдкрдХреЛ рджреЛ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдкреЗрдпрд░ рдкрд╛рд░реНрдЯреНрд╕ "рд╣реБрдб рдХреЗ рдиреАрдЪреЗ" рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ - рд╣реИрдВрдбрд▓рд░ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░ред рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕рд╛рдордЧреНрд░реА рдХреА рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХреЗ - рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рдХрд╛рд╢рди, рд╣рдЯрд╛рдирд╛, рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдирд╛ - рдФрд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗрдВред рд╣реИрдВрдбрд▓рд░ (рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ) рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдмреАрдЪ, рд╣рдореЗрдВ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдЪреАрдЬ рдЪрд╛рд╣рд┐рдП - рднрд╛рдЧ рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣реИрдВрдбрд▓рд░ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ IRepository JumpListItemRecord рдХреЛ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬреЛ рдХрд┐, рдмрджрд▓реЗ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо IoC рдХрдВрдЯреЗрдирд░ рдХреА рд╡рдЬрд╣ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ):
public class JumpListPartHandler : ContentHandler
{
public JumpListPartHandler(IRepository<JumpListItemRecord> repo)
{
Filters.Add(StorageFilter.For(repo));
}
}
* This source code was highlighted with Source Code Highlighter .
рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдбреНрд░рд╛рдЗрд╡рд░ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде, рдЕрд░реНрдерд╛рддреНред рднрд╛рдЧ рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред ContentPartDriver рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдореЗрдВ, рдЖрдк рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреБрдирд░реНрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рд╕рдВрдкрд╛рджрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЕрдзрд┐рднрд╛рд░ (рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ GET рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП, POST рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛, рдЕрд░реНрдерд╛рддреН рдЗрдирдкреБрдЯ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП) )ред рдЬреИрд╕рд╛ рдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдирд╛рдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рддрд░реАрдХреЗ рд╕рдВрдкрд╛рджрди рдореЛрдб рдореЗрдВ рднрд╛рдЧ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВред
public class JumpListItemPartDriver : ContentPartDriver<Models.JumpListItemPart>
{
protected override DriverResult Editor(Models.JumpListItemPart part, dynamic shapeHelper)
{
return ContentShape( "Parts_JumpListItem_Edit" ,
() => shapeHelper.EditorTemplate(
TemplateName: "Parts/JumpListItem" ,
Model: part,
Prefix: Prefix));
}
protected override DriverResult Editor(Models.JumpListItemPart part, ContentManagement.IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null , null );
return Editor(part, shapeHelper);
}
}
* This source code was highlighted with Source Code Highlighter .
рдореИрдВ рдЖрдкрдХреА рдкрд╣рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ - "рдУрдПрдордЬреА, рдпрд╣ рдХреНрдпрд╛ рд╣реИ?" рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ ContentShape рд╣реИред
рдкреНрд░рдкрддреНрд░ (рдЖрдХрд╛рд░)
ContentShape рднрд╛рдЧ рдХреЗ рдбреЗрдЯрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рдмреАрдЪ рдХреА рдХрдбрд╝реА рд╣реИ, рджреЗрдЦрдиреЗ рдХреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдореБрдЦреНрдп рдордзреНрдпрд╕реНрдеред рд╡рд┐рд╡рд░рдг рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ
XaocCPS рд▓реЗрдЦ рдХрд╛
рд╕рдВрджрд░реНрдн рджреЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рддреЛ, рднрд╛рдЧ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рдкрд░рдд рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд╕рд╛рдеред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ (рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╛рдо: "рдкрд╛рд░реНрдЯреНрд╕ / рдЬрдВрдкрд▓рд┐рд╕реНрдЯрд╕реНрдЯреЗрдо") рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрдЯреНрд╕ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдЬрдВрдкрд▓рд┐рд╕реНрдЯрд╕реНрдЯреЗрдо.рд╢реАрдЯ рдПрдордПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдХреГрддрд┐ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдПрдХ рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рд╣рд┐рд╕реНрд╕реЗ, рдЬрдВрдкрд▓рд┐рд╕реНрдЯрд╕реНрдЯреЗрдордкрд╛рд░реНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЕрджреНрдпрддрди рдХреЗ рд╕рд╛рде рдпрд╣ рдЕрднреА рднреА рдЖрд╕рд╛рди рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд IUpdateModel рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рднрд╛рдЧ рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЕрдм рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рднрд╛рдЧ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдХреА (рднрд╛рдЧ) рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред JumpListItem.cshtml рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдХреЗрд╡рд▓ Views / EditorTemplates / Parts / folder рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдмрд╣реБрдд рддреБрдЪреНрдЫ рд╣реЛрдЧреА:
@model Orchard.IE9pins.Models.JumpListItemPart
< fieldset >
@Html.LabelFor(m = > m.Name)
@Html.TextBoxFor(m = > m.Name, T("Description"))
@Html.LabelFor(m = > m.Url)
@Html.TextBoxFor(m = > m.Url, T("Url"))
@Html.LabelFor(m = > m.IconUrl)
@Html.TextBoxFor(m = > m.IconUrl, T("IconUrl"))
</ fieldset >
* This source code was highlighted with Source Code Highlighter .
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рд░реЗрдЬрд░ рдорд╛рд░реНрдХрдЕрдк рдлрд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬрдВрдкрд▓рд┐рд╕реНрдЯрд╕реНрдЯреЗрдордкрд╛рд░реНрдЯ рдЯрд╛рдЗрдк рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдареАрдХ рд╣реИ, рдпрд╣ рд╕рдм рд╣реИ, рдареАрдХ рд╣реИ, рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖ! рдзреИрд░реНрдп рдХрд╛ рдПрдХ рдорд┐рдирдЯ - рдкреНрд░рддреНрдпреЗрдХ рд░реВрдк рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдореЗрдВ Placement.info рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдпрд╣ рдмрд╣реБрдд рддреБрдЪреНрдЫ рд╣реЛрдЧрд╛:
< Placement >
< Place Parts_JumpListItem_Edit ="Content:1" />
</ Placement >
* This source code was highlighted with Source Code Highlighter .
рд╣рдорд╛рд░реЗ рднрд╛рдЧ (O_o) рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдкрддреНрд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рд╛рдордЧреНрд░реА 1 рдореЗрдВ рд╕реНрдерд┐рддрд┐ 1 рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдЧрд╛ (рд╡реИрд╕реЗ, рдХреНрд░рдорд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ рдпрд╣рд╛рдБ, рдкреВрд░реНрдгрд╛рдВрдХ рдирд╣реАрдВ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдореМрдЬреВрджрд╛ рд╡рд╛рд▓реЗ рдХреЗ рдмреАрдЪ рдХрд╣реАрдВ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХреЗрдВ)ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдПрдХ рднрд╛рдЧ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдХрд╣реАрдВ рднреА рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореБрдЦреНрдп рдореЗрдиреВ
рд╕рдм рдХреБрдЫ, рднрд╛рдЧреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ, рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА "рдЪреАрдпрд░реНрд╕" рд▓рдЧрддрд╛ рд╣реИ? рдЕрднреА рддрдХ рдирд╣реАрдВ, рдЖрдЦрд┐рд░реА рдЙрдЫрд╛рд▓ред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдЧреИрд░-рд╕реВрдЪреАрдмрджреНрдз рд░реВрдк рд╕реЗ рд▓рдВрдмреА рдФрд░ рдЬрдЯрд┐рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрд╢рди рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рднреА рджрд┐рдирдЪрд░реНрдпрд╛ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рд╕рдм рдХреБрдЫ, рдкреНрд░реЛрддреНрд╕рд╛рд╣рди рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдореЙрдбреНрдпреВрд▓ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рдореБрдЦреНрдп рдореЗрдиреВ рдореЗрдВ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЖрдЗрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛ - рдФрд░ рд╕реАрдПрдордПрд╕ рдХреЗ рдЕрдВрджрд░ рдирд┐рдпрдорд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреА рддрд░рд╣ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рдореБрдЦреНрдп рдореЗрдиреВ рд╕реЗ рдХреНрдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдореЗрдВ рдмрд╕ рдЗрдирд╡реЗрд╢рдирдкрд┐рд░рд╡реАрдбрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдзрд┐ GetNavigation рд╣реИ, рд╡рд╣рд╛рдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЗрдиреВ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ (рднрдЧрд╡рд╛рди рдЖрд╢реАрд░реНрд╡рд╛рдж рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ!) BuildMenu рдЬреЛ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмрдореЗрдиреВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреВрд░рдЧрд╛рдореА рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ - рдкрд┐рдиреНрдб рд╕рд╛рдЗрдЯ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрдВрдк рд╕реВрдЪреА рддрддреНрд╡ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реВрдХреНрд╖реНрдорддрд╛ рдХреЛ рджреЗрдЦрддреЗ рдереЗ рдЬрдм рд╕рдмрдореЗрдиреВ рдХреЗ рдЖрдЗрдЯрдо рдмрдирд╛рддреЗ рд╣реИрдВ - рдЖрдЗрдЯрдоред рд╣реЙрд░рд░ рдХреЗ рд▓рд┐рдП рдПрдорд╡реАрд╕реА рд╕реЗ рдПрдХреНрд╢рди рд╡рд┐рдзрд┐ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ - рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ред рддреЛ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╣реИ - рдФрд░ рдпрджрд┐ рдХреЛрдИ рдпреВрдЖрд░рдПрд▓ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдорд╛рд░реНрдЧ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред
рдорд╛рд░реНрдЧреЛрдВ
IrouteProvider рд╡рд░реНрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдорд╛рд░реНрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЖрдк рдЗрд╕реЗ рд░реВрдЯ.рдПрдХреНрд╕ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ:
Route = new Route(
"Admin/IE9JumpList/Create" ,
new RouteValueDictionary {
{ "area" , "Orchard.IE9pins" },
{ "controller" , "JumpLists" },
{ "action" , "Create" }
},
new RouteValueDictionary(),
new RouteValueDictionary {
{ "area" , "Orchard.IE9pins" }
},
new MvcRouteHandler())
}
* This source code was highlighted with Source Code Highlighter .
рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдХреЗрд╡рд▓ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рднреА URL рдХреЗ рд▓рд┐рдП рд╣рд░ рдЬрдЧрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдХреНрд╖реЗрддреНрд░ = Orchard.IE9pins рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЬрдВрдкрд▓рд┐рд╕реНрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдирд┐рдпрдВрддреНрд░рдХ
рдПрдорд╡реАрд╕реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рд╣реИ - рдПрдХ рдирд┐рдпрдорд┐рдд рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдПрдХреНрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬреЛ рдПрдХреНрд╢рдирдСрдиреНрдЯрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдореЗрдВ, рд╕реАрдПрдордПрд╕ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд░ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ - рдбрд┐рдкреЗрдВрдбреЗрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рддрд░реАрдХрд╛ - рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реЙрдЗрд▓рд╛, рдЬрдм рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрдВрдЬреАрдХреГрдд рд╕реАрдмреАрдПрд╕ рдШрдЯрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗред рд╕рд░рд▓ рдФрд░ рд╕реБрдВрджрд░ред рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рд▓реЗрдпрд░ рдореЗрдВ рджрд┐рдП рдЧрдП рдЯреНрд░рд╛рдВрд╕рдлрд░ рдореЗрдердб рдореЗрдВ рд▓реМрдЯрдХрд░ рдореИрдВ рд▓рд╛рдЗрди рдкрд░ рднреА рдзреНрдпрд╛рди рджреВрдВрдЧрд╛
dynamic model = ContentManager.BuildEditor(item);
* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рдЙрд╕ рдореЙрдбрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рджреГрд╢реНрдп рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - BuildEditor рд╡рд┐рдзрд┐ рдЖрдХреГрддрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд╕рдВрдкрд╛рджрдХ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдиреЗрдЧреА - рдЬреЛ рдореЙрдбрд▓ рдмрди рдЬрд╛рдПрдЧреАред рджреГрд╢реНрдп рдореЗрдВ рдЖрдХреГрддрд┐ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рдзрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
@{ Layout.Title = T("Create jump list item").ToString(); }
@using (Html.BeginFormAntiForgeryPost()) {
@Html.ValidationSummary()
@Display(Model)
}
* This source code was highlighted with Source Code Highlighter .
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдк рдРрд╕реА рдЕрд╕реНрдкрд╖реНрдЯ рд░реЗрдЦрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
var item = Services.ContentManager.New<Models.JumpListItemPart>( "JumpListItem" );
* This source code was highlighted with Source Code Highlighter .
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП "рдЯрд╛рдЗрдк рдХрд░реЗрдВ JumpListItem рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдПрдХ рдирдпрд╛ рдЖрдЗрдЯрдо рдмрдирд╛рдПрдВ, рдЗрд╕рдореЗрдВ JumpListItemPart рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рднрд╛рдЧ рдвреВрдВрдвреЗрдВ рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛рдПрдВред" рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмрдирд╛рдИ рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рднрд╛рдЧ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рдирд╣реАрдВ рд╣реИрдВ)ред
рдЕрдВрддрд┐рдо рдирд┐рд░реНрдорд╛рдг, рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдкрд░ рдЬрд╛рдПрдВред рд╡рд╣рд╛рдВ рд╣рдо рдореЙрдбреНрдпреВрд▓ / рдлреАрдЪрд░реНрд╕ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдмреАрдПрдб рд╕рд╛рдВрд╕ рдХреЗ рд╕рд╛рде рд╣рдо IE9Pins рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рддрд▓рд╛рд╢ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рд╣реБрд░реНрд░реЗ!

рд╣рдо рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп (рд╕рдХреНрд╖рдо) рдХрд░рддреЗ рд╣реИрдВ рдФрд░ ... рдУрд╣, рд╣рд╛рдБ - рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 9 рдкрдВрдЯ рдореБрдЦреНрдп рдореЗрдиреВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ!

рдФрд░ JumpLists рдХреА рд╕реВрдЪреА рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рдЦреИрд░, рдЕрдм рд╣рдореЗрдВ рдЗрд╕реЗ рд╕рд╛рдЗрдЯ рдкрд░ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЧрд▓реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд╛рда рдирд┐рдХрд▓рд╛ (рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдореЗрд░реЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЗрд╕реЗ 2 рдХреЗ рдХрд╛рд░рдХ рд╕реЗ рдХрдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛)ред
рдкрд░рд┐рдгрд╛рдо
рдЗрд╕рд▓рд┐рдП рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ:
1) рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рд╣реИ рдЬреЛ рд╣рдореЗрдВ рддреНрд╡рд░рд┐рдд рдХреВрдж рд╕реВрдЪреА рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
2) рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред
рдпрд╣ рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рд╕рдм рдХреБрдЫ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддрд╛рдХрд┐ рди рдХреЗрд╡рд▓ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ, рдмрд▓реНрдХрд┐ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реАрдПрдордПрд╕ рдХреЗ рдЕрдВрджрд░ рдХреИрд╕реЗ рдФрд░ рдХреНрдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ (рдпрд╣ рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛), рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд▓реЗрдЖрдЙрдЯ, рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЖрдк рд╕рд╛рдЗрдЯ рдкреГрд╖реНрда рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб (рджреВрд╕рд░реЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕рд╣рд┐рдд, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)
BitBucket рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдл рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдореЗрд░реЗ рдлреЗрдВрдХрдиреЗ рдФрд░ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЛ рдмрд╣реБрдд рдХреБрдЫ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЕрднреА рддрдХ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реВрдВ - рдХреНрдпреЛрдВрдХрд┐ рдкрдврд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд┐рдпрд╛ред
PS рдмрд╕ рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдпрд╣ рдХрд┐рддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реИ!" - рдЬрдмрдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреЗрд╡рд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рд╕рдм рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдХреЛ рдЬрд╛рдирдирд╛ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред
рд╕рдВрджрд░реНрдн
[рез] рд▓реЗрдЦ
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ред рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ ,
рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ред рд▓реЗрдЖрдЙрдЯ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ ,
рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ред рдореВрд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ[реи]
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдСрд░реНрдЪрд░реНрдб рд╕реЗрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░
[рей]
MSDN рдкрд░ рдкрд┐рди рдХреА рдЧрдИ рд╕рд╛рдЗрдЯреЗрдВ
[рек]
рдХрд┐рдЪрд┐рдХ рдХреЗ рд▓реЗрдЦ рдореЗрдВ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдкрд┐рди рдХрд┐рдпрд╛ рдЧрдпрд╛
[рел]
рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЛ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдПрдВред рднрд╛рдЧ 1. рдСрд░реНрдЪрд░реНрдб рд╕реАрдПрдордПрд╕ рдХрд╛ рдкрд░рд┐рдЪрдп[рем]
MVC рей рд╕рдХреНрд╖рдо рдХрд░реЗрдВ "рдЬреЛрдбрд╝реЗрдВ | рджреЗрдЦреЗрдВ ... тАЭрдСрд░реНрдЪрд░реНрдб рдХреЛрдб рдЬреЗрдирд░реЗрдЯ рдореЙрдбреНрдпреВрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП