$ 10 рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рджреЛ-рджрд┐рд╡рд╕реАрдп рдСрдирд▓рд╛рдЗрди рд╕рдореНрдореЗрд▓рди рдХреИрд╕реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ?

DotNetConf Logo

рд╣рдордиреЗ рдЕрднреА DotNetConf рд╕рдореНрдореЗрд▓рди, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдПрдХ рд╕рдореБрджрд╛рдп рдХрд╛ рд╣рдорд╛рд░рд╛ рдСрдирд▓рд╛рдЗрди рд╕рдореНрдореЗрд▓рди рдкреВрд░рд╛ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рд╕рднреА рд╕рдореНрдореЗрд▓рди рд░рд┐рдкреЛрд░реНрдЯ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд▓рд┐рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рд╕рдореНрдореЗрд▓рди рдордВрдЪ


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

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

рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рдг рдФрд░ рд╕реНрдХреНрд░реАрди рд╕рд╛рдЭрд╛рдХрд░рдг



Google Hangouts On Air

рдбреЗрдЯрд╛рдмреЗрд╕


рдЖрд╢реНрдЪрд░реНрдп! рд╣рдордиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдореЗрдВ рдЙрдирдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рдереАред рд╣рдордиреЗ ASP.NET рд╡реЗрдм рдкреЗрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛ-рдкреГрд╖реНрда рдХреА рд╕рд╛рдЗрдЯ рд▓реЙрдиреНрдЪ рдХреА, рдЬреЛ рд╡реЗрдмрдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд╛рдЗрдЯ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдЪрд▓рддреА рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ (рд╕реНрдкреАрдХрд░, рд╢реЗрдбреНрдпреВрд▓, рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд▓реЛрдХреЗрд╢рди рдЖрджрд┐) рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рдмрджрд▓рддреЗ рд╣реИрдВ, рд╣рдо рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧрд░реАрдмреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рд╣рдореЗрдВ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЙрд╕рдХрд╛ рднреБрдЧрддрд╛рди рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

рд╕рдореНрдореЗрд▓рди рдХреЗ рджреМрд░рд╛рди рд╣рдордиреЗ "рдбреЗрдЯрд╛рдмреЗрд╕" рдХреЛ рдХреИрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛? рдЕрдкрдиреА рд░рд╛рдп рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдЗрдПред рдбреЗрдЯрд╛ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдореЗрдВ рд╣реИред (рд╣рд╛рдВред рд╡реЗ рд╕реНрдХрд╛рдИрдбреНрд░рд╛рдЗрд╡ рдпрд╛ рдХрд┐рд╕реА рднреА URL рдкрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ)ред

рд╣рдорд╛рд░рд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рд╕реЗ рд▓рд┐рдВрдХ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

<appSettings> <add key="url.playerUrl" value="https://dl.dropboxusercontent.com/s/fancypantsguid/VideoStreams.xml" /> <add key="url.scheduleUrl" value="https://dl.dropboxusercontent.com/s/fancypantsguid/Schedule.xml" /> <add key="url.speakerUrl" value="https://dl.dropboxusercontent.com/s/fancypantsguid/Speakers.xml" /> <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://[your namespace].servicebus.windows.net;SharedSecretIssuer=owner;SharedSecretValue=[your secret]" /> </appSettings> 

