<?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>Michael Zammuto: Connected Systems, disconnected thoughts</title><link>http://blogs.msdn.com/mzammuto/default.aspx</link><description>Welcome to my blog. I am a Release Manager in the Connected Systems Division working in Redmond. I am primarily focused on Windows Workflow Foundation but our division also produces the .NET Framework, Active Directory, BizTalk, Commerce Server, RFID Services, Windows Communication Foundation (Indigo), WSE and other products. Before joining Microsoft my company, Sapago, won Best in Show at the 2005 Microsoft Worldwide partner conference, I have been a guest on CNN and in over 20 technology and business magazines and I have been both a CTO and a CIO.</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>The young (ISV) doesn’t always supplant the old</title><link>http://blogs.msdn.com/mzammuto/archive/2006/01/28/518852.aspx</link><pubDate>Sun, 29 Jan 2006 05:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:518852</guid><dc:creator>mzammuto</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/518852.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=518852</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;What keeps established software companies in their position in the face of competition from startups?&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I have an interesting perspective. Before joining Microsoft, I was the CTO, alternately, of a rag-tag startup and an established, market-leading enterprise ISV.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;There are a lot of reasons people stick with an ISV, institutional experience, branding, migration costs, risk aversion, user training and upheaval are just a few examples. Yet in the face of this, startups should have some important edges.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Startups should be able to more easily take advantage of new technologies, tools and development techniques. It is inherently easier to move to SOA, implement design patterns or have an all managed .NET solution if you are starting from scratch then if you have millions of lines of code and tens of thousands of users to migrate. This advantage alone has spawned hundreds of ISVs who hoped to gain market share by through technology. The problem is that the advantages of the new technologies, tools and techniques are often dwarfed by the pressure to close the functional gap with the "old lion" leader.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;As anyone who ever been involved with sales for a startup will tell you, every sales prospect comes up with a different piece of must-have functionality that ties them to their current vendor. For the young Lion, quickly eliminating years or even decades worth of functional gaps with the established leader can be expensive and daunting and often leads to shortcuts on quality, scalability or usability.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The old Lion’s may finally have something to really worry about. &lt;A href="http://msdn.microsoft.com/winfx/"&gt;WinFX&lt;/A&gt; architects and developers will be able to create highly scalable and flexible solutions so fast that it could undermine the advantages that leaders rely upon. Startups who design, develop, test and manage their projects with &lt;A href="http://msdn.microsoft.com/vstudio/products/"&gt;Visual Studio 2005&lt;/A&gt;&amp;nbsp;with &lt;A href="http://msdn.microsoft.com/vstudio/teamsystem/default.aspx"&gt;Team System&lt;/A&gt; and who build solutions with &lt;A href="http://msdn.microsoft.com/windowsvista/building/presentation/"&gt;Windows Presentation Foundation&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/windowsvista/building/workflow/default.aspx"&gt;Windows Workflow Foundation&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/webservices/indigo/"&gt;Windows Communication Foundation&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/sql/"&gt;SQL Server 2005&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/windowsvista/building/infocard/"&gt;InfoCard &lt;/A&gt;will find productivity to be the strategic advantage they hope for.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;There is a tipping point to watch for here. At some point, the young Lion’s advantages from higher productivity and more flexible architectures could swamp the lead the old Lion enjoys. The leader, weighed down with legacy systems, finds it unable to keep up with the startup and is left behind. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;So it does not matter is you are with an old Lion enterprise ISV protecting your position or the young Lion startup, start your research at the &lt;A href="http://msdn.microsoft.com/winfx/"&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;&lt;st1:PlaceName w:st="on"&gt;WinFX&lt;/st1:PlaceName&gt; &lt;st1:PlaceName w:st="on"&gt;Developer&lt;/st1:PlaceName&gt; &lt;st1:PlaceType w:st="on"&gt;Center&lt;/st1:PlaceType&gt;&lt;/st1:place&gt; &lt;/A&gt;today.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=518852" width="1" height="1"&gt;</description></item><item><title>How (not) to build a successful ISV</title><link>http://blogs.msdn.com/mzammuto/archive/2006/01/20/515599.aspx</link><pubDate>Sat, 21 Jan 2006 00:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:515599</guid><dc:creator>mzammuto</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/515599.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=515599</wfw:commentRss><description>&lt;P&gt;Admit it, you have thought about starting a technology company. &lt;/P&gt;
&lt;P&gt;Well, before joining Microsoft I left my job as a CTO of a medium sized ISV to bring to market and idea that I had. My product was the subject of articles in &lt;A href="http://www.rfidjournal.com/article/articleview/1540/1/1/"&gt;RFID Journal&lt;/A&gt;, &lt;A href="http://internetretailer.com/dailyNews.asp?id=14698"&gt;Internet Retailer&lt;/A&gt;, won some awards, including one from Microsoft,&amp;nbsp;and made some sales. Ultimately, I realized that the business model would not support building a successful organization. If you have ever thought of starting a software company then take a look at an interview I conducted on &lt;A href="http://www.microisv.com/archives/2006/01/20/microisv-followup-michael-zammuto/#more-217"&gt;MicroISV&lt;/A&gt;, a site dedicated to small software startups. I hope you find it helpful.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=515599" width="1" height="1"&gt;</description></item><item><title>New Workflow Beta, hands-on labs, SDK and Visual Studio Extensions</title><link>http://blogs.msdn.com/mzammuto/archive/2006/01/18/514359.aspx</link><pubDate>Wed, 18 Jan 2006 17:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:514359</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/514359.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=514359</wfw:commentRss><description>&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;We released Beta 2 of Windows Workflow Foundation. The package includes Extensions for Visual Studio 2005, runtime and SDK. There are also new hands-on labs available. Enjoy&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;English&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Page &lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=en href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=en&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Install Guide &lt;A title=http://download.microsoft.com/download/2/7/f/27f7a7b1-53bd-48f9-9914-e2e26a5effd7/WFBeta2_Install_Instructions.htm href="http://download.microsoft.com/download/2/7/f/27f7a7b1-53bd-48f9-9914-e2e26a5effd7/WFBeta2_Install_Instructions.htm"&gt;http://download.microsoft.com/download/2/7/f/27f7a7b1-53bd-48f9-9914-e2e26a5effd7/WFBeta2_Install_Instructions.htm&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;ReadMe &lt;A title=http://download.microsoft.com/download/2/9/2/2921ef94-007b-4d9f-ba06-021329b88d7c/VS2005Extensions_for_WF_Beta2_Readme.htm href="http://download.microsoft.com/download/2/9/2/2921ef94-007b-4d9f-ba06-021329b88d7c/VS2005Extensions_for_WF_Beta2_Readme.htm"&gt;http://download.microsoft.com/download/2/9/2/2921ef94-007b-4d9f-ba06-021329b88d7c/VS2005Extensions_for_WF_Beta2_Readme.htm&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;German&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Page &lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=de href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=de"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=de&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Install Guide &lt;A title=http://download.microsoft.com/download/1/8/8/188168e6-4881-4c9d-94a7-34742390f9a0/WFBeta2_Install_Instructions.htm href="http://download.microsoft.com/download/1/8/8/188168e6-4881-4c9d-94a7-34742390f9a0/WFBeta2_Install_Instructions.htm"&gt;http://download.microsoft.com/download/1/8/8/188168e6-4881-4c9d-94a7-34742390f9a0/WFBeta2_Install_Instructions.htm&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;ReadMe &lt;A title=http://download.microsoft.com/download/5/1/b/51b24af7-8d77-47c0-8947-5768f728237e/VS2005Extensions_for_WF_Beta2_Readme.htm href="http://download.microsoft.com/download/5/1/b/51b24af7-8d77-47c0-8947-5768f728237e/VS2005Extensions_for_WF_Beta2_Readme.htm"&gt;http://download.microsoft.com/download/5/1/b/51b24af7-8d77-47c0-8947-5768f728237e/VS2005Extensions_for_WF_Beta2_Readme.htm&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Japanese&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Page &lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=ja href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=ja"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=A2151993-991D-4F58-A707-5883FF4C1DC2&amp;amp;displaylang=ja&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Install Guide &lt;A title=http://download.microsoft.com/download/6/6/f/66ff81ee-e089-4db5-9da8-ae1d67badf86/WFBeta2_Install_Instructions.htm href="http://download.microsoft.com/download/6/6/f/66ff81ee-e089-4db5-9da8-ae1d67badf86/WFBeta2_Install_Instructions.htm"&gt;http://download.microsoft.com/download/6/6/f/66ff81ee-e089-4db5-9da8-ae1d67badf86/WFBeta2_Install_Instructions.htm&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;ReadMe &lt;A title=http://download.microsoft.com/download/8/4/9/84975e78-5f80-4552-ac18-6463a7a3af38/VS2005Extensions_for_WF_Beta2_Readme.htm href="http://download.microsoft.com/download/8/4/9/84975e78-5f80-4552-ac18-6463a7a3af38/VS2005Extensions_for_WF_Beta2_Readme.htm"&gt;http://download.microsoft.com/download/8/4/9/84975e78-5f80-4552-ac18-6463a7a3af38/VS2005Extensions_for_WF_Beta2_Readme.htm&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Labs&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Page &lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyId=5DF74E3B-FB51-4A94-A11D-DFF70288A8BB&amp;amp;displaylang=en href="http://www.microsoft.com/downloads/details.aspx?FamilyId=5DF74E3B-FB51-4A94-A11D-DFF70288A8BB&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=5DF74E3B-FB51-4A94-A11D-DFF70288A8BB&amp;amp;displaylang=en&lt;/A&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=514359" width="1" height="1"&gt;</description></item><item><title>New CIO survey shows IT on the march</title><link>http://blogs.msdn.com/mzammuto/archive/2005/12/29/508016.aspx</link><pubDate>Thu, 29 Dec 2005 18:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:508016</guid><dc:creator>mzammuto</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/508016.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=508016</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;A href="http://www.cio.com/"&gt;CIO Magazine &lt;/A&gt;has a new issue entitled “The State of The CIO ’06.” &lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;Oddly, while it is already on my desk the issue has not made it to their web site yet.&amp;nbsp;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;I have a special interest in the importance of the CIO job. &lt;A href="http://www.michaelzammuto.com/"&gt;I have served as both a CIO and a CTO&lt;/A&gt; and have appeared on the &lt;A href="http://edition.cnn.com/2004/BUSINESS/07/27/tech.experts/index.html"&gt;CNN program, Global Office&lt;/A&gt;, and in &lt;A href="http://www.cfo.com/article.cfm/3012425"&gt;CFO Magazine &lt;/A&gt;on the subject. At the time the discussion focused on what seemed to be the shrinking prestige and influence of the CIO, and by extension, end-user’s belief in technology as a strategic differentiator.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The magazine reports good news. A majority of IT executives say they will increase staff this year. CIOs also cite a large backlog of technology projects as their number one problem. This backlog is important not only for IT but for broader technology industry. It is true that the backlog stems in part from the shelving and delaying of projects during the post-bubble recovery, the economic recessions in Europe and The U.S. and as a response to the 9/11 atrocities. More importantly, however, I believe the backlog is reflective of an increased optimism in the opportunity for today’s technology to improve one’s business. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;What I think is most important about the magazine’s surveys is that the CIO position seems to be regaining some visibility and authority. I have engaged in this debate over and over again. Say what you like, you will never convince me that reporting to anyone but the CEO is a good idea. This year the magazine reports a (small) reversal of the trend of the CIO reporting to CFOs with an increase in IT chief’s reporting to the CEO. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The magazine also reports more CIO mobility. There is a small but vital trend of CIOs heading businesses, business units and moving into operations. This broadening of career paths will help IT to attract and retain the very top people and will serve to spread technology savvy throughout corner offices and board rooms. This, in turn, will help organizations better and more broadly evaluate and implement technology, adding greater value with less risk.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=508016" width="1" height="1"&gt;</description></item><item><title>New CTP - WinFX December CTP</title><link>http://blogs.msdn.com/mzammuto/archive/2005/12/19/505514.aspx</link><pubDate>Mon, 19 Dec 2005 17:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:505514</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/505514.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=505514</wfw:commentRss><description>&lt;P&gt;New week, new software.&amp;nbsp;They are still propagating across Microsoft's external servers so the links may not work for an hour or so. How is that for fresh from the oven?&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=BD3BA2D5-6ADB-4FB2-A3AA-E16A9EA5603F&amp;amp;displaylang=en"&gt;WinFX December CTP&lt;/A&gt;&amp;nbsp;and the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=2297BDC9-B5AE-4B8A-B601-EEF54A52867A&amp;amp;displaylang=en"&gt;SDK&lt;/A&gt; and &amp;nbsp;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D1336F3E-E677-426B-925C-C84A54654414&amp;amp;displaylang=en"&gt;Visual Studio Extensions&lt;/A&gt;&amp;nbsp;codenamed 'Orcas'. If you are a Windows Workflow developer then you will want to go to the download for the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=589E23DD-503E-4179-9858-D080C669F8B9&amp;amp;displaylang=en"&gt;Beta 1.2&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=505514" width="1" height="1"&gt;</description></item><item><title>Writing a C# socket listener, if you must</title><link>http://blogs.msdn.com/mzammuto/archive/2005/12/16/504868.aspx</link><pubDate>Fri, 16 Dec 2005 22:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:504868</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/504868.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=504868</wfw:commentRss><description>&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Socket programming can be tough and complicated. If you are reading this because you are trying to decide on a communication mechanism for your new project then let me save you some reading. Stick with something else if you can. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;&lt;A href="http://msdn.microsoft.com/webservices/"&gt;Web Services&lt;/A&gt; gives you operating system and limited language independence and can be done over a range of transport. I have shown in another article how to use a Win Form as a web service client. .NET has great web services support cross vendor &lt;A href="http://msdn.microsoft.com/webservices/webservices/building/interop/default.aspx"&gt;interoperability&lt;/A&gt; is easier than ever before. &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconnetremotingoverview.asp"&gt;.NET remoting &lt;/A&gt;is also good choice if it is all .NET. If you need socket based communications then make sure there is not an easier option than writing your own. If you need to support multiple legacy clients then you may have to go this route but check and see if there are any applicable third-party libraries you can use. &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=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;But if you need to write your own then this article will teach you how to do it in .NET using C#. If you only need a basic listener and client you should look into the Socket helper classes. These include the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketstcpclientclasstopic.asp"&gt;TcpClient&lt;/A&gt;, TcpServer and &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketsudpclientclasstopic.asp"&gt;UdpClient&lt;/A&gt; classes in the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsockets.asp"&gt;Sockets&lt;/A&gt; namespace. Since UDP is connectionless there is no listener and the same class is used for your client and server. These classes are still powerful and will fulfill most production needs with few lines of code and fewer options and parameters to know.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Many socket communication applications of this type are written in C or C++. While the technology in .NET socket applications is not actually simpler than C++, it is simpler for you to write and maintain them in C# because .NET provides better abstraction of the underlying Win32 API functions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;One of the ways that C# makes it easier to develop network programs is the manipulation of strings. Much of the effort in socket programming is string manipulation. It is amazing how many security holes start with simple buffer overflows. C# handles strings in two different ways and you are going to want to get to know them. &lt;BR&gt;&lt;BR&gt;Look at this code snippet and think about what is going on.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;String astring = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;(“hello”);&lt;BR&gt;astring+= “ “;&lt;BR&gt;astring +=”world”; &lt;BR&gt;Console.WriteLine(“My &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; = ‘{0}’”, astring); &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Instantiate a string and then append it twice right? Logically this is true but .NET actually does not do it that way. When you create a string a set amount of memory is allocated and that allocation cannot be changed. This means that strings are immutable. So when you modify a string C# creates a new memory space for it and flags the original one for garbage collection. Creation a new memory space, placing the new value in it, and pointing to it creates overhead. Garbage collection is only a partial solution. The original memory is not reclaimed until the garbage collector gets around to it. Now look at the example above. The process of creating the new string and abandoning the old one actually happens twice, leaving 3 separate strings allocated in memory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Instead you should use the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtextstringbuilderclasstopic.asp"&gt;StringBuilder&lt;/A&gt; class which is in the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtext.asp"&gt;System.Text&lt;/A&gt; namespace. This saves resources because the StringBuilder class paradoxically does not create strings, it creates StringBuilder objects. An instance of the StringBuilder class starts with a minimum of 16 bytes of memory and dynamically can increase of decrease this memory utilization. You can use the Length property of the StringBuilder object to manually change the memory allocated. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;StringBuilder mySb = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; StringBuilder(“1234567890”);&lt;BR&gt;&lt;FONT color=#008000&gt;//the length is 10 and the value is “1234567890”&lt;BR&gt;&lt;/FONT&gt;mySb.Length = 7;&lt;BR&gt;&lt;FONT color=#008000&gt;//the length is 7 and the value is “1234567”&lt;/FONT&gt;&lt;BR&gt;mySb.Length = 10 &lt;BR&gt;&lt;FONT color=#008000&gt;//the length is 10 and the value is “1234567”&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;When you manually decrease the length you also reduce size of the memory allocation and the extra values are dropped off. When you increase it the unused portion of the larger memory is filled with empty values. In the example above remember you have not created a string, just a StringBuilder object. When you want to turn it into a string you call the ToString() method as in this example.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;myLabel.Text = mySb.ToString();&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;C# stream manipulation is also easier and more elegant than it was in C or C++. Streams include client server communications as well as communication with hardware or logical devices. Depending on the type of stream you are accessing, there are three basic functions. You can write data from a memory buffer to a stream, you can read data from a stream and you can ‘seek’, or search for, a specific pattern of data in a stream.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Winsock is Microsoft’s stream communication API. Winsock defines a standard service provider interface (SPI) between the application programming interfaces (API), which include header and library files in an SDK or DLLs (Winsock DLL, Ws2.dll) and the protocol stacks. Winsock supports multiple protocols including IPv6. The Winsock SPI can be used to create your own transport service provider or to extend an existing transport SPI by using a Layered Service Provider (LSP).&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Microsoft’s has done a good job of making Winsock API calls backwards compatible and minimizing versions. But there are differences which you should be aware of. Every version of Windows after Windows 95 has used Winsock version 2.2. Patched Windows 95 boxes should be running 2.0. In most cases the techniques here should work fine. However, Windows 95 originally shipped with version 1.0 and, only recently, Windows CE was upgraded from version 1.1 to &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcecomm5/html/wce50conwinsockarchitecture.asp"&gt;version 2.2&lt;/A&gt;. So if you are planning to deploy on Windows 95 or CE, be prepared for some extra research and testing&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;IP-based communication programming involves two basic categories of communications, connectionless and connection-oriented. The types of solutions we are discussing here use a connection oriented &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/socket_2.asp"&gt;SOCK_STREAM &lt;/A&gt;type socket over TCP versus a connectionless SOCK_DGRAM type socket over UDP.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Our socket communication will follow the following steps.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P class=article style="MARGIN: auto 0in auto 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;1) Create a socket&lt;BR&gt;2) Bind the socket to an address or end point&lt;BR&gt;3) Listen for an incoming communications attempt&lt;BR&gt;4) Accept the communication&lt;BR&gt;5) Send and receive messages buffers&lt;BR&gt;6) Shutdown the communication channel&lt;BR&gt;7) Close the socket connection&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;You will need to add the statement “using &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsockets.asp"&gt;System.Net&lt;/A&gt;;” to the top of your classes to try out the techniques listed here. This is the namespace containing most the classes you are going to need to create our sockets and manage the communications. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Each of the parties in a socket communication is called an end point. When you create your endpoint you need to decide which &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketsaddressfamilyclasstopic.asp"&gt;Address Family&lt;/A&gt; you are using. This specifies which addressing scheme that a socket will use to resolve an address. The one you will most likely use is "InterNetwork" which indicates that you are using IP version 4 such as what is used on most Ethernet networks and the Internet (e.g. 10.0.0.1). .NET and the .NET compact framework support a lot of addressing schemes out of the box. Some of the more useful and interesting ones include AppleTalk, ATM, Banyan, Data Link, ECMA, InterNetworkV6, NetBIOS, OSI and SNA. You can also specify "Unknown" and "Unspecified." This article addresses only “InterNetwork” addressing but the concepts detailed here transfer to the other address family types.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Each endpoint has a unique address which is a combination of an IP address and a port number. You will need the local IP addresses of your devices for communication to occur. There is an IPAddress class which you can instantiate it by passing the value of your IP address as a byte array or a long. If you need to pass in a string as your values then there is a parse method which is shown below&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;IPAddress.Parse(&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt; ipString);&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;This method will take the string and attempt to convert it to an IP Address.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Do not hard code your IP address as a constant or store it in a configuration file because these would have to change as the server’s IP address changes and it complicates working in a multi-server environment such as clusters or where you have separate development, testing, staging and production servers. For these and for a variety of reasons to you are going to want to look up the IP address dynamically.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;There are a lot of ways of dynamically looking up IP addresses including looking the IP address up in the registry. Unfortunately the registry keys you need can be different from one Windows version to another. Another way to do it is to query a local DNS server for the IP address. You can find these in the System.Net namespace. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;IPHostEntry myiHe = Dns.GetHostByName(Dns.GetHostName());&lt;BR&gt;IPAddress myIp = myiHe.AddressList[0];&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;To get the IP address from the DNS and assign the value to the IPAddress object we create an &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetiphostentryclasstopic.asp"&gt;IPHostEntry&lt;/A&gt; value and assign it to a DNS object using the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetdnsclassgethostbynametopic.asp"&gt;GetHostByName&lt;/A&gt; method which is familiar to &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/gethostbyname_2.asp"&gt;Winsock developers&lt;/A&gt;. In order to get the host by name we use the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetdnsclassgethostnametopic.asp"&gt;GetHostName&lt;/A&gt; method to tell us our local host name. Then we create an IPAddress object called myIp and set its value to the AddressList property. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Once you have your IPAddress value set then you need to establish a socket address to make your endpoint. The IPEndPoint requires an IP address and a port number. The IP address can be passed as either an IPAddress object like above or a long.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;IPEndPoint ipEnd = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; IPEndPoint(IPAddress address, &lt;SPAN style="COLOR: blue"&gt;int&lt;/SPAN&gt; port);&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;So using the example above the constructor could look like...&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;IPEndPoint ipEnd = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; IPEndPoint(myIp, 10000);&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Unlike the IP address you probably do want to make the port number both dynamic and configurable. You just want to make sure that you are not using a port that is needed by another application on your system and preferably not one used by other applications on your network. Make sure you look at a list of common port numbers and try to select one that will not conflict with common applications. You may want to discuss this with your network administrator, particularly if there is a chance your software will run over a firewall or VPN. There are lists of port numbers assignments available on the Internet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;When you create your socket you need to indicate the address family, socket type and protocol type. We have already said that we are using “InterNetwork” as our address type and now we are gong to look at the others.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;The socket type defines the type of data connection and the protocol type defines the network protocol. For IP communications using the InterNetwork address family we can select from the following combinations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;The one you are most likely option is to create a connection-oriented socket using a Stream socket type and TCP as the protocol. However if we want to create a connectionless socket then we use the Dgram socket type and UDP as our protocol. It is also possible to use the “Raw” socket type which supports ICMP and “Raw” as our protocol type values but both of these have specialized applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;The type of &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemNetSockets.asp"&gt;socket&lt;/A&gt; you decide to construct dictates the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketssocketoptionnameclasstopic.asp"&gt;options available&lt;/A&gt;. There are quite a few options including setting KeepAlives, MaxConnections, SendTimeout, receive options and multicasting options. Refer to the .NET documentation for &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketssocketoptionnameclasstopic.asp"&gt;SocketOptionName&lt;/A&gt; values associated with the type of socket that you have selected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;So now we are ready to create our socket object which has a number of important &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemNetSocketsSocketMethodsTopic.asp"&gt;methods&lt;/A&gt;. The constructor for it looks like this…&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;Socket myServer = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Next we bind it to our endpoint using the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketssocketclassbindtopic.asp"&gt;Bind()&lt;/A&gt; method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;myServer.Bind(ipEnd);&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Now we call the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketssocketclasslistentopic.asp"&gt;Listen()&lt;/A&gt; method, passing it an integer value representing the maximum length of the connection queue.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;myServer.Listen(10);&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;Next we create our socket client and call its &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemnetsocketssocketclassaccepttopic.asp"&gt;Accept()&lt;/A&gt; method. This method triggers the server to block, waiting for a client connection. Blocking communications can be controlled programmatically as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P style="MARGIN-LEFT: 0.5in"&gt;&lt;SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 'Courier New'"&gt;Socket myClient = myServer.Accept();&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=article style="MARGIN: auto 0in"&gt;&lt;SPAN style="FONT-SIZE: 11pt"&gt;&lt;FONT face=Arial&gt;That is all that is required to make a socket listener. I plan to follow up with a look at building a TCP listener client and finally communicating between the two.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=504868" width="1" height="1"&gt;</description></item><item><title>Windows Workflow on MSDN TV</title><link>http://blogs.msdn.com/mzammuto/archive/2005/12/14/503813.aspx</link><pubDate>Wed, 14 Dec 2005 23:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:503813</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/503813.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=503813</wfw:commentRss><description>Good &lt;A href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20051208WorkflowJC/manifest.xml"&gt;show&lt;/A&gt; guys. &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=503813" width="1" height="1"&gt;</description></item><item><title>Developing a Beta at Microsoft</title><link>http://blogs.msdn.com/mzammuto/archive/2005/12/09/502263.aspx</link><pubDate>Sat, 10 Dec 2005 01:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:502263</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/502263.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=502263</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;We are currently working on Beta 2 of &lt;A href="http://msdn.microsoft.com/windowsvista/building/workflow/default.aspx"&gt;Windows Workflow Foundation (WF)&lt;/A&gt;. For details on our release schedule you should read the official corporate information or contact your Microsoft representative. I thought outsiders would be interested in the development process at Microsoft as well as the status of the WF product development.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I have to summarize this because so many people fill so many important roles that it is impractical to try to mention them all here in any level of detail. &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The Windows Workflow Foundation team includes doc, operations, development, test and program management organizations plus release management. The program managers each focus on a vital piece of the software puzzle. They develop plans for and manage the implementation of all the things that go into our product, serving as a liaison with related stakeholders as needed. For example, Technology Adoption Program (TAP) Managers plan how we will engage customers during the development process who wish to build and release solutions that employ WF. These managers work with customers to help them adopt WF, guiding them as they upgrade to our eventual release version of the product and serve as their representatives here in the product group.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Beta versions of product are very different from released products, of course. Beta products are intended to help customers evaluate and learn our products and their use is governed by the EULA or other agreements. The process, goals and standards are different than in a final release and you must make sure you understand the implications of Beta software before you use it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;So what is the team up to these days?&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;UL style="MARGIN-TOP: 0in" type=disc&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Development has accomplished their goals for this Beta, the product is functionally complete and, subject to final testing, we have met the quality, performance, stress and other development goals for this release. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Operations has branched our code library which allows us to simultaneously prepare one version of code for Beta2 release while continuing to work on the v1 code. Other build activities include code signing and running certain verification tools on the builds. During the time between the branch and release of Beta2, some fixes could be done in both sets of code. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Our User Experience group has turned in what we expect will be the final Beta 2 user documentation and it is in our build. They are verifying certain tasks while continuing to develop doc for our final release product next year. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Test has declared that our most recent build meets initial quality standards to declare it as a candidate for release. This opens up the floodgates on a long list of tests and verification by a range of other people who will determine if this build accomplishes the goals that we have set for Beta 2. Test has also started a new automated test pass on this release candidate. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Localization is verifying that the goals for this release are complete and is managing the localization process. This includes the conversion of visual elements into Japanese and German but eventually may include many other languages. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Our TAP Managers continue to support our early adopters, including coaching them on the changes from Beta 1.x to Beta2. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Legal will verify that we have met corporate goals for the release, including such things as the approved EULAs are in the product setup and logged in our internal systems. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Security is verifying that we have accomplished our product and corporate security goals and is preparing for our final Secure Windows Initiative audit for this release. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Performance &amp;amp; Stress has made our Beta2 release goals for the product, subject to final test signoff. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;We continue to coordinate progress with our ‘internal partners’ who includes, among others, the Office group, Visual Studio, Longhorn and WinFX. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Test is completing a series of Release Criteria tasks including verifying the bits are signed, virus checking the build, double checking installation and uninstall, etc. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Privacy is verifying that we are in compliance with corporate standards for this release. &lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Support is verifying that Symbols are on our public symbols server and that our support plan is on schedule.&lt;o:p&gt;&lt;/o:p&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;There are dozens of other things that go into our product. We scan the product checking for undocumented APIs. We scan the product to verify that it does not contain images, symbols or words that fail our “geopolitical” standards. We use tools and techniques to scan the product to make sure the code meets corporate code quality standards.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;My days are filled principally with managing towards a smooth and on-time release of the product. I lead daily bug ‘triage’ meetings where the project leadership team reviews the outstanding bugs and dev and test report on their progress. I send a lot of email and organize a lot of meetings to follow up on the status of the outstanding project tasks. I am also tracking us against functional and quality requirements from Microsoft products that we are releasing with, such as Office and WinFX and working with the Program Managers who are manage our relationships with these groups. I also lead a weekly project leadership group meeting which is principally focused on project status issues, planning and updates from various team members. Also at these meetings we review other project related issues such as anything impacting our release criteria.&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;So that is a quick snapshot to give you just a taste of what it is like to deliver a Beta product to market at Microsoft. There are a lot of important roles, filled by hard working and smart people all dedicated to producing the best workflow technology possible. I hope that you will take time to research Windows Workflow Foundation, which is a powerful and exciting technology for building workflow enabled applications.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=502263" width="1" height="1"&gt;</description></item><item><title>Email: Not nearly dead yet</title><link>http://blogs.msdn.com/mzammuto/archive/2005/12/04/499973.aspx</link><pubDate>Mon, 05 Dec 2005 04:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:499973</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/499973.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=499973</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The author of &lt;a href="http://blogs.msdn.com/dominic/archive/2005/12/04/499938.aspx"&gt;this post &lt;/A&gt;argues the point that email is dead and that IM is the solution. I disagree. There are two elements of email that made it become a dominant form of communication in such a short period of time. It allows us to communicate asynchronously and its design centers on message persistence.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Take the telephone as an example. To enhance this synchronous form of communication we added receptionists and call forwarding and in order to have persistence we needed voice mail and even “sticky notes.” Synchronous communications are inherently disruptive, relying on all parties participating in the same activity at the same moment. This is just one of the reasons we view meetings as necessary evils.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Instant Messaging’s early adoption was among uber-geeks who were online a lot. But its adoption lagged behind email adoption among the occasionally connected. I used ICQ two years before AOL started getting into IM because that’s what my friends used. Similarly, chat rooms gained widespread adoption before IM because it was easier to find like-minded strangers online than it was to find your friends and family. IM took off as Internet adoption made it more likely your friends and family were online too. Today IM is hailed as the primary electronic communication mechanism among teens. This may be because they spend so much time available for communications and because they have a lesser need to persist their messages. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;So that brings to mind the issue of persistence. Email is a file transfer system and individual emails are actually separate files, in most cases. A system like this is inherently geared to allow for message persistence and simplifies organization. Email could have been designed to restrict transfer between organizations and individuals, such as a clearinghouse or other opt-in system but its widespread adoption would have been crippled by these complexities. Sure we complain about spam and email clutter but this is more an issue of too much of a good thing hinting at the need for evolution.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;IM is a replacement for vocal communications because it is synchronous and lacks persistence. Teenagers do not care about saving their messages, usually, but we in business secretly love this about email. We deride emails we see as being sent exclusively as CYA (Cover Your A**) messages. But this is an important element of email. It is harder to you to forget to do things with email and, more importantly, it is harder for &lt;I style="mso-bidi-font-style: normal"&gt;other&lt;/I&gt; people to forget to do things you have asked them to do. Persistence increases accountability even when we, and our lawyers, wish that it did not.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;This is why corporate IM will never supplant email in professional communications. The replacement for email is not IM it is something that we have not seen yet. Maybe it will look more like unified messaging that allows participants to switch among different communication mechanisms at any point in a conversation instead of being tied to the type of communication selected at the beginning of the conversation. Another element of next generation communication will include a mechanism to persist your contact information as you move and age. Email, mail and telephones all struggle with connecting people across stages in their lives and that is one of the reasons we have turned to blogs, personal web sites and social networks.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;No, email is not dead; it is a step along the way. But, what replaces it will look more like email than IM.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=499973" width="1" height="1"&gt;</description></item><item><title>Building Fire-Breathing Web Services</title><link>http://blogs.msdn.com/mzammuto/archive/2005/11/28/497552.aspx</link><pubDate>Mon, 28 Nov 2005 18:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:497552</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/497552.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=497552</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Verdana"&gt;I wrote this article about a year ago for an online magazine. It is based on concepts that were true in .NET 1.1 and should be updated.&amp;nbsp;If you are&amp;nbsp;using .NET 2.0 then&amp;nbsp;you need to further research thread pooling and attachments, I included some links to&amp;nbsp;help.&amp;nbsp;Most of these tips apply to .NET 1.1 and 2.0. &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Verdana"&gt;-------------------------------------------------------------------------------&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 12pt"&gt;&lt;SPAN style="COLOR: black; FONT-FAMILY: Verdana"&gt;When I first started writing web services a few years ago I noticed that they were often fairly slow. If you are writing web services using the same techniques that you wrote other types of distributed applications then your web services will be slow too. So here are some thoughts on making them fast and powerful. In short, making them fire breathing web services.&lt;BR&gt;&lt;BR&gt;The first step in building fire breathing web services is to make sure that you really should be using web services. ASP.NET web services uses XML serialization, do not forget how it works and what its characteristics are. Serialization and network communications are some of the most important bottlenecks in a high performance system. Use both sparingly and give thought to minimizing both wherever possible.&lt;BR&gt;&lt;BR&gt;The base functionality for your client request is provided in the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebservicesprotocolswebclientprotocolclasstopic.asp"&gt;WebClientProtocol&lt;/A&gt; base class. This is extended in the System.Web.Services.Protocols.HttpwebClientProtocol namespace. A client uses the System.Net classes to generate proxy classes to provide the web services access. Depending on your need the client will be one of three flavors. These are the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebservicesprotocolshttpgetclientprotocolclasstopic.asp"&gt;HttpGetClientProtocol&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebservicesprotocolshttppostclientprotocolclasstopic.asp"&gt;HttpPostClientProtocol&lt;/A&gt; or &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebservicesprotocolssoaphttpclientprotocolclasstopic.asp"&gt;SoapHttpClientProtocol&lt;/A&gt; proxy classes. These classes take the XML request serialize it into a SOAP message.&lt;BR&gt;&lt;BR&gt;ASP.NET clients use the same thread pool for encoding and transmission as do ASP.NET web services. So if you have both on the same computer, in addition to wasting time, you have a double hit on the local resources. The &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconconfiguringinternetapplications.asp"&gt;maxconnection&lt;/A&gt; setting in your machine.config file excludes local client calls so local calls can steal more resources from remote client calls. &lt;BR&gt;&lt;BR&gt;Make sure that you change the maxconnection setting in the machine.config file from 2 to something higher. I suggest experimenting starting with 10 connections for each processor in the server and heading up form there. You may find the number between 13 and 16. As you increase them the CPU utilization will increase. Shoot for 70 percent utilization as a maximum. As your users and application grow run periodic tests to ensure you are allocating the optimal level of connections.&lt;BR&gt;&lt;BR&gt;This is one of the key things to remember, whatever goes over your communication channel has to be serialized and formed into SOAP (or some other type of) messages and then transported and unserialized. Many client/server developers do not give consideration to what is going over the wire and with web services, your bad habits show through. Network round trips and unnecessarily large messages will hurt performance. Try to keep messages as small as possible and consider if compression is warranted. &lt;BR&gt;&lt;BR&gt;When IIS receives an HTTP request for an ASMX page it utilizes the aspnet_isapi.dll ISAPI extension. There is an ASP.NET worker process created and entered in a processing pipeline which is controlled by the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpruntimeclasstopic.asp"&gt;HttpRuntime object &lt;/A&gt;which passes it to the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpapplicationclasstopic.asp"&gt;HttpApplication object &lt;/A&gt;and the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconhttpmodules.asp"&gt;HttpModule&lt;/A&gt; objects specified in your section of the Web.config file or the Machine.config file. &lt;BR&gt;&lt;BR&gt;After execution of the modules in the pipeline, the asmx extension is verified with the WebServiceHandlerFactory handler to create a handler instance. This instance of the WebServiceHandler is what is responsible for processing web service requests. The HTTP handler uses reflection to generate method invocations from the SOAP message. &lt;BR&gt;&lt;BR&gt;Web services are usually either messaging oriented or RPC (objects and methods) oriented. &lt;BR&gt;&lt;BR&gt;Use primitive types at all times if you can. Methods should be stateless and should be combined. Create methods that take multiple parameters and perform multiple functions to reduce round trips. &lt;BR&gt;&lt;BR&gt;Try to avoid state. I personally think state is overused. Make sure that you consider the scalability costs of state management. Be wary of excessive state management. Methods should not be stateful. If you need state and are willing to trade off performance for scalability then you can pass state back in forth in your calls instead of managing it server side. &lt;BR&gt;&lt;BR&gt;Validate up front. As a rule, validate data at the earliest possible point. If you cannot validate at the user input then validate it before your message is created. Do not waste round trips on invalid data formats. A good option is to validate against a schema stored on the server. You can use XmlValidatingReader to download an XSD and validate client side before sending off the message. &lt;BR&gt;&lt;BR&gt;Your parameters should be formatted using the default literal format except where you have interoperability with non.NET web services. In that case you will need SOAP formatting. &lt;BR&gt;&lt;BR&gt;Bulk data can be transferred by returning in the SOAP message the URL of a file to download. This can save a ton of time serializing, compressing, etc large data transfers. You can also use chunking of fixed size byte arrays. SOAP attachments can be &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwse/html/wsedime.asp"&gt;WS-attachments&lt;/A&gt;, Base 64 encoded or SOAP Message Transmission Optimization Mechanism (&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wse3.0/html/90c91796-fbf9-4ea0-b5b7-6203561d0255.asp"&gt;MTOM&lt;/A&gt;). &lt;BR&gt;&lt;BR&gt;If you are subject to sudden bursts in traffic then you would experience a performance lag during a traffic burst as the application suddenly needs to create more threads to handle the increase. If you are using .NET framework 1.1 or newer then you can set &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemthreadingthreadpoolclasssetminthreadstopic.asp"&gt;SetMinThreads&lt;/A&gt; method of the &lt;A href="http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/"&gt;ThreadPool&lt;/A&gt; class. &lt;BR&gt;&lt;BR&gt;I hope these thoughts are helpful and I hope to see fire coming from your next web service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=497552" width="1" height="1"&gt;</description></item><item><title>Windows Vista screenshots</title><link>http://blogs.msdn.com/mzammuto/archive/2005/11/23/496406.aspx</link><pubDate>Wed, 23 Nov 2005 19:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:496406</guid><dc:creator>mzammuto</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/496406.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=496406</wfw:commentRss><description>&lt;P&gt;If you have not had a chance to try out Vista yet then these &lt;A href="http://www.pro-networks.org/forum/viewtopic.php?p=553044"&gt;screenshots&lt;/A&gt; will interest you. It includes IE 7.0, Media Player 11 and more.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#006400&gt;UPDATE:&lt;/FONT&gt;&lt;/STRONG&gt; I saw the commment about registration, try&amp;nbsp;&lt;A href="http://www.pro-networks.org/vista/screenshots/"&gt;this link too&lt;/A&gt;. Also see links on &lt;A href="http://www.microsoft.com/windowsvista/organization.mspx"&gt;Microsoft.com&lt;/A&gt;&amp;nbsp;or &lt;A href="http://www.microsoft.com/windowsvista/clear.mspx"&gt;here&lt;/A&gt; and&amp;nbsp;&lt;A href="http://www.formulapc.net/news+article.storyid+1362.htm"&gt;another&lt;/A&gt;&amp;nbsp;third party. Yet &lt;A href="http://babelfish.altavista.com/babelfish/trurl_pagecontent?lp=ru_en&amp;amp;trurl=http%3a%2f%2fthevista.ru%2fpage.php%3fid%3d627%26PHPSESSID%3d32cfcd30cc122c8e94c0bbb7696f1226"&gt;another&lt;/A&gt; and here are some &lt;A href="http://www.activewin.com/screenshots/vista/nov05ctp/"&gt;higher res pics&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=496406" width="1" height="1"&gt;</description></item><item><title>10 reasons to love Windows Workflow Foundation</title><link>http://blogs.msdn.com/mzammuto/archive/2005/11/23/496393.aspx</link><pubDate>Wed, 23 Nov 2005 18:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:496393</guid><dc:creator>mzammuto</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/496393.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=496393</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;Thanks for reading. Check out the Windows Workflow Beta 1.2: We have two different download pages. One is tailored for&amp;nbsp;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=e27aa8dc-a029-4836-ac59-6b4805df42fa&amp;amp;displaylang=en"&gt;Office 12 users and developers&amp;nbsp;&lt;/A&gt;and the other is tailored for &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=589e23dd-503e-4179-9858-d080c669f8b9&amp;amp;displaylang=en"&gt;WinFX developers&lt;/A&gt;.&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;OL style="MARGIN-TOP: 0in" type=1&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Ubiquitous.&lt;/B&gt; Single Workflow for Microsoft Windows which will serve as the workflow engine for WinFX, Office 12, SharePoint and many other products as well being implemented by ISVs and corporate developers.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Flexible.&lt;/B&gt; Windows Workflow is a framework, not an application, and it together development of Human Workflow (Information Worker) and System workflow (B2B) systems allowing you to consolidate your collaboration and business development to one technology. Your solutions can take a wide range of forms such as client/server applications, web services, SharePoint applications and Microsoft Office applications.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Changes its mind.&lt;/B&gt; Designing human workflow can be very frustrating to developers and human workflow development projects are highly prone to scope-creep. The truth is that people do not like to have their options limited. Our decision tree has a lot of branches. Flexible Control Flow allows your workflow to mirror human decision processes. WF also supports long running and stateful workflows.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;You can pick it up fast.&lt;/B&gt; The WF framework provides an abstraction from low-level workflow code and integrates into Visual Studio 2005. You do not need to learn some third party tool or master some complex middleware, just use your favorite .NET language. Developers can create custom activity libraries or download activities developed by others which have been posted at &lt;A href="http://www.windowsworkflow.net"&gt;WindowsWorkflow.Net&lt;/A&gt;. You can even define workflow classes using XAML.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;An air of mystery.&lt;/B&gt; Come on! It has been called WinOE, Windows Workflow Services, WWF and WF. Anything that has had so many names before it is even released HAS to pique your interest&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;On-ramp for BizTalk developers.&lt;/B&gt; The Windows Workflow Foundation Workflow Designer looks much like BizTalk Server Orchestration Designer. Microsoft’s Connected Systems division is producing both offerings and we want to give BizTalk developers a leg up on creating workflow applications. Just think of WF as a new bow in your quiver. For example, use WF when you need a human workflow solution, such as a document-centric application, that needs to execute on a client system.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Microsoft Office.&lt;/B&gt; Office has emerged the development platform of choice for many corporate developers. As we have previously announced “Workflow in Office ‘12’ server and client products will rely on and extend the Windows Workflow Foundation-based workflow support in Windows SharePoint Services. Supporting workflows covering formal document processes, Web content management, and more. Office ‘12’ will also allow business users to create document-centric workflows. Web Designers can use Microsoft FrontPage can use a rule-based approach rather than the graphically-oriented technology of the Workflow Designer. Office ‘12’ servers will also include a set of Office-specific Windows Workflow Foundation activities for working with tasks and documents, along with support for creating forms using Microsoft InfoPath”.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;WinFX integration.&lt;/B&gt; WinFX is the developer platform for Windows Vista and Windows “codename Longhorn” Server and will include Windows Workflow Foundation. You can also install WinFX Runtime Components for Windows XP and Windows Server 2003 so WF can power all of your WinFX-based workflow needs.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Our prices are insane!!&lt;/B&gt; Workflow is expensive to develop, extend &amp;amp; maintain. Microsoft is consolidating many of our own workflow needs into WF and making them available to the developer community. There will also be no additional charge for the WinFX Runtime Components. The Visual Studio extensions for Windows Workflow are available as a free download and provide you with an ongoing upgrade path.&lt;/LI&gt;
&lt;LI class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Workflow is a competitive advantage:&lt;/B&gt; Technology is a tool for productivity gains. We buy some technology because we like it, sure. But the engine of global advancement is realized through gains on personal and professional productivity. In the 1980s we began to revolutionize the information worker’s productivity, in the 1990s we tackled communications and accessibility of data. I believe the next big source of gains in human productivity will come from reducing the friction between our actions, making us smarter, faster, more and accurate. In short, we are all workflow developers now.&lt;/LI&gt;&lt;/OL&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-list: l0 level1 lfo1; tab-stops: list .5in"&gt;Have a very Happy Thanksgiving, - &lt;A href="http://www.michaelzammuto.com/"&gt;Michael Zammuto&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=496393" width="1" height="1"&gt;</description></item><item><title>New WinFX CTP &amp; Workflow Beta 1.2</title><link>http://blogs.msdn.com/mzammuto/archive/2005/11/18/494531.aspx</link><pubDate>Fri, 18 Nov 2005 17:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:494531</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/494531.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=494531</wfw:commentRss><description>&lt;P&gt;We released Beta 1.2 of Windows Workflow Foundation two weeks ago for &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=e27aa8dc-a029-4836-ac59-6b4805df42fa&amp;amp;displaylang=en"&gt;Office 12 Beta 1&lt;/A&gt;. But WinFX developers could not use this new Workflow since WF Beta 1.2 is not compatable with the September CTP of WinFX. The wait is over. The WinFX November CTP is now available and is compatable with WF Beta 1.2. Development of rich WinFX&amp;nbsp; and human workflow applications using Windows Workflow is easy with Visual Studio extensions for both products built using a single workflow framework.&lt;/P&gt;
&lt;P&gt;Here is a first unified view of the future of Windows applications. The combined power of WinFX, Office 12 and Windows Workflow promises to fundamentally change application development. Use a single set of tools to build a broad range of user collaboration and enterprise workflow applications. Flexibility, power, speed to market&amp;nbsp;and ease of use. It has never been a better time to be a developer.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E5376297-DA10-4FC3-967D-38C96F767FC4&amp;amp;displaylang=en"&gt;Microsoft Pre-Release Software WinFX Runtime Components - November Community Technology Preview (CTP)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0A118D5F-21E7-4A3E-82D9-F30C6CE3F63D&amp;amp;displaylang=en"&gt;Microsoft® Windows® Software Development Kit (SDK) for the November 2005 WinFX® Runtime Components Community Technology Preview (CTP)&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=589e23dd-503e-4179-9858-d080c669f8b9&amp;amp;displaylang=en"&gt;Visual Studio 2005 Extensions for Windows Workflow Foundation Beta 1.2 for Microsoft Pre-Release Software WinFX Runtime Components - November CTP&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Is you have the WinFX September CTP installed you need the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146&amp;amp;displaylang=en"&gt;Pre-released WinFX Runtime Components Uninstall Tool&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=494531" width="1" height="1"&gt;</description></item><item><title>Windows Live Rocks</title><link>http://blogs.msdn.com/mzammuto/archive/2005/11/11/492006.aspx</link><pubDate>Sat, 12 Nov 2005 03:07:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:492006</guid><dc:creator>mzammuto</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/492006.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=492006</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;I am a Beta user of Windows Live mail service. So when I sign into my Hotmail account I am redirected to the Windows Live Mail interface. Love it. Lots of great features a la &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; technology. Drag and drop, context menus, lightning fast search. I can also get there from &lt;A href="http://www.live.com"&gt;Live.com &lt;/A&gt;which displays an inbox mail Gadget. Along with customized news, the weather (I don’t need technology to tell me it is going to rain here in greater &lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;Seattle&lt;/st1:place&gt;&lt;/st1:City&gt;, but nice to have anyway) and other features. I think it is clear that Microsoft is on the right track with web based software services and I look forward to seeing what is next.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=492006" width="1" height="1"&gt;</description></item><item><title>New Beta: Windows® Workflow Foundation Beta 1.2 for Office "12" (Beta 1)</title><link>http://blogs.msdn.com/mzammuto/archive/2005/11/04/489339.aspx</link><pubDate>Sat, 05 Nov 2005 03:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:489339</guid><dc:creator>mzammuto</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mzammuto/comments/489339.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mzammuto/commentrss.aspx?PostID=489339</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Tonight we released &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e27aa8dc-a029-4836-ac59-6b4805df42fa&amp;amp;displaylang=en"&gt;Windows Workflow Foundation (WF) Beta 1.2&lt;/A&gt;. This software is an&amp;nbsp;update to the WF released at PDC.&amp;nbsp;There are two downloads available. One consists of the platform components for Office 12 Beta users needed to run WF applications. The other download consists of solution templates, activities, the SDK and other tools for workflow developers who are using the Visual Studio 2005 release candidate. Make sure that you &lt;A href="http://download.microsoft.com/download/5/e/7/5e7cc6c8-3d81-4912-b1a0-5a7253bc266b/WWFOFFICE12.htm"&gt;read the instructions&lt;/A&gt;!&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;WF is an exciting product in a number of ways. Internally, a number of key Microsoft products including Office and &lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:place w:st="on"&gt;Vista&lt;/st1:place&gt; will be implementing workflow functionality using WF. Like so many other organizations, several of Microsoft’s products have implemented workflow by building the functionality into the product. As an organization that marks an opportunity for us to consolidate our workflow related efforts into a reusable offering that will save us money and make us more efficient. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Similarly, corporate developers and ISVs should find the product to be a huge timesaver in building rich workflow applications. I spent a lot of my career in corporate development and managing product development for ISVs and workflow is another piece of the puzzle.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;There is a great new &lt;A href="http://www.microsoft.com/events/EventDetails.aspx?CMTYSvcSource=MSCOMMedia&amp;amp;Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22ID%22+Value%3d%221032283992%22%2f%5e%7earg+Name%3d%22ProviderID%22+Value%3d%22A6B43178-497C-4225-BA42-DF595171F04C%22%2f%5e%7earg+Name%3d%22lang%22+Value%3d%22en%22%2f%5e%7earg+Name%3d%22cr%22+Value%3d%22US%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e"&gt;webcast&lt;/A&gt; available featuring John Evdemon and Paul Andrew. For more information you can visit &lt;A href="http://www.windowsworkflow.net/"&gt;WindowsWorkflow.NET&lt;/A&gt;. Be aware that at this time the download links point to the PDC bits.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=489339" width="1" height="1"&gt;</description></item></channel></rss>