<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://port25.technet.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>Port 25: The Open Source Community at Microsoft : .NET Development, Windows Server</title><link>http://port25.technet.com/archive/tags/.NET+Development/Windows+Server/default.aspx</link><description>Tags: .NET Development, Windows Server</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 40109.1145)</generator><item><title>Windows Cache Extension 1.0 for PHP Released</title><link>http://port25.technet.com/archive/2009/11/19/windows-cache-extension-1-0-for-php-released.aspx</link><pubDate>Fri, 20 Nov 2009 00:40:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:28165</guid><dc:creator>Peter Galli</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=28165</wfw:commentRss><comments>http://port25.technet.com/archive/2009/11/19/windows-cache-extension-1-0-for-php-released.aspx#comments</comments><description>&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;The Microsoft Internet Information Services (IIS) team&amp;nbsp;announced today the release of &lt;A href="http://www.iis.net/expand/WinCacheForPhp" target=_blank mce_href="http://www.iis.net/expand/WinCacheForPhp"&gt;Windows Cache Extension 1.0 for PHP&lt;/A&gt;, a PHP accelerator that is used to increase the speed of PHP applications running on Windows and Windows Server. &lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;This is a production-ready release that is provided under an open source &lt;A href="http://www.opensource.org/licenses/bsd-license.php" target=_blank mce_href="http://www.opensource.org/licenses/bsd-license.php"&gt;BSD license&lt;/A&gt;, with the source code hosted and maintained &lt;A href="http://pecl.php.net/packages/wincache/" target=_blank mce_href="http://pecl.php.net/packages/wincache/"&gt;here&lt;/A&gt;, and the documentation hosted on &lt;A href="http://www.php.net/wincache/" target=_blank mce_href="http://www.php.net/wincache/"&gt;php.net&lt;/A&gt;.&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;&lt;o:p&gt;
&lt;P&gt;You can find more details on this&amp;nbsp;release&amp;nbsp;on IIS team Product Unit Manager &lt;A href="http://blogs.iis.net/mailant/archive/2009/11/19/windows-cache-extension-for-php-aka-wincache-1-0-general-availability-today.aspx" target=_blank mce_href="http://blogs.iis.net/mailant/archive/2009/11/19/windows-cache-extension-for-php-aka-wincache-1-0-general-availability-today.aspx"&gt;Mai-lan Tomsen Bukovec's blog&lt;/A&gt;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;WinCache extension is a significant open source contribution from Microsoft to the PHP on Windows community. The extension code is hosted and maintained on &lt;A href="http://pecl.php.net/" target=_blank mce_href="http://pecl.php.net/"&gt;PHP Extensions Community Library&lt;/A&gt; (PECL) and is available for everyone to view, branch, compile, and contribute to. &lt;/P&gt;
&lt;P&gt;The IIS team also invites&amp;nbsp;the PHP development community to join it in development of this caching extension for &lt;A href="http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/05/11/php-5-3-rc2-highly-optimized-for-windows.aspx"&gt;PHP on Windows&lt;/A&gt;. There have already&amp;nbsp;been some contributions from the community whileWinCache was in the pre-release mode, and IIS team is looking forward to having others join this new PHP on Windows caching project.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Also, in time for this release, an independent PHP company - Ibuildings - has conducted a &lt;A href="http://techportal.ibuildings.com/2009/11/19/php-on-windows-the-wincache-1-0-benchmark" target=_blank mce_href="http://techportal.ibuildings.com/2009/11/19/php-on-windows-the-wincache-1-0-benchmark"&gt;benchmark test&lt;/A&gt; with the WinCache RTW bits and published the results. &lt;/P&gt;
&lt;P&gt;The release of this production-ready PHP accelerator for Windows is an important step towards making the Windows operating system an even better platform for hosting PHP applications. &lt;/P&gt;
&lt;P&gt;WinCache extension significantly improves performance of PHP applications and lowers CPU load on the server. This, together with the fact that no application code changes are necessary to take advantage of the caching, makes WinCache a must have extension when running &lt;A href="http://port25.technet.com/archive/2008/03/04/php-on-windows.aspx" target=_blank mce_href="http://port25.technet.com/archive/2008/03/04/php-on-windows.aspx"&gt;PHP on Windows&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;More information about the WinCache extension for PHP can be found as follows:&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI&gt;The &lt;A href="http://us3.php.net/wincache/" target=_blank mce_href="http://us3.php.net/wincache/"&gt;PECL documentation on WinCache&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;The PHP on Windows feature team blogs (&lt;A href="http://blogs.iis.net/ksingla" target=_blank mce_href="http://blogs.iis.net/ksingla"&gt;Kanwal&lt;/A&gt;, &lt;A href="http://blogs.iis.net/ruslany" target=_blank mce_href="http://blogs.iis.net/ruslany"&gt;Ruslan&lt;/A&gt;, and &lt;A href="http://blogs.iis.net/donraman" target=_blank mce_href="http://blogs.iis.net/donraman"&gt;Don&lt;/A&gt;)&lt;/LI&gt;
&lt;LI&gt;The &lt;A href="http://forums.iis.net/1164.aspx" target=_blank mce_href="http://forums.iis.net/1164.aspx"&gt;WinCache community forum&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;The &lt;A href="http://forums.iis.net/1164.aspx" target=_blank mce_href="http://forums.iis.net/1164.aspx"&gt;IIS.NET documentation on WinCache&lt;/A&gt; &lt;/LI&gt;
&lt;LI&gt;The &lt;A href="http://pecl.php.net/package/wincache/" target=_blank mce_href="http://pecl.php.net/package/wincache/"&gt;WinCache on PECL source code&lt;/A&gt;, licensed under BSD &lt;/LI&gt;
&lt;LI&gt;How to &lt;A href="http://pecl.php.net/package/wincache/" target=_blank mce_href="http://pecl.php.net/package/wincache/"&gt;file bugs on WinCache in PECL&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=28165" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/PHP/default.aspx">PHP</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item><item><title>Silverlight 4 Beta Hits the Street</title><link>http://port25.technet.com/archive/2009/11/18/silverlight-4-beta-hits-the-street.aspx</link><pubDate>Wed, 18 Nov 2009 17:59:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:28160</guid><dc:creator>Peter Galli</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=28160</wfw:commentRss><comments>http://port25.technet.com/archive/2009/11/18/silverlight-4-beta-hits-the-street.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;The &lt;A href="http://www.silverlight.net/getstarted/silverlight-4-beta/" target=_blank mce_href="http://www.silverlight.net/getstarted/silverlight-4-beta/"&gt;beta for Silverlight 4&lt;/A&gt; was released today, Scott Guthrie, a Corporate Vice President in Microsoft's Developer Division, told attendees at the annual &lt;A href="http://microsoftpdc.com/" target=_blank mce_href="http://microsoftpdc.com/"&gt;Professional Developers Conference&lt;/A&gt; here in Los Angeles. &lt;/P&gt;
&lt;P mce_keep="true"&gt;The final verison of the product will be shipped in the first half of 2010, he said, noting that the release of the beta&amp;nbsp;means that developers can begin testing the &lt;A href="http://team.silverlight.net/announcement/silverlight-4-beta-is-now-available/" target=_blank mce_href="http://team.silverlight.net/announcement/silverlight-4-beta-is-now-available/"&gt;capabilities of Silverlight 4&lt;/A&gt; to plan for the &lt;A href="http://port25.technet.com/archive/2009/07/10/silverlight-3-hits-the-street.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/07/10/silverlight-3-hits-the-street.aspx"&gt;great applications&lt;/A&gt;&amp;nbsp;and rich, compelling user experiences to come, both on and off the Web.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Some 90% of the most commonly requested features were incorporated into &lt;A href="http://www.microsoft.com/silverlight/" target=_blank mce_href="http://www.microsoft.com/silverlight/"&gt;Silverlight 4&lt;/A&gt;, which is&amp;nbsp;currently installed on 40% of all internet devices and more than 50% of US broadband PCs, Guthrie said.&lt;/P&gt;
&lt;P mce_keep="true"&gt;A number of customers, including&amp;nbsp;Snapflow, Seesmic and H&amp;amp;R Block, as well as numerous&amp;nbsp;Microsoft properties such as Xbox, Bing and MSN, are all already using Silverlight to create compelling user experiences.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The Silverlight 4 beta extends beyond the browser, and brings &lt;A href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx?utm_source=Twitter-timheuer" target=_blank mce_href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx?utm_source=Twitter-timheuer"&gt;new out-of-browser capabilities&lt;/A&gt;, enabling&amp;nbsp;new experiences that reach deeper into the desktop without additional code or runtimes required.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Webcam and microphone with local recording capability opens new possibilities for innovative interactive media experiences, while&amp;nbsp;native multicast support enables efficient enterprise-wide training and internal communications behind the firewall.&lt;/P&gt;
&lt;P&gt;Full support for Silverlight in &lt;A href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target=_blank mce_href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;Visual Studio 2010&lt;/A&gt; gives enterprise developers a tried and trusted development environment and languages that scales for mission-critical enterprise scenarios, while&amp;nbsp;integration with Microsoft Office and Microsoft SharePoint bring the benefits of Silverlight interactivity to a broad enterprise install base, Guthrie said. &lt;/P&gt;
&lt;P&gt;Enhanced printing, networking, databinding, reporting and charting capabilities satisfy common business needs, while&amp;nbsp;Silverlight has a growing library of over 60 customizable controls to create rich, interactive applications to rapidly build attractive, functional business applications.&lt;/P&gt;
&lt;P&gt;Microsoft also has extended support for Google's Chrome browser with Silverlight 4.&lt;/P&gt;
&lt;P&gt;Microsoft is also working with the open source community to ensure that Silverlight content is available to them. Earlier this year,&amp;nbsp;&lt;A href="http://port25.technet.com/archive/2009/02/11/moonlight-1-0-hits-the-street.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/02/11/moonlight-1-0-hits-the-street.aspx"&gt;Moonlight 1.0&lt;/A&gt; was released. &lt;A href="http://port25.technet.com/archive/2009/01/23/moonlight-shines-on-obama-inauguration.aspx" target=_blank mce_href="http://port25.technet.com/archive/2009/01/23/moonlight-shines-on-obama-inauguration.aspx"&gt;Moonlight&lt;/A&gt; is an&amp;nbsp;open source project that gives Linux users access to Microsoft Silverlight content, and is available for all major Linux distributions, including openSUSE, SUSE Linux Enterprise, Fedora, Red Hat, and Ubuntu.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=28160" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Industry+Conferences/default.aspx">Industry Conferences</category><category domain="http://port25.technet.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item><item><title>PDC 2009: Availability of the Windows Azure Platform</title><link>http://port25.technet.com/archive/2009/11/17/pdc-2009-the-windows-azure-platform.aspx</link><pubDate>Tue, 17 Nov 2009 18:14:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:28155</guid><dc:creator>Peter Galli</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=28155</wfw:commentRss><comments>http://port25.technet.com/archive/2009/11/17/pdc-2009-the-windows-azure-platform.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;Ray Ozzie, Microsoft's Chief Software Architect, used the company's annual &lt;A href="http://microsoftpdc.com/" target=_blank&gt;Professional Developers Conference&lt;/A&gt; here in Los Angeles to announce the availability of the &lt;A href="http://www.microsoft.com/windowsazure/windowsazure/" target=_blank&gt;Windows Azure platform&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;That platform consists of Windows Azure, the operating system as-a-service, and SQL Azure, a fully relational database in the cloud. The Service Bus and Access Control services, formerly known as the .NET Services, now run directly within Windows Azure and are known as &lt;A href="http://www.microsoft.com/presspass/press/2009/nov09/11-17PDC1PR.mspx" target=_blank mce_href="http://www.microsoft.com/presspass/press/2009/nov09/11-17PDC1PR.mspx"&gt;Windows Azure platform AppFabric Service&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Microsoft will continue to offer Windows Azure as a Community Technology Preview until the end of this year, after which&amp;nbsp;it will switch to a production service under which&amp;nbsp;Azure's cloud services will be made available to&amp;nbsp;enterprises. But&amp;nbsp;users will get a fee pass in January, since charges will&amp;nbsp;only start accruing in February.&lt;/P&gt;
&lt;P&gt;In his opening keynote, Ozzie also announced that a small number&amp;nbsp;of customers will go into production today, including &lt;A href="http://automattic.com/" target=_blank&gt;Automattic, Inc&lt;/A&gt;.,&amp;nbsp;the maker of &lt;A href="http://wordpress.org/" target=_blank&gt;WordPress&lt;/A&gt;, which is now live on Azure. Matt Mullenweg, founder of&amp;nbsp; Automattic, Inc.,&amp;nbsp;took the stage to demonstrate MySQL, PHP, and Apache support on Windows Azure, as well as to&amp;nbsp;announce that&amp;nbsp;his company is launching a &lt;A href="http://www.oddlyspecific.com/" target=_blank&gt;new site&lt;/A&gt; that runs on SQL Azure.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ozzie also used his keynote to made clear that reaching &lt;STRONG&gt;all&lt;/STRONG&gt; developers was top of mind for Microsoft. &lt;/P&gt;
&lt;P&gt;"To most developers, to developers like you, Windows Azure appears as a model based extension to Visual Studio, enabling you to build apps that leverage your skills in SQL, IIS, ASP.NET, and .NET Framework. Alternatively, and of course it's your choice, you might leverage your skills by using MySQL and PHP within Azure, or you might instead take advantage of our new Azure tools for Java and &lt;A href="http://port25.technet.com/archive/2009/10/27/moving-forward-with-eclipse.aspx" target=_blank&gt;Eclipse&lt;/A&gt;. Reaching all developers is incredibly important to us," he said.&lt;/P&gt;
&lt;P&gt;Windows Azure&amp;nbsp;now supported any kind of Windows code and programming model, and any kind of multi-role, multi-tier service design pattern, supporting extremely flexible binding and arbitrary relationships between roles, Ozzie said.&lt;/P&gt;
&lt;P&gt;"Because you wanted it, we've broadened far beyond just the .NET programming model, and the Web role, worker role service design pattern.&amp;nbsp;We added support for &lt;A href="http://www.microsoftstartupzone.com/Blogs/anand_iyer/Lists/Posts/Post.aspx?ID=57" target=_blank mce_href="http://www.microsoftstartupzone.com/Blogs/anand_iyer/Lists/Posts/Post.aspx?ID=57"&gt;FastCGI&lt;/A&gt;, enabling high scale Web apps to be written in any of a variety of programming languages. And, in sessions this week, you're going to see the Windows Azure team quickly building and deploying &lt;A href="http://www.jdotnetservices.com/" target=_blank&gt;Java apps&lt;/A&gt;, running under &lt;A href="http://port25.technet.com/archive/2009/11/02/a-chat-with-apache-software-foundation-president-justin-erenkrantz.aspx" target=_blank&gt;Tomcat&lt;/A&gt;.&amp;nbsp;You'll see PHP apps under MySQL," he said.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Earlier this year, Microsoft enabled .NET full trust and native code applications. This functionality allowed developers to spawn xcopy deployable processes.&amp;nbsp; As a result,&amp;nbsp;Java applications can now be packaged and run. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Today, we &lt;A href="http://blogs.msdn.com/interoperability/" target=_blank mce_href="http://blogs.msdn.com/interoperability/"&gt;announced&lt;/A&gt; that we are delivering a solution accelerator for &lt;A href="http://tomcat.apache.org/" target=_blank mce_href="http://tomcat.apache.org/"&gt;Tomcat&lt;/A&gt;, an open source software implementation of the Java Servlet and JavaServer Pages technologies, as well as launching a &lt;A href="http://www.windowsazure4j.org/" target=_blank mce_href="http://www.windowsazure4j.org/"&gt;Java SDK for Windows Azure Storage&lt;/A&gt; (tables, blogs, and queues).&amp;nbsp;External endpoints (inbound traffic) to worker roles have also been enabled, which enables applications that receive internet traffic that &lt;I&gt;aren't&lt;/I&gt; running under IIS.&lt;/P&gt;
&lt;P&gt;During&amp;nbsp;his keynote Ozzie also introduced Vivek Kundra, the Federal Chief Information Officer at the White House, who spoke&amp;nbsp;via live feed from Washington D.C., and who encouraged developers to take advantage of the vast amount of public data to create applications using this new Microsoft technology. &lt;/P&gt;
&lt;P&gt;"I'm really excited about what NASA is doing in cooperation with Microsoft with the launch of the Pathfinder Innovation Challenge ...&amp;nbsp;anybody can participate and look at the data that has been democratized through &lt;A href="http://beamartian.jpl.nasa.gov/" target=_blank&gt;NASA on the Azure platform&lt;/A&gt;, that allows people to look around the red planet, slice and dice, and cube, and create information, and advance our understanding of the universe,"&amp;nbsp;Kundra said.&lt;/P&gt;
&lt;P&gt;This commitment to all developers is not new. When Ozzie first announced the Windows Azure platform at &lt;A href="http://port25.technet.com/archive/2008/11/04/open-source-highlights-at-microsoft-s-professional-developers-conference.aspx" target=_blank&gt;PDC last year&lt;/A&gt;, Sam Ramji blogged that developers&amp;nbsp;will also be able to choose from a range of &lt;A href="http://port25.technet.com/archive/2008/10/27/the-azure-platform-debuts.aspx" target=_blank&gt;open source development tools&lt;/A&gt; and technologies, and be able to access Azure services using a variety of common internet standards, including HTTP, REST, WS* and Atom.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"The Azure platform's goal is to support&lt;B&gt; all&lt;/B&gt; developers and their choice of IDE, language and technology. &amp;nbsp;We are also providing programmable components that can be consumed by other applications, and Microsoft is funding and sponsoring open source software development kits to enable Java and Ruby developers to take advantage of Azure.&lt;B&gt; &lt;/B&gt;This is significant as this is the first time we are delivering cross-platform software development kits at the same time as Microsoft Developer Network software development kits," he said.&lt;/P&gt;
&lt;P&gt;And, earlier this year, Microsoft introduced the&amp;nbsp;&lt;A href="http://phpazure.codeplex.com/" target=_blank&gt;PHP SDK for Windows Azure&lt;/A&gt;, an open source effort for which Microsoft has provided funding, with development by &lt;A href="http://www.realdolmen.com/" target=_blank&gt;RealDolmen&lt;/A&gt;, whose&amp;nbsp;goal is to provide high-level abstractions that enable &lt;A href="http://port25.technet.com/archive/2009/05/12/announcing-the-php-sdk-for-windows-azure.aspx" target=_blank&gt;PHP developers&lt;/A&gt; to interoperate readily with Windows Azure. &lt;/P&gt;
&lt;P&gt;The PHP SDK for &lt;A href="http://port25.technet.com/archive/2008/10/27/the-azure-platform-debuts.aspx" target=_blank&gt;Windows Azure&lt;/A&gt; focuses on REST and provides PHP classes for Windows Azure blobs, tables and queue, helper classes for HTTP transport, AuthN/AuthZ, REST and error management, as well as manageability, instrumentation and logging support.&lt;/P&gt;
&lt;P&gt;Next up at PDC 2009 was Bob Muglia, President of Microsoft's Server and Tools Business, who noted that Microsoft is converging on a common developer platform for both servers and services, that will enable developers to continue using familiar .NET Framework and Visual Studio tools and technologies, as well as third party tools such as &lt;A href="http://port25.technet.com/archive/2009/10/27/moving-forward-with-eclipse.aspx" target=_blank&gt;Eclipse&lt;/A&gt;, to create and monetize applications that run on the server and as services in the cloud.&lt;/P&gt;
&lt;P&gt;Muglia also announced the company's plan to offer Windows Server Virtual Machine support on Windows Azure, enabling customers to more easily support virtualized infrastructure across the continuum of on premises and cloud computing.&lt;/P&gt;
&lt;P&gt;In addition, Muglia announced the new release of &lt;A href="http://www.asp.net/mvc" target=_blank&gt;ASP.NET MVC beta&lt;/A&gt; 2, a free, fully-supported framework that enables developers to rapidly build standards-based Web applications through rich AJAX integration and enhanced extensibility.&lt;/P&gt;
&lt;P mce_keep="true"&gt;In other related news, SugarCRM, a provider of commercial open source customer relationship management software, today also announced that it will &lt;A href="http://www.sugarcrm.com/crm/about/press-releases/20091117-azure.html" target=_blank mce_href="http://www.sugarcrm.com/crm/about/press-releases/20091117-azure.html"&gt;offer its CRM applications on Windows Azure&lt;/A&gt; to enable its customers and value-added resellers to benefit from the real-time scalability, high availability and on-demand infrastructure of Azure. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;"With Windows Azure, Microsoft has built a true cloud computing platform going well beyond the simple hosted infrastructure that most service providers offer today. Windows Azure enables SugarCRM value-added resellers to create and deploy unique solutions for customers around the globe. This new service is another key component of the Sugar Open Cloud, the SugarCRM cloud strategy for delivering simple, affordable CRM anywhere based on customer need," said Larry Augustin, CEO of SugarCRM, in a press statement. &lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=28155" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/Virtualization/default.aspx">Virtualization</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item><item><title>Better Windows Development Environments - One project at a Time</title><link>http://port25.technet.com/archive/2009/04/10/better-windows-development-environments-one-project-at-a-time.aspx</link><pubDate>Fri, 10 Apr 2009 14:45:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:24972</guid><dc:creator>Mark Stone</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=24972</wfw:commentRss><comments>http://port25.technet.com/archive/2009/04/10/better-windows-development-environments-one-project-at-a-time.aspx#comments</comments><description>&lt;p&gt;Discussions of the PC market usually break down into "desktop" vs. "server", as if these are the only platform categories. However, the developer's dev box -- call it a "workstation" to distinguish it from desktop -- is really a separate platform. Remember, when Linus Torvalds created Linux it wasn't because he needed a better&lt;br&gt;desktop operating system, or a better server operating system. What he wanted was something that could run the gcc compiler. He wanted a developer workstation he could use at home.&lt;br&gt;&lt;br&gt;Of course the developer workstation market influences other markets. Developers who develop on a platform are more likely to develop for a platform. So winning developer mind share is often about giving them what they want in the way of development environment. And in this regard, open source developers are something of a &lt;br&gt;different breed.&lt;br&gt;&lt;br&gt;Microsoft has a great set of developer tools; I've certainly known developers who swear by Visual Studio. But there's something of a disconnect between graphical tools favored by Windows developers and then command line tools favored by traditional open source developers; I've also known developers whose first order of business&lt;br&gt;with a new Windows workstation is to GNU-ify it.&lt;br&gt;&lt;br&gt;Ironically, the Internet has a convergence effect, drawing these two camps together. Put developers online, and they can collaborate. Put developers online, and they can not only develop, but they can build, deploy, and test. The workstation has become not so much a computer as an environment. The developer's toolkit&amp;nbsp; includes version control, build management, automated testing, and the need to do all these things as a team rather than an individual. Developer environments have evolved rapidly to adapt to these changes.&lt;br&gt;&lt;br&gt;The &lt;a href="http://www.apache.org" mce_href="http://www.apache.org"&gt;Apache Software Foundation&lt;/a&gt; (ASF) seems to understand this evolution as well as anyone, and a number of ASF projects focus specifically on tools for the developer environment (&lt;a href="http://ant.apache.org/" mce_href="http://ant.apache.org/"&gt;Ant&lt;/a&gt;, &lt;a href="http://buildr.apache.org/" mce_href="http://buildr.apache.org/"&gt;Buildr&lt;/a&gt;, &lt;a href="http://continuum.apache.org/" mce_href="http://continuum.apache.org/"&gt;Continuum&lt;/a&gt;, &lt;a href="http://gump.apache.org/" mce_href="http://gump.apache.org/"&gt;Gump&lt;/a&gt;, and &lt;a href="http://maven.apache.org/" mce_href="http://maven.apache.org/"&gt;Maven&lt;/a&gt; come to mind as a few examples). &lt;br&gt;&lt;br&gt;What's interesting is to see the .NET developers following suit, and wanting these same sorts of tools for their development environment. What's surprising is that this .NET effort is very grass roots driven.&lt;br&gt;&lt;br&gt;"Panday" is a Filipino word meaning "blacksmith", and can also be a reference to the graphic novel super hero of the same name (the graphic novel is also originates from the Philippines). This provides an appropriate metaphor for the name of the &lt;a href="http://www.codeplex.com/npanday" mce_href="http://www.codeplex.com/npanday"&gt;NPanday&lt;/a&gt; project on &lt;a href="http://www.codeplex.com" mce_href="http://www.codeplex.com"&gt;Codeplex&lt;/a&gt;. &lt;br&gt;&lt;br&gt;The NPanday project is one of several affiliated with Microsoft's &lt;a href="http://news.cnet.com/8301-13505_3-9844616-16.html" mce_href="http://news.cnet.com/8301-13505_3-9844616-16.html"&gt;Open Source Lab in the Philippines&lt;/a&gt;, and is part of the effort to bring to .NET some of the capabilities found in other open source development environments. The aim of NPanday is integrate Apache Maven into the .NET development environment.This would enable .NET &lt;br&gt;developers to take advantage of Maven-compatible development infrastructure. &lt;br&gt;&lt;br&gt;Projects like NPanday are important because they offer developers more choice of tools in a Windows development environment. The more familiar those tools are to open source developers, the more open source development will be done on and for Windows. NPanday is also an important project for interoperability, making it easier to integrate .NET development with other development done using Maven.&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=24972" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Codeplex/default.aspx">Codeplex</category><category domain="http://port25.technet.com/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Java/default.aspx">Java</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Linux/default.aspx">Linux</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category></item><item><title>Better Tools for Web Development</title><link>http://port25.technet.com/archive/2009/03/18/better-tools-for-web-development.aspx</link><pubDate>Wed, 18 Mar 2009 15:10:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:24496</guid><dc:creator>Mark Stone</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=24496</wfw:commentRss><comments>http://port25.technet.com/archive/2009/03/18/better-tools-for-web-development.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;&lt;BR&gt;Several years ago I was helping a musician friend of mine set up a web site to use as a promotional site for his live performances. I opted for a simple, PHP-based Content Management System (CMS) that wouldn’t require any special knowledge for him to post new information, and would be – famous last words – easy for me to set up and maintain.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Not having done professional web development for some time, I quickly found myself on the phone to one of my PHP guru friends. After editing three configuration files (two for the web server, one for PHP itself), and adjusting to make sure we had the right version of PHP running with the right version of MySQL, we finally got everything working, and the CMS properly installed and configured.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This small example has several instructive lessons:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Getting software components working together properly is hard. The open source community takes real pride in tackling this challenge, having delivered tools like make, dpkg, and apt. Even so, simple cases can fail and mire you in complexity. &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;None of this is where web developers want to spend their time. The creative, innovative work is all done once you have the right components in place. &lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Absent perfect tools (which we’ll probably never have), you want to have the collective knowledge of your developer community working for you. Without my friend on the phone, I’d have had a much bigger problem on my hands.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;So there’s something very liberating about seeing Microsoft offer better tools and facilitate better community collaboration so that web developers can spend more time on creative work and less on component complexity.&lt;/P&gt;
&lt;P mce_keep="true"&gt;I’m referring specifically to the &lt;EM&gt;Microsoft Web Platform: Web Platform Installer 2.0 Beta&lt;/EM&gt; (WebPI) and &lt;EM&gt;Windows Web Application Gallery&lt;/EM&gt;, announced today at MIX ’09.&lt;/P&gt;
&lt;P mce_keep="true"&gt;WebPI provides a &lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://www.microsoft.com/web"&gt;&lt;FONT color=#0000ff&gt;single online destination&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt; and a single process for downloading and installing Microsoft’s freely available web products. By itself this may seem like no more than much-needed common sense, a good effort by Microsoft to help web developers get all the components they need working together more easily and more effectively.&lt;/P&gt;
&lt;P mce_keep="true"&gt;What makes this development really interesting is the &lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://www.microsoft.com/web/gallery"&gt;&lt;FONT color=#0000ff&gt;Web Application Gallery&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;, an opportunity for web developers to participate and collaborate in a knowledge marketplace of shared components. In other words any web developer who follows certain &lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://learn.iis.net/page.aspx/578/application-packaging-guide-for-the-windows-web-application-gallery/"&gt;&lt;FONT color=#0000ff&gt;basic&lt;/FONT&gt;&lt;/A&gt; &lt;A href="http://learn.iis.net/page.aspx/605/web-application-gallery-principles/"&gt;&lt;FONT color=#0000ff&gt;guidelines&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt; can add their product to the Gallery, and be part of this ecosystem/community of shared web development activity. This is an opportunity not just to market your work, but share ideas and innovations with other web developers, and indeed let them build on your work.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Does that sound reminiscent of an open source community? It should. While there is no requirement that Gallery code be open source, the spirit behind this effort is very much one of collaboration. The Gallery is based on the idea that web developers collectively can advance their work more than each can individually. &lt;/P&gt;
&lt;P mce_keep="true"&gt;Nor is this a playground strictly for Microsoft technologies. There are two supported web development frameworks in the Gallery:&amp;nbsp; .NET and PHP. Opening up the world of PHP applications for Windows is an exciting prospect. There is at least the possibility that something like Word Press on Windows Server will be a point and click install. We aren’t there yet. WebPI installs SQL Server by default, and MySQL is still a manual install. Many web developers won’t – or shouldn’t – care about the difference, but to some it will matter. &lt;/P&gt;
&lt;P mce_keep="true"&gt;But this is definitely a step along the right path, one step closer to making PHP an operating system-agnostic language. Because a PHP developer should care only about building great apps.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=24496" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/PHP/default.aspx">PHP</category><category domain="http://port25.technet.com/archive/tags/Web/default.aspx">Web</category></item><item><title>Brazilian Students Set Their Own Course</title><link>http://port25.technet.com/archive/2009/03/16/brazilian-students-set-their-own-course.aspx</link><pubDate>Mon, 16 Mar 2009 19:05:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:24460</guid><dc:creator>Mark Stone</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=24460</wfw:commentRss><comments>http://port25.technet.com/archive/2009/03/16/brazilian-students-set-their-own-course.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I’m going to tell a story that starts in Indiana, but really it’s about Brazil.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Once upon a time “scientific computing” was nearly synonymous with “Fortran”. Today, though, just about any high level language can be used to write High Performance Computing (HPC) applications. These days that language choice also includes C#.&lt;/P&gt;
&lt;P mce_keep="true"&gt;At &lt;A href="http://www.iu.edu/" mce_href="http://www.iu.edu/"&gt;&lt;FONT color=#0000ff&gt;Indiana University&lt;/FONT&gt;&lt;/A&gt;, the &lt;A href="http://www.osl.iu.edu/" mce_href="http://www.osl.iu.edu/"&gt;&lt;FONT color=#0000ff&gt;Open Systems Lab&lt;/FONT&gt;&lt;/A&gt; has pioneered work to implement Message Passing Interface (MPI) support for .Net, so that MPI applications can be written in C#. The project is &lt;A href="http://www.codeplex.com/mpinet" mce_href="http://www.codeplex.com/mpinet"&gt;&lt;FONT color=#0000ff&gt;MPI.Net&lt;/FONT&gt;&lt;/A&gt;, and you can find it on &lt;A href="http://www.codeplex.com/" mce_href="http://www.codeplex.com/"&gt;&lt;FONT color=#0000ff&gt;Codeplex&lt;/FONT&gt;&lt;/A&gt;. It is open source, about three years old, has reached a 1.0 release, and is compatible with two other important open source projects, &lt;A href="http://www.open-mpi.org/" mce_href="http://www.open-mpi.org/"&gt;&lt;FONT color=#0000ff&gt;OpenMPI&lt;/FONT&gt;&lt;/A&gt; and &lt;A href="http://www.mono-project.com/" mce_href="http://www.mono-project.com/"&gt;&lt;FONT color=#0000ff&gt;Mono&lt;/FONT&gt;&lt;/A&gt;. The principle developers behind the project are Andrew Lumsdaine at Indiana University and his former student, Douglas Gregor, who is now on the faculty of Rensselear Polytechnic Institute.&lt;/P&gt;
&lt;P mce_keep="true"&gt;This is the kind of open source work that’s really exciting to see because of the way it expands choices for the developer and the end user. A C# developer should not be closed off from writing HPC applications if that’s what they want to do. And a research scientist should not have to think about whether their lab is running Linux or Windows Server. Both of these individuals are working enough layers above the operating system that somebody else’s operating system choice should not be a constraint.&lt;/P&gt;
&lt;P mce_keep="true"&gt;So I was very excited to learn that students in Brazil at Federal University of Rio Grande do Sul were doing work on MPI, and excited to talk with them about their work. One of their projects is &lt;A class="" href="http://www.codeplex.com/mpihash" mce_href="http://www.codeplex.com/mpihash"&gt;MPI#&lt;/A&gt;, also open source and also hosted on &lt;A class="" href="http://www.codeplex.com/" mce_href="http://www.codeplex.com"&gt;Codeplex&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;MPI# builds on top of the work of MPI.Net, adding some functionality not yet present in MPI.Net. Specifically, quoting from the project description:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;EM&gt;The goals of this project would be to build upon MPI.NET in order to complement it with the features that are missing, mainly regarding collective communication. Either they could benefit from C# native support for such communication, either they could be programmed on top of the provided MPISend/MPIRecv encapsulations. C# and .NET features such as fault tolerance or dynamicity support would be studied, in other to turn the MPI# implementation robust in large, dynamic and heterogeneous platforms.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;Two of the students working on MPI# are Ismael Stangherlini and Fernando Afonso. They are graduate students in computer science, working on projects affiliated with the &lt;A class="" href="http://www.codeplex.com/NDOS" mce_href="http://www.codeplex.com/NDOS"&gt;Brazilian Interoperability and Open Source Software Development Nucleous&lt;/A&gt;. When I talked to them about their work on MPI# I was curious what their communication with Indiana University had been like. Their response: they had never been in contact with Indiana University; they simply downloaded the code for MPI.Net and started working on their own.&lt;/P&gt;
&lt;P mce_keep="true"&gt;That’s the magic of open source: that they can, in fact, just download the code on their own and start coding against it. They may make an important contribution to MPI.Net. Or their code may be entirely disregarded. Or they may move on to other projects and somebody else may or may not pick up where they left off. At this stage it’s too early to tell. But the fact that all of these scenarios are possible demonstrates why, as a methodology, open source is so nimble and adaptive. A top-down product development process, or a top-down standards development process can only execute on the innovations envisioned by the few at the top, and at the speed of the slowest decision-makers in the process. But a bottom-up open source process enables every innovation that anyone at the grass roots level can see.&lt;/P&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=24460" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Codeplex/default.aspx">Codeplex</category><category domain="http://port25.technet.com/archive/tags/Interop/default.aspx">Interop</category><category domain="http://port25.technet.com/archive/tags/Mono/default.aspx">Mono</category><category domain="http://port25.technet.com/archive/tags/HPC/default.aspx">HPC</category><category domain="http://port25.technet.com/archive/tags/Standards/default.aspx">Standards</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Open+Source/default.aspx">Open Source</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category></item><item><title>SMB2: a Complete Redesign of the Main Remote File Protocol for Windows</title><link>http://port25.technet.com/archive/2008/12/08/smb2-a-complete-redesign-of-the-main-remote-file-protocol-for-windows.aspx</link><pubDate>Mon, 08 Dec 2008 16:24:00 GMT</pubDate><guid isPermaLink="false">af7480c4-26b7-468d-87b0-2acebabb473d:22337</guid><dc:creator>Peter Galli</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://port25.technet.com/rsscomments.aspx?PostID=22337</wfw:commentRss><comments>http://port25.technet.com/archive/2008/12/08/smb2-a-complete-redesign-of-the-main-remote-file-protocol-for-windows.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;SMB (Server Message Block) is a remote file protocol commonly used by Microsoft Windows clients and servers that dates back to 1980's. &lt;/P&gt;
&lt;P&gt;Back when it was first used, LANs speeds were typically 10Mbps or less, WAN use was very limited and there were no Wireless LANs. Network security concerns like preventing man-in-the-middle attacks were non-existent at that time. &lt;/P&gt;
&lt;P&gt;Obviously, things have changed a lot since then. SMB did evolve over time, but it did so incrementally and with great care for keeping backward compatibility. It was only with SMB2 in 2007 that we had the first major redesign. &lt;/P&gt;
&lt;P&gt;In this blog Jose Barreto, a senior technical evangelist in Microsoft's Storage Solutions Division, explains some of the history behind the protocol and outlines important &lt;A class="" href="http://blogs.technet.com/josebda/archive/2008/12/05/smb2-a-complete-redesign-of-the-main-remote-file-protocol-for-windows.aspx" mce_href="http://blogs.technet.com/josebda/archive/2008/12/05/smb2-a-complete-redesign-of-the-main-remote-file-protocol-for-windows.aspx"&gt;improvements in SMB2&lt;/A&gt;, particularly in regards to reduced complexity, pipelining and compounding. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;B&gt;Introduction&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;SMB (Server Message Block) is a remote file protocol commonly used by Microsoft Windows clients and servers that dates back to 1980's. Back when it was first used, LANs speeds were typically 10Mbps or less, WAN use was very limited and there were no Wireless LANs. Network security concerns like preventing man-in-the-middle attacks were non-existent at that time. Obviously, things have changed a lot since then. SMB did evolve over time, but it did so incrementally and with great care for keeping backward compatibility. It was only with SMB2 in 2007 that we had the first major redesign.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;A History of SMB and CIFS&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;When it was first introduced to the public, the remote file protocol was called SMB (Server Message Block). SMB was used, for instance, by Microsoft LAN Manager in 1987 and by Windows for Workgroups in 1992. Later, a draft specification was submitted to the IETF under the name Common Internet File System (CIFS). The CIFS specification is a description of the protocol as it was implemented in 1996 as part of Microsoft Windows NT 4.0. A preliminary draft of the IETF CIFS 1.0 specification was published in 1997. Later, extensions were made to address other scenarios like domains, Kerberos, shadow copy, server to server copy and SMB signing. Windows 2000 (released in 2000) included those extensions. At that time, some people went back to calling the protocol SMB once again. CIFS/SMB has also been implemented on Unix, Linux and many other operating systems (either as part of the OS or as a server suite like Samba). A few times, those communities also extended the CIFS/SMB protocol to address their own specific requirements.&lt;/P&gt;
&lt;P&gt;One important limitation of SMB was its "chattiness" and lack of concern for network latency. It would take a series of synchronous round trips to accomplish many of the most common tasks. The protocol was not created with WAN or high-latency networks in mind and there was limited use of compounding (combining multiple commands in a single network packet) or pipelining (sending additional commands before the answer to a previous command arrives). This even led to products created to address the specific issues around SMB WAN acceleration. There were also limitations regarding the number of open files, shares and users. Due to the large number of commands and subcommands, the protocol was also difficult to extend, maintain and secure.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Introducing SMB2&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;The first major redesign of SMB happened with the release of SMB2 by Microsoft. SMB2 was introduced with Windows Vista in 2007 and updated with the release of Windows Server 2008 and Windows Vista SP1 in 2008. &lt;/P&gt;
&lt;P&gt;SMB2 brought a number of improvements, including but not limited to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Reduced complexity, going from over 100 commands and subcommands to just 19 (see details below) &lt;/LI&gt;
&lt;LI&gt;General mechanisms for data pipelining and credit-based flow control (see details below) &lt;/LI&gt;
&lt;LI&gt;Request compounding, which allows multiple SMB requests to be sent as a single network request(see details below) &lt;/LI&gt;
&lt;LI&gt;Larger reads and writes make better use of faster networks, even with high latency &lt;/LI&gt;
&lt;LI&gt;Caching of folder and file properties, where clients keeps local copy of information on folders and files &lt;/LI&gt;
&lt;LI&gt;Durable handles allow an SMB2 connection to transparently reconnect to the server if there is a temporary loss of network connectivity &lt;/LI&gt;
&lt;LI&gt;Message signing improved (HMAC SHA-256 replaces MD5 as hashing algorithm) and configuration/interoperability issues simplified &lt;/LI&gt;
&lt;LI&gt;Improved scalability for file sharing (number of users, shares and open files per server greatly increased) &lt;/LI&gt;
&lt;LI&gt;Protocol works well with Network Address Translation (VC count is gone) &lt;/LI&gt;
&lt;LI&gt;Extension mechanism (for instance, create context or variable offsets) &lt;/LI&gt;
&lt;LI&gt;Support for symbolic links&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;It is important to highlight that, to ensure interoperability, SMB2 uses the existing SMB1 connection setup mechanisms, and then advertises that it is capable of a new version of the protocol. Because of that, if the opposite end does not support SMB2, SMB1 will be used. &lt;/P&gt;
&lt;P&gt;The SMB2 protocol specification was published publicly by Microsoft and you can find the link at the end of this post.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Reduced Complexity&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;One of the ways to showcase the reduced complexity in SMB2 is to make a comparison to the commands and subcommands in the old version.&lt;/P&gt;
&lt;P&gt;Here is the complete list of the 19 opcodes (or commands) used by SMB2 in the message exchanges between the client and the server, grouped in three categories:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Protocol negotiation, user authentication and share access (NEGOTIATE, SESSION_SETUP, LOGOFF, TREE_CONNECT, TREE_DISCONNECT) &lt;/LI&gt;
&lt;LI&gt;File, directory and volume access (CANCEL, CHANGE_NOTIFY, CLOSE, CREATE, FLUSH, IOCTL, LOCK, QUERY_DIRECTORY, QUERY_INFO, READ, SET_INFO, WRITE) &lt;/LI&gt;
&lt;LI&gt;Other (ECHO, OPLOCK_BREAK)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;When you try to get a similar list for the old SMB, things get a little more complex. I tried to make a list of all commands and subcommands using only the documents linked below and came up with over 100: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Protocol negotiation, user authentication and share access (NEGOTIATE, SESSION_SETUP_ANDX, TRANS2_SESSION_SETUP, LOGOFF_ANDX, PROCESS_EXIT, TREE_CONNECT, TREE_CONNECT_ANDX, TREE_DISCONNECT) &lt;/LI&gt;
&lt;LI&gt;File, directory and volume access (CHECK_DIRECTORY, CLOSE, CLOSE_PRINT_FILE, COPY, CREATE, CREATE_DIRECTORY, CREATE_NEW, CREATE_TEMPORARY, DELETE, DELETE_DIRECTORY, FIND_CLOSE, FIND_CLOSE2, FIND_UNIQUE, FLUSH, GET_PRINT_QUEUE, IOCTL, IOCTL_SECONDARY, LOCK_AND_READ, LOCK_BYTE_RANGE, LOCKING_ANDX, MOVE, NT_CANCEL, NT_CREATE_ANDX, NT_RENAME, NT_TRANSACT, NT_TRANSACT_CREATE, NT_TRANSACT_IOCTL, NT_TRANSACT_NOTIFY_CHANGE, NT_TRANSACT_QUERY_QUOTA, NT_TRANSACT_QUERY_SECURITY_DESC, NT_TRANSACT_RENAME, NT_TRANSACT_SECONDARY, NT_TRANSACT_SET_QUOTA, NT_TRANSACT_SET_SECURITY_DESC, OPEN, OPEN_ANDX, OPEN_PRINT_FILE, QUERY_INFORMATION, QUERY_INFORMATION_DISK, QUERY_INFORMATION2, READ, READ_ANDX, READ_BULK, READ_MPX, READ_RAW, RENAME, SEARCH, SEEK, SET_INFORMATION, SET_INFORMATION2, TRANS2_CREATE_DIRECTORY, TRANS2_FIND_FIRST2, TRANS2_FIND_NEXT2, TRANS2_FIND_NOTIFY_FIRST, TRANS2_FIND_NOTIFY_NEXT, TRANS2_FSCTL , TRANS2_GET_DFS_REFERRAL, TRANS2_IOCTL2, TRANS2_OPEN2, TRANS2_QUERY_FILE_INFORMATION, TRANS2_QUERY_FS_INFORMATION, TRANS2_QUERY_PATH_INFORMATION, TRANS2_QUERY_PATH_INFORMATION, TRANS2_REPORT_DFS_INCONSISTENCY, TRANS2_SET_FILE_INFORMATION, TRANS2_SET_FS_INFORMATION, TRANS2_SET_PATH_INFORMATION, TRANSACTION, TRANSACTION_SECONDARY, TRANSACTION2, TRANSACTION2_SECONDARY, UNLOCK_BYTE_RANGE, WRITE, WRITE_AND_CLOSE, WRITE_AND_UNLOCK, WRITE_ANDX, WRITE_BULK, WRITE_BULK_DATA, WRITE_COMPLETE, WRITE_MPX, WRITE_MPX_SECONDARY, WRITE_PRINT_FILE, WRITE_RAW) &lt;/LI&gt;
&lt;LI&gt;Other (ECHO, TRANS_CALL_NMPIPE, TRANS_MAILSLOT_WRITE, TRANS_PEEK_NMPIPE, TRANS_QUERY_NMPIPE_INFO, TRANS_QUERY_NMPIPE_STATE, TRANS_RAW_READ_NMPIPE, TRANS_RAW_WRITE_NMPIPE, TRANS_READ_NMPIPE, TRANS_SET_NMPIPE_STATE, TRANS_TRANSACT_NMPIPE, TRANS_WAIT_NMPIPE, TRANS_WRITE_NMPIPE)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I make no claim that the list above for SMB is exact or complete, but it does make a point. As an interesting exercise, check the lists above to verify that, while SMB2 has a single WRITE operation, there are 14 distinct WRITE operations in the old protocol.&lt;/P&gt;
&lt;P&gt;SMB2 also requires TCP as a transport. SMB2 no longer supports NetBIOS over IPX, NetBIOS over UDP or NetBEUI (as SMB version 1 did). &lt;/P&gt;
&lt;P&gt;&lt;B&gt;Pipelining&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;A key improvement in SMB2 is the way it makes it easy for clients to send a number of outstanding requests to a server. This allows the client to build a pipeline of requests instead of waiting for a response before sending the next request.&amp;nbsp; This is especially relevant when using a high latency network.&lt;/P&gt;
&lt;P&gt;SMB2 uses a credit based flow control, which allows the server to control a client's behavior. The server will start with a small number of credits and automatically scale up as needed. With this, the protocol can keep more data "in flight" and better utilize the available bandwidth.&lt;/P&gt;
&lt;P&gt;This is key to make a large transfer go from hours (in SMB) to minutes (in SMB2) in a "long and fat pipe" (high bandwidth, high latency network). &lt;/P&gt;
&lt;P&gt;For an example of how pipelining in SMB2 can improve performance, check out this &lt;A class="" href="http://blogs.technet.com/josebda/archive/2008/11/11/file-server-performance-improvements-with-the-smb2-protocol-in-windows-server-2008.aspx" target=_blank mce_href="http://blogs.technet.com/josebda/archive/2008/11/11/file-server-performance-improvements-with-the-smb2-protocol-in-windows-server-2008.aspx "&gt;blog post&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Compounding&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;When you look at the command set for the new SMB2 protocol, you notice that they are all simple operations. The old SMB1 protocol had some complex commands and subcommands that combined a set of simple operations as required in specific scenarios.&lt;/P&gt;
&lt;P&gt;One of the important changes in SMB2 is the ability to send an arbitrary set of commands in a single request (single network round trip). This is called compounding and it can be use to mimic the old complex operations in SMB1 without the added complexity of a larger command set.&lt;/P&gt;
&lt;P&gt;For instance, an old SMB1 RENAME command can be replaced by a single request in SMB2 that combines three commands: CREATE (which can create a new file or open an existing file), SET_INFO and CLOSE. The same can be done for many other complex SMB1 commands and subcommands like LOCK_AND_READ and WRITE_AND_UNLOCK.&lt;/P&gt;
&lt;P&gt;This compounding ability in SMB2 is very flexible and the chain of commands can be unrelated (executed separately, potentially in parallel) or related (executed in sequence, with the output of one command available to the next). The responses can also be compounded or sent separately. &lt;/P&gt;
&lt;P&gt;This new compounding feature in SMB2 can be used to perform a specific task in less time due to the reduced number of network round trips.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Conclusion&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;I hope this post has helped you understand some of the important improvements in SMB2, particularly in regards to reduced complexity, pipelining and compounding.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Reference&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Below is a list of important links that document SMB2, SMB and CIFS, including the latest protocol specifications published by Microsoft:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/library/cc212614.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/cc212614.aspx "&gt;Server Message Block (SMB) Version 2.0 Protocol Specification&lt;/A&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/library/cc212363.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/cc212363.aspx "&gt;Server Message Block (SMB) Protocol Specification&lt;/A&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://www.microsoft.com/about/legal/protocols/BSTD/CIFS/draft-leach-cifs-v1-spec-02.txt" target=_blank mce_href="http://www.microsoft.com/about/legal/protocols/BSTD/CIFS/draft-leach-cifs-v1-spec-02.txt "&gt;Common Internet File System (CIFS/1.0) Protocol 0 Preliminary Draft&lt;/A&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A class="" href="http://www.microsoft.com/protocols" target=_blank mce_href="http://www.microsoft.com/protocols "&gt;Microsoft Protocol Programs&lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/A&gt;&lt;img src="http://port25.technet.com/aggbug.aspx?PostID=22337" width="1" height="1"&gt;</description><category domain="http://port25.technet.com/archive/tags/Networking/default.aspx">Networking</category><category domain="http://port25.technet.com/archive/tags/Management/default.aspx">Management</category><category domain="http://port25.technet.com/archive/tags/.NET+Development/default.aspx">.NET Development</category><category domain="http://port25.technet.com/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://port25.technet.com/archive/tags/Community/default.aspx">Community</category><category domain="http://port25.technet.com/archive/tags/Dev+Center/default.aspx">Dev Center</category><category domain="http://port25.technet.com/archive/tags/_7E00_FeaturedPost/default.aspx">~FeaturedPost</category><category domain="http://port25.technet.com/archive/tags/Peter+Galli/default.aspx">Peter Galli</category></item></channel></rss>