рдХреЛрдб рд╕рд░рд▓ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢реЗрдбреНрдпреВрд▓ рд▓реЗрдЖрдЙрдЯ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╣рд╛рдВ, рдпрд╣ рдПрдХ <рддрд╛рд▓рд┐рдХрд╛> рд╣реИред рдпрд╣ рд╢реЗрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рдиреНрдпрд╛!

 @foreach(var session in schedule) { var confTime = session.Time; var pstZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time"); var attendeeTime = TimeZoneInfo.ConvertTimeToUtc(confTime, pstZone); <tr> <td> <p>@confTime.ToShortTimeString() (PDT)</p> <p>@attendeeTime.ToShortTimeString() (GMT)</p> </td> <td> <div class="speaker-info"> <h4>@session.Title</h4> <span class="company-name"><a class="speaker-website" href="/speakers.cshtml?speaker=@session.Twitter">@session.Name</a></span> <p>@session.Abstract</p> </div> </td> </tr> } 

рд╕реНрдХреЗрд▓рд┐рдВрдЧ


Scaling DotNetConf

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

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

Scaling DotNetConf to Large

рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕рд╛рдЗрдЯ рдЕрдкрдбреЗрдЯ


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

рд╣рдордиреЗ рд╕рдореНрдореЗрд▓рди рд╕реЗ рдкрд╣рд▓реЗ рд░рд╛рдд рд▓рдЧрднрдЧ 10 рдмрдЬреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд╛рдИред рдЬреЗрд╡рд┐рдпрд░ рдФрд░ рдореИрдВрдиреЗ рд╕реНрдХрд╛рдЗрдк рдкрд░ рдЪреИрдЯ рдХреА рдФрд░ рдЕрдЧрд▓реА рд╣реИрдХ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕рднреА рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХреНрд▓рд╛рдЗрдВрдЯ (рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп HTML / рдЬреЗрдПрд╕ рд╕рд░реНрд╡рд░ / рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред ) рдПрдХ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрддреЗ рд╕рдордп рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛? рдлрд┐рд░ рд╣рдо рдкреНрд░рд╢рд╛рд╕рди рдХрдВрд╕реЛрд▓ рд╕реЗ рдкреБрд╢ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЛ рд╕реАрдзреЗ рд╡реАрдбрд┐рдпреЛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреАред рдПрдХ рджрд░реНрд╢рдХ (рдЖрдк) рд╣реИ, рдПрдХ рдПрдбрдорд┐рди (I) рдФрд░ рдПрдХ рд╕рд░реНрд╡рд░ (Node) рд╣реИред рджрд░реНрд╢рдХ рд╕рд┐рдЧреНрдирд▓ рдХреЛрдб рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

 $(function () { var youtube = $.connection.youTubeHub; $.connection.hub.logging = true; youtube.client.updateYouTube = function (message, password) { $("#youtube").attr("src", "http://www.youtube.com/embed/" + message + "?autoplay=1"); }; $.connection.hub.start(); $.connection.hub.disconnected(function () { setTimeout(function () { $.connection.hub.start(); }, 5000); }); }); 

рджрд░реНрд╢рдХ YouTube рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рд┐рдЧреНрдирд▓рдЖрд░ рд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рд╕реБрдирддрд╛ рд╣реИ рдпрд╛ рдмрд▓реНрдХрд┐, рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИред рдЬрдм рд╕рдВрджреЗрд╢ рдЖрддрд╛ рд╣реИ, рд╣рдо iFrame рдХреА рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдиреАрдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХрдВрд╕реЛрд▓ рдХрд╛ рдорд╛рд░реНрдХрдЕрдк рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо рджрд░реНрд╢рдХреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдирдпрд╛ YouTube рд╡реАрдбрд┐рдпреЛ рдХреЛрдб рднреЗрдЬрддреЗ рд╣реИрдВ (рдореИрдВ ASP.NET рд╡реЗрдм рдкреЗрдЬ рдФрд░ рд╡реЗрдмрдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рд░реЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд┐рд╢реНрд░рд┐рдд HTML / JS рдХреЛрдб рд╣реИ):

 <div id="container"> <input type="text" id="videoId" name="videoId"> <input type="text" id="password" name="passsword" placeholder="password"> <button id="playerUpdate" name="playerUpdate">Update Player</button> </div> @section SignalR { <script> $(function () { var youtube = $.connection.youTubeHub; $.connection.hub.logging = true; $.connection.hub.start().done(function () { $('#playerUpdate').click(function () { youtube.server.update($('#videoId').val(), $('#password').val()); }); }); $.connection.hub.disconnected(function() { setTimeout(function() { $.connection.hub.start(); }, 5000); }); }); </script> } 

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

 public class YouTubeHub : Microsoft.AspNet.SignalR.Hub { public void update(string message, string password) { if (password.ToLowerInvariant() == "itisasecret") { Clients.All.updateYouTube(message); ConfContext.SetPlayerUrl(message); } } } 

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

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

image

рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЦреЗрдд рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реЗрдВ рдереАрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕рдорд╛рдзрд╛рди рдХреЛ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯреЗрдб рд╡реАрдбрд┐рдпреЛ рд▓рд┐рдВрдХ рдХреЛ рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдПрдХ рдФрд░ 10 рдорд┐рдирдЯ рд▓рдЧ рдЧрдПред

рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рд╕рд░реНрд╡рд┐рд╕ рдмрд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рдЧреНрдирд▓рдЖрд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ


рд╣рдордиреЗ рд╕рд┐рдЧреНрдирд▓рдЖрд░ 1.1 рдмреАрдЯрд╛ рдкреНрд▓рд╕ рдПрдЬрд╝реНрдпреЛрд░ рд╕рд░реНрд╡рд┐рд╕ рдмрд╕ рдЯреЙрдкрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреИрдорд╛рдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рдЦрд╛рддреЗ рдореЗрдВ рд╕рд░реНрд╡рд┐рд╕ рдмрд╕ рдХреЛ рдЬреЛрдбрд╝рд╛ред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд▓реЙрдиреНрдЪ рдХреЛрдб рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, UseServiceBus () рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ:

 string poo = "Endpoint=sb://dotnetconf-live-bus.servicebus.windows.net/;SharedSecretIssuer=owner;SharedSecretValue=g57totalsecrets="; GlobalHost.DependencyResolver.UseServiceBus(poo,"dotnetconf"); RouteTable.Routes.MapHubs(); 

рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдЕрдм рджреЛ рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдмреАрдЪ рдкреБрд╢ рд╕реВрдЪрдирд╛рдПрдБ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд / рд╕рджрд╕реНрдпрддрд╛ рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд┐рд╕ рдмрд╕ рд╡рд┐рд╖рдп рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╡реЗрдм 1 рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдХ рдкреБрд╢ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд╕рдВрджреЗрд╢ рд╡реЗрдм 1 рд╕рд░реНрд╡рд░ рдФрд░ рд╡реЗрдм 2 (рдпрд╛ рд╡реЗрдм рдПрди) рджреЛрдиреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

image

рдЬреИрд╕реЗ рд╣реА рд╣рдо рд╕рдореНрдореЗрд▓рди рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рд╣рдо рдЗрд╕ рд╕реЗрд╡рд╛ рдмрд╕ рд╡рд┐рд╖рдп рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдФрд░ рдЕрдкрд░рд╛рдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд╛рддрд╛ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред ;) рдиреАрдЪреЗ Windows Azure рдореЗрдВ рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХреАрдорддреЗрдВ рд╣реИрдВ:

432,000 рд╕реЗрд╡рд╛ рдмрд╕ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдХреАрдордд 432,000 / 10,000 * $ 0.01 = 44 * $ 0.01 = $ 0.44 рдкреНрд░рддрд┐ рджрд┐рди рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдХрд┐рддрдиреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд╛рдВрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рд╣рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!


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


All Articles