<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Adarsh's blog</title><link>http://blogs.msdn.com/adarshk/default.aspx</link><description>Network programing and unified communications.</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Blogs/Forum related to UC developer platform and UCMA</title><link>http://blogs.msdn.com/adarshk/archive/2009/04/27/blogs-forum-related-to-uc-developer-platform-and-ucma.aspx</link><pubDate>Tue, 28 Apr 2009 01:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9572259</guid><dc:creator>adarshk</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/9572259.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=9572259</wfw:commentRss><description>&lt;P&gt;As UC platform is gaining momentum among developers, here are some resources about the blogs/forums related to UC platform in general. They also contain lot of information&amp;nbsp;in particular about writing UCMA 2.0 applications.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Unified Communications Development blog : &lt;A href="http://blogs.claritycon.com/blogs/michael_greenlee/default.aspx"&gt;http://blogs.claritycon.com/blogs/michael_greenlee/default.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;OCS R2 Server Side Application Development (SDK)s - UC forum to post questions : &lt;A href="https://ucforums.microsoft.com/forums/361.aspx"&gt;https://ucforums.microsoft.com/forums/361.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A website dedicated to UC developers&amp;nbsp;&lt;A href="http://gotuc.net/default.aspx"&gt;http://gotuc.net/default.aspx&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9572259" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/UC/default.aspx">UC</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/UCMA/default.aspx">UCMA</category></item><item><title>Office Communication Server 2007 R2 launch and UCMA 2.0 SDK </title><link>http://blogs.msdn.com/adarshk/archive/2009/02/02/office-communication-servere-2007-r2-launch-and-ucma-2-0-sdk.aspx</link><pubDate>Tue, 03 Feb 2009 03:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9392183</guid><dc:creator>adarshk</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/9392183.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=9392183</wfw:commentRss><description>&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT color=#000080&gt;I was waiting since long time for the launch event of&amp;nbsp;OCS-2007, finally the launch day is arrived. Tomorrow 9:30 am you can join the virtual launch event.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000080 face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000080 face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;U&gt;&lt;FONT color=#000080&gt;&lt;A href="http://www.microsoft.com/communicationsserver/r2-virtual-launch/event/" target=_blank mce_href="http://www.microsoft.com/communicationsserver/r2-virtual-launch/event/"&gt;http://www.microsoft.com/communicationsserver/r2-virtual-launch/event/&lt;/A&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000080 face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;U&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000080 face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;I am specifically excited to tell about new richer version of UCMA 2.0 SDKs, which we were working since last one year. Now developers are empowered to&amp;nbsp;build&amp;nbsp;number of middle tier scenarios&amp;nbsp;like custom automatic call distribution, interactive voice response, gateway scenarios, enhanced presence based communications&amp;nbsp;etc.&amp;nbsp; We do now have SIP based signaling protocol stack, media stack and speech engine containing speech recognition and speech synthesis.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT color=#000080 face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;In next few days&amp;nbsp;I would be writing&amp;nbsp;about SIP signaling pieces of UCMA sdk, at the high level you can see&amp;nbsp;following features&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- ServerPlatform with TLS connectivity and&amp;nbsp;in-built connection management,&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- Fully baked endpoint API, which supports trusted ApplicationEndpoint and regular UserEndpoint,&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- Better&amp;nbsp;Presence publication and subscribe APIs, which abstract previous&amp;nbsp;SipSubscription class to&amp;nbsp;LocalOwnerPresence and RemotePresence classes,&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- ContactGroupServices class exposes Contact/Group management APIs ,&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- Multiparty, multimodal Conversation model, which enables&amp;nbsp;multi-modal, multi-party conversation,&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- Conversation&amp;nbsp;escalation, where&amp;nbsp;simple 2 party call could&amp;nbsp;be escalated to multiparty conference and add new madality in existing conversation,&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- ConferenceManagementServices class&amp;nbsp;exposes API to schedule, modify, schedule conference,&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- In built support for Audio (AudioVideoCall) and IM (InstantMessagingCall), all SDP negotiation is handled under the cover,&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- In addition to number of How-to samples, a fully working sample for ACD (skill based automatic call distribution)&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;- ClientPlatform to simulate client scenarios for testing purposes&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;I am looking forward to write more details about these and waiting to see exciting scenarios built using UCMA.&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;Following are the download pointer to download UCMA SDK for reference&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;o:p&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;UCMA 2.0 SDK - 32 bit = &lt;SPAN style="COLOR: black"&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=140790"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;http://go.microsoft.com/fwlink/?LinkID=140790&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;UCMA 2.0 SDK - 64 bit = &lt;SPAN style="COLOR: black"&gt;&lt;A href="http://go.microsoft.com/fwlink/?LinkID=139195"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;http://go.microsoft.com/fwlink/?LinkID=139195&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: black"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="COLOR: black"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9392183" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/UC/default.aspx">UC</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/UCMA/default.aspx">UCMA</category></item><item><title>PDC 2008 - Sessions for Unified Communications Platform</title><link>http://blogs.msdn.com/adarshk/archive/2008/10/27/pdc-2008-sessions-for-unified-communications-platform.aspx</link><pubDate>Mon, 27 Oct 2008 20:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9018622</guid><dc:creator>adarshk</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/9018622.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=9018622</wfw:commentRss><description>&lt;P&gt;Since long time I was waiting for this exciting moment, when we will be telling our customers about the&amp;nbsp;new exciting&amp;nbsp;rich developer platform for Unified Communications&amp;nbsp;world. Which will allow new wide range of rich applications with build in communication features like Presence, Instant Messaging and Voice. In upcoming days, I would be writing in more detail about the new scenarios which are&amp;nbsp;being enabled by&amp;nbsp;our developer platform.&amp;nbsp;If you are attending the PDC, following are the interesting PDC sessions you should consider to attend.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Office Communications Server 2007 R2: Enabling Unified Communications&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Learn how UCMA 2.0 and Unified Communication Workflow Activities provide a powerful communications arsenal to build Presence, IM, and voice-enabled services that can be leveraged from any application.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;Microsoft Office Communications Server and Exchange: Platform Futures&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Learn how applications and services can add presence, IM, VOIP, and Video using the Unified Communications Platform. Also, see the roadmap for the future of Microsoft Unified Communications (UC) products and the new UC Platform SDKs. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Exchange Web Services Managed API: Unified Communications Development for Exchange &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;The new Exchange Web Services Managed API provides managed code access to Exchange, whether running on premises or in the cloud. Learn how this new Microsoft .NET API provides full access to Microsoft Exchange mail, calendaring, scheduling, contacts, eventing, synchronization, permissioning, and public folders programmatically using the Exchange Web Services protocol.&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9018622" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/UCMA/default.aspx">UCMA</category></item><item><title>Developer forum for UCMA API</title><link>http://blogs.msdn.com/adarshk/archive/2008/03/28/developer-forum-for-ucma-api.aspx</link><pubDate>Fri, 28 Mar 2008 20:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8342154</guid><dc:creator>adarshk</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/8342154.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=8342154</wfw:commentRss><description>&lt;P&gt;If you are UCMA API user, then you would like the msdn developer forum specific to &lt;SPAN class=forumName id=_ctl0_MainContent__ctl0__ctl0_ForumName&gt;Unified&amp;nbsp;Communications Managed SDK. You can post all your UCMA API related questions on this&amp;nbsp;forum &lt;/SPAN&gt;&lt;A href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1891&amp;amp;SiteID=1" mce_href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1891&amp;amp;SiteID=1"&gt;http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1891&amp;amp;SiteID=1&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8342154" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/UCMA/default.aspx">UCMA</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/SIP/default.aspx">SIP</category></item><item><title>MSDN Webcast: UCMA API</title><link>http://blogs.msdn.com/adarshk/archive/2007/06/25/msdn-webcast-ucma-api.aspx</link><pubDate>Tue, 26 Jun 2007 04:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3533771</guid><dc:creator>adarshk</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/3533771.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=3533771</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana&gt;In this webcast, we present the software development kit (SDK) for the Microsoft Unified Communications Managed API (UCMA) version 1.0. The SDK includes a SIP-based endpoint API that can provide the flexibility and scalability required by advanced developers to build and integrate server applications, such as alert broadcasters, media control units, and instant messaging (IM) bots, into the Microsoft Office Communications Server 2007 infrastructure.&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032343097&amp;amp;CountryCode=US"&gt;http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032343097&amp;amp;CountryCode=US&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;If you just started &amp;nbsp;looking into UCMA API this webcast might be interesting for you. Its on-demand version is available on msdn site.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Trebuchet MS'"&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3533771" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/UCMA/default.aspx">UCMA</category></item><item><title>Unified Communications Managed API 1.0 SDK Public Beta download pointer</title><link>http://blogs.msdn.com/adarshk/archive/2007/06/11/unified-communications-managed-api-1-0-sdk-public-beta-download-pointer.aspx</link><pubDate>Tue, 12 Jun 2007 02:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3237778</guid><dc:creator>adarshk</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/3237778.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=3237778</wfw:commentRss><description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This might be a good news to all of you who were searching for the download pointer for UCMA API and difficulty in finding it. Now you can download it without logging into msdn account.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=1aaf0e4f-804c-4888-9c7c-81d7f7a6ddef&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=1aaf0e4f-804c-4888-9c7c-81d7f7a6ddef&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=1aaf0e4f-804c-4888-9c7c-81d7f7a6ddef&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I will start posting samples about API usage scenarios now.&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Trebuchet MS'"&gt;&lt;EM&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Trebuchet MS'"&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3237778" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/UCMA/default.aspx">UCMA</category></item><item><title>UC Managed API (UCMA) v1.0 beta available</title><link>http://blogs.msdn.com/adarshk/archive/2007/04/02/uc-managed-api-ucma-v1-0-beta-available.aspx</link><pubDate>Mon, 02 Apr 2007 21:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2013810</guid><dc:creator>adarshk</dc:creator><slash:comments>16</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/2013810.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=2013810</wfw:commentRss><description>&lt;P&gt;I was eagerly waiting since a long time to write about this exciting news, With the public annonucement of OCS 2007 beta, now we have a managed API known as UCMA is publicly available. Before coming out with official name UCMA, we were&amp;nbsp;internally calling it as Ucp.net sdk. This SDK opens up the Sip signaling stack for managed application. As soon as it publishes on MSDN (expecting within a week or so), I will provide the download link and I will post more real scenarios and samples&amp;nbsp;here.&lt;/P&gt;
&lt;P&gt;Its a sip stack endpoint API, below&amp;nbsp;is the list of some interesting&amp;nbsp;features you will see in UCMA 1.0&lt;/P&gt;
&lt;P&gt;a) Support for Sip Endpoint REGISTER&amp;nbsp;to sip servers and SipPeerToPeerEndpoint,&lt;/P&gt;
&lt;P&gt;b) Full SipSignalingSession to establish Sip dialog, it includes&amp;nbsp;support for REDIRECT and REFER,&lt;/P&gt;
&lt;P&gt;c) Utility classes for Sip header, Sip uri and SDP parsing,&lt;/P&gt;
&lt;P&gt;d) Support for SIP SERVICE request, which is commonly used by OCS for publish operations,&lt;/P&gt;
&lt;P&gt;e) Support for basic SIP Subscription dialog&amp;nbsp; and&amp;nbsp;Notification&amp;nbsp;with automatic refresh,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;f) Great scalability for middle tier application with MTLS&amp;nbsp;server connection management,&lt;/P&gt;
&lt;P&gt;In the coming weeks I will be posting simple code snippets and explain the usage scenarios for each of this feature.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Trebuchet MS'"&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2013810" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/.Net+Frameworks+2.0/default.aspx">.Net Frameworks 2.0</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/UCMA/default.aspx">UCMA</category></item><item><title>"Test driven development" - some practical experiences in API development</title><link>http://blogs.msdn.com/adarshk/archive/2007/03/05/test-driven-development-methodology-some-practical-experiences-in-api-development.aspx</link><pubDate>Tue, 06 Mar 2007 05:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1814176</guid><dc:creator>adarshk</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/1814176.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=1814176</wfw:commentRss><description>&lt;P&gt;Since last few years I was reading&amp;nbsp;a lot of discussion about "extreme programing" &amp;nbsp;and "test driven development". I decided to explore and apply some of those principles in my own development and within my team. Here are some of the interesting things I would like to share. These experiences are&amp;nbsp;based on a project for developing a public SDK.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Approach:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;First thing I&amp;nbsp;really did &lt;STRONG&gt;not&lt;/STRONG&gt; try the hardcore methodology of&amp;nbsp;test driven development. I took&amp;nbsp;a little relaxed approach with relaxed restrictions.&lt;/P&gt;
&lt;P&gt;My approach&amp;nbsp;contains&amp;nbsp;following category of pro-active and reactive actions.&lt;/P&gt;
&lt;P&gt;a) Pro-active action was applied on&amp;nbsp;all new functionality, here&amp;nbsp;I did applied the rule that at minimum main line happy&amp;nbsp;scenario code path must&amp;nbsp;be included as&amp;nbsp;an automated unit test and most common failure code path should&amp;nbsp;be covered,&lt;/P&gt;
&lt;P&gt;b) Second action is&amp;nbsp;reactive approach, here when our test team reported any issue. Fix must&amp;nbsp;include unit test and should also try to cover other related scenario.&lt;/P&gt;
&lt;P&gt;In some sense this looks very relaxed compare to hardcore "test driven development" approach, but I found it&amp;nbsp;is&amp;nbsp;easy for adoption within the team and still contains lots of benefit&amp;nbsp;in terms of time investments and returns.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Results from this approach:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Overall I was very encouraged with this approaqch and&amp;nbsp;here are some of the fruits I found in applying&amp;nbsp;this approach&amp;nbsp;&lt;/P&gt;
&lt;P&gt;a) Overall quality of regular build is improved with almost no regression in mainline scenarios.&lt;/P&gt;
&lt;P&gt;b) Unit tests included with bug fixes helped to cover more related scenarios in addition to identified bugs.&lt;/P&gt;
&lt;P&gt;c) Test team is more happy; unit test code snippets works as live spec document for them and help them to start testing right away.&lt;/P&gt;
&lt;P&gt;d) Very few complaints from test team about missing or outdated specs.&lt;/P&gt;
&lt;P&gt;e) Test team is very active&amp;nbsp;in&amp;nbsp;finding corner cases, fault injection, stress, perf scenarios and helped to provide better coverage and repro, which definitely improve the overall quality in eraly product cycle.&lt;/P&gt;
&lt;P&gt;e) Writing the unit test for happy line scenario help us to exercise our scenarios as a real&amp;nbsp;API user customer. This&amp;nbsp;helps us&amp;nbsp;to find API naming and usabilty issues even before&amp;nbsp;including&amp;nbsp;the public API in product.&lt;/P&gt;
&lt;P&gt;f) We did keep test code and product code in separate assemblies, this helped to improve overall debuggability of the code.&lt;/P&gt;
&lt;P&gt;Overall I found the approach was very practical and beneficial for us, I will post more details and some quantitative data later.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Trebuchet MS'"&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1814176" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/Software+Testing/default.aspx">Software Testing</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/General/default.aspx">General</category></item><item><title>Communicator Web Access AJAX Service SDK Released!!</title><link>http://blogs.msdn.com/adarshk/archive/2006/04/06/570424.aspx</link><pubDate>Fri, 07 Apr 2006 03:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:570424</guid><dc:creator>adarshk</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/570424.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=570424</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;FONT color=#000080 size=3&gt;If you are looking for adding cool instant messaging&amp;nbsp;and presence functionality to your web applications or simple C# applications, try out Communicator Web Access AJAX Service SDK, it already includes the sample code to get started. I will also keep posting quick code snippets here.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;FONT color=#000080 size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;FONT color=#000080&gt;Quick Info from the SDK:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT face=Arial size=2&gt;Communicator Web Access AJAX Service is the application programming interface for Microsoft Office Communicator Web Access. Application developers can use it to create Communicator-compatible clients that allow users to manage and share presence information, to manage contacts and groups, to send and receive instant messages, and to search for users within an enterprise. Such clients can be a browser-based Web application (e.g., an ASP or ASP.NET application) or a standalone network application (e.g., a .NET executable). The client applications can be written in a wide range of programming languages including JavaScript, C#, Perl, C/C++, and the Visual Basic development system. Because the Communicator Web Access AJAX Service is based on the flexible &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;&lt;st1:City w:st="on"&gt;AJAX&lt;/st1:City&gt;&lt;/st1:place&gt; programming model, the client applications are not limited to running on Microsoft Windows operating systems and can readily be deployed to desktop, laptop, or other devices.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT size=2&gt;Download Link:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=A839967B-680F-41E6-99B4-F020319BBD88&amp;amp;displaylang=en"&gt;&lt;FONT size=2&gt;http://www.microsoft.com/downloads/details.aspx?familyid=A839967B-680F-41E6-99B4-F020319BBD88&amp;amp;displaylang=en&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Trebuchet MS'"&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=570424" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/Net+class+library/default.aspx">Net class library</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/UC/default.aspx">UC</category></item><item><title>Office Communicator Web Access is RTM</title><link>http://blogs.msdn.com/adarshk/archive/2005/12/13/503325.aspx</link><pubDate>Wed, 14 Dec 2005 00:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:503325</guid><dc:creator>adarshk</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/503325.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=503325</wfw:commentRss><description>&lt;P&gt;Finally the official RTM day for Communicator Web Access (CWA) is arrived, its pretty cool to watch the real time presence and IM to your contacts from web based application. For me it was very exciting to&amp;nbsp;deliver my first RTC product in hands of the customer.&lt;/P&gt;
&lt;P&gt;Its pretty cool application demonstrating the power of AJAX and it is 100% managed application build on .net frameworks 2.0. Ofcourse it also uses the power of my favourite System.Net classes of .net frameworks. UI is pretty much&amp;nbsp;same as familiar office communicator 2005. It is&amp;nbsp;useful for anyone working remotely or non windows machine.&amp;nbsp; For Microsoft people it is already deployed&amp;nbsp;(check =&amp;gt; https im dot microsoft dot com), I found it very useful for communication, when I am sitting at home and not connected&amp;nbsp;to&amp;nbsp;my office machine.&lt;/P&gt;
&lt;P&gt;To get more information and FAQ you can read &lt;A href="http://www.microsoft.com/office/livecomm/communicator/webaccess/prodinfo/overview.mspx"&gt;Microsoft Office Communicator Web Access Overview&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Tahoma; mso-fareast-font-family: SimSun; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;FONT color=#000000&gt;If you are looking for download check the Microsoft download center - &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=A7499AC3-09A6-4491-BDD1-1E41F4719E90&amp;amp;displaylang=en"&gt;&lt;SPAN style="COLOR: blue"&gt;Communicator Web Access download&lt;/SPAN&gt;&lt;/A&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;One comment I can not resist to mention about UI, it is so much similar to&amp;nbsp;office communicator&amp;nbsp;2005 :) that one of my friend even asked&amp;nbsp;"&lt;EM&gt;&lt;FONT face=Arial size=2&gt;How&amp;nbsp;did it launch the office communicator on my machine and would it work on a machine with no office communicator installed.&lt;/FONT&gt;&lt;/EM&gt;" Only later&amp;nbsp;he realize that it is browser window not the office communicator application. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Trebuchet MS'"&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;A href="www.microsoft.com/office/livecomm/communicator/webaccess/prodinfo/overview.mspx"&gt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=503325" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/UC/default.aspx">UC</category></item><item><title>You need to be careful about using event handler for NetworkChange</title><link>http://blogs.msdn.com/adarshk/archive/2005/11/29/498173.aspx</link><pubDate>Wed, 30 Nov 2005 05:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:498173</guid><dc:creator>adarshk</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/498173.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=498173</wfw:commentRss><description>&lt;P&gt;&lt;FONT color=#000000&gt;Actually the issue I am discussing here is in general true for any event handler.&amp;nbsp;.net event handler are&amp;nbsp;strong reference. In case of NetworkChange it become more important because both event handler on NetworkChange object are static handlers, so there life time is the lifetime of the process.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;For example&amp;nbsp;you may be using code like below for&amp;nbsp;registering an instace method of your&amp;nbsp;object as handler&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080&gt;NetworkAvailabilityChangedEventHandler&amp;nbsp; myHandler = new NetworkAvailabilityChangedEventHandler (myNetworkAvailabilityChangeHandler);&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#808080&gt;NetworkChange.NetworkAvailabilityChanged += myHandler;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Then you should make sure&amp;nbsp;to unregister&amp;nbsp;event handler once you are done with this object, otherwise your object is not garbage and you will see a memory leak effect on your application&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080&gt;NetworkChange.NetworkAvailabilityChanged -= myHandler&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Please note this cleanup code can not be put in finalizer (becuase object is not yet garbage), you need to explicitly call it. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Another option is to go with some sort of weak delegate.&amp;nbsp;&lt;/FONT&gt;&lt;FONT color=#000000&gt;.net frameworks still do not have any concept of Weak delegates, but there are some cool solutions developed for simulating&amp;nbsp;weakreference semantics, which will be very useful in this situation. These solution&amp;nbsp;mainly consider using a proxy object standing between your object and final object where you want to register events. Check the Greg's blog &lt;a href="http://blogs.msdn.com/greg_schechter/archive/2004/05/27/143605.aspx"&gt;Simulating “Weak Delegates” in the CLR &lt;/A&gt;for nice explanation and pictorial representation..&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;There are also some other slight&amp;nbsp;improvement versions of same solution&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.interact-sw.co.uk/iangblog/2004/06/06/weakeventhandler"&gt;Simulating Weak Delegates for EventHandler-like Delegates &lt;/A&gt;(Ian Grifiths)&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;&lt;A href="http://www.seedindustries.com/blog/x/2004_06_01_archive.html#108656795427367272"&gt;Weak Events &lt;/A&gt;(Xavier Musy)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=2&gt;&lt;SPAN style="COLOR: #333333; FONT-FAMILY: 'Trebuchet MS'"&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=498173" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/Net+class+library/default.aspx">Net class library</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/.Net+Frameworks+2.0/default.aspx">.Net Frameworks 2.0</category></item><item><title>Use object pooling of byte arrays to prevent heap fragmentation in socket applications</title><link>http://blogs.msdn.com/adarshk/archive/2005/08/20/454022.aspx</link><pubDate>Sat, 20 Aug 2005 15:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:454022</guid><dc:creator>adarshk</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/454022.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=454022</wfw:commentRss><description>&lt;P&gt;When&amp;nbsp;you are worrking on&amp;nbsp;managed socket application and your application is very extensively&amp;nbsp;doing send/recieve on the socket, then&amp;nbsp;probably you need to care about understanding the heap management. Socket.Recieve or Socket.Send finally need to call the underlying native winsock API call to recieve the data on user specified buffer. Same is true for NetworkStream.Read and NetworkStream.Write calls, because these methods also finally got translated socket send and recieve.&lt;/P&gt;
&lt;P&gt;To make the native API call buffer need to pinned for I/O, these pinned buffer can not be moved when garbage collector is doing the work of cleaning up. If your application is using newly allocated buffer in slow network environment and application is doing multiple I/O call frequently then it is possible that you will&amp;nbsp;hit the problem of heap fragmentation. If fragmentation is small, you probably do not need to worry about it, but if heap&amp;nbsp;fragmentation is reaching more than 10% and you are seeing larger time spend on GC. You need to look into&amp;nbsp;some better techniques to elliminate the unnecessary pressure on GC. One possible solution is create a pool of buffer in the startup and use object pooiling to reuse them as needed. &lt;/P&gt;
&lt;P&gt;Check the maoni's blog entry&amp;nbsp;&lt;a href="http://blogs.msdn.com/maoni/archive/2004/12/19/327149.aspx"&gt;Using GC Efficiently – Part 3&lt;/A&gt; to understand more about pinning and effective usage of GC and other good tips.&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;EM&gt;&lt;FONT color=#808080 size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=454022" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/Net+class+library/default.aspx">Net class library</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/.Net+Frameworks+2.0/default.aspx">.Net Frameworks 2.0</category></item><item><title>Network programming to real time collaboration</title><link>http://blogs.msdn.com/adarshk/archive/2005/07/08/436839.aspx</link><pubDate>Fri, 08 Jul 2005 17:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:436839</guid><dc:creator>adarshk</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/436839.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=436839</wfw:commentRss><description>&lt;P&gt;Its long time since I had posted on my blog. I am coming back and will start posting regularly.&amp;nbsp;One of the reason was I&amp;nbsp;moved to the new&amp;nbsp;feature area known as "Real Time Collaboration". You might have seen the release of Live communication server and office communicator release recently. Very soon our team would be releasing the web based version of communicator. All these are very exciting, cool part of web version is it is completely managed code and in the bottom of networking stack it uses the System.Net.&lt;/P&gt;
&lt;P&gt;I will continued to post on Network Programming and would add topics on&amp;nbsp;Real time collaboration and SIP in feature areas.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=436839" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/General/default.aspx">General</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/UC/default.aspx">UC</category></item><item><title>WebException message vs. Response.StatusDescription on FtpWebRequest</title><link>http://blogs.msdn.com/adarshk/archive/2005/05/04/414524.aspx</link><pubDate>Wed, 04 May 2005 09:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:414524</guid><dc:creator>adarshk</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/414524.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=414524</wfw:commentRss><description>&lt;FONT size=3&gt;
&lt;P&gt;Recently one of the reader asked&amp;nbsp;an interesting question, he was using FtpWebRequest&amp;nbsp;with&amp;nbsp;MakeDirectory method, if directory already exist then application received the WebException with message.&lt;/FONT&gt;&lt;FONT size=2&gt;"The remote server returned an error: (550) File unavailable (e.g., file not found, no access).".&lt;/FONT&gt;&lt;FONT size=3&gt; This exception message appears to be very generic and not helping the user to figure out what causes this request to fail. The reason is exception messages are generally set by framework implementation, because they also need to be localized on different language versions.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=3&gt;
&lt;P&gt;In such case if FtpWebRequest user want to diagnose and figure out why request actually failed, he could access the actual response message from server using &lt;/FONT&gt;&lt;FONT size=2&gt;((FtpWebResponse)e.Response).StatusDescription &lt;/FONT&gt;&lt;FONT size=3&gt;property. Your actual code would look like as below&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;try&lt;/FONT&gt;&lt;BR&gt;{&lt;/FONT&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;.&amp;nbsp; .&amp;nbsp; . . . . .&amp;nbsp; .&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT size=2&gt;WebResponse response = request.GetResponse();&lt;/FONT&gt;&lt;BR&gt;&lt;FONT size=2&gt;&amp;nbsp;. . . . . . . . . .&lt;/FONT&gt;&lt;BR&gt;&lt;FONT size=2&gt;}&lt;/FONT&gt;&lt;BR&gt;&lt;FONT size=2&gt;catch(WebException e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String status = ((FtpWebResponse)e.Response).StatusDescription;&lt;BR&gt;}&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=2&gt;&lt;SPAN&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=414524" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/Net+class+library/default.aspx">Net class library</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/.Net+Frameworks+2.0/default.aspx">.Net Frameworks 2.0</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/FtpWebRequest/default.aspx">FtpWebRequest</category></item><item><title>Using FtpWebRequest to do FTP over SSL</title><link>http://blogs.msdn.com/adarshk/archive/2005/04/22/410925.aspx</link><pubDate>Fri, 22 Apr 2005 23:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:410925</guid><dc:creator>adarshk</dc:creator><slash:comments>31</slash:comments><comments>http://blogs.msdn.com/adarshk/comments/410925.aspx</comments><wfw:commentRss>http://blogs.msdn.com/adarshk/commentrss.aspx?PostID=410925</wfw:commentRss><description>&lt;P&gt;Last few weeks we were busy to get Whidbey Beta-2 bits ready for release.&lt;/P&gt;
&lt;P&gt;If you are looking for some API where your&amp;nbsp;application could talk to a FTP server, which supports SSL. FtpWebRequest under System.Net namespace is your solution. Here I will just point to SSL specific features of the class&lt;/P&gt;
&lt;P&gt;Enabling FtpWebrequest to use Ssl is pretty simple, you just need to set EnableSsl flag before calling GetResponse() or GetRequestStream() on the FtpWebRequest object.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=2&gt;FtpWebRequest request = WebRequest.Create(&lt;/FONT&gt;&lt;A href="ftp://myftpserver/dir/filename"&gt;&lt;FONT color=#808080 size=2&gt;ftp://myftpserver/dir/filename&lt;/FONT&gt;&lt;/A&gt;&lt;FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#808080&gt;);&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#808080&gt;request.Method = WebRequestMethods.Ftp.DownloadFile;&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#808080&gt;request.EnableSsl = true; // Here you enabled request to use ssl instead of clear text&lt;/FONT&gt;&lt;BR&gt;&lt;FONT color=#808080&gt;WebResponse response = request.GetResponse();&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Some people asked me why FtpWebRequest support "ftps:" protocol&amp;nbsp;based uri similar to "https:", the reason is there is no standard "ftps" scheme specified (yet) and ftp-over-ssl mechanism&amp;nbsp;actually does not demand dedicated port for ssl, you could&amp;nbsp;do it&amp;nbsp;on the same server port on which you are doing regular clear text ftp.&amp;nbsp;It depends on server configuration choice to force the SSL or allow both.&lt;/P&gt;
&lt;P&gt;Once you start doing Ftp over SSL there are two important things you will need to know&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Validating Server Certificate&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;If you were old WebRequest user, you might already know about using ServicePointManager.CertificatePolicy for https server certificate validation. In whidbey you will notice the compiler warning saying ServicePointManager.CertificatePolicy is obsolete and replaced with ServicePointManager.ServerCertificateValidationCallback which is delegate of type RemoteCertificateValidationDelegate. New delegate provide better programming model with all certificate errors reported in a single callback and you will also get instance of X509Chain object, which allow you to make decision on certificate chain.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT size=2&gt;ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(myCertificateValidation);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080&gt;&lt;FONT&gt;&lt;FONT color=#000000 size=2&gt;Actual method will look as below&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT&gt;&amp;nbsp;&amp;nbsp;&lt;FONT size=2&gt;public bool myCertificateValidation(Object sender, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;X509Certificate cert, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;X509Chain chain, &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SslPolicyErrors Errors)&lt;BR&gt;{ return&amp;nbsp;(certificate.GetName() == "my_trusted_name");&amp;nbsp;}; //Just an example, not real world scenaio&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;:) Another&amp;nbsp;additional advantage you can take with delegate is from anonymous method support of C# 2.0, especially if you have very simple 1-2 line certificateplicy to implement, see follwing example.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080&gt;&lt;FONT size=2&gt;ServicePointManager.ServerCertificateValidationCallback = delegate(Object obj,&amp;nbsp;X509Certificate certificate,&amp;nbsp;X509Chain chain,&amp;nbsp;SslPolicyErrors errors)&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ return&amp;nbsp;(certificate.GetName() == "my_trusted_name");&amp;nbsp;}; //Just an example, not real world scenaio&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;Using Client Certificate&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Using Client certificate based authentication when connecting to&amp;nbsp;FTP-SSL is no different then existing HttpWebRequest. You just need to assign appropriate X509Certificate instance to the request object before making GetResponse() or GetRequestStream() call.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#808080 size=2&gt;&lt;SPAN&gt;&lt;EM&gt;&lt;FONT size=2&gt;This posting is provided "AS IS" with no warranties, and confers no rights&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=410925" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/adarshk/archive/tags/Net+class+library/default.aspx">Net class library</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/SSL/default.aspx">SSL</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/.Net+Frameworks+2.0/default.aspx">.Net Frameworks 2.0</category><category domain="http://blogs.msdn.com/adarshk/archive/tags/FtpWebRequest/default.aspx">FtpWebRequest</category></item></channel></rss>