<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Kirk Evans Blog</title><subtitle type="html">.NET From a Markup Perspective</subtitle><id>http://blogs.msdn.com/kaevans/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/kaevans/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2009-07-01T18:05:01Z</updated><entry><title>SharePoint Live Virtual Conference &amp; Expo</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/11/04/sharepoint-live-virtual-conference-expo.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/11/04/sharepoint-live-virtual-conference-expo.aspx</id><published>2009-11-04T13:06:00Z</published><updated>2009-11-04T13:06:00Z</updated><content type="html">&lt;P&gt;Register today for the free&amp;nbsp;&lt;A href="http://sharepointvcx.com/default.aspx" mce_href="http://sharepointvcx.com/default.aspx"&gt;SharePoint Live Virtual Conference &amp;amp; Expo&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;Hard to get out of the office?&amp;nbsp; Training dollars are limited?&amp;nbsp; We're bringing you a FREE virtual event on one of the most anticipated software releases - &lt;STRONG&gt;SharePoint 2010&lt;/STRONG&gt; - live from the convenience of your office.&lt;/P&gt;
&lt;P&gt;We're kicking off the SharePoint Live conference with a keynote address by Arpan Shah, Director, SharePoint Product Management team, Microsoft. Then, we're straight into sessions on:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The SharePoint 2010 Roadmap&lt;/LI&gt;
&lt;LI&gt;Your first look at the new SharePoint tools&lt;/LI&gt;
&lt;LI&gt;Integrating Silverlight with SharePoint 2010 &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This FREE event requires no travel, no conference fees and no time away from work. You and your team can listen to the industry's most respected speakers on topics you must know, and solutions that make it all happen. You can also network directly one-on-one through the Virtual Expo Hall.&lt;/P&gt;
&lt;P&gt;SharePoint 2010 Live's revolutionary Virtual Expo Hall gives you the full-fidelity experience of a real conference, without all the travel. Interact directly with real people in each virtual expo booth. Learn about their products, ask questions, and get the answers you need. Along with our live presentations, our Virtual Expo hall puts the "Live" in SharePoint 2010 Live.&lt;/P&gt;
&lt;P&gt;Learn about the improvements Microsoft has made to the SharePoint platform and how the new features can be implemented to add value to your organization. This virtual conference will feature tracks delivered by members of Microsoft's SharePoint product team, well known instructors from Critical Path Training and trusted partners from the SharePoint industry. &lt;/P&gt;
&lt;P&gt;Learn more and register&amp;nbsp;at &lt;A href="http://sharepointvcx.com/default.aspx"&gt;http://sharepointvcx.com/default.aspx&lt;/A&gt;.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Follow the buzz&amp;nbsp;on Twitter (&lt;A href="http://twitter.com/SharePointVCX"&gt;http://twitter.com/SharePointVCX&lt;/A&gt;), and use the Twitter hashtag &lt;A href="http://twitter.com/search?q=%23SharePointVCX" mce_href="http://twitter.com/search?q=%23SharePointVCX"&gt;#SharePointVCX&lt;/A&gt; when posting about the event!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917315" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term=".NET Programming" scheme="http://blogs.msdn.com/kaevans/archive/tags/.NET+Programming/default.aspx" /><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="Security" scheme="http://blogs.msdn.com/kaevans/archive/tags/Security/default.aspx" /><category term="ASP.NET" scheme="http://blogs.msdn.com/kaevans/archive/tags/ASP.NET/default.aspx" /><category term="AJAX" scheme="http://blogs.msdn.com/kaevans/archive/tags/AJAX/default.aspx" /><category term="Architecture" scheme="http://blogs.msdn.com/kaevans/archive/tags/Architecture/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/kaevans/archive/tags/Silverlight/default.aspx" /><category term="LINQ" scheme="http://blogs.msdn.com/kaevans/archive/tags/LINQ/default.aspx" /><category term="Microsoft Office" scheme="http://blogs.msdn.com/kaevans/archive/tags/Microsoft+Office/default.aspx" /><category term="Visual Studio 2010" scheme="http://blogs.msdn.com/kaevans/archive/tags/Visual+Studio+2010/default.aspx" /></entry><entry><title>Water Cooler Interviews with Arpan Shah and Tom Rizzo</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/10/21/water-cooler-interviews-with-arpan-shah-and-tom-rizzo.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/10/21/water-cooler-interviews-with-arpan-shah-and-tom-rizzo.aspx</id><published>2009-10-21T15:54:00Z</published><updated>2009-10-21T15:54:00Z</updated><content type="html">&lt;P&gt;At the SharePoint Conference 2009, I had the privilege to interview both Tom Rizzo, Senior Director for SharePoint, and Arpan Shah, Director for SharePoint.&amp;nbsp; These interviews contain some great information about the roadmap for .NET 4 and SharePoint, Azure and cloud storage, and our increased capability to deliver world class public facing internet sites with SharePoint 2010.&amp;nbsp; &lt;/P&gt;
&lt;H3&gt;&lt;A href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Arpan-Shah/" mce_href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Arpan-Shah/"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=clip_image002 border=0 alt=clip_image002 src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/WaterCoolerInterviewswithArpanShahandTom_994A/clip_image002_3.gif" width=240 height=180 mce_src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/WaterCoolerInterviewswithArpanShahandTom_994A/clip_image002_3.gif"&gt;&lt;/A&gt;&lt;A href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Arpan-Shah/" mce_href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Arpan-Shah/"&gt;Water Cooler Interview with Arpan Shah&lt;/A&gt;&lt;/H3&gt;
&lt;P&gt;Posted By: &lt;A href="http://channel9.msdn.com/Niners/kirke/" mce_href="http://channel9.msdn.com/Niners/kirke/"&gt;Kirk Evans&lt;/A&gt; | Oct 20th @ 9:04 PM | 339 Views | 0 Comments &lt;/P&gt;
&lt;P&gt;Host &lt;A href="http://blogs.msdn.com/kaevans" mce_href="http://blogs.msdn.com/kaevans"&gt;Kirk Evans &lt;/A&gt;talks with &lt;A href="http://blogs.msdn.com/arpans" mce_href="http://blogs.msdn.com/arpans"&gt;Arpan Shah&lt;/A&gt;, Director for SharePoint at Microsoft.&amp;nbsp; In this interview, we discuss a bit of web content management and using SharePoint 2010 for public facing internet sites.&amp;nbsp; We talk about the implications of Azure for storage, and discuss the developer features that were announced this week.&amp;nbsp; I had a great time doing this interview, I hope you enjoy it! &lt;/P&gt;
&lt;P&gt;Tags: &lt;A href="http://channel9.msdn.com/tags/Office+2010/" mce_href="http://channel9.msdn.com/tags/Office+2010/"&gt;Office 2010&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/Sharepoint/" mce_href="http://channel9.msdn.com/tags/Sharepoint/"&gt;Sharepoint&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/SharePoint+Customization/" mce_href="http://channel9.msdn.com/tags/SharePoint+Customization/"&gt;SharePoint Customization&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/Visual+Studio+2010/" mce_href="http://channel9.msdn.com/tags/Visual+Studio+2010/"&gt;Visual Studio 2010&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/Water+Cooler/" mce_href="http://channel9.msdn.com/tags/Water+Cooler/"&gt;Water Cooler&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/WCM/" mce_href="http://channel9.msdn.com/tags/WCM/"&gt;WCM&lt;/A&gt;&lt;/P&gt;
&lt;H3&gt;&lt;A href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Tom-Rizzo/" mce_href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Tom-Rizzo/"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=clip_image004 border=0 alt=clip_image004 src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/WaterCoolerInterviewswithArpanShahandTom_994A/clip_image004_3.gif" width=240 height=180 mce_src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/WaterCoolerInterviewswithArpanShahandTom_994A/clip_image004_3.gif"&gt;&lt;/A&gt;&lt;A href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Tom-Rizzo/" mce_href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Tom-Rizzo/"&gt;Water Cooler Interview with Tom Rizzo&lt;/A&gt;&lt;/H3&gt;
&lt;P&gt;Posted By: &lt;A href="http://channel9.msdn.com/Niners/kirke/" mce_href="http://channel9.msdn.com/Niners/kirke/"&gt;Kirk Evans&lt;/A&gt; | Oct 20th @ 9:04 PM | 336 Views | 0 Comments &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/kaevans" mce_href="http://blogs.msdn.com/kaevans"&gt;Kirk Evans&lt;/A&gt; interviews &lt;A href="http://blogs.msdn.com/thomriz/" mce_href="http://blogs.msdn.com/thomriz/"&gt;Tom Rizzo&lt;/A&gt;, Senior Director for SharePoint.&amp;nbsp; In this interview, we discuss some of the announcements that were made in the keynote, developer tools, options for hosting on premise or in the cloud, and we discuss SharePoint 2010 and the roadmap for .NET 4.&amp;nbsp; This was a great interview, Tom is a very energetic speaker. &lt;/P&gt;
&lt;P&gt;Tags: &lt;A href="http://channel9.msdn.com/tags/Office+2010/" mce_href="http://channel9.msdn.com/tags/Office+2010/"&gt;Office 2010&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/Sharepoint/" mce_href="http://channel9.msdn.com/tags/Sharepoint/"&gt;Sharepoint&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/SharePoint+BDC/" mce_href="http://channel9.msdn.com/tags/SharePoint+BDC/"&gt;SharePoint BDC&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/SharePoint+Customization/" mce_href="http://channel9.msdn.com/tags/SharePoint+Customization/"&gt;SharePoint Customization&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/SharePoint+Development+Methodology/" mce_href="http://channel9.msdn.com/tags/SharePoint+Development+Methodology/"&gt;SharePoint Development Methodology&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/Visual+Studio+2010/" mce_href="http://channel9.msdn.com/tags/Visual+Studio+2010/"&gt;Visual Studio 2010&lt;/A&gt;, &lt;A href="http://channel9.msdn.com/tags/Water+Cooler/" mce_href="http://channel9.msdn.com/tags/Water+Cooler/"&gt;Water Cooler&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910675" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="Water Cooler" scheme="http://blogs.msdn.com/kaevans/archive/tags/Water+Cooler/default.aspx" /><category term="Visual Studio 2010" scheme="http://blogs.msdn.com/kaevans/archive/tags/Visual+Studio+2010/default.aspx" /></entry><entry><title>2 Coolest Things: Boot to VHD, and TFS Basic</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/10/17/2-coolest-things-boot-to-vhd-and-tfs-basic.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/10/17/2-coolest-things-boot-to-vhd-and-tfs-basic.aspx</id><published>2009-10-17T22:37:00Z</published><updated>2009-10-17T22:37:00Z</updated><content type="html">&lt;P&gt;This is an email that I sent to my co-workers, and decided that it's something I should share with the masses.&amp;nbsp; I've been doing the same job for almost 6 years, not a whole lot gets me jazzed about technology these days.&amp;nbsp; This past week, I had 2 moments where I sat up in my seat and gave thanks to the Gods in Redmond.&amp;nbsp; So, here's the email that I sent to my group.&lt;/P&gt;
&lt;P&gt;==============================&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From: Kirk Evans&lt;/P&gt;
&lt;P&gt;To: Harry Mower's Direct Reports&lt;/P&gt;
&lt;DIV&gt;Ya know those moments when you read something, try it, and then you stand back in amazement that it works so easily?&amp;nbsp; I had two of those moments this week.&amp;nbsp; The two coolest things I have learned about lately are Boot to VHD and TFS Basic.&amp;nbsp; &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;Boot to VHD&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;I have 2 machines, and I tried to use Hyper-V.&amp;nbsp; Problem is that you only can allocate up to 70% of the RAM for your machine without causing perf issues, so a machine with 8GB RAM can only handle up to a 5.6GB VM.&amp;nbsp; Some of&amp;nbsp;the technologies that I am showing these days require at least 6GB (especially those that haven't gone through perf testing yet), so the loss of RAM is very painful.&amp;nbsp; The VMs can't use wireless due to corp policy restrictions on connection sharing, and can't use USB, and can't see the host machine, and the list goes on.&amp;nbsp; You can try to dual boot machines, but then you run into problems when you want to install the same program on both OS's on the machine... some programs flat out don't like to be installed twice on the same drive.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Then I learned about Boot to VHD.&amp;nbsp; In short, you can create a VHD using Windows 7 or Windows Server 2008 R2 and then boot into it.&amp;nbsp; Why this is so cool is that you get all of your RAM (not just 70%).&amp;nbsp; You get access to USB.&amp;nbsp; You get wireless networking.&amp;nbsp; You even see the C: drive for your primary OS.&amp;nbsp; It's not a virtual machine, the VHD is just a container.&amp;nbsp; The coolest aha moment was when I copied the VHD from my Windows Server 2008 R2 machine to my Windows 7 machine and then booted into it.. from a completely different machine, different hardware, different OS.&amp;nbsp; I can now safely install, uninstall, wipe clean, etc with various beta products without affecting my day-to-day productivity environment.&amp;nbsp; And when the beta expires or a new version comes out, I can just delete the .VHD.&amp;nbsp; So incredible.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;You just have to try this to get the full aha moment.&amp;nbsp; &lt;A href="http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx" mce_href="http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx"&gt;http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;STRONG&gt;TFS Basic&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV&gt;I didn't grasp this when Hans and David presented to us.&amp;nbsp; This is just flat out cool.&amp;nbsp; I can create a small VHD with&amp;nbsp;a minimum footprint for Team Foundation Server that allows me to do just workitems, builds, and source control.&amp;nbsp; It took less than 20 minutes to put together a small VHD that I can now use with my Visual Studio 2010 demos to quickly connect to source control, check in, create work items, and run a team build.&amp;nbsp; Here's what's so cool... I only installed Server 2008 R2 and TFS.&amp;nbsp; I didn't have to install SharePoint, SQL, I didn't have to do anything to make a domain controller, I only had to add the web server role and install TFS with the Basic configuration.&amp;nbsp; It installs SQL Express and does everything else for me.&amp;nbsp; So easy.&amp;nbsp; &lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Consider creating a Boot to VHD image with TFS and Expression Studio in it to show off the TFS integration without a huge amount of processor overhead.&amp;nbsp; It's one thing to show a slide and explain away "yeah, you can do that."&amp;nbsp; It's completely another to show a check-in from Blend.&amp;nbsp; This is awesome.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;A href="http://blogs.msdn.com/bharry/archive/2009/10/01/tfs-2010-for-sourcesafe-users.aspx" target=_blank mce_href="http://blogs.msdn.com/bharry/archive/2009/10/01/tfs-2010-for-sourcesafe-users.aspx"&gt;http://blogs.msdn.com/bharry/archive/2009/10/01/tfs-2010-for-sourcesafe-users.aspx&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9908666" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="VSTS" scheme="http://blogs.msdn.com/kaevans/archive/tags/VSTS/default.aspx" /><category term="virtual pc" scheme="http://blogs.msdn.com/kaevans/archive/tags/virtual+pc/default.aspx" /><category term="Expression Studio" scheme="http://blogs.msdn.com/kaevans/archive/tags/Expression+Studio/default.aspx" /><category term="hyper-v" scheme="http://blogs.msdn.com/kaevans/archive/tags/hyper-v/default.aspx" /><category term="tfs" scheme="http://blogs.msdn.com/kaevans/archive/tags/tfs/default.aspx" /></entry><entry><title>Showing a List of Today’s Birthdays in SharePoint</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/10/12/showing-a-list-of-today-s-birthdays-in-sharepoint.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/10/12/showing-a-list-of-today-s-birthdays-in-sharepoint.aspx</id><published>2009-10-12T15:36:28Z</published><updated>2009-10-12T15:36:28Z</updated><content type="html">&lt;p&gt;A customer pinged me with an interesting request:&amp;#160; given a SharePoint list called “Birthdays” that contains name, month, and day, how can I display a list of today’s birthdays?&amp;#160; I could do this with my eyes closed if I were writing code, but I know that this customer is not interested in writing more custom code.&amp;#160; In fact, he wants to learn about ways that you can make changes like this to SharePoint without requiring a developer.&lt;/p&gt;  &lt;p&gt;After a bit of tinkering, here is what I came up with.&amp;#160; Let me know if you come up with something different.&lt;/p&gt;  &lt;h2&gt;Using SharePoint Designer 2007&lt;/h2&gt;  &lt;p&gt;SharePoint Designer 2007 has a great capability to create what is known as a DataViewWebPart (DVWP for short).&amp;#160; To insert it, just go to the Data View menu and choose “Insert Data View”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_thumb_1.png" width="244" height="171" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;SharePoint Designer 2007 will then ask you to choose a data source from the Data Source Library pane.&amp;#160; Choose the list you want, and click “Show Data” to see the columns and the data in the columns.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_thumb_2.png" width="183" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once you click the Show Data menu item, you will see the columns and data.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_thumb_3.png" width="213" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Select some of the columns, then drag them onto your page where you want the data to be displayed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_thumb_4.png" width="244" height="88" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The next part is to apply filtering.&amp;#160; See that little arrow pointing right at the top right corner of our newly added web part?&amp;#160; Click that to bring up the options for the web part.&amp;#160; Click the Filter option.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_thumb_5.png" width="231" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the Filter Criteria box, select the “Add XSLT Filtering” checkbox, this will enable the Edit button.&amp;#160; Click the edit button to edit the XSLT filter.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_thumb_6.png" width="244" height="148" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once you click Edit, you have a screen that lets you define the XPath expression for the filter.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ShowingaListofTodaysBirthdaysinSharePoin_13B61/image_thumb_7.png" width="244" height="179" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The value I entered for the XPath expression is:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;[contains(string(ddwrt:FormatDate(string(ddwrt:Today()),1033,15)),@Month) and @Day=substring(ddwrt:TodayIso(),9,2)]&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The next bit is a little more complicated… how in the world did we come up with this XPath expression?&lt;/p&gt;  &lt;h2&gt;Explaining the XPath Filter&lt;/h2&gt;  &lt;p&gt;The XPath filter expression is a little easier to read if you break it down into its parts.&amp;#160; It is looking for rows that have the current month name (such as “October”) and the current day (such as “10”).&amp;#160; To see this, let’s work inside-out and build this thing up.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;ddwrt:Today()&lt;/em&gt;&lt;/strong&gt; – today’s date&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;string&lt;/u&gt;(ddwrt:Today())&lt;/em&gt;&lt;/strong&gt; – today’s date is a datetime data type, we convert it to a string value&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;ddwrt:FormatDate&lt;/u&gt;(string(ddwrt:Today()),1033,15)&lt;/em&gt;&lt;/strong&gt; – we use the function FormatDate, which requires 3 parameters (string, long, long).&amp;#160; This is why we converted the value in the previous step to a string.&amp;#160; The second parameter is the locale, 1033 being the English locale.&amp;#160; The final parameter indicates the format to use.&amp;#160; I had to search on this one, and used &lt;a href="http://autosponge.spaces.live.com/blog/cns!D7F85948C20F0293!378.entry"&gt;Paul’s post on ddwrt FormatDate and FormatDateTime&lt;/a&gt; to understand which value to put in here.&amp;#160; I needed something that would cause the month name to show up, and format 15 fits the bill.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;u&gt;contains&lt;/u&gt;(string(ddwrt:FormatDate(string(ddwrt:Today()),1033,15)),@Month)&lt;/em&gt;&lt;/strong&gt; – The contains function is used here to find a substring within a string.&amp;#160; We have the full date from ddwrt:Today, and we represent it with a string like “Saturday, October 10, 2009” through the FormatDate function.&amp;#160; We now only need to find if the string in the Month column is found in the string representing today’s date.&amp;#160; As an example, today’s date is “Saturday, October 10, 2009”, so I match any row with the value “October” in the Month column.&amp;#160; If the value in the Month column for the current row is “July”, then we would not match that row and it would not be included in the results.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ddwrt:TodayIso()&lt;/strong&gt; – This handy little function returns dates in the format &lt;em&gt;yyyy-mm-ddThh:mm:ssZ&lt;/em&gt; . We will use this to obtain the current day.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;substring(ddwrt:TodayIso(),9,2)&lt;/strong&gt; – Today’s date as returned from ddwrt:TodayIso is “2009-10-10”.&amp;#160; So, I can use the substring starting at the 9th position and working for 2 characters to retrieve the date as a substring of today’s date.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;@Day=substring(ddwrt:TodayIso(),9,2)&lt;/strong&gt; – This is where we actually filter the values.&amp;#160; We will only match rows that meet the condition above (obtaining the current month name) and the condition that the value in the Day column matches today’s day numeric value.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What’s cool is that in SharePoint Designer it will show you the matched rows as you manipulate the XPath expression.&amp;#160; It’s also cool that you can provide these kinds of filters as an end user without requiring a team of developers to include this functionality in the next build… an end user can add this stuff rather quickly and meet their business needs, allowing the developers to focus on projects that add strategic business value to the company.&lt;/p&gt;  &lt;h2&gt;For More Information&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://autosponge.spaces.live.com/blog/cns!D7F85948C20F0293!378.entry"&gt;Paul’s post on ddwrt FormatDate and FormatDateTime&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sharepointinsight.com/Blog/Lists/Posts/Post.aspx?ID=67"&gt;Calculating the Number of Days Between Two Dates in XSLT&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/sharepointdesigner/archive/2008/02/25/filtering-and-formatting-with-date-values.aspx"&gt;Filtering and Formatting with Date Values&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9906169" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /></entry><entry><title>Getting Friends From Twitter With WCF</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/10/03/getting-friends-from-twitter-with-wcf.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/10/03/getting-friends-from-twitter-with-wcf.aspx</id><published>2009-10-03T21:51:11Z</published><updated>2009-10-03T21:51:11Z</updated><content type="html">&lt;p&gt;Today, we’ll show off a bit of WCF for working with Twitter.&amp;#160; The last time I posted on using Twitter with WCF, I showed &lt;a href="http://blogs.msdn.com/kaevans/archive/2008/07/26/creating-a-rest-twitter-client-with-wcf.aspx"&gt;how to update your Twitter status using WCF&lt;/a&gt;.&amp;#160; The rest of the Twitter API is just as easy to work with when you are using WCF.&amp;#160; Since the last post on that used an HTTP POST operation and used a configuration file for the update, this time we’ll use an HTTP GET operation and do everything in code.&amp;#160; &lt;/p&gt;  &lt;p&gt;To make this plainly obvious, I am going to write a client application in .NET that uses WCF to call a RESTful service.&amp;#160; To frequent readers of my blog, this may sound obvious, but I get a fairly large number of emails about these posts that ask how would you call a non-.NET service.&amp;#160; Twitter is not written with .NET (that I know of, anyway), so this is an example of .NET calling a service written with some other language.&lt;/p&gt;  &lt;h2&gt;Defining the Operation Contract&lt;/h2&gt;  &lt;p&gt;First, just like last time, I will define the operation contract.&amp;#160; This is simply a method that maps to the pre-existing Twitter API.&amp;#160; We’ll use the &lt;a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0friends"&gt;statuses friends Twitter API&lt;/a&gt;, which requires an authenticated HTTP GET call.&amp;#160; Our HTTP GET will return data, so I have a choice to make.&amp;#160; I can either create a class that can be directly serialized, or I can use LINQ to XML (or some other XML parsing technology) to query it.&amp;#160; I will demonstrate the latter approach.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;    [ServiceContract]
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; ITwitterStatus
    {
        [OperationContract]
        [WebGet(UriTemplate = &lt;span class="str"&gt;&amp;quot;/statuses/friends.xml&amp;quot;&lt;/span&gt;)]
        Message GetFriends();
    }&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;We create an interface, ITwitterStatus, that has a method GetFriends.&amp;#160; Neither of these names are significant, I could have called them ISesameStreet and WatchBigBird, there’s no correlation between the names and anything having to do with Twitter’s API.&amp;#160; What is important is the WebGetAttribute.&amp;#160; This attribute specifies the UriTemplate, which signifies the URL that is going to be called for the service.&amp;#160; It also indicates that we will be issuing an HTTP GET request.&amp;#160; The other important part to note is the return type, System.ServiceModel.Channels.Message.&amp;#160; This type will hold the data that is returned from HTTP request.&lt;/p&gt;

&lt;h2&gt;Calling the Service&lt;/h2&gt;

&lt;p&gt;Typically, when I show WCF code, I like to keep everything in configuration files.&amp;#160; However, I occasionally run across scenarios where someone prefers to write code instead of use configuration files.&amp;#160; OK, here’s a gimme for that group.&amp;#160; Since we are using the web programming model for WCF, we can leverage the WebChannelFactory and the WebHttpBinding types to make our call to Twitter.&amp;#160; The WebHttpBinding is what tells WCF to send the message as plain old XML encoded as UTF-8 text over an HTTP transport.&amp;#160; Twitter uses Basic authentication, so we need to add a few lines of code to tell WCF about our username and password for an HTTP Basic authenticated call.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;WebHttpBinding binding = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebHttpBinding(WebHttpSecurityMode.TransportCredentialOnly);
binding.MaxReceivedMessageSize = 99999999;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
binding.Security.Transport.Realm = &lt;span class="str"&gt;&amp;quot;Twitter API&amp;quot;&lt;/span&gt;;

&lt;span class="kwrd"&gt;using&lt;/span&gt; (WebChannelFactory&amp;lt;ITwitterStatus&amp;gt; cf = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebChannelFactory&amp;lt;ITwitterStatus&amp;gt;(binding, &lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(&lt;span class="str"&gt;&amp;quot;http://www.twitter.com&amp;quot;&lt;/span&gt;)))
{
    cf.Credentials.UserName.UserName = &lt;span class="str"&gt;&amp;quot;your_twitter_username&amp;quot;&lt;/span&gt;;
    cf.Credentials.UserName.Password = &lt;span class="str"&gt;&amp;quot;your_twitter_password&amp;quot;&lt;/span&gt;;
                    
    ITwitterStatus s = cf.CreateChannel();                
    Message m = s.GetFriends();&lt;/pre&gt;

&lt;p&gt;&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;Easy enough.&amp;#160; We told WCF to only secure the transport (meaning don’t put credentials in the request body, just add HTTP level security stuff) and provided the username and password for HTTP Basic Auth.&amp;#160; Once we create the channel, we can call our GetFriends method and return back the object of type Message.&lt;/p&gt;

&lt;h2&gt;Querying the Results&lt;/h2&gt;

&lt;p&gt;In the past, I probably would have shown some odd serialization goo here, showing off what can be done with IXmlSerializable types.&amp;#160; However, I am really in love with LINQ to XML, so I’ll show that off.&amp;#160; The Message type has a method, GetReaderAtBodyContents that will return an XmlReader implementation.&amp;#160; We use the XmlReader-derived type to load an XDocument, and then query as usual with LINQ to XML.&amp;#160; The icing on the cake is that we can use anonymous types in C# to declare a type on the fly.&amp;#160; We don’t have to create a class to hold the properties for id, name, screen_name, location, etc., because C# knows to create one for us.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;var users = from user &lt;span class="kwrd"&gt;in&lt;/span&gt; XDocument.Load(m.GetReaderAtBodyContents()).Root.Elements(&lt;span class="str"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;)
              select &lt;span class="kwrd"&gt;new&lt;/span&gt;{
                    id = user.Element(&lt;span class="str"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;).Value,
                    name = user.Element(&lt;span class="str"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;).Value,
                    screen_name = user.Element(&lt;span class="str"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;).Value,
                    location = user.Element(&lt;span class="str"&gt;&amp;quot;location&amp;quot;&lt;/span&gt;).Value,
                    description = user.Element(&lt;span class="str"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;).Value,
                    profile_image_url = user.Element(&lt;span class="str"&gt;&amp;quot;profile_image_url&amp;quot;&lt;/span&gt;).Value,
                    url = user.Element(&lt;span class="str"&gt;&amp;quot;url&amp;quot;&lt;/span&gt;).Value,
                    followers_count = user.Element(&lt;span class="str"&gt;&amp;quot;followers_count&amp;quot;&lt;/span&gt;).Value,
                    friends_count = user.Element(&lt;span class="str"&gt;&amp;quot;friends_count&amp;quot;&lt;/span&gt;).Value,
                    status = user.Element(&lt;span class="str"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;).Element(&lt;span class="str"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;).Value
              };

&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var u &lt;span class="kwrd"&gt;in&lt;/span&gt; users)
{
    &lt;span class="kwrd"&gt;string&lt;/span&gt; s = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;&amp;quot;({0}) {1} - {2}&amp;quot;&lt;/span&gt;, u.screen_name, u.name, u.status);
    System.Diagnostics.Debug.WriteLine(s);
}   &lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;h2&gt;The Entire Solution&lt;/h2&gt;

&lt;p&gt;OK, let’s see the entire thing all at once.&amp;#160; This is just taking the code above and putting it all together.&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;p&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ServiceModel;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ServiceModel.Web;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ServiceModel.Channels;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Xml.Linq;

&lt;span class="kwrd"&gt;namespace&lt;/span&gt; ConsoleApplication4
{
    [ServiceContract]
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;interface&lt;/span&gt; ITwitterStatus
    {
        [OperationContract]
        [WebGet(UriTemplate = &lt;span class="str"&gt;&amp;quot;/statuses/friends.xml&amp;quot;&lt;/span&gt;)]
        Message GetFriends();
    }

    &lt;span class="kwrd"&gt;class&lt;/span&gt; Program
    {
        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)
        {
            WebHttpBinding binding = &lt;span class="kwrd"&gt;new&lt;/span&gt; WebHttpBinding(WebHttpSecurityMode.TransportCredentialOnly);
            binding.MaxReceivedMessageSize = 99999999;
            binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
            binding.Security.Transport.Realm = &lt;span class="str"&gt;&amp;quot;Twitter API&amp;quot;&lt;/span&gt;;

            &lt;span class="kwrd"&gt;using&lt;/span&gt; (WebChannelFactory&amp;lt;ITwitterStatus&amp;gt; cf = &lt;/p&gt;&lt;p&gt;&lt;span class="kwrd"&gt;new&lt;/span&gt; WebChannelFactory&amp;lt;ITwitterStatus&amp;gt;(binding, &lt;span class="kwrd"&gt;new&lt;/span&gt; Uri(&lt;span class="str"&gt;&amp;quot;http://www.twitter.com&amp;quot;&lt;/span&gt;)))
            {
                cf.Credentials.UserName.UserName = &lt;span class="str"&gt;&amp;quot;your_twitter_username&amp;quot;&lt;/span&gt;;
                cf.Credentials.UserName.Password = &lt;span class="str"&gt;&amp;quot;your_twitter_password&amp;quot;&lt;/span&gt;;

                ITwitterStatus proxy = cf.CreateChannel();
                Message m = proxy.GetFriends();


                var users = from user &lt;span class="kwrd"&gt;in&lt;/span&gt; XDocument.Load(m.GetReaderAtBodyContents()).Root.Elements(&lt;span class="str"&gt;&amp;quot;user&amp;quot;&lt;/span&gt;)
                            select &lt;span class="kwrd"&gt;new&lt;/span&gt;
                            {
                                id = user.Element(&lt;span class="str"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;).Value,
                                name = user.Element(&lt;span class="str"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;).Value,
                                screen_name = user.Element(&lt;span class="str"&gt;&amp;quot;screen_name&amp;quot;&lt;/span&gt;).Value,
                                location = user.Element(&lt;span class="str"&gt;&amp;quot;location&amp;quot;&lt;/span&gt;).Value,
                                description = user.Element(&lt;span class="str"&gt;&amp;quot;description&amp;quot;&lt;/span&gt;).Value,
                                profile_image_url = user.Element(&lt;span class="str"&gt;&amp;quot;profile_image_url&amp;quot;&lt;/span&gt;).Value,
                                url = user.Element(&lt;span class="str"&gt;&amp;quot;url&amp;quot;&lt;/span&gt;).Value,
                                followers_count = user.Element(&lt;span class="str"&gt;&amp;quot;followers_count&amp;quot;&lt;/span&gt;).Value,
                                friends_count = user.Element(&lt;span class="str"&gt;&amp;quot;friends_count&amp;quot;&lt;/span&gt;).Value,
                                status = user.Element(&lt;span class="str"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;).Element(&lt;span class="str"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;).Value
                            };

                &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var u &lt;span class="kwrd"&gt;in&lt;/span&gt; users)
                {
                    &lt;span class="kwrd"&gt;string&lt;/span&gt; s = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;&amp;quot;({0}) {1} - {2}&amp;quot;&lt;/span&gt;, u.screen_name, u.name, u.status);
                    System.Diagnostics.Debug.WriteLine(s);
                }
            }
        }
    }

}
&lt;/p&gt;&lt;/pre&gt;

&lt;p&gt;That's it!&amp;#160; Pretty easy, huh?&amp;#160; I wrote this bit of code to use as part of a sample in an upcoming MSDN article, so look for it in the November issue of MSDN Magazine to see how I leveraged this!&lt;/p&gt;

&lt;h2&gt;For More Information&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses%C2%A0friends"&gt;Twitter statuses friends REST API&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/kaevans/archive/2008/07/26/creating-a-rest-twitter-client-with-wcf.aspx"&gt;How to update your Twitter status using WCF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb908359(VS.100).aspx"&gt;WebChannelFactory Class&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.web.webgetattribute(VS.100).aspx"&gt;WebGetAttribute Class&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9902791" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="XML" scheme="http://blogs.msdn.com/kaevans/archive/tags/XML/default.aspx" /><category term="Visual Studio 2008" scheme="http://blogs.msdn.com/kaevans/archive/tags/Visual+Studio+2008/default.aspx" /><category term="WCF" scheme="http://blogs.msdn.com/kaevans/archive/tags/WCF/default.aspx" /><category term="LINQ" scheme="http://blogs.msdn.com/kaevans/archive/tags/LINQ/default.aspx" /><category term="Interoperability" scheme="http://blogs.msdn.com/kaevans/archive/tags/Interoperability/default.aspx" /></entry><entry><title>Water Cooler Interview – Shane Young</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/08/12/water-cooler-interview-shane-young.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/08/12/water-cooler-interview-shane-young.aspx</id><published>2009-08-12T21:56:33Z</published><updated>2009-08-12T21:56:33Z</updated><content type="html">&lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Shane-Young/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="shanescows_large_ch9[1]" border="0" alt="shanescows_large_ch9[1]" align="left" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/WaterCoolerInterviewShaneYoung_C40E/shanescows_large_ch9%5B1%5D_3.png" width="260" height="200" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I recently had the pleasure of interviewing &lt;a href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Shane-Young/"&gt;SharePoint MVP Shane Young on The Water Cooler show on Channel9&lt;/a&gt;.&amp;#160; This was a really fun interview, as &lt;a href="http://sharepoint911.com/"&gt;Shane&lt;/a&gt; is pretty animated.&amp;#160; Mr. Young is the owner of &lt;a href="http://sharepoint911.com/"&gt;SharePoint911.com&lt;/a&gt;, a consulting company that focuses on SharePoint.&amp;#160; Beyond the entertainment value in this video (I mean really, where else are you going to hear awful cow jokes in a technical interview?), we learn a few valuable things in the interview as well.&amp;#160; For instance, Shane throws on the &lt;a href="http://en.wikipedia.org/wiki/Carnac_the_Magnificent"&gt;Carnak the Magnificant&lt;/a&gt; hat and tells the audience what their performance issues with SharePoint are and provides a few tips on how to tune your environment for better performance.&amp;#160; We also learn about the right and wrong way to install SharePoint, and discuss the drawbacks for using the Basic Install option.&amp;#160; &lt;/p&gt;  &lt;p&gt;For more information on Shane, SharePoint911, and Critical Path Training, visit these resources:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msmvps.com/blogs/shane/Default.aspx"&gt;Shane’s blog&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://sharepoint911.com/"&gt;SharePoint911&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://criticalpathtraining.com/"&gt;Critical Path Training&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="twitter.com/shanescows"&gt;Follow Shane on Twitter&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For more Water Cooler interviews and screencasts, visit my blog at &lt;a href="http://blogs.msdn.com/kaevans"&gt;http://blogs.msdn.com/kaevans&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Interview-with-Shane-Young/"&gt;Go watch the interview now!&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/kaevans/archive/tags/Water+Cooler/default.aspx"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="watercooler" border="0" alt="watercooler" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/WaterCoolerInterviewShaneYoung_C40E/watercooler_3.gif" width="240" height="119" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9866959" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="Security" scheme="http://blogs.msdn.com/kaevans/archive/tags/Security/default.aspx" /><category term="Architecture" scheme="http://blogs.msdn.com/kaevans/archive/tags/Architecture/default.aspx" /><category term="Microsoft Office" scheme="http://blogs.msdn.com/kaevans/archive/tags/Microsoft+Office/default.aspx" /><category term="Screencasts" scheme="http://blogs.msdn.com/kaevans/archive/tags/Screencasts/default.aspx" /><category term="Water Cooler" scheme="http://blogs.msdn.com/kaevans/archive/tags/Water+Cooler/default.aspx" /></entry><entry><title>Unity Lifetime Managers and WCF Integration</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/30/unity-lifetime-managers-and-wcf-integration.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/30/unity-lifetime-managers-and-wcf-integration.aspx</id><published>2009-07-30T20:49:20Z</published><updated>2009-07-30T20:49:20Z</updated><content type="html">&lt;p&gt;My friend Drew, a Disney cast member in Orlando, started a blog.&amp;#160; Drew is focused on connected systems development lately.&amp;#160; His first post on &lt;a href="http://drewdotnet.blogspot.com/2009/05/biztalk-2006-r2-and-wcf-fault-messages.html"&gt;BizTalk 2006 R2 and WCF Fault Messages&lt;/a&gt; was really interesting and quite well written.&amp;#160; However, I really loved the latest post, &lt;a href="http://drewdotnet.blogspot.com/2009/07/unity-lifetime-managers-and-wcf.html"&gt;Unity lifetime managers and WCF integration&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;When I first heard of the work that the guys at Disney were doing around Unity and WCF, I will admit that I didn’t quite understand the benefit.&amp;#160; Then &lt;a href="http://scottdensmore.typepad.com/blog/"&gt;Scott Densmore&lt;/a&gt;, one of the p&amp;amp;p members that created Unity and now an architect at Disney, explained it to me.&amp;#160; Unity is all about dependency injection, which ends up being quite a nice fit for WCF.&amp;#160; This allows you to create mocks for your service implementation, enabling unit testing of the services.&lt;/p&gt;  &lt;p&gt;There are quite a number of resources turning up across the web on Unity and WCF, and the work that Drew and Scott have been doing looks really cool.&amp;#160; Go check out Drew’s post on &lt;a href="http://drewdotnet.blogspot.com/2009/07/unity-lifetime-managers-and-wcf.html"&gt;WCF and Unity lifetime managers&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;For More Information&lt;/h4&gt;  &lt;p&gt;Download Unity - &lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=6A9E363C-8E0A-48D3-BBE4-C2F36423E2DF&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=6A9E363C-8E0A-48D3-BBE4-C2F36423E2DF&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=6A9E363C-8E0A-48D3-BBE4-C2F36423E2DF&amp;amp;displaylang=en&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://drewdotnet.blogspot.com/2009/07/unity-lifetime-managers-and-wcf.html"&gt;Unity lifetime managers and WCF integration&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://initializecomponent.blogspot.com/2008/06/integrating-unity-with-wcf.html"&gt;Integrating Unity with WCF&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeproject.com/KB/WCF/wcfunity.aspx"&gt;WCF Unity&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/jdanforth/archive/2008/12/19/wcf-unity-and-nhibernate-first-findings.aspx"&gt;Johan Danforth on WCF, Unity, and nHibernate&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9853582" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="Architecture" scheme="http://blogs.msdn.com/kaevans/archive/tags/Architecture/default.aspx" /><category term="WCF" scheme="http://blogs.msdn.com/kaevans/archive/tags/WCF/default.aspx" /></entry><entry><title>SharePoint and Workflow Resources</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/29/sharepoint-and-workflow-resources.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/29/sharepoint-and-workflow-resources.aspx</id><published>2009-07-29T23:46:23Z</published><updated>2009-07-29T23:46:23Z</updated><content type="html">&lt;p&gt;This post provides a list of resources for SharePoint, Windows Workflow Foundation, and using WF with SharePoint.&lt;/p&gt;  &lt;p&gt;I was lucky enough to present to the Wells Fargo developer group today on “SharePoint Workflows”.&amp;#160; If you read my blog, you might know that I recently posted a screencast on developing state machine workflows for SharePoint.&amp;#160; Yep, I recorded the screencast while preparing for the demo :)&amp;#160; After doing a presentation like this, I like to follow up with resources for more information.&amp;#160; After compiling the email, I thought it might provide useful to a larger audience, so here goes.&amp;#160; Obviously, there are a ton of other resources out there that I missed.&amp;#160; Got a favorite?&amp;#160; Add it to the comments below!&lt;/p&gt;  &lt;h4&gt;General WF Resources&lt;/h4&gt;  &lt;p&gt;Whitepaper: Understanding Windows Workflow Foundation - &lt;a href="http://msdn.microsoft.com/en-us/library/dd851337.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd851337.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;MSDN Developer Center for WF – &lt;a href="http://msdn.microsoft.com/wf"&gt;http://msdn.microsoft.com/wf&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;WF Hands On Labs for .NET 3.5 - &lt;a href="http://blogs.msdn.com/endpoint/archive/2009/06/30/wf-3-5-hands-on-labs-updated.aspx"&gt;http://blogs.msdn.com/endpoint/archive/2009/06/30/wf-3-5-hands-on-labs-updated.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Workflow Persistence - &lt;a href="http://blogs.msdn.com/kaevans/archive/2008/12/09/understanding-persistence-in-windows-workflow-foundation.aspx"&gt;http://blogs.msdn.com/kaevans/archive/2008/12/09/understanding-persistence-in-windows-workflow-foundation.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Workflow Tracking - &lt;a href="http://blogs.msdn.com/kaevans/archive/2008/12/11/understanding-tracking-in-windows-workflow-foundation.aspx"&gt;http://blogs.msdn.com/kaevans/archive/2008/12/11/understanding-tracking-in-windows-workflow-foundation.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Screencasts on WF and WCF - EndPoint.tv - &lt;a href="http://channel9.msdn.com/shows/Endpoint/"&gt;http://channel9.msdn.com/shows/Endpoint/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Answers to WF Interview Questions (a great set of resources for all things WF) - &lt;a href="http://odetocode.com/Blogs/scott/archive/2007/10/31/11528.aspx"&gt;http://odetocode.com/Blogs/scott/archive/2007/10/31/11528.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;b&gt;General SharePoint Developer Resources&lt;/b&gt;&lt;/h4&gt;  &lt;p&gt;SharePoint Developer Getting Started - &lt;a href="http://mssharepointdeveloper.com"&gt;http://mssharepointdeveloper.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;MSDN Developer Center for SharePoint - &lt;a href="http://msdn.microsoft.com/sharepoint"&gt;http://msdn.microsoft.com/sharepoint&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Screencasts for SharePoint Developers - &lt;a href="http://blogs.msdn.com/kaevans/archive/tags/Water+Cooler/default.aspx"&gt;http://blogs.msdn.com/kaevans/archive/tags/Water+Cooler/default.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;b&gt;SharePoint Workflow Resources&lt;/b&gt;&lt;/h4&gt;  &lt;p&gt;Whitepaper: Developing Workflow Solutions with SharePoint Server 2007 and Windows Workflow Foundation - &lt;a href="http://msdn.microsoft.com/en-us/library/cc514224.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc514224.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Building a SharePoint State Machine Workflow with Timeout and Escalations - &lt;a href="http://blogs.msdn.com/kaevans/archive/2009/07/28/water-cooler-demo-sharepoint-state-machine-workflows.aspx"&gt;http://blogs.msdn.com/kaevans/archive/2009/07/28/water-cooler-demo-sharepoint-state-machine-workflows.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Building an Expense Report Approval Workflow for SharePoint Server 2007 using Visual Studio 2008 - &lt;a href="http://msdn.microsoft.com/en-us/library/cc627283.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc627283.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Building Simple Custom Approval Workflows with InfoPath 2007 Forms - &lt;a href="http://msdn.microsoft.com/en-us/library/bb629921.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb629921.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Building State Machine Document Approval Workflows for SharePoint Server 2007 Using Visual Studio 2008 - &lt;a href="http://msdn.microsoft.com/en-us/library/cc700334.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc700334.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Creating SharePoint Sequential Workflows with Visual Studio 2008 - &lt;a href="http://msdn.microsoft.com/en-us/library/cc936628.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc936628.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Designing InfoPath Forms for Workflows in SharePoint Server 2007 - &lt;a href="http://msdn.microsoft.com/en-us/library/cc296354.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc296354.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(one of my favorite resources) InfoPath and Visual Studio Workflows – 3 Great Tricks (&lt;a href="http://philwicklund.com/archive/2009/01/22/infopath-and-visual-studio-workflows-&amp;ndash;-3-great-tricks.aspx"&gt;Part 1&lt;/a&gt;, &lt;a href="http://philwicklund.com/archive/2009/02/20/infopath-and-visual-studio-workflows-&amp;ndash;-3-great-tricks-2-of-3.aspx"&gt;Part 2&lt;/a&gt;, and &lt;a href="http://philwicklund.com/archive/2009/02/23/infopath-and-visual-studio-workflows-%E2%80%93-3-great-tricks-3-of-3.aspx"&gt;Part 3&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;(another favorite) Sahil Malik – SharePoint 2007 Workflows - &lt;a title="http://blah.winsmarts.com/2007-8-SharePoint_2007_Workflows_-_Setting_up_your_environment.aspx" href="http://blah.winsmarts.com/2007-8-SharePoint_2007_Workflows_-_Setting_up_your_environment.aspx"&gt;http://blah.winsmarts.com/2007-8-SharePoint_2007_Workflows_-_Setting_up_your_environment.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;b&gt;SharePoint Designer Workflow Resources&lt;/b&gt;&lt;/h4&gt;  &lt;p&gt;Creating a Custom Approval Workflow for SharePoint Server 2007 Using SharePoint Designer 2007 - &lt;a href="http://msdn.microsoft.com/en-us/library/cc627286.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc627286.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Building Custom Workflow Conditions for SharePoint Designer - &lt;a href="http://msdn.microsoft.com/en-us/library/cc161068.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc161068.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Building Custom Activities for Use in SharePoint Designer 2007 - &lt;a href="http://msdn.microsoft.com/en-us/library/bb629922.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb629922.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9852520" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="Windows Workflow Foundation" scheme="http://blogs.msdn.com/kaevans/archive/tags/Windows+Workflow+Foundation/default.aspx" /><category term="Visual Studio 2008" scheme="http://blogs.msdn.com/kaevans/archive/tags/Visual+Studio+2008/default.aspx" /><category term="Microsoft Office" scheme="http://blogs.msdn.com/kaevans/archive/tags/Microsoft+Office/default.aspx" /><category term="Water Cooler" scheme="http://blogs.msdn.com/kaevans/archive/tags/Water+Cooler/default.aspx" /></entry><entry><title>Water Cooler Demo: SharePoint state machine workflows</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/28/water-cooler-demo-sharepoint-state-machine-workflows.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/28/water-cooler-demo-sharepoint-state-machine-workflows.aspx</id><published>2009-07-29T00:36:27Z</published><updated>2009-07-29T00:36:27Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/SharePointDevelopersPart7Statemachinewor_8C49/watercooler_2.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="watercooler" border="0" alt="watercooler" align="left" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/SharePointDevelopersPart7Statemachinewor_8C49/watercooler_thumb.gif" width="240" height="119" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I’ve posted a new video to Channel9… &lt;a href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Demo-SharePoint-Visual-Studio-workflows-for-escalations/"&gt;SharePoint Visual Studio state machine workflows for escalations and timeouts&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;After I went through the learning process of creating a set of screencasts focused on SharePoint development, a few things became evident.&amp;#160; I don’t like the name of the series, and I don’t like the lack of any branding.&amp;#160; Further, I really want to do more than just screencasts, I want to do interviews with people on Office development.&amp;#160; I was talking with &lt;a href="http://blogs.sharepointguys.com/brendon"&gt;Brendon Schwartz&lt;/a&gt;, and he suggested the name “water cooler”, evoking images of gathering around the water cooler to discuss (even gossip) about things around the office.&amp;#160; Cool idea, Brendon!&lt;/p&gt;  &lt;p&gt;Introducing… &lt;a href="http://channel9.msdn.com/tags/Water+Cooler/"&gt;The Water Cooler Show&lt;/a&gt;!&lt;/p&gt;  &lt;p&gt;I can’t think of a better way to introduce this series than opening the spigot (wow, I am so going to have fun throwing out bad water puns and references) and showing off how to create a somewhat complex business process using a minimal amount of code and completing the basic functionality within 20 minutes.&amp;#160; &lt;/p&gt;  &lt;p&gt;As some background, I’ve see some very unnatural things attempted with Windows Workflow Foundation, using sequential workflows to do things like escalations and timeouts.&amp;#160; You can do it, but it usually involves some nasty workflow acrobatics to achieve the desired end goal.&amp;#160; What I’ve come to understand is that developers can usually grok sequential workflows, but state machines are a little more elusive.&amp;#160; I’ve seen customers using complex ConditionedActivityGroup patterns or Replicator patterns to create a solution that is difficult to learn how to implement the first time, and even more difficult to maintain when you’re not the guy who created it.&amp;#160; In contrast, escalations and timeouts are 2 scenarios that the state machine model in WF make incredibly easy to implement once you understand the basic concepts of how to use the State, SetState, StateInitialization, and EventDriven activities.&amp;#160; Even better, I find that they are more descriptive and easier to maintain.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Demo-SharePoint-Visual-Studio-workflows-for-escalations/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="watercoolerMOSSworkflows_large_ch9[1]" border="0" alt="watercoolerMOSSworkflows_large_ch9[1]" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/SharePointDevelopersPart7Statemachinewor_8C49/watercoolerMOSSworkflows_large_ch9%5B1%5D_3.png" width="244" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the first Water Cooler Demo screencast, we focus on &lt;a href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Demo-SharePoint-Visual-Studio-workflows-for-escalations/"&gt;how to build a SharePoint state machine workflow&lt;/a&gt;, and demonstrate this with a real-world scenario.&amp;#160; Rather than list the steps to build a workflow here, go &lt;a href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Demo-SharePoint-Visual-Studio-workflows-for-escalations/"&gt;watch the screencast video&lt;/a&gt;… you’ll be surprised at how little code is written to support this scenario.&lt;/p&gt;  &lt;p&gt;Let’s gather around the Water Cooler (yeah, this is going to be fun) and talk about &lt;a href="http://channel9.msdn.com/posts/kirke/Water-Cooler-Demo-SharePoint-Visual-Studio-workflows-for-escalations/"&gt;state machine workflows&lt;/a&gt; in Office.&lt;/p&gt;  &lt;h4&gt;For More Information&lt;/h4&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc700334.aspx"&gt;Building State Machine Document Approval Workflows for SharePoint Server 2007&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/office/cc514057.aspx"&gt;How Do I: Create a State Machine Workflow for SharePoint?&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc514224.aspx"&gt;Developing Workflow Solutions with SharePoint Server 2007 and Windows Workflow Foundation&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/sharepoint/archive/2006/11/23/developing-workflows-in-vs-part-3-five-steps-for-developing-your-workflow.aspx"&gt;Developing Workflows in VS: Part 3 – Five Steps for Developing Your Workflow&lt;/a&gt; – great information on understanding the correlation token&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9851409" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="Windows Workflow Foundation" scheme="http://blogs.msdn.com/kaevans/archive/tags/Windows+Workflow+Foundation/default.aspx" /><category term="Visual Studio 2008" scheme="http://blogs.msdn.com/kaevans/archive/tags/Visual+Studio+2008/default.aspx" /><category term="Microsoft Office" scheme="http://blogs.msdn.com/kaevans/archive/tags/Microsoft+Office/default.aspx" /><category term="Screencasts" scheme="http://blogs.msdn.com/kaevans/archive/tags/Screencasts/default.aspx" /><category term="VSeWSS" scheme="http://blogs.msdn.com/kaevans/archive/tags/VSeWSS/default.aspx" /><category term="Water Cooler" scheme="http://blogs.msdn.com/kaevans/archive/tags/Water+Cooler/default.aspx" /></entry><entry><title>Connecting to Oracle from Visual Studio</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/18/connecting-to-oracle-from-visual-studio.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/18/connecting-to-oracle-from-visual-studio.aspx</id><published>2009-07-18T21:04:19Z</published><updated>2009-07-18T21:04:19Z</updated><content type="html">&lt;p&gt;Man, I am spoiled.&amp;#160; I am spoiled by how simple the free edition of SQL Server 2008, &lt;a href="http://www.microsoft.com/express/sql/download/"&gt;SQL 2008 Express&lt;/a&gt;, is to set up and connect to.&amp;#160; I found myself needing to connect to an Oracle database this week.&amp;#160; I haven’t had to connect to an Oracle database in years, I forgot how painful this can be.&amp;#160; If you find that you need to set up a connection to an Oracle database for your application, and assuming you are able to install the Oracle 10g client and tools locally on one machine for development purposes, here are some steps to try to ease the learning curve a bit.&amp;#160; Judging from the number of forum posts on this, it seems I am not the only one.&lt;/p&gt;  &lt;h4&gt;Install Oracle 10g Express&lt;/h4&gt;  &lt;p&gt;There is a free version of Oracle that you can download to test your application against.&amp;#160; I downloaded the database from:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html" href="http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html"&gt;http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I accepted all defaults through the installation process, and provided a password for the system and sys accounts.&amp;#160; Let’s assume something ridiculously simple like &lt;a href="mailto:&amp;ldquo;pass@word1"&gt;“pass@word1&lt;/a&gt;” for the sake of the rest of this post. In the Windows start menu, find the command to go to the database home page.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_thumb.png" width="225" height="203" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You are prompted for a username and password.&amp;#160; Choose “sys” and use the password from above (remember, we used &lt;a href="mailto:&amp;ldquo;pass@word1"&gt;“pass@word1&lt;/a&gt;” as a demo here).&lt;/p&gt;  &lt;p&gt;Choose Administration, then Database Users, then click on the HR icon.&amp;#160; Provide a password of your choosing, and set the Account Status to “unlocked”.&amp;#160; &lt;/p&gt;  &lt;h4&gt;Install the Oracle Developer Tools&lt;/h4&gt;  &lt;p&gt;This one had me stumped, I went through several miscues before I figured out that you don’t need to install the ODAC or Oracle Client bits.&amp;#160; What was confusing is if I needed the 10.x version of the developer tools, or if I can use the 11.x version of the tools.&amp;#160; Turns out you can use the 11.x version just fine, as found in this link:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.oracle.com/technology/software/htdocs/odtlic.html?url=/technology/software/tech/dotnet/utilsoft.html"&gt;ODAC 11.1.0.6.21 with Oracle Developer Tools for Visual Studio&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This downloads the a ZIP file which you need to extract.&amp;#160; Once extracted, run setup.exe.&amp;#160; In the radio checkbox asking if you want to install client bits or server bits, you are only going to install the client bits.&amp;#160; Accept the rest of the defaults and finally close the program.&lt;/p&gt;  &lt;h4&gt;Configure TNSNames.ora&lt;/h4&gt;  &lt;p&gt;If, like me, you expected to complete the above installation, open up Visual Studio, and get started, you are in for a disappointment.&amp;#160; First, you need to tell Oracle how to find your database.&amp;#160; Somewhere in the Oracle docs I saw the key.&amp;#160; Go to the following directory (replace the folder “kirke” with your folder name, of course).&lt;/p&gt;  &lt;p&gt;C:\app\kirke\product\11.1.0\client_1\Network\Admin\Sample&lt;/p&gt;  &lt;p&gt;Copy the tnsnames.ora file from the Sample directory to its parent directory (remember to replace “kirke” with your folder name).&lt;/p&gt;  &lt;p&gt;C:\app\kirke\product\11.1.0\client_1\Network\Admin&lt;/p&gt;  &lt;p&gt;Then open up tnsnames.ora and make some edits.&amp;#160; Here is what mine ended up as.&amp;#160; My machine name is “EVANS1”, and Oracle Express was installed to port 1521 (the default).&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;lt;data source alias&amp;gt; =   &lt;br /&gt;&amp;#160; (DESCRIPTION =    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (ADDRESS = (PROTOCOL = TCP)(HOST = EVANS1)(PORT = 1521))    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (CONNECT_DATA =    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (SERVER = DEDICATED)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (SERVICE_NAME = orcl)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )    &lt;br /&gt;&amp;#160; )&lt;/p&gt;  &lt;h4&gt;Configure machine.config&lt;/h4&gt;  &lt;p&gt;Still not there yet.&amp;#160; Next, you need to &lt;a href="http://myviewstate.net/blog/post/2009/05/24/e2809cUnable-to-find-the-requested-Net-Framework-Data-Provider-It-may-not-be-installede2809d.aspx"&gt;configure the Oracle provider in machine.config&lt;/a&gt;.&amp;#160; Just to spare the extra mouse click here (if you are reading this, you are probably already frustrated to begin with) the magic entry to add to machine.config in the configuration/system.data/DbProviderFactories section is:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;add name=&amp;quot;Oracle Data Provider for .NET&amp;quot; invariant=&amp;quot;Oracle.DataAccess.Client&amp;quot; description=&amp;quot;Oracle Data Provider for .NET&amp;quot; type=&amp;quot;Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.111.6.20, Culture=neutral,&amp;#160; PublicKeyToken=89b483f429c47342&amp;quot; /&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Set the SID Environment Variable&lt;/h4&gt;  &lt;p&gt;This next part had me stumped, until I ran across &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=74240&amp;amp;tstart=0"&gt;this forum post&lt;/a&gt; that showed how to troubleshoot and pointed to a likely cause.&amp;#160; The fix was to set an environment variable called “oracle_sid” and set it to the value of “xe” (since we are using Oracle Express, this is the default).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_thumb_1.png" width="201" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;Connect Using Visual Studio&lt;/h4&gt;  &lt;p&gt;The last step is to throw chicken bones, do a rain dance, and cross your fingers to hope you connect.&amp;#160; In Visual Studio 2008, click the “Connect to Database” button in the Server Explorer pane.&amp;#160; Choose the data source, making sure to use the Oracle Database as the data source, and Oracle Data Provider for .NET as the data provider.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_thumb_3.png" width="244" height="141" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;That pulls up another window for provider-specific connection settings.&amp;#160; I specified the user name as “HR” and our password that we created earlier (using the Oracle web page dialog, remember?)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_thumb_5.png" width="187" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once I stumbled through all these settings, I could finally connect to Oracle using the Visual Studio server explorer pane.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/ConnectingtoOraclefromVisualStudio_B7C7/image_thumb_2.png" width="153" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This is just SO much simpler when you use the &lt;a href="http://www.microsoft.com/express/sql/download/"&gt;freely available SQL Server 2008 Express&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9838781" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term=".NET Programming" scheme="http://blogs.msdn.com/kaevans/archive/tags/.NET+Programming/default.aspx" /><category term="Visual Studio 2008" scheme="http://blogs.msdn.com/kaevans/archive/tags/Visual+Studio+2008/default.aspx" /><category term="Interoperability" scheme="http://blogs.msdn.com/kaevans/archive/tags/Interoperability/default.aspx" /><category term="SQL Server 2008" scheme="http://blogs.msdn.com/kaevans/archive/tags/SQL+Server+2008/default.aspx" /></entry><entry><title>Using the intrinsic SharePoint Controls</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/12/using-the-intrinsic-sharepoint-controls.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/12/using-the-intrinsic-sharepoint-controls.aspx</id><published>2009-07-12T15:02:26Z</published><updated>2009-07-12T15:02:26Z</updated><content type="html">&lt;p&gt;&lt;a href="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/96/inputformsectionandcontrol_2_35F6BD01.png"&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" title="inputformsectionandcontrol" border="0" alt="inputformsectionandcontrol" align="left" src="http://community.zevenseas.com/blogs/robin/Lists/Posts/Attachments/96/inputformsectionandcontrol_thumb_35F6BD01.png" width="560" height="70" /&gt;&lt;/a&gt;I’ve built application pages plenty of times, but admit that they never look like other application pages (particularly the ones in the Site Settings section).&amp;#160; OK, I can admit when I’m wrong, and this is another one of those times.&amp;#160; Turns out it is incredibly easy to make application pages, as well as other custom pages, leverage SharePoint’s intrinsic controls to provide a more common look and feel for your site.&amp;#160; More importantly, this significantly reduces the amount of work you need to do to make your custom pages respond properly to changes in themes!&lt;/p&gt;  &lt;p&gt;Robin Meure has an excellent post that shows &lt;a href="http://community.zevenseas.com/Blogs/Robin/archive/2009/07/03/re-using-sharepoint-controls.aspx"&gt;how to re-use the SharePoint built-in controls&lt;/a&gt;.&amp;#160; The post gives sample code of how to use the controls and an image that helps you to recognize the control that you are creating.&amp;#160; Awesome!&amp;#160; He even goes a step further and links to other content on the subject:&lt;/p&gt;  &lt;li&gt;Basically every page in the &lt;a href="http://karinebosch.wordpress.com/sharepoint-controls/"&gt;SharePoint controls&lt;/a&gt; section by &lt;a href="http://karinebosch.wordpress.com/"&gt;Karine Bosch&lt;/a&gt; (really, really, really good stuff!) &lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.devhorizon.com/reza/?p=645"&gt;Selector Controls Rock!&lt;/a&gt; by &lt;a href="http://blogs.devhorizon.com/reza/"&gt;Reza Alirezaei&lt;/a&gt;&lt;/li&gt;  &lt;li&gt;&lt;a href="http://blogs.devhorizon.com/reza/?p=670"&gt;Web part with Toolbar (Part 2)&lt;/a&gt;&amp;#160; by &lt;a href="http://blogs.devhorizon.com/reza/"&gt;Reza Alirezaei&lt;/a&gt; &amp;amp; &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.repeatedcontrols.aspx"&gt;RepeatedControls&lt;/a&gt; to get a ToolBar look&amp;amp;feel without using the ToolBar control. &lt;/li&gt;  &lt;li&gt;&lt;a href="http://www.sharepointnutsandbolts.com/2008/03/great-controls-to-be-aware-of-when.html"&gt;Great controls to be aware of when building SharePoint sites&lt;/a&gt; by &lt;a href="http://www.sharepointnutsandbolts.com/"&gt;Chris O'Brien&lt;/a&gt;&lt;/li&gt;  &lt;p&gt;Great post, Robin.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9830192" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="ASP.NET" scheme="http://blogs.msdn.com/kaevans/archive/tags/ASP.NET/default.aspx" /></entry><entry><title>Expression Encoder 3 – Screen Capture</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/11/expression-encoder-3-screen-capture.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/11/expression-encoder-3-screen-capture.aspx</id><published>2009-07-11T20:23:07Z</published><updated>2009-07-11T20:23:07Z</updated><content type="html">&lt;p&gt;I have been doing a lot of screen cast production lately (I promise I’ll they’ll be posted shortly), and I am using Camtasia for screencasting.&amp;#160; It does a fantastic job of capturing the screen and allowing me to make simple edits (zoom in and out one of the major ones I use).&amp;#160; &lt;/p&gt;  &lt;p&gt;I am really excited to learn about the screen capture capabilities of Expression Encoder 3.&amp;#160; &lt;a href="http://blogs.technet.com/keithcombs/archive/2009/07/11/expression-encoder-screen-capture-3-hd-screencast-demonstration.aspx"&gt;Keith Combs posted a fantastic video showing off the rendered results from an Expression Encoder 3 screen capture&lt;/a&gt;.&amp;#160; He uses Expression Encoder 3 to capture his screen while he’s playing a video from Halo 3.&amp;#160; I’ve struggled with screen capture, especially when showing movies, and Keith’s results are simply outstanding.&amp;#160; &lt;/p&gt;  &lt;p&gt;Go watch Keith’s video and &lt;a href="http://blogs.technet.com/keithcombs/archive/2009/07/11/expression-encoder-screen-capture-3-hd-screencast-demonstration.aspx"&gt;learn more about Expression Encoder 3 for screen captures&lt;/a&gt;.&amp;#160; Outstanding.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9829653" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="Windows Media" scheme="http://blogs.msdn.com/kaevans/archive/tags/Windows+Media/default.aspx" /><category term="Screencasts" scheme="http://blogs.msdn.com/kaevans/archive/tags/Screencasts/default.aspx" /><category term="Expression Studio" scheme="http://blogs.msdn.com/kaevans/archive/tags/Expression+Studio/default.aspx" /></entry><entry><title>SharePoint Saturday Dallas is Filling Up Fast</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/09/sharepoint-saturday-dallas-is-filling-up-fast.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/09/sharepoint-saturday-dallas-is-filling-up-fast.aspx</id><published>2009-07-09T16:44:09Z</published><updated>2009-07-09T16:44:09Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/SharePointSaturdayDallasisFillingUpFast_7AD0/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/SharePointSaturdayDallasisFillingUpFast_7AD0/image_thumb.png" width="244" height="110" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The first ever SharePoint Saturday Dallas event is filling up fast!&amp;#160; We’ve announced the speakers and agenda, and have an incredible lineup of sponsors for the event as well.&amp;#160; This will be a great day to immerse yourself in one of the hottest technologies in the market.&amp;#160; Registration is free, make sure you sign up at &lt;a href="http://SharePointSaturday.org/Dallas"&gt;http://SharePointSaturday.org/Dallas&lt;/a&gt; so that we can order enough food for the day.&lt;/p&gt;  &lt;p&gt;You can see the list of &lt;a href="http://www.sharepointsaturday.org/dallas/pages/meeting.aspx"&gt;sessions&lt;/a&gt; for the day online.&amp;#160; There will be 3 tracks: Architecture, IT Professional, and Development.&amp;#160; We have a stellar cast of speakers, including SharePoint MVPs and professionals who work with SharePoint every day.&amp;#160; This is going to be an awesome event.&lt;/p&gt;  &lt;p&gt;We have a few registration spots open, make sure that you register at &lt;a href="http://SharePointSaturday.org/Dallas"&gt;http://SharePointSaturday.org/Dallas&lt;/a&gt; to attend.&amp;#160; We look forward to seeing you there!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9826717" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="Dallas Microsoft Events" scheme="http://blogs.msdn.com/kaevans/archive/tags/Dallas+Microsoft+Events/default.aspx" /></entry><entry><title>SharePoint and Web Content Management: Using SharePoint for Public Sites</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/06/sharepoint-and-web-content-management-using-sharepoint-for-public-sites.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/06/sharepoint-and-web-content-management-using-sharepoint-for-public-sites.aspx</id><published>2009-07-06T22:21:57Z</published><updated>2009-07-06T22:21:57Z</updated><content type="html">&lt;p&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" align="left" src="http://www.toddbaginski.com/blog/images/www_toddbaginski_com/blog/WindowsLiveWriter/SharePointOnTheWebandAdventureWorksTrave_BD77/adventureworks%20travel%20site_2.jpg" width="213" height="279" /&gt;I was fortunate last fall to attend a week long training class by the amazing &lt;a href="http://www.toddbaginski.com/blog/archive/2009/05/18/sharepoint_on_the_web_and_adventureworks_travel_site_installer_released.aspx"&gt;Mr. Todd Baginski&lt;/a&gt; that showed off the AdventureWorks Travel Site sample.&amp;#160; This is a fantastic sample that shows various extensibility points needed to build SharePoint on the web sites.&amp;#160; Even more, the &lt;a href="http://www.mssharepointdeveloper.com/"&gt;MSSharePointDeveloper.com&lt;/a&gt; site is now updated with new training modules to help you walk through and see how much of Adventure-Works was built!&lt;/p&gt;  &lt;p&gt;The new SharePoint On The Web modules cover the following topics:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Getting Started with SharePoint Development on the Web &lt;/li&gt;    &lt;li&gt;Site Structure and Branding &lt;/li&gt;    &lt;li&gt;Custom Field Types and Mode &lt;/li&gt;    &lt;li&gt;FBA Authentication &lt;/li&gt;    &lt;li&gt;Web Interoperability &lt;/li&gt;    &lt;li&gt;SharePoint Search &lt;/li&gt;    &lt;li&gt;Content Deployment &lt;/li&gt;    &lt;li&gt;Minimal Publishing Site Definition &lt;/li&gt;    &lt;li&gt;Enabling Social Networking &lt;/li&gt;    &lt;li&gt;Silverlight and SharePoint&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There is a lot of material on MSSharePointDeveloper.com, including the videos from the training session.&amp;#160; There are also webcasts that we hosted this past winter focused on this material, presented by some of the top SharePoint MVPs.&amp;#160; I highly recommend checking out these webcasts, the MVPs did an amazing job on them.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="526"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;strong&gt;Session&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;&lt;strong&gt;Presenter&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;a href="http://www.microsoft.com/events/series/sharepointserver.aspx?tab=Webcasts&amp;amp;seriesid=92&amp;amp;webcastid=5438"&gt;Getting Started&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;Todd Baginski&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032397233&amp;amp;CountryCode=US"&gt;SharePoint and Silverlight&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;Sahil Malik&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;a href="http://www.microsoft.com/events/series/sharepointserver.aspx?tab=Webcasts&amp;amp;seriesid=92&amp;amp;webcastid=5443"&gt;Authentication&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;Todd Bleeker&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;a href="http://www.microsoft.com/events/series/sharepointserver.aspx?tab=Webcasts&amp;amp;seriesid=92&amp;amp;webcastid=5447"&gt;Content Deployment&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;Spence Harbar&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;a href="http://www.microsoft.com/events/series/sharepointserver.aspx?tab=Webcasts&amp;amp;seriesid=92&amp;amp;webcastid=5440"&gt;Custom Web Parts, Fields, and Lists&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;Todd Bleeker&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;a href="http://www.microsoft.com/events/series/sharepointserver.aspx?tab=Webcasts&amp;amp;seriesid=92&amp;amp;webcastid=5446"&gt;Search&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;Ben Robb&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;a href="http://www.microsoft.com/events/series/sharepointserver.aspx?tab=Webcasts&amp;amp;seriesid=92&amp;amp;webcastid=5439"&gt;.COM Branding&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;Doug Ware&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="260"&gt;&lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;amp;EventID=1032397231&amp;amp;CountryCode=US"&gt;Enabling Social Networking&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="264"&gt;Brendan Schwartz and Matt Ranlett&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9820442" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="Silverlight" scheme="http://blogs.msdn.com/kaevans/archive/tags/Silverlight/default.aspx" /><category term="Webcasts" scheme="http://blogs.msdn.com/kaevans/archive/tags/Webcasts/default.aspx" /><category term="Enterprise Social Computing" scheme="http://blogs.msdn.com/kaevans/archive/tags/Enterprise+Social+Computing/default.aspx" /><category term="Microsoft Office" scheme="http://blogs.msdn.com/kaevans/archive/tags/Microsoft+Office/default.aspx" /></entry><entry><title>SharePoint Social Computing – NewsGator Social Sites</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/kaevans/archive/2009/07/01/sharepoint-social-computing-newsgator-social-sites.aspx" /><id>http://blogs.msdn.com/kaevans/archive/2009/07/01/sharepoint-social-computing-newsgator-social-sites.aspx</id><published>2009-07-02T02:05:01Z</published><updated>2009-07-02T02:05:01Z</updated><content type="html">&lt;p&gt;&lt;a href="http://channel9.msdn.com/posts/kirke/SharePoint-and-Enterprise-Social-Computing-NewsGator-Social-Sites/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="NewsGatorSocialSites_large_ch9[1]" border="0" alt="NewsGatorSocialSites_large_ch9[1]" align="left" src="http://blogs.msdn.com/blogfiles/kaevans/WindowsLiveWriter/SharePointSocialComputingNewsGatorSocial_FE4C/NewsGatorSocialSites_large_ch9%5B1%5D_3.png" width="241" height="188" /&gt;&lt;/a&gt;I just posted a new &lt;a href="http://channel9.msdn.com/posts/kirke/SharePoint-and-Enterprise-Social-Computing-NewsGator-Social-Sites/"&gt;Channel9 interview about NewsGator Social Sites.&lt;/a&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;I had the pleasure of talking with Brian Kellner, VP of Products for &lt;a href="http://www.newsgator.com"&gt;NewsGator Technologies&lt;/a&gt;, about the capabilities of &lt;a href="http://www.newsgator.com/business/socialsites"&gt;NewsGator Social Sites&lt;/a&gt;.&amp;#160; Social Sites is an enterprise social computing platform built upon SharePoint 2007.&amp;#160; Laura Kellner, VP of Marketing for NewsGator, walks us through a detailed look at many of the features of Social Sites.&lt;/p&gt;  &lt;p&gt;Social Sites is a fantastic product with a lot of exciting capabilities.&amp;#160; I have several large customers that are using Social Sites in their enterprise, and every time I talk to a customer that is using it they rave about what a transformation Social Sites provided with their intranet.&amp;#160; See for yourself what Social Sites can do in my &lt;a href="http://channel9.msdn.com/posts/kirke/SharePoint-and-Enterprise-Social-Computing-NewsGator-Social-Sites/"&gt;interview with Brian Kellner and Laura Farrelly of NewsGator&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9812191" width="1" height="1"&gt;</content><author><name>kaevans</name><uri>http://blogs.msdn.com/members/kaevans.aspx</uri></author><category term="SharePoint" scheme="http://blogs.msdn.com/kaevans/archive/tags/SharePoint/default.aspx" /><category term="Communicating" scheme="http://blogs.msdn.com/kaevans/archive/tags/Communicating/default.aspx" /><category term="Enterprise Social Computing" scheme="http://blogs.msdn.com/kaevans/archive/tags/Enterprise+Social+Computing/default.aspx" /></entry></feed>