рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡рд┐рдЬрд╝рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╡рд┐рднрд┐рдиреНрди рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ .NET рдкрд░ рдХреИрд╕реЗ рд▓рд╛рдпрд╛ рдЬрд╛рдПред рд▓реЗрдЦ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХреЗ рд╣реЛрдВрдЧреЗред
рддреЛ рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡рд░ рд╣реИ?
рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
- "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░" рд╡рд┐рддрд░рд┐рдд рдПрди-рдЯрд┐рдпрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдПрдХ рдХреЗрдВрджреНрд░реАрдп рд╕реНрдерд╛рди рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЙрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рдд рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред
- рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣реИ рдЬреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХрдИ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЗрд╡рд╛ рджреЗрдиреЗ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдФрд░ рдЙрдиреНрд╣реЗрдВ рднреЗрдЬреЗ рдЧрдП рджреЛрдиреЛрдВ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди-рд╕реНрддрд░реАрдп рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдпрд╣ рдереАред
рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдЧрд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬреИрд╕реЗ рдХрд┐ Microsoft рд╡рд┐рдВрдбреЛрдЬ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдлрд╝рдВрдбреЗрд╢рди рддрдХрдиреАрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ (рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рдмрд╛рдж рдмрд╕ WCF рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд), рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдореЛрдЯреА .NET рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереАред ExtJs рдХреЛ рдорд╛рд╕реНрдЯрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред "рдХреИрд╕реЗ рдЕрдЬрд╛рдХреНрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ WCF рд╕реЗрд╡рд╛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ" рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдкрд╣рд▓реЗ рдбреНрд░рд╛рдлреНрдЯ рдмрдирд╛рдП рдЧрдП рдереЗред рд▓реЗрдЖрдЙрдЯ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХреБрдЫ рдЕрд╕рдВрддреЛрд╖ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪреАрдЬреЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рдкреИрджрд╛ рд╣реБрдИрдВред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдмрд╣реБрдд рд╕реА "рдЕрдирд╛рд╡рд╢реНрдпрдХ рдмрд╛рддреЗрдВ" рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рдиреА рдереАрдВ, рдЬреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдереАрдВред
рдереЛрдбрд╝рд╛ рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ред
WCF рдореЗрдВ рдХрд╛рд░реНрдп рдЕрдиреБрднрд╡ рдФрд░ рдХрдИ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдереАрдВред рдУ'рд░реЗрд▓реА рдХреА рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдкреБрд╕реНрддрдХ рдореЗрдВ, рд╕реЗрд╡рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХрдИ рддрд░реАрдХреЗ рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рдереА (рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ +)ред рдЗрд╕ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВ, рдПрдХ рдореБрдЦреНрдп рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╡рд┐рдзрд┐ рдФрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рдерд╛ред рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рд╕рдордп рдпрд╣ рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рдХреЗ .NET рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛, рддрдм рдЗрд╕ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдиреЗ рддрдерд╛рдХрдерд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░реЛрдВ рдХреЛ рдмрд╛рдЗрдирд░реАрдлреЙрд░реНрдорд╛рдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛, рд╕рд╛рде рд╣реА рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдмрд╛рд╣реНрдп рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрд╕реЗрдореНрдмрд▓реА рдХреНрд╡рд┐рдХрд▓рд╛рдЗрдЬреНрдб рдирд╛рдо рджрд┐рдпрд╛ред
рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╕рдорд╛рдзрд╛рди рд╡реЗрдм рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрдЧрдд рдерд╛ рдФрд░ рд╕реЗрд╡рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП "рдлреНрд▓реИрдЯ" рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдерд╛ред
рдПрдордЯреАрдУрдПрдо рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВред рдореИрдВ рдЕрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдЯреНрд░реАрдо рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WCF рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрд╛ред
WCF + рдЕрдЬрд╛рдХреНрд╕ рдмрдВрдбрд▓ рдореЗрдВ рдПрдХ рдФрд░ рдЙрдкрджреНрд░рд╡ Json рдХреНрд░рдорд╛рдВрдХрди рд╣реИред рдЦреИрд░, рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдирд╣реАрдВ, рдФрд░ рдпрд╣рд╛рдБ рдЗрд╕рдХреА рдмрд╣реБрдд рд╕рд╛рд░реА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрднреНрдпрд╛рд╕ рдиреЗ рд╣рдореЗрд╢рд╛ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЬрд┐рди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдиреЗ рдбрдмреНрд▓реНрдпреВрд╕реАрдПрдл-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдЙрдирдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ .NET 3.5 SP1 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдХреНрд╕рд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдпрд╛ рддреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рдпрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ .svc рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИ, рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реИ, рдлрд┐рд░ рдХреБрдЫ рдФрд░ред
рдереЛрдбрд╝рд╛-рдереЛрдбрд╝рд╛ рдХрд░рдХреЗ, рдЪреБрдкрдЪрд╛рдк, WCF рдкрд╕рдВрдж рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред
рдФрд░ рдЗрд╕ рдмреАрдЪ, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЕрднреА рднреА рд╕рддрд╛ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдкреНрд░рд╕рд┐рджреНрдз рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ, рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рд╡рд┐рднрд┐рдиреНрди рдРрдк рд╕реНрдЯреЛрд░ рдХреА рд╕реЗрд╡рд╛рдПрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдПрдХ рднреА php рдирд╣реАрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рд╕реЗрд╡рд╛рдПрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рдПрдХ рд╕реЗрд╡рд╛ - рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЧреНрд░рд╛рд╣рдХ, рдпрд╣ рд╣рдорд╛рд░реЗ рд╕рдордп рдореЗрдВ "рд╢рд╛рдВрдд" рдФрд░ "рдХрдЯреНрдЯрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг" рд╣реИ, рд▓реЗрдХрд┐рди .NET рдкрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ?
.NET 2.0 рд╕реЗ .asmx WebService рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, .NET 3.5 рдиреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреЗрд╢ рдХрд┐рдП рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдЬрд╛рдХреНрд╕ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдореИрдВ рддреБрд░рдВрдд рд╣реА рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдХреБрдЫ рд╣реБрдЖ, рдХреБрдЫ рдирд╣реАрдВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рднрд╛рд╡рдирд╛ рдереА рдХрд┐ XML рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпреЗ рд╕рднреА рдПрдХреНрд╕рдЯреЗрдВрд╢рди-рдЬреЛрдбрд╝ "рджреВрд░ рдХреА рдХреМрдбрд╝реА" рдереЗ рдФрд░ рдЙрдирдХреЗ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рдирд╣реАрдВ рдереЗред
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдХрд┐ WCF рдФрд░ WebService рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдБ рд╡реЗрдм 2.0 рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ - рдЬреЛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рдХрднреА-рдХрднреА рдРрд╕рд╛ "рдЧрд▓рддрдлрд╣рдореА" рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╕рд░рд▓ рдЪреАрдЬреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рдерд╛, рдФрд░ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрднрд╡ рдереАрдВред
рдпрд╣рд╛рдВ рдПрдХ рдРрд╕реЗ рдЕрдкреНрд░рд┐рдп рдХреНрд╖рдгреЛрдВ рдХреА рд╕реВрдЪреА рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдЙрддреНрдкрдиреНрди рд╣реБрдП, рд▓реЗрдХрд┐рди рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП - рдЕрдм рдореИрдВ рд╕рдм рдХреБрдЫ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рд╕рд░рд▓ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдпрд╛рдж рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ред
рддреЛ рдХреНрдпрд╛ рдЖрдкрдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .NET рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рд╣рдорд╛рд░рд╛ рдЙрджреНрдзрд╛рд░ System.Net рдФрд░ System.Web рд╣реИред
рдФрд░ рдЗрд╕рд▓рд┐рдП, IHttpHandler рдЪреБрдиреЗрдВред
HttpRequest рдФрд░ HttpResponse рдХреЗ рд╕рд╛рде HttpContext рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╡реЗ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ Webengine рд╕реЗ Http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЪрд╛рдВрджреА рдХреА рдерд╛рд▓ рдкрд░ рд░рдЦ рджреЗрддреЗ рд╣реИрдВред рд╣рдо рдХреЗрд╡рд▓ "рдиреАрд▓реА рд╕реАрдорд╛" рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рдХреБрдЫ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдорд┐рд▓реАред
рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ? рдЬрд╡рд╛рдм рд╕рдм рдХреБрдЫ рд╣реИ рдЖрдкрдХреЗ рджрд┐рд▓ рдХреА рдЗрдЪреНрдЫрд╛рдПрдВред рд╣рд╛рдБ, рд╣рд╛рдБ, рдмрд┐рд▓реНрдХреБрд▓ред
рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд╣рдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
1. рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡рд░ - рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреНрд░рд╛рд╣рдХ (.NET, Java, Web + Ajax, Silverlight, iPhone, Android, рдЖрджрд┐);
2. рдХрд┐рд╕реА рднреА рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛;
3. "GET" рдФрд░ "POST" рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди, рдЕрд░реНрдерд╛рдд рдЙрд░рд▓ рдпрд╛ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░;
4. рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
5. рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рдпрд╛рд╕ рдХреЗ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ;
6. рд╕рдорд╛рдзрд╛рди рдХреА рдЧрддрд┐, рд╕рд╣рдЬрддрд╛, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХрддрд╛, рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ред
рдкрд╣рд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдерд╛ рдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рдореМрдЬреВрдж рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рдЬреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд╕реАрдорд╛ рдХреЗ рдкрд╛рд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ (рдореБрдЭреЗ рднреА рдмреБрд▓рд╛рдпрд╛ - рдЕрдореЗрд░рд┐рдХрд╛ рдХреА рдЦреЛрдЬ рдХреА)ред рдореИрдВ "рд╕рдВрдЧрдд" рд╢рдмреНрдж рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдореВрд▓рднреВрдд рдмрд┐рдВрджреБ рд╣реИ:
рд╡рд░реНрдг, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ (рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП), рд╕рд░рд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ (рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░, рдмреВрд▓рд┐рдпрди рдорд╛рди), рдмрд╛рдЗрдЯ рд╕рд░рдгрд┐рдпрд╛рдБ рдФрд░ рдзрд╛рд░рд╛рдПрдБред рдПрдХ рддрд╛рд░реАрдЦ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рдгрд┐рдпрд╛рдБ, рд╕реВрдЪрд┐рдпрд╛рдБ рдФрд░ рд╢рдмреНрджрдХреЛрд╢ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдПрдХреНрд╕рдЪреЗрдВрдЬ рдлреЙрд░реНрдореЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ Json рдерд╛ред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдиреНрдпреВрдЯрдирд╕реЙрдлреНрдЯ рд╕реЗ Json.NET рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдзрд┐ (RPC) рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╡рд┐рдзрд┐ рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рджреА рдЧрдИ рд╣реИред рд╡рд┐рдзрд┐ рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╣рдЪрд╛рдирдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд▓рд┐рдП, рд╡рд┐рдзрд┐рдпрд╛рдБ рди рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рдХрд┐рд╕реА рднреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рднреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рдЕрдзреАрдиред
REST рд╢реИрд▓реА рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рд▓реЗрдХрд┐рди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рдЪреАрд▓реА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ "рдЯреЗрдореНрдкрд▓реЗрдЯ" рд╢реИрд▓реА рд╣реИред рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХрджрдо, рдФрд░ рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рдЦреЛ рдЬрд╛рддреА рд╣реИред рдПрдХ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп QueryString рдмрдиреА рд╣реБрдИ рд╣реИред
рд╕рд░реНрд╡рд░ рдХреЛ рдлреЙрд░реНрдо рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:
/service.ashx?
рд╡рд┐рдзрд┐ = GetImage ("DSCN2099.JPG")
рдкреНрд░рдореБрдЦ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдирд╛рдо рдмреЛрд▓реНрдб рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рд╕реНрд╡рдпрдВ рд╕реЗрд╡рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд░реЛрдзрд┐рдд рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИред рдЬрд╣рд╛рдВ рддрд╕реНрд╡реАрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рдХреЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП: рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛; рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕реЗ рдПрдХ рд╕рдВрд╕рд╛рдзрди; рдбреАрдмреА; рд░рдирдЯрд╛рдЗрдо рдбреНрд░рд╛рдЗрдВрдЧ; рдмрд╛рд╣рд░реА рд╕рдВрд╕рд╛рдзрди, рдЖрджрд┐ред рдпрд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрд░реНрдХ рд╣реИред
рдкреВрд░реНрдг рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк:
/service.ashx?
рд╕рддреНрд░ = xxxxxxxxxxxxxxxxxxx - рд╕рддреНрд░ рдЖрдИрдбреА
рд╡рд░реНрдЧ = рдкреВрд░реНрдг рдЕрд╕реЗрдВрдмрд▓реА рдЯрд╛рдЗрдкрдиреЗрдо рдФрд░ "рдлреБрд▓рдЯрд╛рдЗрдкрдиреЗрдо, рдЕрд╕реЗрдВрдмрд▓реА рдиреЗрдо"
рд╡рд┐рдзрд┐ = MethodName (рдкреИрд░рд╛рдореАрдЯрд░) рдФрд░ - (рдХреЗрд╕-рд╕рдВрд╡реЗрджреА рд╡рд┐рдзрд┐ рдирд╛рдо)
рдкреНрд░рд╛рд░реВрдк = Json / DotNetBinary & тАУтАУ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк (рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓)
zip = on / off - рдХреНрдпрд╛ рд╡рд┐рдзрд┐ рдХреЗ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдкреАрдбрд╝рд┐рдд рд╣реИрдВ
рдпрджрд┐ рдХреЛрдИ рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрд╕реЗ рддрдерд╛рдХрдерд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рд╣реИред
рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдХреНрдпрд╛ рд▓реМрдЯрдирд╛ рд╣реИ? рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╣реА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЪрд┐рддреНрд░ рдПрдХ рдердВрдмрдиреЗрд▓ рд╣реИ, рддреЛ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝реА рддрд╕реНрд╡реАрд░ рд╣реИ, рддреЛ рдзрд╛рд░рд╛ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдкрд░реНрд╕ рдХрд░рддрд╛ рд╣реИ), рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рддрд░реНрдХ рдФрд░ рдЕрдВрдд рдореЗрдВ рд░рд┐рдЯрд░реНрди рдкрд░рд┐рдгрд╛рдо; рдФрд░ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдЖрдЧреЗ рдХрд╣рд╛рдВ рдЬрд╛рддрд╛ рд╣реИ? рд╣рд╡рд╛ рдореЗрдВ рдирд╣реАрдВред рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╡рд┐рдзрд┐ рд╕реЗ рд╡рд╛рдкрд╕ рд╕рд░реНрд╡рд░ рд╕рд░реНрд╡рд░ рдХреЛрд░ рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рд╡рд╛рдкрд╕реА рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЯрд╛рдЗрдкреЛрдлрд╝ (рд╢реВрдиреНрдп) рд╣реИ, рддреЛ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╕реНрдЯреНрд░реАрдо рд╣реИ, рддреЛ рдЗрд╕реЗ HttpResponse рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдкрд░рд┐рдгрд╛рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рд▓рд┐рдП Json рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ HttpResponse-> Write () рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, Http рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд╣реБрдВрдЪ рд╣реЛрдиреЗ рдкрд░, рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдереЗред
SOAP .asmx WebService рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рд▓рдЧрднрдЧ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЗрд╡рд▓ рднрд╛рд░реА рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд╛рд╣рд╛рд░реА XML рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рд╣рд▓реНрдХрд╛ рдФрд░ рддреЗрдЬ Json рд╣реИред .aspx рдФрд░ WCF рднреА рд╣реИрдВрдбрд▓рд░ рд╣реИрдВред
рддреЛ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХрд╛ рдХреНрдпрд╛, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдм рд╢реБрд░реВ рд╣реБрдЖ?
.NET рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИредрдпрд╣рд╛рдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореВрд▓ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреНрд░рд╛рд░реВрдк рдФрд░ Json рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдФрд░ HttpWebResponse-> GetResponseStream () рдПрдХ рд╣реА рд╕реНрдЯреНрд░реАрдо рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдзрд┐ "GetImage ()" рдХрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реИ, рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЗрд╕ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╣реИ, рдпрд╣рд╛рдВ рдпрд╣ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреНрд░реАрдо рд╣реЛрдЧрд╛ - .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред рд╣рд╛рдБ, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ Image.FromStream () рдпрд╛ рдмрд╕ рдЗрд╕реЗ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдиреЗ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ (рдмрд╛рдЗрдЯ []) рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛ рджреА рд╣реИ, рддреЛ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ GetResponseStream () рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рд╣рдореЗрдВ рдЗрд╕реЗ рдЙрд╕реА рд╕рд░рдгреА рдореЗрдВ рд╡рд╛рдкрд╕ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдирд┐рд░реНрдгрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди API рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдЙрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдбреЗрд╡рд▓рдкрд░ рдПрдХ рдЕрд╕реЗрдВрдмрд▓реА рд▓рд┐рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рддрд░реАрдХреЗ, рдкреНрд▓рд╕ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЗрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЗрд╕ рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдирд╛рдо рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╛рдиреА рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реЗрд╡рд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдП рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╡реЙрдЗрд▓рд╛ - рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддреБрд░рдВрдд рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдИред
рдЕрдЬрд╛рдХреНрд╕рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рд╕реНрддреБрдд рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ Ajax рдЪреМрдЦрдЯреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддреА рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, XML рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Json рдЙрдиреНрд╣реЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рдкреНрд░рд┐рдп рд╣реИред
Ext.Ajax.request({ method: 'GET', url: '/service.ashx?method=GetImageInfo(тАЬDSCN2099.JPGтАЭ)', success: function(response, options) { var result = Ext.decode(response.responseText); }, failure: function(response, options) { ... } });
рд╕рд░реНрд╡рд░ рд╡рд┐рдзрд┐:
public ImageInfo GetImageInfo(Json json) { string fileName = json.AsString; string filePath = Path.Combine(IMAGES_DIR, fileName); return new ImageInfo(filePath); }
GetImageInfo () рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП ImageInfo рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЬреЗрдиреНрд╕ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
{
"рдирд╛рдо": "DSCN2099.JPG",
"рдКрдВрдЪрд╛рдИ": 1536,
"рдЪреМрдбрд╝рд╛рдИ": 2048,
"PixelFormat": 137224,
"рд░реЙрдлрд╛рд░реНрдореЗрдЯ": "рдЬреЗрдкреАрдИрдЬреА",
"рдХреНрд╖реИрддрд┐рдЬ рдХреНрд╖реИрддрд┐рдЬрддрд╛": 300.0,
"рд╡рд░реНрдЯрд┐рдХрд▓ рдЗрдВрдбрдХреНрд╢рди": 300.0,
"рдердореНрдмрдЗрдореЗрдЬ": "/ 9j / 4AAQSkZJRgABAQ ...",
"рдлрд╛рдЗрд▓рдЗрдиреНрдлреЛ": {
"рдлрд╛рдЗрд▓рд╕рд╛рдЗрдЬрд╝": 1849625,
"рдХреНрд░рд┐рдПрд╢рдирдЯрд╛рдЗрдо": "\ / рджрд┐рдирд╛рдВрдХ (1246514398257 + 0400) \ /"
"FileAttributes": 32
}
}
рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬ рджреЗрдЧрд╛, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рджрд┐рдирд╛рдВрдХ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
var date = Date.parseDate(result.FileInfo.CreationTime, 'M$').format('dmY h:i'),
рдФрд░ рдкреИрд░:
var image = { xtype: 'box', autoEl: { tag: 'div', children: [{ tag: 'img', src: String.format('data:image/jpg;base64,{0}', result.ThumbImage) }] }, listeners: { render: function(comp) { comp.getEl().on({ dblclick: function() { var url = '/service.ashx?method=GetImage(result.Name)'; window.open(url, 'imageWindow', 'menubar=no, location=no, resizable=yes, scrollbars=yes, status=no, width=640, height=480'); }, scope: comp }); } } };
рд╣рдорд╛рд░рд╛ рдмреЗрд╕ 64 рдердореНрдмреИрдореЗрдЬ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдЪрд┐рдд рдЖрдХрд╛рд░ рдХреА рддрд╕реНрд╡реАрд░ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкрд░ рдбрдмрд▓ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рдПрдХ рдирдИ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдЦреБрд▓реЗрдЧреА рдФрд░ рдПрдХ рдкреВрд░реНрдг рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реА рдЪрд╛рд▓ред рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рд╕реЗ рдПрдХ рд▓рд╛рдЗрдиред рдкреНрд░рддреАрдХ рд╕рдВрд╕рд╛рдзрди рд╕рднрд╛ рдореЗрдВ рд╣реИрдВ:
.loading { background-image: url(/service.ashx?method=LoadIcon%28%22loading.gif%22%29) !important; }
рдЦреИрд░, рдпрд╣ рдЗрддрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рджреЛ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВред
рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдЯреНрд░рд╛рдИ рдХрд░рддреЗ рд╣реИрдВ?"рдореЛрдЯреА" .NET рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЕрдВрддрд░ HttpWebRequest рдФрд░ HttpWebResponse рдореЗрдВ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЗрдЯрд╛рдЯреЛрд╕ рдХреА рдкреВрд░реНрдг рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╣реИред Json рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Silverlight рдХреЗ рд▓рд┐рдП Json.NET рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдмрд╛рдХреА рдбреЗрд╕реНрдХрдЯреЙрдк рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрд░реЛрдз рд╡рд░реНрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдПрдХ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ HttpWebRequest рдФрд░ HttpWebResponse рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИ:
RequestParams requestParams = new RequestParams(); requestParams.Method.Name = "GetImage(fileName)"; requestParams.Method.Params.Add("fileName", "DSCN2099"); Request request = new Request("http://localhost/AppService"); request.Execute(requestParams, Action<RequestCompletedEventArgs> onRequestCompleted);
рдпрд╛рдиреА рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдмрд╕ рд╕рд░реНрд╡рд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!
рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬрд╛рд╡рд╛ рд╣реИредрдореБрдЦреНрдп рд╡рд░реНрдЧ HttpURLConnection рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ getInputStream () рд╡рд┐рдзрд┐ рд╣реИред рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - .NET рд╕реЗ рджреЛ рдЕрдВрддрд░ рдкрд╛рддреЗ рд╣реИрдВ (рдирд╛рдо рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ)ред рд╡рд┐рдЪрд╛рд░ рдПрдХ рд╣реА рд╣реИ - рд╕рд╣рд╛рдпрдХ рд╡рд░реНрдЧ рдЕрдиреБрд░реЛрдзрдкрддреНрд░ рдФрд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред RequestParams рд╡рд░реНрдЧ рдХреЛ рд╡рд┐рдзрд┐ рдФрд░ рдЙрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рдЕрдиреБрд░реЛрдз HttpURLConnection рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЛ рдЕрддрд┐рдХреНрд░рдордг рдХрд░рддрд╛ рд╣реИред Json рдХреНрд░рдорд╛рдВрдХрди рдХреЗ рд▓рд┐рдП, Google рдХреА рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - Gson, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Android рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рд╡рд┐рд░реЛрдзреА рдордВрдЪ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреЛрд╕рди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ, рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ "рдкрдЪрд╛" рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдЬрд╛рд╡рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рд╣реИ рд╡рд╣ рдПрдордПрд╕ рд╕реЗ рддрд╛рд░реАрдЦ рдкреНрд░рд╛рд░реВрдк рд╣реИред рд▓реЗрдХрд┐рди Gson рдПрдХ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдФрд░ рд╕рдорд╕реНрдпрд╛ рдмрд╕ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ:
public class MSDateJsonSerializer implements JsonSerializer<Date> { public JsonElement serialize(Date date, Type typeOfT, JsonSerializationContext context) { return new JsonPrimitive("/Date(" + date.getTime() + ")/"); } } public class MSDateJsonDeserializer implements JsonDeserializer<Date> { public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { String jsonDateToMilliseconds = "\\/(Date\\((.*?)(\\+.*)?\\))\\/"; Pattern pattern = Pattern.compile(jsonDateToMilliseconds); Matcher matcher = pattern.matcher(json.getAsJsonPrimitive().getAsString()); String result = matcher.replaceAll("$2"); return new Date(new Long(result)); } }
.NET рд╕реЗ рд╕реНрдЯреНрд░реАрдо рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рднреА рд╕рдВрдЧрдд рд╣реИрдВ (рд╡реЗ рдЕрдлреНрд░реАрдХрд╛ рдореЗрдВ рднреА рд╕реНрдЯреНрд░реАрдо рд╣реИрдВ):
ImageIcon icon = new ImageIcon(тАЬhttp:
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 4 рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИрдВ, рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд╛рд╡рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдлрд┐рд░ рд╕рднреА 5ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬреЛ рдХрд┐ Http рдФрд░ Json рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред