<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Guy Burstein&amp;#39;s Blog</title><link>http://blogs.microsoft.co.il/blogs/bursteg/</link><description>All about the newest tools and technologies from Microsoft</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/bursteg" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>מפגש בלוגרים: עיצוב והבלוג והצצה לעוד 100 שנים</title><link>http://feedproxy.google.com/~r/bursteg/~3/KXaMppvZV6k/388221.aspx</link><pubDate>Thu, 27 Aug 2009 08:25:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:388221</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>8</slash:comments><description>&lt;div dir="rtl" align="right"&gt;
&lt;h1&gt;מפגש בלוגרים: עיצוב והבלוג והצצה לעוד 100 שנים&lt;/h1&gt;
&lt;p&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;MARGIN:20px 0px 0px 20px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" title="מפגש בלוגרים: עיצוב והבלוג והצצה לעוד 100 שנים" border="0" alt="מפגש בלוגרים: עיצוב והבלוג והצצה לעוד 100 שנים" align="left" src="http://blogs.microsoft.co.il/blogs/bursteg/glassred_55C3B8D5.jpg" width="162" height="162" /&gt;אנו שמחים להזמינכם למפגש הבלוגרים הרבעוני שלנו ולהרים יחד כוסית לכבוד השנה החדשה.&lt;/p&gt;
&lt;p&gt;המפגש ייערך ב- 8 לספטמבר במשרדי מיקרוסופט, &lt;br /&gt;רחוב הפנינה 2 רעננה, קומה 0, &lt;br /&gt;בין השעות 17:00 - 20:00.&lt;/p&gt;
&lt;p&gt;מה בתוכנית?&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2"&gt;

&lt;tr&gt;
&lt;td valign="top"&gt;17:00-17:45&lt;/td&gt;
&lt;td valign="top"&gt;מינגלינג וכיבוד &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td valign="top"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;17:45-18:45&amp;nbsp;&amp;nbsp; &lt;/td&gt;
&lt;td valign="top"&gt;&lt;strong&gt;&lt;em&gt;היכן יעבדו אנשי ה-IT בעוד מאה שנים?&lt;/em&gt;&lt;/strong&gt; &lt;br /&gt;דיון על ארגונים, על המהפכה שתשנה את כל מה שאנחנו יודעים על עבודה, ועל בלוגים ומדיה חברתית. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;מ&lt;u&gt;רצה:&lt;/u&gt;&lt;/strong&gt; ישראל בלכמן, סמנכ&amp;quot;ל אסטרטגיה ב&amp;quot;בלינק&amp;quot;, איש מדיה חברתית וסוציולוג חובב.&lt;a href="https://twitter.com/israelblechman"&gt;https://twitter.com/israelblechman&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td valign="top"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;18:45-19:15&amp;nbsp; &lt;/td&gt;
&lt;td valign="top"&gt;&lt;strong&gt;&lt;em&gt;טאצ’ עליז לבלוגר שיעיז&lt;/em&gt;&lt;/strong&gt; &lt;br /&gt;איך לעצב את הבלוג ע”י שימוש ב- CSS &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;מרצה&lt;/u&gt;&lt;/b&gt;: אלעד אברון &lt;br /&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/Ambious"&gt;http://blogs.microsoft.co.il/blogs/Ambious&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.twitter.com/Ambious"&gt;http://www.twitter.com/Ambious&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;&amp;nbsp;&lt;/td&gt;
&lt;td valign="top"&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;19:15-19:30 &lt;/td&gt;
&lt;td valign="top"&gt;עדכונים&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=C1-8C-76-4F-00-B3-58-45-FC-48-D2-D3-94-16-02-E6&amp;amp;Culture=he-IL"&gt;להרשמה לחצו כאן&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=C1-8C-76-4F-00-B3-58-45-FC-48-D2-D3-94-16-02-E6&amp;amp;Culture=he-IL"&gt;אנא אשרו השתתפותכם מראש&lt;/a&gt;! לנרשמים תוסדר חניה במקום ללא תשלום. &lt;br /&gt;המפגש לבלוגרים מקהילת הבלוגרים של blogs.microsoft.co.il&lt;/p&gt;
&lt;p&gt;נתראה במפגש!&lt;/p&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=388221" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/KXaMppvZV6k" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Blogging/default.aspx">Blogging</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Hebrew/default.aspx">Hebrew</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/MSDN/default.aspx">MSDN</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/08/27/388221.aspx</feedburner:origLink></item><item><title>ניפגש מחר בהרצאה First Look at Visual Studio 2010 IDE</title><link>http://feedproxy.google.com/~r/bursteg/~3/YTWA66eytUk/first-look-at-visual-studio-2010-ide.aspx</link><pubDate>Tue, 18 Aug 2009 11:52:35 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:381129</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;   &lt;h1&gt;ניפגש מחר בהרצאה First Look at Visual Studio 2010 IDE&lt;/h1&gt;    &lt;p&gt;מחר בבוקר אעביר הרצאה בנושא ה&lt;strong&gt;חידושים ב- Visual Studio 2010&lt;/strong&gt; במסגרת יום עיון למפתחים. אני מאד מתרגש לקראת ההרצאה ובטוח שהיא הולכת להיות מעניינת ומהנה! &lt;/p&gt;    &lt;p&gt;כמו בכל הרצאה שלי – יהיו משחקים, תחרויות והפעלות לקהל, ואני מזמין את כל מי שמגיע מחר ויש לו חשבון Twitter, להשתמש בתגית &lt;a href="http://search.twitter.com/search?q=%23vs2010day"&gt;vs2010day#&lt;/a&gt; במהלך ההרצאה.&lt;/p&gt;    &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="First Look at Visual Studio 2010 IDE גיא בטרשטיין" border="0" alt="First Look at Visual Studio 2010 IDE גיא בטרשטיין" src="http://blogs.microsoft.co.il/blogs/bursteg/vs2010_03369005.jpg" width="324" height="244" /&gt; &lt;/p&gt;    &lt;p&gt;נתראה מחר!&lt;/p&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=381129" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/YTWA66eytUk" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Hebrew/default.aspx">Hebrew</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/08/18/first-look-at-visual-studio-2010-ide.aspx</feedburner:origLink></item><item><title>‫10 טיפים וטריקים לשימוש ב- Internet Explorer 8‬</title><link>http://feedproxy.google.com/~r/bursteg/~3/aLUZT73DMD8/10-internet-explorer-8.aspx</link><pubDate>Tue, 11 Aug 2009 07:29:10 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:377129</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;   &lt;h1&gt;‫10 טיפים וטריקים לשימוש ב- Internet Explorer 8‬&lt;/h1&gt;    &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px 25px 0px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="10 טיפים וטריקים לשימוש ב- Internet Explorer 8 אקספלורר" border="0" alt="10 טיפים וטריקים לשימוש ב- Internet Explorer 8 אקספלורר" align="left" src="http://blogs.microsoft.co.il/blogs/bursteg/IE8logo_3A390CC6.png" width="214" height="77" /&gt;לפני כמה חודשים הושקה הגירסא החדשה של הדפדפן &lt;strong&gt;Internet Explorer 8&lt;/strong&gt;, המכילה חידושים המשפרים את חווית הגלישה והופכים אותה לבטוחה יותר ומהירה יותר. &lt;/p&gt;    &lt;p&gt;אתמול פורסם ב- Newsgeek מאמר שכתבתי בנושא ‫&lt;a href="http://www.newsgeek.co.il/ie8-10-tips-tricks/"&gt;10 טיפים וטריקים לשימוש ב- Internet Explorer 8‬&lt;/a&gt;, ואתם מוזמנים לקרוא ולהינות!&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=377129" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/aLUZT73DMD8" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Hebrew/default.aspx">Hebrew</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/IE8/default.aspx">IE8</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/08/11/10-internet-explorer-8.aspx</feedburner:origLink></item><item><title>Israel@PDC09 – המשלחת הישראלית לכנס המפתחים בלוס אנג’לס</title><link>http://feedproxy.google.com/~r/bursteg/~3/1AREbRq9G7g/israel-pdc09.aspx</link><pubDate>Wed, 05 Aug 2009 18:41:18 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:374016</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;   &lt;h1&gt;Israel@PDC09 – המשלחת הישראלית לכנס המפתחים בלוס אנג’לס&lt;/h1&gt;    &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px auto;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Israel@PDC Israel@PDC08 Israel@PDC09" border="0" alt="Israel@PDC Israel@PDC08 Israel@PDC09" src="http://blogs.microsoft.co.il/blogs/bursteg/Header_1AD631AA.png" width="600" height="109" /&gt; &lt;/p&gt;    &lt;p&gt;השבוע נפתחה ההרשמה ל- &lt;a href="http://microsoftpdc.com/"&gt;Professional Developer Conference&lt;/a&gt; שיתקיים בלוס אנג’לס בין ה- 17 ל- 19 בנובמבר. למי שלא מכיר, PDC הוא כנס עולמי שמיקרוסופט מקיימת מדי שנה / שנתיים ובו היא חושפת את חזונה הטכנולוגי לשנים הקרובות ומפתיעה בהכרזות מרעישות ביותר. רק לשם קבלת מושג, ב- PDC03 הוצגו הטכנולוגיות Avalon ו- Indigo שבשנת 2006 זכו להיות חלק מ- .Net Framework 3.0 ולהקרא WCF ו- WPF. ב- PDC05 הוצג לראשונה הרעיון של LINQ שיצא עם Visual Studio 2008, ובשנה שעברה נחשפו לראשונה Windows 7 ו- Windows Azure.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://microsoftpdc.com/Sessions"&gt;רשימה ראשונית של 30 הרצאות&lt;/a&gt; לכנס הקרוב פורסמה, ואפשר למצוא שם הרצאות על העתיד של Visual Studio, Silverlight, Sharepoint 2010 וכו’, ומנסיוני, ההפתעות הגדולות נחשפות רק בהרצאות המליאה של הכנס.&lt;/p&gt;    &lt;p&gt;כמו בשנה שעברה, גם לקראת הכנס הנוכחי מתארגנת במיקרוסופט ישראל משלחת בשם &lt;strong&gt;Israel@PDC&lt;/strong&gt;, המאגדת את כל הנציגים הישראלים הנוסעים לכנס. המשלחת נועדה לחבר בין הנציגים, לשתף ביניהם חווית מכנסים קודמים ולשתף טיפים כדי להפיק את המקסימום מהכנס. במהלך האירוע מקיימת המשלחת גם סעודה חגיגית ואיך אפשר בלי תמונה.&lt;/p&gt;    &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px auto;display:block;float:none;border-top:0px;border-right:0px;" title="Israel@PDC" border="0" alt="Israel@PDC" src="http://blogs.microsoft.co.il/blogs/bursteg/IsraelPDC_14AEE50F.jpg" width="500" height="340" /&gt; &lt;/p&gt;    &lt;p&gt;&lt;a href="http://microsoftpdc.com/Registration"&gt;ההרשמה לכנס PDC&lt;/a&gt;, ולנרשמים עד ה- 15 בספטמבר ניתנת הנחה של 500$. אם אתם נוסעים לכנס בבקשה צרו איתי קשר, ואם אתם יודעים על מישהו שנוסע לכנס, בבקשה תגידו לו שיצור איתי קשר גם הוא כדי להיות חלק מהמשלחת ולהצטרף לחגיגה!&lt;/p&gt;    &lt;p&gt;למי שלא נוסע, תמיד תוכלו להתעדכן בטוויטר על &lt;a href="http://search.twitter.com/search?q=%23PDC09"&gt;כל מה שאנשים כותבים על PDC09&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;כמה פוסטים ש&lt;a href="http://blogs.microsoft.co.il/blogs/gadim"&gt;גדי&lt;/a&gt; כתב על PDC08 ותמיד כיף לקרוא:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gadim/archive/2008/06/19/106324.aspx"&gt;כמה דברים על PDC 2008&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gadim/archive/2008/10/20/155355.aspx"&gt;לקראת ה PDC, כמה פרטים קטנים ומשהו על ערוץ 9&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gadim/archive/2008/10/19/155183.aspx"&gt;לקראת ה PDC הכנת תכנית הרצאות&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/gadim/archive/2008/10/28/159304.aspx"&gt;יום ראשון של ה PDC, תקציר מנהלים על ההכרזות&lt;/a&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;תהנו!&lt;/p&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=374016" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/1AREbRq9G7g" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Hebrew/default.aspx">Hebrew</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/PDC09/default.aspx">PDC09</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/08/05/israel-pdc09.aspx</feedburner:origLink></item><item><title>Seadragon – לשתף תמונות באיכות גבוהה (או - מי היה יהודה הלוי?)</title><link>http://feedproxy.google.com/~r/bursteg/~3/5tSL-zNT23I/seadragon-photo-sharing.aspx</link><pubDate>Sun, 02 Aug 2009 08:28:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:373291</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>4</slash:comments><description>&lt;div dir="rtl" align="right"&gt;
&lt;h1&gt;Seadragon – לשתף תמונות באיכות גבוהה (או - מי היה יהודה הלוי?)&lt;/h1&gt;
&lt;p&gt;אחת הבעיות באתר שיתוף התמונות היא שהם מציגים תמונות באיכות בינונית בלבד. גם כדי לקצר את משך הזמן שלוקח להוריד תמונה וגם כדי שהתמונה תיכנס בגודל דף באינטרנט ללא צורך בגלילה של הדף.&lt;/p&gt;
&lt;p&gt;אבל מה אם אני בכל זאת רוצה לשתף תמונה באיכות גבוהה, שלמשתמשים לא יקח הרבה זמן לצפות בה, שהיא תיכנס בגודל של דף אינטרנט אבל בנוסף תאפשר גם Zoom In לצפייה בפרטים הקטנים?&lt;/p&gt;
&lt;p&gt;בדיוק בשביל זה אני אשתמש ב- &lt;a href="http://seadragon.com/" rel="nofollow"&gt;Seadragon&lt;/a&gt; – שירות שיתוף תמונות חדש של מיקרוסופט.&lt;/p&gt;
&lt;p&gt;לדוגמא, נניח שיש לי &lt;a href="http://www.flickr.com/photos/bursteg/3779764191/sizes/m/"&gt;תמונה שכרגע נמצאת ב- Flickr&lt;/a&gt;, תמונה שצילמתי בשיטוט האחרון שלי עם המצלמה בתל אביב. כאשר העליתי אותה ל- Flickr, האתר יצר &lt;a href="http://www.flickr.com/photos/bursteg/3779764191/sizes/m/"&gt;מספר עותקים של התמונה&lt;/a&gt; שלי ואחסן אותן בנפרד, ואני יכול לבחור באיזה גודל אני מעוניין לצפות.&lt;/p&gt;
&lt;p&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;MARGIN:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" title="שיתוף תמונות עם Seagradon" border="0" alt="Seadragon שיתוף תמונות" src="http://blogs.microsoft.co.il/blogs/bursteg/image_6EDA226E.png" width="362" height="272" /&gt; &lt;/p&gt;
&lt;p&gt;אני אבחר את &lt;a href="http://farm4.static.flickr.com/3469/3779764191_09fe245d25_o_d.jpg"&gt;הלינק לתמונה באיכות המירבית&lt;/a&gt;, אעתיק אותו ל- Seadragon, ואלחץ על Create.&lt;/p&gt;
&lt;p&gt;האתר יעתיק את התמונה וימיר אותה לפורמט Deep Zoom. בסיום, אני אקבל את התמונה שלי באתר ואוכל לבצע Zoom In עמוק כדי לראות את הפרטים הקטנים. למשל – &lt;strong&gt;מי היה יהודה הלוי? (רמז: התשובה בתמונה)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ניתן עם לעשות Embed של התמונה בתוך דף אינטרנט, כפי שעשיתי כאן:&lt;/p&gt;
&lt;script src="http://seadragon.com/embed/2sm.js?width=auto&amp;amp;height=400px"&gt;&lt;/script&gt;

&lt;p&gt;שיתוף נעים!&lt;/p&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=373291" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/5tSL-zNT23I" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/TECH/default.aspx">TECH</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/08/02/seadragon-photo-sharing.aspx</feedburner:origLink></item><item><title>Windows 7: Create .Net Flickr Federated Search Connector</title><link>http://feedproxy.google.com/~r/bursteg/~3/bpfyRpc9Sxg/windows-7-create-net-flickr-federated-search-connector.aspx</link><pubDate>Wed, 29 Jul 2009 18:30:11 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:371910</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>1</slash:comments><description>&lt;h1&gt;Windows 7: Create .Net Flickr Federated Search Connector&lt;/h1&gt;  &lt;p&gt;&lt;strong&gt;Windows 7&lt;/strong&gt; makes searching for content much easier with &lt;strong&gt;Federated Search&lt;/strong&gt;. In this post I’ll talk about how to &lt;strong&gt;how to create a Flickr Federated Search Providers in .Net&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" border="0" alt="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" src="http://blogs.microsoft.co.il/blogs/bursteg/image_13DEBE36.png" width="640" height="293" /&gt;&amp;#160; &lt;/p&gt;  &lt;h3&gt;Before We Start&lt;/h3&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" border="0" alt="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/FlickrNet_7C736E2A.png" width="149" height="30" /&gt; This sample uses Flickr API through Flickr.Net. In order to build your own version of this &lt;strong&gt;Flickr Federated Search Connector&lt;/strong&gt;:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Download &lt;a href="http://flickrnet.codeplex.com/"&gt;Flickr.Net&lt;/a&gt; from CodePlex &lt;/li&gt;    &lt;li&gt;Acquire &lt;a href="http://www.flickr.com/services/api/keys/"&gt;your API and Secret Keys for Flickr API&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Create a new ASP.Net Web Application&lt;/h3&gt;  &lt;p&gt;Create a new ASP.Net Web Application with Visual Studio.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" border="0" alt="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" src="http://blogs.microsoft.co.il/blogs/bursteg/image_3F6F3C98.png" width="482" height="288" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" border="0" alt="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/image_6DB89C78.png" width="177" height="206" /&gt;Add the &lt;strong&gt;Flickr.Net&lt;/strong&gt; project (called FlickrNet.csproj) to your solution, and add a reference to it from your web application.&lt;/p&gt;  &lt;p&gt;Add the Flickr API and Secret Key’s to your web.config in the AppSettings section:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;appSettings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;flickr_api_key&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;923422ab4225345dfgdb777daf46&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;key&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;flickr_secret&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;aa8b23fsdfhyc3beda&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;appSettings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;h3&gt;Create the Flickr Search Provider&lt;/h3&gt;  &lt;p&gt;The following provider will be executed by the Windows Explorer client using HTTP GET, and will receive several parameters from it:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;http://localhost:52903/Search.aspx?&lt;strong&gt;q&lt;/strong&gt;=TechEdIsrael2008&amp;amp;&lt;strong&gt;start&lt;/strong&gt;=1&amp;amp;&lt;strong&gt;count&lt;/strong&gt;=20&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;It will perform the search against Flickr, and return the response as RSS.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;     &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rss&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;2.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns:media&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://search.yahoo.com/mrss/&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;channel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Flickr Search Results&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;item&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;IMG_0134c&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;link&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;http://farm4.static.flickr.com/3100/2682983091_7cea404dc4_m.jpg&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;link&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;description&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;show shadow dance techedisrael2008&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;description&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;pubDate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Sun, 20 Jul 2008 01:47:25 GMT&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;pubDate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;media:content&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;url&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://farm4.static.flickr.com/3100/2682983091_7cea404dc4_b.jpg&lt;/span&gt;&amp;quot;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;image/jpeg&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;333&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;500&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;media:thumbnail&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;url&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://farm4.static.flickr.com/3100/2_7cea404dc4_t.jpg&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;item&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;          &lt;br /&gt;          &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;item&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;item&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;channel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rss&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Create a new Web Form called Search.aspx.&lt;/p&gt;  &lt;p&gt;To make it easier to test the response, right click the web application, and open the &lt;strong&gt;Properties&lt;/strong&gt; window. Go to the &lt;strong&gt;Web&lt;/strong&gt; pane, select Search.aspx as the start page and provide the query parameters:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" border="0" alt="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" src="http://blogs.microsoft.co.il/blogs/bursteg/image_7C33989D.png" width="482" height="163" /&gt; &lt;/p&gt;  &lt;p&gt;In the page markup, add a new asp:Repeater control that will define the template for each item in the response:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repeater&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;itemsRepeater&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repeater&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;In the page code behind, implement the logic that uses Flickr.Net to search for photos and bind the result to the repeater control:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt; flickrApiKey = &lt;span style="color:#2b91af;"&gt;WebConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color:#a31515;"&gt;&amp;quot;flickr_api_key&amp;quot;&lt;/span&gt;];&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt; flickrSecret = &lt;span style="color:#2b91af;"&gt;WebConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color:#a31515;"&gt;&amp;quot;flickr_secret&amp;quot;&lt;/span&gt;];&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt; searchTerm = Request.QueryString[&lt;span style="color:#a31515;"&gt;&amp;quot;q&amp;quot;&lt;/span&gt;];&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;int&lt;/span&gt; startPage = &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(Request.QueryString[&lt;span style="color:#a31515;"&gt;&amp;quot;start&amp;quot;&lt;/span&gt;]);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;int&lt;/span&gt; count = &lt;span style="color:blue;"&gt;int&lt;/span&gt;.Parse(Request.QueryString[&lt;span style="color:#a31515;"&gt;&amp;quot;count&amp;quot;&lt;/span&gt;]);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:#2b91af;"&gt;Flickr&lt;/span&gt; flickr = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Flickr&lt;/span&gt;();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; flickr.ApiKey = flickrApiKey;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; flickr.ApiSecret = flickrSecret;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:#2b91af;"&gt;Photos&lt;/span&gt; photos = flickr.PhotosSearch(&lt;span style="color:blue;"&gt;null&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;, 0, searchTerm,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;.MinValue,&lt;span style="color:#2b91af;"&gt; DateTime&lt;/span&gt;.MinValue, 0,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; count, startPage, &lt;span style="color:#2b91af;"&gt;PhotoSearchExtras&lt;/span&gt;.All);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.itemsRepeater.DataSource = photos.PhotoCollection;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.itemsRepeater.DataBind();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;In the code above I first grab the API and secret key’s from the configuration file and then, I extract the parameters from the query string. I create a new instance of the Flickr object, and perform the actual search for photos, providing the page number and the number of items in each page. Finally, I bind the returned photo collection the the repeater control.&lt;/p&gt;  &lt;p&gt;Replace the html header and footer with RSS header and footer in Search.aspx.&lt;/p&gt;  &lt;p&gt;Before:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@&lt;/span&gt; &lt;span style="color:#a31515;"&gt;Page&lt;/span&gt; &lt;span style="color:red;"&gt;Language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;C#&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;AutoEventWireup&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;CodeBehind&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Search.aspx.cs&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Inherits&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;FlickrFederatedSearch.Search&amp;quot;&lt;/span&gt; &lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;head&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;head&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;body&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;form&lt;/span&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;form1&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;div&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repeater&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;itemsRepeater&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repeater&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;div&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;form&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;body&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;html&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;After:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@&lt;/span&gt; &lt;span style="color:#a31515;"&gt;Page&lt;/span&gt; &lt;span style="color:red;"&gt;Language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;C#&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;AutoEventWireup&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;CodeBehind&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Search.aspx.cs&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;Inherits&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;FlickrFederatedSearch.Search&amp;quot;&lt;/span&gt; &lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rss&lt;/span&gt; &lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;2.0&amp;quot;&lt;/span&gt; &lt;span style="color:#a31515;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;media&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;http://search.yahoo.com/mrss/&amp;quot;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;channel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Flickr Search Results&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repeater&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;itemsRepeater&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repeater&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;channel&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rss&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Set the ItemTemplate of the Repeater control to display the photos data according to the output format:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repeater&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;itemsRepeater&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;item&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;#&lt;/span&gt; Eval(&lt;span style="color:#a31515;"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt;) &lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;link&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;#&lt;/span&gt; Eval(&lt;span style="color:#a31515;"&gt;&amp;quot;SmallUrl&amp;quot;&lt;/span&gt;)&lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;link&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;description&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;#&lt;/span&gt; Eval(&lt;span style="color:#a31515;"&gt;&amp;quot;CleanTags&amp;quot;&lt;/span&gt;)&lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;description&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;pubDate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Literal&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:red;"&gt;text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;#39;&lt;/span&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;# ((FlickrNet.Photo)Container.DataItem).DateTaken.ToString(&amp;quot;R&amp;quot;) &lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#39;&lt;/span&gt; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;pubDate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;media&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;content&lt;/span&gt; &lt;span style="color:red;"&gt;url&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;#39;&lt;/span&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;# Eval(&amp;quot;LargeUrl&amp;quot;)&lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#39;&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;image/jpeg&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;media&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;thumbnail&lt;/span&gt; &lt;span style="color:red;"&gt;url&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;#39;&lt;/span&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;# Eval(&amp;quot;ThumbnailUrl&amp;quot;)&lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#39;&lt;/span&gt; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;item&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ItemTemplate&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Repeater&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Run the application. The browser should navigate to Search.aspx passing all the relevant query parameters. The response should be an RSS feed that contains items per photos found.&lt;/p&gt;  &lt;h3&gt;Creating the Flickr Federated Search Connector&lt;/h3&gt;  &lt;p&gt;Add a new Xml file to the project and name it FlickrFederatedSearch&lt;strong&gt;.osdx&lt;/strong&gt; (stands for OpenSearch Description Xml). This file contains the data that Windows Explorer needs to order to perform the search against the search service. &lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; ?&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;OpenSearchDescription&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://a9.com/-/spec/opensearch/1.1/&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ShortName&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Flickr Federated Search&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ShortName&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Url&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;application/rss+xml&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;template&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://.../Search.aspx?q={searchTerms}&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;amp;amp;&lt;/span&gt;&lt;span style="color:blue;"&gt;start={startPage}        &lt;br /&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;amp;amp;&lt;/span&gt;&lt;span style="color:blue;"&gt;count={count}&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;OpenSearchDescription&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Notice in the above xml that the parameters are taken from some predefined names ({searchTerms}, {count} etc.), and the ampersands (&amp;amp;) are Html encoded.&lt;/p&gt;  &lt;p&gt;Right click the .osdx file, and select Open With. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" border="0" alt="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" src="http://blogs.microsoft.co.il/blogs/bursteg/image_382FB486.png" width="333" height="177" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;br /&gt;In the Open With dialog, select Windows Explorer.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" border="0" alt="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" src="http://blogs.microsoft.co.il/blogs/bursteg/image_338983FF.png" width="335" height="233" /&gt; &lt;/p&gt;  &lt;p&gt;In the Add Search Connector dialog, click &lt;strong&gt;Add&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/bursteg/image_1D06BFAB.png" width="335" height="230" /&gt; &lt;/p&gt;  &lt;p&gt;Now, &lt;strong&gt;Flickr Federated Search&lt;/strong&gt; appears in the Favorites section in &lt;strong&gt;Windows 7&lt;/strong&gt; Explorer and you can use it for searching items. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" border="0" alt="Windows 7 .Net Flickr Federated Search Connector Provider C# .osdx" src="http://blogs.microsoft.co.il/blogs/bursteg/image_7EF88BE9.png" width="480" height="220" /&gt; &lt;/p&gt;  &lt;h3&gt;Summary&lt;/h3&gt;  &lt;p&gt;In this post I’ve talked about how to create a &lt;strong&gt;Flickr Federated Search Connector for Windows 7 in .Net&lt;/strong&gt;. The above provider provides basic features and can be enhanced with more capabilities described in the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=C709A596-A9E9-49E7-BCD4-319664929317&amp;amp;displaylang=en"&gt;Windows 7 Federated Search Provider Implementer’s Guide&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=371910" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/bpfyRpc9Sxg" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Windows+7/default.aspx">Windows 7</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/07/29/windows-7-create-net-flickr-federated-search-connector.aspx</feedburner:origLink></item><item><title>Windows 7: Register a New File Associations</title><link>http://feedproxy.google.com/~r/bursteg/~3/S3MQO9u_5Ug/windows-7-register-a-new-file-associations.aspx</link><pubDate>Wed, 01 Jul 2009 11:29:40 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:352369</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>20</slash:comments><description>&lt;h1&gt;Windows 7: Register a New File Associations&lt;/h1&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7: Register a New File Associations" border="0" alt="Windows 7: Register a New File Associations" src="http://blogs.microsoft.co.il/blogs/bursteg/Windows7_h_Print_11B5CA64.jpg" width="314" height="50" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px 0px 0px 15px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7: Register a New File Associations" border="0" alt="Windows 7: Register a New File Associations" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/image_68EA3F4D.png" width="243" height="201" /&gt; Lets say I have a standard Windows Forms application that works with .guy file types (which is nothing but a text file):&lt;/p&gt;  &lt;p&gt;This application can be launched from the command line with a file name as an argument:&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Courier New"&gt;&amp;gt; TextFilesViewer.exe SampleFile.guy&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;In this case, the application displays the file contents in the multiline textbox above:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; ViewerForm_Load(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args = &lt;span style="color:#2b91af;"&gt;Environment&lt;/span&gt;.GetCommandLineArgs();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (args.Length &amp;gt; 1)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt;[] lines = &lt;span style="color:#2b91af;"&gt;File&lt;/span&gt;.ReadAllLines(args[1]);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.txtFileContents.Lines = lines;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Since this application is the only application that knows how to work with .guy files, we would like to associate this file type with my application. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px 0px 0px 20px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7: Register a New File Associations" border="0" alt="Windows 7: Register a New File Associations" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/image_0F1C72D9.png" width="154" height="166" /&gt; &lt;/p&gt;  &lt;p&gt;In order to do that, &lt;strong&gt;add a reference to the&lt;/strong&gt; &lt;strong&gt;RegistrationHelper &lt;/strong&gt;sample. This is an exe that performs the actual registration of the file association and needs to be run with admin privileges. It can be found as a sample project in the WindowsAPICodePack\Samples\Shell\TaskbarDemo\CS\RegistrationHelper folderer &lt;/p&gt;  &lt;p&gt;After you have added the reference you should add another file from the samples folder -&lt;strong&gt; RegistrationHelper.cs&lt;/strong&gt; which is found in the WindowsAPICodePack\Samples\Shell\TaskbarDemo\CS\TaskbarDemo\ folder.     &lt;br /&gt;This file exposes several static methods that invoke the helper as another process with admin privileges.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;private&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; registerFileTypeToolStripMenuItem_Click(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt; appId = &lt;span style="color:#a31515;"&gt;&amp;quot;TextFilesViewer&amp;quot;&lt;/span&gt;;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:#2b91af;"&gt;RegistrationHelper&lt;/span&gt;.RegisterFileAssociations(&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; appId,&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;false&lt;/span&gt;,&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; appId,&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;{0} %1&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Assembly&lt;/span&gt;.GetExecutingAssembly().Location),&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#a31515;"&gt;&amp;quot;.guy&amp;quot;&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Notice that one of the parameters of &lt;strong&gt;RegistrationHelper.RegisterFileAssociations()&lt;/strong&gt; method is the Application ID which is set to a meaningful name. I’ll talk more on the &lt;strong&gt;Application ID&lt;/strong&gt; in later posts to understand its impact on additional features.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px 0px 0px 20px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows 7: Register a New File Associations" border="0" alt="Windows 7: Register a New File Associations" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/image_3361575B.png" width="192" height="108" /&gt;When the user tries to associate the file type, &lt;strong&gt;RegistratioinHelper&lt;/strong&gt; will require admin privileges. If User Account Control (UAC) is enabled on your machine, you will be prompted to allow the registration utility to modify the registry.&lt;/p&gt;  &lt;p&gt;After the registration completes, you can double click and .guy files in your machine, and the TextFilesViwer application will be launched to display its content.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=352369" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/S3MQO9u_5Ug" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Windows+7/default.aspx">Windows 7</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/07/01/windows-7-register-a-new-file-associations.aspx</feedburner:origLink></item><item><title>Getting Started with Windows 7 Development Through Windows API Code Pack</title><link>http://feedproxy.google.com/~r/bursteg/~3/9Mxa9HIyRm0/getting-started-with-windows-7-development-through-windows-api-code-pack.aspx</link><pubDate>Wed, 01 Jul 2009 11:28:36 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:352367</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>0</slash:comments><description>&lt;h1&gt;Getting Started with Windows 7 Development Through Windows API Code Pack &lt;/h1&gt;  &lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows API Code Pack" border="0" alt="Windows API Code Pack" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/image_28808C43.png" width="157" height="236" /&gt;&lt;/strong&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Windows API Code Pack" border="0" alt="Windows API Code Pack" src="http://blogs.microsoft.co.il/blogs/bursteg/Windows7_h_Print_6D8933AC.jpg" width="314" height="50" /&gt;&amp;#160;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows 7&lt;/strong&gt; is said to be a great operating system, much more secure, faster and productive than its predecessors. As with every version of Windows, it also contains a huge amount of new features exposed for developers as API’s, unfortunately, as unmanaged code. The Windows SDK team is working on a project called &lt;strong&gt;&lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack"&gt;Windows API Code Pack&lt;/a&gt;&lt;/strong&gt; which provides &lt;strong&gt;managed wrappers for Windows API&lt;/strong&gt;’s.&lt;/p&gt;  &lt;p&gt;Downloading the &lt;strong&gt;Windows API Code Pack&lt;/strong&gt;, you’ll get a Zip file containing both the &lt;strong&gt;Windows API Code Pack Source&lt;/strong&gt; and Samples. In the next few posts I’ll explore the new features of the new OS and provide the managed ways to leverage them from your applications using the above source and samples.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=352367" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/9Mxa9HIyRm0" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Windows+7/default.aspx">Windows 7</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/07/01/getting-started-with-windows-7-development-through-windows-api-code-pack.aspx</feedburner:origLink></item><item><title>How to build a Simple IE8 Accelerator</title><link>http://feedproxy.google.com/~r/bursteg/~3/F1dq6e8bk7M/how-to-build-a-simple-ie8-accelerator.aspx</link><pubDate>Mon, 29 Jun 2009 11:08:09 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:348172</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>6</slash:comments><description>&lt;h1&gt;How to build a Simple IE8 Accelerator &lt;/h1&gt;  &lt;p&gt;This post is a step by step guide for building IE8 Accelerators. &lt;/p&gt;  &lt;h3&gt;A Short Introduction to IE8 Accelerators&lt;/h3&gt;  &lt;p&gt;Accelerators are used to make the user more productive while surfing the net, by:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:10px 0px 25px 25px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="How to build a Simple IE8 Accelerator " border="0" alt="How to build a Simple IE8 Accelerator " align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/image_6D93EDEF.png" width="299" height="177" /&gt;1. Speeding up the process of getting additional information about a meaningful string (address, stock quote, a product, a twitter account name, etc). In this sample&lt;/p&gt;  &lt;p&gt;2. Allowing user to perform a quick action on a selected text. &lt;/p&gt;  &lt;p&gt;From a technical perspective, Accelerators define 2 actions: &lt;strong&gt;Preview &lt;/strong&gt;and &lt;strong&gt;Execute&lt;/strong&gt;. When the user selects some text and hover over an accelerator, the &lt;strong&gt;Preview&lt;/strong&gt; action is being performed - the selected text is sent to a defined url, that returns a 320x240 web page with a preview of the data.     &lt;br /&gt;When the user clicks the Accelerator, the &lt;strong&gt;Execute&lt;/strong&gt; action is performed and the browser navigates to a page passing it the selected text as a parameter.&lt;/p&gt;  &lt;p&gt;To build IE8 Accelerators, we have several steps to do:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Building an Accelerator Page &lt;/li&gt;    &lt;li&gt;Defining the Accelerator OpenService Xml &lt;/li&gt;    &lt;li&gt;Registering the Accelerator with IE8 &lt;/li&gt;    &lt;li&gt;Using the Accelerator &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;To make sure this guide is generic enough for every Accelerator you may think of and not just for Twitter profiles, I am leaving the twitter logic to the last part of this post.&lt;/p&gt;  &lt;h3&gt;1. Building an Accelerator Page&lt;/h3&gt;  &lt;p&gt;Create a new ASP.Net Web Application in Visual Studio 2008 or open an existing one. &lt;/p&gt;  &lt;p&gt;Add a new Web Form for the Accelerator Preview. In the page code behind, extract the query string parameters write them to the Response object:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;     &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt;      &lt;p style="margin:0px;"&gt;{&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue;"&gt;string&lt;/span&gt; param &lt;span style="color:blue;"&gt;in&lt;/span&gt; Request.QueryString.AllKeys)&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; Response.Write(param + &lt;span style="color:#a31515;"&gt;&amp;quot; = &amp;quot;&lt;/span&gt; + Request.QueryString[param] + &lt;span style="color:#a31515;"&gt;&amp;quot;&amp;lt;br /&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;}&lt;/p&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Test the page: Navigate to the accelerator’s url, and add several parameters. For example:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://localhost:16319/ShowTwitterUser.aspx?data1=guy&amp;amp;data2=burstein" href="http://localhost:16319/ShowTwitterUser.aspx?data1=guy&amp;amp;data2=burstein"&gt;http://localhost:16319/ShowTwitterUser.aspx?data1=guy&amp;amp;data2=burstein&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="How to build a Simple IE8 Accelerator " border="0" alt="How to build a Simple IE8 Accelerator " src="http://blogs.microsoft.co.il/blogs/bursteg/image_16AB6061.png" width="480" height="253" /&gt;&amp;#160; &lt;/p&gt;  &lt;h3&gt;Defining the Accelerator OpenService Xml&lt;/h3&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;In order to register the Accelerator with a user’s browser, we have to create an xml file with the details of the Accelerator.&lt;/p&gt;  &lt;p&gt;Add an Xml file to the web application that defines the Accelerators metadata required by the browser.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;openServiceDescription&lt;/span&gt;&lt;span style="color:blue;"&gt;        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;a href="http://www.microsoft.com/schemas/openservicedescription/1.0"&gt;http://www.microsoft.com/schemas/openservicedescription/1.0&lt;/a&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;homepageUrl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;http://www.bursteg.net/&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;homepageUrl&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;display&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Twitter Profile Accelerator&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;icon&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;http://www.twitter.com/favicon.ico&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;icon&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;display&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;activity&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;category&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Define&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;activityAction&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;context&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;selection&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;preview&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;action&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://www.bursteg.net/Twitter/ShowTwitterUser.aspx&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;parameter&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;selection&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;{selection}&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;preview&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;execute&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;action&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://www.bursteg.net/Twitter/ShowTwitterUser.aspx&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;parameter&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;documentUrl&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;{documentUrl}&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;parameter&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;documentTitle&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;{documentTitle}&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;parameter&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;documentDomain&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;{documentDomain}&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;parameter&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;documentHost&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;{documentHost}&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;parameter&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;selection&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;{selection}&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;execute&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;activityAction&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;activity&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;openServiceDescription&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Few things to notice in the Accelerator Xml:&lt;/p&gt;  &lt;p&gt;1. There is some meta data about the accelerator such as homepage Url and the display name and icon.&lt;/p&gt;  &lt;p&gt;2. The Activity node defines a category to which this accelerator belongs to. There are some default categories like Map, Translate, Blog etc, but users can manage their categories using the Manage Add-ons Dialog.&lt;/p&gt;  &lt;p&gt;3. As described earlier, the accelerator defines 2 actions, preview and execute, each defines a Url to call to when clicked / previewed, and several parameters to pass to the target page.&lt;/p&gt;  &lt;h3&gt;Register the Accelerator with the User’s Browser&lt;/h3&gt;  &lt;p&gt;In a page of your chose (for example Default.aspx) add a button that registers the accelerator when clicked:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;input&lt;/span&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;btnRegister&amp;quot;&lt;/span&gt;&amp;#160;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;button&amp;quot;&lt;/span&gt;&amp;#160;&lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Add Accelerator to IE8&amp;quot;&lt;/span&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:red;"&gt;onclick&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;BLOCKED SCRIPTwindow.external.AddService(&amp;#39;&lt;font color="#000000"&gt;TwitterProfileAccelerator.xml&lt;/font&gt;&amp;#39;);&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="How to build a Simple IE8 Accelerator " border="0" alt="How to build a Simple IE8 Accelerator " src="http://blogs.microsoft.co.il/blogs/bursteg/image_3BB88500.png" width="241" height="41" /&gt; &lt;/p&gt;  &lt;p&gt;When the user clicks on the above button, a dialog pops us asking his permission to add this accelerator to his browser, and whether to make it the default accelerator in its category.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="How to build a Simple IE8 Accelerator " border="0" alt="How to build a Simple IE8 Accelerator " src="http://blogs.microsoft.co.il/blogs/bursteg/image_68613ED9.png" width="298" height="218" /&gt; &lt;/p&gt;  &lt;h3&gt;Using the Accelerator&lt;/h3&gt;  &lt;p&gt;After the user has added the accelerator to his browser he can start using it. Select some text and the accelerator box will appear next to it. Click on it add hover over the new accelerator. This should make an HTTP request to the accelerator page passing it the text you have selected.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="How to build a Simple IE8 Accelerator " border="0" alt="How to build a Simple IE8 Accelerator " src="http://blogs.microsoft.co.il/blogs/bursteg/image_4EC98BDF.png" width="480" height="284" /&gt; &lt;/p&gt;  &lt;p&gt;If you click on the accelerator, IE8 will open the target page in a new tab passing it the selected text and additional information as defined in the accelerator xml.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="How to build a Simple IE8 Accelerator " border="0" alt="How to build a Simple IE8 Accelerator " src="http://blogs.microsoft.co.il/blogs/bursteg/image_403E69ED.png" width="480" height="327" /&gt; &lt;/p&gt;  &lt;h3&gt;Summary&lt;/h3&gt;  &lt;p&gt;In this pot I took the steps needed to build an accelerator. You can follow them you build your own accelerators and add additional logic to provide more interaction with your uses.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=348172" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/F1dq6e8bk7M" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/IE8/default.aspx">IE8</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/06/29/how-to-build-a-simple-ie8-accelerator.aspx</feedburner:origLink></item><item><title>חיפוש מוצרים באתר זאפ עם Internet Explorer 8</title><link>http://feedproxy.google.com/~r/bursteg/~3/xLW566Arhgg/IE8_2D00_ZAP_2D00_Accelerator.aspx</link><pubDate>Thu, 11 Jun 2009 08:21:27 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:334220</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>1</slash:comments><description>&lt;div dir="rtl" align="right"&gt;   &lt;h1&gt;חיפוש מוצרים באתר זאפ עם Internet Explorer 8&lt;/h1&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;img style="border-right-width:0px;margin:0px 20px 35px 0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="חיפוש מוצרים באתר זאפ עם Internet Explorer 8" border="0" alt="חיפוש מוצרים באתר זאפ עם Internet Explorer 8" align="left" src="http://blogs.microsoft.co.il/blogs/bursteg/logo20zap_69C89A3B.jpg" width="234" height="84" /&gt;אתמול קיבלתי מייל מחבר שלי: &lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;em&gt;“לא תאמין – היום חברה שלי ואני חוגגים שנה יחד, ואני מחפש לה מתנה. אני חייב לצאת גדול כי היא קנתה לי Xbox !!!”&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;אני לא יודע מה התגובה הראשונה שלכם כשאתה קוראים את מה שחבר שלי כתב לי, אבל הדבר הראשון שעלה לי לראש זה – בואו נראה כמה &lt;em&gt;באמת&lt;/em&gt; החברה שלו השקיעה…         &lt;br /&gt;אז כדי לדעת כמה בימינו אלה עולה Xbox, סביר להניח שהייתי פותח טאב חדש, גולש לאתר השוואת המחירים – זאפ ומבצע חיפוש למחרוזת Xbox כדי לראות כמה הוא עולה.&lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;עם Internet Explorer 8, זה הרבה יותר פשוט. כאשר מסמנים טקסט כלשהו באינטרנט, פתאום מופיע הלחצן הכחול הזה:&lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;img style="border-right-width:0px;margin:0px auto;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="חיפוש מוצרים באתר זאפ עם Internet Explorer 8" border="0" alt="חיפוש מוצרים באתר זאפ עם Internet Explorer 8" src="http://blogs.microsoft.co.il/blogs/bursteg/image_0BF07FF5.png" width="142" height="56" /&gt; &lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;שכאשר לוחצים עליו, נפתחת רשימה של Accelerators (או בעברית – מאיצי גלישה) שמאפשרים לי להפעיל כל מיני שירותים על הטקסט שסימנתי. לדוגמא, אני יכול להפעיל את ה- Accelerator של חיפוש פריטים בזאפ ולקבל את התוצאה הבאה:&lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;img style="border-right-width:0px;margin:0px auto;display:block;float:none;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="חיפוש מוצרים באתר זאפ עם Internet Explorer 8" border="0" alt="חיפוש מוצרים באתר זאפ עם Internet Explorer 8" src="http://blogs.microsoft.co.il/blogs/bursteg/image_4A099AA6.png" width="480" height="310" /&gt; &lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;ה- Accelerator פונה לאתר זאפ, ומציג לי את הפריטים שעונים לשם Xbox עם התמונה שלהם, טווחי המחירים ומידע נוסף. ובשביל לקבל את כל זה הייתי צריך בסך הכל לסמן טקסט ולהפעיל Accelerator. הרבה יותר פשוט מקודם!&lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;אם גם אתם רוצים להוסיף את ה- Accelerator של חיפוש פריטים בזאפ ל- Explorer שלכם, תוכלו לעשות את זה מתוך &lt;a href="http://ieaddons.com/il/newest"&gt;גלריית ההרחבות של Internet Explorer 8&lt;/a&gt; שמכילה עוד הרבה הרחבות שפותחו ע”י אתרים מובילים בארץ. את כל ההרחבות של אתר זאפ תוכלו למצוא &lt;a&gt;כאן&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;בהמשך אספר על עוד הרחבות ל- Internet Explorer 8 שפותחו בארץ…&lt;/font&gt;&lt;/p&gt;    &lt;p dir="rtl" align="right"&gt;&lt;font size="3"&gt;תהנו!&lt;/font&gt;&lt;/p&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=334220" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/xLW566Arhgg" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Hebrew/default.aspx">Hebrew</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/IE8/default.aspx">IE8</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/06/11/IE8_2D00_ZAP_2D00_Accelerator.aspx</feedburner:origLink></item><item><title>Getting Started with jQuery in Visual Studio 2008</title><link>http://feedproxy.google.com/~r/bursteg/~3/n3NqkNZopn0/getting-started-with-jquery-in-visual-studio-2008.aspx</link><pubDate>Fri, 05 Jun 2009 16:06:22 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:331031</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>3</slash:comments><description>&lt;h1&gt;Getting Started with jQuery in Visual Studio 2008&lt;/h1&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="jQuery IntellSense in Visual Studio 2008" border="0" alt="jQuery IntellSense in Visual Studio 2008" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/jQuery_3E1AE004.png" width="230" height="80" /&gt;&lt;/p&gt;  &lt;p&gt;In this post I’ll talk about adding &lt;strong&gt;jQuery IntellSense in Visual Studio 2008&lt;/strong&gt;, and how to add jQuery to a simple Web Application inside Visual Studio 2008.&lt;/p&gt;  &lt;h3&gt;jQuery IntelliSense in Visual Studio 2008 - KB946581&lt;/h3&gt;  &lt;p&gt;In order to use &lt;strong&gt;jQuery&lt;/strong&gt; &lt;strong&gt;in Visual Studio 2008 with IntelliSence&lt;/strong&gt; a &lt;a href="http://blogs.msdn.com/webdevtools/archive/2008/02/09/downloadable-hotfix-performance-and-editor-fixes-for-microsoft-visual-studio-2008-and-visual-web-developer-express-2008.aspx"&gt;hotfix&lt;/a&gt; for Visual Studio 2008 must be installed:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10826"&gt;Download the hotfix from Connect&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Run the executable and extract its contents to a folder in your hard drive. &lt;/li&gt;    &lt;li&gt;Make sure all instances of Visual Studio 2008 are closed, and run &lt;strong&gt;VS90-KB946581.exe&lt;/strong&gt; from the above folder. &lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;Download the Latest jQuery Library + Documentation&lt;/h3&gt;  &lt;p&gt;To use &lt;strong&gt;jQuery in Visual Studio 2008&lt;/strong&gt;, and enjoy its IntelliSense, you should download 2 javascript files. One contains the actual jQuery library, and the second contains the library with documentation for &lt;strong&gt;Visual Studio 2008&lt;/strong&gt; to display its &lt;strong&gt;IntelliSense&lt;/strong&gt;.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Go to &lt;a href="http://docs.jquery.com/Downloading_jQuery#Download_jQuery"&gt;jQuery Official Download Page&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Scroll down and find the &lt;strong&gt;Current Release&lt;/strong&gt; section. &lt;/li&gt;    &lt;li&gt;Download the &lt;strong&gt;Uncompressed&lt;/strong&gt; version (&lt;em&gt;jquery-1.2.6.js&lt;/em&gt;) and the documentation for Visual Studio (&lt;em&gt;jquery-1.2.6-vsdoc.js&lt;/em&gt;). &lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;Using jQuery in a Visual Studio 2008 Web Application&lt;/h3&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="jQuery IntelliSense in Visual Studio 2008 - KB946581" border="0" alt="jQuery IntelliSense in Visual Studio 2008 - KB946581" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/image_34DEA4C3.png" width="165" height="153" /&gt;In a new Web Application or inside an existing one, add the jQuery scripts into a certain folder.&lt;/p&gt;  &lt;p&gt;In a web page (or a master page), add a reference to the jQuery library:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;head&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;jQuery Sample&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;src&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;scripts/jquery-1.2.6.js&amp;quot;&lt;/span&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;head&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Then, in any javascript function you can start using &lt;strong&gt;jQuery&lt;/strong&gt; functions and enjoy the &lt;strong&gt;IntelliSense in Visual Studio 2008&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="jQuery IntelliSense in Visual Studio 2008 - KB946581" border="0" alt="jQuery IntelliSense in Visual Studio 2008 - KB946581" src="http://blogs.microsoft.co.il/blogs/bursteg/image_5CC1A422.png" width="293" height="96" /&gt; &lt;/p&gt;  &lt;h3&gt;A Simple Example of Using jQuery Functions&lt;/h3&gt;  &lt;p&gt;For example, Assuming that you have a page with the following content in it:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;form&lt;/span&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;form1&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;div&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;input&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;inputs&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;txtName&amp;quot;&lt;/span&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Enter Text Here&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;input&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;button&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;inputs&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;btnSubmit&amp;quot;&lt;/span&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:red;"&gt;value&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Click Me&amp;quot;&lt;/span&gt; &lt;span style="color:red;"&gt;&lt;strong&gt;onclick&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;strong&gt;=&amp;quot;handleButtonClick();&lt;/strong&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;div&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;form&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This form contains a single textbox followed by a button.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="jQuery IntelliSense in Visual Studio 2008 - KB946581" border="0" alt="jQuery IntelliSense in Visual Studio 2008 - KB946581" src="http://blogs.microsoft.co.il/blogs/bursteg/image_59CC3F6F.png" width="242" height="39" /&gt; &lt;/p&gt;  &lt;p&gt;The &lt;em&gt;handleButtonClick()&lt;/em&gt; function handles the button &lt;em&gt;onclick&lt;/em&gt; event.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;function&lt;/span&gt; handleButtonClick() {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The way jQuery works is by selecting DOM elements and then doing something with them, such as executing a function or applying some properties. For example:&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt; &lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; &lt;span style="color:blue;"&gt;function&lt;/span&gt; handleButtonClick() {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;$(&lt;span style="color:#a31515;"&gt;&amp;quot;#txtName&amp;quot;&lt;/span&gt;).css(&lt;span style="color:#a31515;"&gt;&amp;quot;border&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;solid 2px red&amp;quot;&lt;/span&gt;);&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;The above method uses the selector function &lt;strong&gt;$&lt;/strong&gt; to select DOM elements (in this case – a single element with id = txtName) and to apply a style property of a red border. Running this page and clicking the button results in this output:&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="jQuery IntelliSense in Visual Studio 2008 - KB946581" border="0" alt="jQuery IntelliSense in Visual Studio 2008 - KB946581" src="http://blogs.microsoft.co.il/blogs/bursteg/image_2D430F89.png" width="249" height="33" /&gt; &lt;/p&gt;  &lt;h3&gt;Summary&lt;/h3&gt;  &lt;p&gt;In this post I talked about the steps you should follow in order to use &lt;strong&gt;jQuery in Visual Studio 2008 with InstelliSense support&lt;/strong&gt;. Then, we used jQuery in a simple web application.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=331031" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/n3NqkNZopn0" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/VS2008+SP1/default.aspx">VS2008 SP1</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/ASP.Net+MVC/default.aspx">ASP.Net MVC</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/ASP.Net/default.aspx">ASP.Net</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/jQuery/default.aspx">jQuery</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/06/05/getting-started-with-jquery-in-visual-studio-2008.aspx</feedburner:origLink></item><item><title>ASP.Net MVC on Windows Azure | ASP.Net MVC Web Role</title><link>http://feedproxy.google.com/~r/bursteg/~3/NKJJUvS0nHs/asp-net-mvc-on-windows-azure-asp-net-mvc-web-role.aspx</link><pubDate>Sat, 23 May 2009 13:44:38 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:303260</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>3</slash:comments><description>&lt;h1&gt;ASP.Net MVC on Windows Azure | ASP.Net MVC Web Role&lt;/h1&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px 0px 0px 20px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/WindowsAzure_75F92F1E.png" width="210" height="46" /&gt;When you install &lt;strong&gt;Windows Azure&lt;/strong&gt; Tools for Visual Studio, you only get a project template for an &lt;strong&gt;ASP.Net Web Role&lt;/strong&gt;. In this post I’ll talk about how to create a new &lt;strong&gt;ASP.Net MVC Web Role&lt;/strong&gt; or move an existing &lt;strong&gt;ASP.Net MVC&lt;/strong&gt; Application to &lt;strong&gt;Windows Azure&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;There are 2 ways to do this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;&lt;img style="border-right-width:0px;margin:20px 0px 20px 10px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/ASP.Net_4B5D4E41.jpg" width="194" height="37" /&gt;Manually&lt;/strong&gt; adding an &lt;strong&gt;ASP.Net MVC application as a Web Role&lt;/strong&gt; (suitable both for a new ASP.Net MVC application and for an existing one). &lt;/li&gt;    &lt;li&gt;Use a &lt;strong&gt;Project Template&lt;/strong&gt; to simply create a new ASP.Net MVC Web Role (new ASP.Net MVC application only). &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Creating a New ASP.Net MVC Web Role&lt;/h3&gt;  &lt;p&gt;The following steps apply both for creating a new ASP.Net MVC application and to moving an existing ASP.Net MVC application to Windows Azure.&lt;/p&gt;  &lt;p&gt;1. Create an empty &lt;strong&gt;ASP.Net MVC Application&lt;/strong&gt; (with or without a test project), or make sure you have an existing ASP.Net MVC application that you want to move to the Windows Azure.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_2F6C1949.png" width="480" height="337" /&gt; &lt;/p&gt;  &lt;p&gt;2. Close this solution and create a new &lt;strong&gt;Blank Cloud Service&lt;/strong&gt;. Make sure you start &lt;strong&gt;Visual Studio as an administrator&lt;/strong&gt; because working with the &lt;strong&gt;Development Fabric&lt;/strong&gt; requires that.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_246EEC67.png" width="480" height="350" /&gt; &lt;/p&gt;  &lt;p&gt;3. &lt;strong&gt;Add an existing project&lt;/strong&gt; to the cloud service and select the ASP.Net MVC Application you have created earlier.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_2D8ADC0E.png" width="174" height="249" /&gt; &lt;/p&gt;  &lt;p&gt;4. &lt;strong&gt;Right click&lt;/strong&gt; the ASP.Net MVC project and select &lt;strong&gt;Unload Project&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_4893854F.png" width="343" height="285" /&gt; &lt;/p&gt;  &lt;p&gt;5. When the project is unloaded, right click it and &lt;strong&gt;edit the project file&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_77196864.png" width="380" height="187" /&gt; &lt;/p&gt;  &lt;p&gt;6. The project file opens in the XML Editor. &lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Project&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ToolsVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;3.5&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;DefaultTargets&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Build&lt;/span&gt;&amp;quot; ...&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Configuration&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &amp;#39;$(Configuration)&amp;#39; == &amp;#39;&amp;#39; &lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Debug&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; ...&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; ...        &lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Project&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;Inside the &lt;strong&gt;PropertyGroup&lt;/strong&gt; Element, add the &lt;strong&gt;RoleType&lt;/strong&gt; element and mark this &lt;strong&gt;ASP.Net MVC project as a Web Role&lt;/strong&gt;.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:11pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Project&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;ToolsVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;3.5&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;DefaultTargets&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Build&lt;/span&gt;&amp;quot; ...&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RoleType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Web&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RoleType&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Configuration&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Condition&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &amp;#39;$(Configuration)&amp;#39; == &amp;#39;&amp;#39; &lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Debug&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; ...        &lt;br /&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;PropertyGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160; ...&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Project&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;7. Close this project file, and &lt;strong&gt;reload the project&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_23263F89.png" width="356" height="172" /&gt; &lt;/p&gt;  &lt;p&gt;8. Since the ASP.Net MVC now runs on the Windows Azure Service Hosting environment and will probably use its services – add a reference to &lt;strong&gt;Microsoft.ServiceHosting.ServiceRuntime.dll&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_41805AA5.png" width="480" height="313" /&gt; &lt;/p&gt;  &lt;p&gt;9. &lt;strong&gt;Right click&lt;/strong&gt; the &lt;strong&gt;Roles&lt;/strong&gt; node in the project tree, and add a &lt;strong&gt;Web Role Project in the solution. &lt;/strong&gt;Select the ASP.Net MVC project from the project list.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_569E3A80.png" width="412" height="148" /&gt; &lt;/p&gt;  &lt;p&gt;Now the &lt;strong&gt;ASP.Net MVC&lt;/strong&gt; project is shown as a &lt;strong&gt;Web Role&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_179C9418.png" width="234" height="176" /&gt; &lt;/p&gt;  &lt;p&gt;10. Since the &lt;strong&gt;Windows Azure&lt;/strong&gt; provides us only with the default .Net Framework 3.5 SP1 assemblies, we must make sure we also copy the &lt;strong&gt;ASP.Net MVC&lt;/strong&gt; Assemblies to the cloud. To do this, right click on each of the following references of the &lt;strong&gt;ASP.Net MVC&lt;/strong&gt; application, and set the &lt;strong&gt;Copy Local&lt;/strong&gt; property to &lt;strong&gt;True:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;System.Web.Abstractions &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;System.Web.Mvc &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;System.Web.Routing&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_26A34D25.png" width="251" height="255" /&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That’s it. You can run the application to make sure that it is running on the &lt;strong&gt;Development Fabric&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_26739D65.png" width="480" height="309" /&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;Creating an ASP.Net MVC Web Role using a Project Template&lt;/p&gt;  &lt;p&gt;Thanks to a great word done by the community, we can use a project template to do all the above steps for us. Here’s how to do this:&lt;/p&gt;  &lt;p&gt;1. Download the project template from Codeplex at &lt;a href="http://c4mvc.codeplex.com/"&gt;http://c4mvc.codeplex.com/&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_042B6C12.png" width="286" height="214" /&gt; &lt;/p&gt;  &lt;p&gt;2. Create a new project and select the &lt;strong&gt;Azure ASP.Net MVC&lt;/strong&gt; template in the &lt;strong&gt;Community for MVC&lt;/strong&gt; category.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_7A3654D9.png" width="480" height="377" /&gt; &lt;/p&gt;  &lt;p&gt;This creates a new &lt;strong&gt;Cloud Service for Windows Azure with ASP.Net MVC Application as a Web Role&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="ASP.Net MVC Web Role Windows Azure" border="0" alt="ASP.Net MVC Web Role Windows Azure" src="http://blogs.microsoft.co.il/blogs/bursteg/image_6AA31D3D.png" width="158" height="305" /&gt; &lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=303260" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/NKJJUvS0nHs" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/ASP.Net+MVC/default.aspx">ASP.Net MVC</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/05/23/asp-net-mvc-on-windows-azure-asp-net-mvc-web-role.aspx</feedburner:origLink></item><item><title>Visual Studio 2010 and .Net Framework 4.0 Beta 1 Is Publically Available</title><link>http://feedproxy.google.com/~r/bursteg/~3/ugbQC7IUsds/visual-studio-2010-and-net-framework-4-0-beta-1-is-publically-available.aspx</link><pubDate>Thu, 21 May 2009 08:20:28 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:300583</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>2</slash:comments><description>&lt;h1&gt;Visual Studio 2010 and .Net Framework 4.0 Beta 1 Is Publically Available&lt;/h1&gt;  &lt;p&gt;&lt;strong&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Visual Studio 2010 .Net Framework 4.0 Beta 1" border="0" alt="Visual Studio 2010 .Net Framework 4.0 Beta 1" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/VisualStudioTeamSystemgeneric2008logo_4256C2EA.png" width="177" height="79" /&gt;Downloads&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Video: &lt;a href="http://channel9.msdn.com/shows/10-4/10-4-Episode-20-Downloading-and-Installing-Visual-Studio-2010-Beta-1/"&gt;How to Download and Install the Beta&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=147415"&gt;.NET Framework 4 Beta 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=147407"&gt;Visual Studio Team System 2010 Team Suite Beta 1&lt;/a&gt;&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=147408"&gt;Visual Studio 2010 Professional Beta 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=147412"&gt;Visual Studio Team Foundation Server 2010 Beta 1&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Training and Resources&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752CB725-969B-4732-A383-ED5740F02E93&amp;amp;displaylang=en"&gt;Visual Studio 2010 and .NET Framework 4 Training Kit - May Pre&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Visual Studio 2010 .Net Framework 4.0 Beta 1" border="0" alt="Visual Studio 2010 .Net Framework 4.0 Beta 1" align="right" src="http://blogs.microsoft.co.il/blogs/bursteg/dotNethorizontal_5EA4050A.jpg" width="182" height="52" /&gt;view&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb386063(VS.100).aspx"&gt;What&amp;#39;s New in Visual Studio 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd547188(VS.100).aspx"&gt;Visual Studio 2010 Product Highlights&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=5aca0622-d87d-4cc9-a22c-0d58205a56b4"&gt;WCF WF Samples for .NET Framework 4.0 Beta 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/wcfwf4/Release/ProjectReleases.aspx?ReleaseId=2698"&gt;WCF-WF 4 Training Kit Beta 1&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=300583" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/ugbQC7IUsds" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/.Net+Framework+4.0/default.aspx">.Net Framework 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/WF+4/default.aspx">WF 4</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/05/21/visual-studio-2010-and-net-framework-4-0-beta-1-is-publically-available.aspx</feedburner:origLink></item><item><title>WF/WCF using Visual Studio 2010 and .NET Framework 4 Training Kit</title><link>http://feedproxy.google.com/~r/bursteg/~3/k9SrzsQyfQ8/wf-wcf-using-visual-studio-2010-and-net-framework-4-training-kit.aspx</link><pubDate>Tue, 19 May 2009 13:22:40 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:298208</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>0</slash:comments><description>&lt;h1&gt;WF/WCF using Visual Studio 2010 and .NET Framework 4 Training Kit&lt;/h1&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="WF/WCF using Visual Studio 2010 and .NET Framework 4 Training Kit" border="0" alt="WF/WCF using Visual Studio 2010 and .NET Framework 4 Training Kit" src="http://blogs.microsoft.co.il/blogs/bursteg/WF_22469ACA.png" width="263" height="51" /&gt;&amp;#160;&amp;#160; &lt;img style="border-right-width:0px;margin:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="WF/WCF using Visual Studio 2010 and .NET Framework 4 Training Kit" border="0" alt="WF/WCF using Visual Studio 2010 and .NET Framework 4 Training Kit" src="http://blogs.microsoft.co.il/blogs/bursteg/WCF_000E8F44.png" width="310" height="47" /&gt; &lt;/p&gt;  &lt;p&gt;The &lt;strong&gt;Microsoft WF/WCF using Visual Studio 2010 and .NET Framework 4 Training Kit&lt;/strong&gt; includes presentations, hands-on labs, and demos. This content is designed to help you learn how to utilize the Visual Studio 2010 features and a variety of WF and WCF new features.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Learn &lt;strong&gt;basic workflow creation&lt;/strong&gt;, hosting and running , and test-drive workflow development. &lt;/li&gt;    &lt;li&gt;Get an introduction to workflow services, communication between workflows and content based correlation of workflow instances. &lt;/li&gt;    &lt;li&gt;Use the flexibility of &lt;strong&gt;Flowchart&lt;/strong&gt; workflow activities to implement non-sequential workflows. &lt;/li&gt;    &lt;li&gt;Learn how to &lt;strong&gt;rehost the workflow designer&lt;/strong&gt; in a WPF desktop application and customize it in several ways. &lt;/li&gt;    &lt;li&gt;Learn how you can leverage some of the main &lt;strong&gt;WF and WCF monitoring&lt;/strong&gt; features to track application execution and troubleshoot problems with services when necessary. &lt;/li&gt;    &lt;li&gt;Learn how &lt;strong&gt;Service discovery&lt;/strong&gt; allows you to locate services on the same subnet using ad hoc discovery, or using a proxy to establish connections with servers regardless of where they are. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This version of the training kit is compatible with &lt;a href="http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/05/18/visual-studio-2010-beta-1-is-available-for-msdn-subscribers.aspx"&gt;Visual Studio 2010 Beta 1&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Download &lt;a href="http://code.msdn.microsoft.com/wcfwf4/Release/ProjectReleases.aspx?ReleaseId=2698"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=298208" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/k9SrzsQyfQ8" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/WF/default.aspx">WF</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/.Net+Framework+4.0/default.aspx">.Net Framework 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Xaml/default.aspx">Xaml</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/WF+4/default.aspx">WF 4</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/05/19/wf-wcf-using-visual-studio-2010-and-net-framework-4-training-kit.aspx</feedburner:origLink></item><item><title>WF 4.0: Long Running Custom Activities with Bookmarks and NativeActivity</title><link>http://feedproxy.google.com/~r/bursteg/~3/SBLoijJF8CE/wf-4-0-long-running-custom-activities-with-bookmarks-and-nativeactivity.aspx</link><pubDate>Tue, 19 May 2009 12:37:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:298145</guid><dc:creator>Guy Burstein</dc:creator><slash:comments>1</slash:comments><description>&lt;h1&gt;WF 4.0: Long Running Custom Activities with Bookmarks and NativeActivity&lt;/h1&gt;
&lt;p&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;MARGIN:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" title="WF 4.0: Long Running Custom Activities Bookmarks NativeActivity" border="0" alt="WF 4.0: Long Running Custom Activities Bookmarks NativeActivity" src="http://blogs.microsoft.co.il/blogs/bursteg/WF23_6CC2589D.png" width="314" height="61" /&gt;&lt;/p&gt;
&lt;p&gt;This is another post in my &lt;a href="http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/05/19/wf-4-0-custom-activities.aspx"&gt;WF 4.0: Custom Activities series&lt;/a&gt;. In a previous post I have talked about creating a code only custom activity that performs a simple task. In this post I’ll talk about creating a more complex activities that takes inputs from the calling program during their execution.&lt;/p&gt;
&lt;p&gt;In the previous post &lt;a href="http://blogs.msdn.com/bursteg/archive/2009/05/19/wf-4-0-code-only-custom-activities-for-atomic-actions-codeactivity-codeactivity-t.aspx"&gt;WF 4.0: Code Only Custom Activities for Atomic Actions | CodeActivity, CodeActivity&amp;lt;T&amp;gt;&lt;/a&gt; I implemented the following activity for reading a string from the console.&lt;/p&gt;
&lt;div style="FONT-FAMILY:consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;class&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;ReadString2&lt;/span&gt; : &lt;span style="COLOR:#2b91af;"&gt;CodeActivity&lt;/span&gt;&amp;lt;&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;&amp;gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;protected&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;override&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Execute(&lt;span style="COLOR:#2b91af;"&gt;CodeActivityContext&lt;/span&gt; context)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; value = &lt;span style="COLOR:#2b91af;"&gt;Console&lt;/span&gt;.ReadLine();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; context.SetValue(Result, value);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;While this activity will perform the task it is meant to do, it is bloc&lt;strong&gt;king the calling thread and bad for scalability&lt;/strong&gt;. In addition to that It is bound to getting the value from the console only, and it is &lt;strong&gt;not generic enough&lt;/strong&gt; to support another input methods.&lt;/p&gt;
&lt;p&gt;Enter &lt;strong&gt;Bookmarks&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;Using NativeActivity for Complex Activities&lt;/h3&gt;
&lt;p&gt;To create a long running activity, add a new item of type &lt;strong&gt;Workflow Element&lt;/strong&gt; item to the project. Notice that the default activity inherits from &lt;strong&gt;CodeActivity&lt;/strong&gt;.&lt;/p&gt;
&lt;div style="FONT-FAMILY:consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;class&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;ReadString3&lt;/span&gt; : &lt;span style="COLOR:#2b91af;"&gt;CodeActivity&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;protected&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;override&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Execute(&lt;span style="COLOR:#2b91af;"&gt;CodeActivityContext&lt;/span&gt; context)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;To create complex activities such as long running activities, me need to change the base class and inherit from &lt;strong&gt;NativeActivity&lt;/strong&gt; or &lt;strong&gt;NativeActivity&amp;lt;T&amp;gt;.&lt;/strong&gt; In addition to that, there is a difference between the type of the parameter that the &lt;strong&gt;CodeActivity&lt;/strong&gt; takes for the Execute method and the type that &lt;strong&gt;NativeActivity&lt;/strong&gt; takes. Change the input parameter type from &lt;strong&gt;CodeActivityContext&lt;/strong&gt; to &lt;strong&gt;ActivityExecutionContext&lt;/strong&gt;.&lt;/p&gt;
&lt;div style="FONT-FAMILY:consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;class&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;ReadString3&lt;/span&gt; : &lt;span style="COLOR:#2b91af;"&gt;NativeActivity&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;protected&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;override&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Execute(&lt;span style="COLOR:#2b91af;"&gt;ActivityExecutionContext&lt;/span&gt; context)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;throw&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;NotImplementedException&lt;/span&gt;();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;h3&gt;Enter Bookmarks&lt;/h3&gt;
&lt;p&gt;In previous versions of &lt;strong&gt;Windows Workflow Foundation&lt;/strong&gt; we had the &lt;strong&gt;ExternalDataExchangeService&lt;/strong&gt; and &lt;strong&gt;WorkflowQueue&lt;/strong&gt; when we wanted to build a simple long running activity. In &lt;strong&gt;WF 4.0&lt;/strong&gt; this is much more simple to do using &lt;strong&gt;Bookmarks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To use bookmarks we need to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a named bookmark and Implement a callback method &lt;/li&gt;
&lt;li&gt;Signal from the caller program &lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;Register a Named Bookmak&lt;/h3&gt;
&lt;p&gt;The following activity registers a bookmark called “input” with a callback method called &lt;strong&gt;OnBookmarkCallback&lt;/strong&gt;.&lt;/p&gt;
&lt;div style="FONT-FAMILY:consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;class&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;ReadString3&lt;/span&gt; : &lt;span style="COLOR:#2b91af;"&gt;NativeActivity&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;OutArgument&lt;/span&gt;&amp;lt;&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;&amp;gt; name;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;OutArgument&lt;/span&gt;&amp;lt;&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;&amp;gt; Name&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;get&lt;/span&gt; { &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.name; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;set&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ThrowIfOpen();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.name = &lt;span style="COLOR:blue;"&gt;value&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;protected&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;override&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Execute(&lt;span style="COLOR:#2b91af;"&gt;ActivityExecutionContext&lt;/span&gt; context)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;context.CreateNamedBookmark(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;input&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;BookmarkCallback&lt;/span&gt;(&lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.OnBookmarkCallback));&lt;/strong&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; &lt;strong&gt;&lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; OnBookmarkCallback(&lt;span style="COLOR:#2b91af;"&gt;ActivityExecutionContext&lt;/span&gt; context, &lt;span style="COLOR:#2b91af;"&gt;Bookmark&lt;/span&gt; bookmark, &lt;span style="COLOR:blue;"&gt;object&lt;/span&gt; obj)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;strong&gt;&amp;nbsp; {&lt;/strong&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Name.Set(context, (&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;)obj);&lt;/strong&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;strong&gt;&amp;nbsp; }&lt;/strong&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;h3&gt;Signal the workflow from the caller program&lt;/h3&gt;
&lt;p&gt;In a previous post I have talked about &lt;a href="http://blogs.microsoft.co.il/controlpanel/blogs/WF%204.0:%20How%20to%20Execute%20a%20Worklflow%20(WorkflowInvoker%20vs%20WorkflowInstance)"&gt;the code that is needed to execute a workflow&lt;/a&gt;. Since we are now talking about long running workflows we will start with the default code that is generated for us when we create a new sequential workflow console application that uses the &lt;strong&gt;WorkflowInstance&lt;/strong&gt; that lets know when the workflow instance is idle, and to resume a bookmark:&lt;/p&gt;
&lt;div style="FONT-FAMILY:consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;...&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;myInstance.Run();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;//Get a string from the console and resume the bookmark called “input”&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;strong&gt;&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; input = &lt;span style="COLOR:#2b91af;"&gt;Console&lt;/span&gt;.ReadLine();&lt;/strong&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;strong&gt;myInstance.ResumeBookmark(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;input&amp;quot;&lt;/span&gt;, input);&lt;/strong&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;syncEvent.WaitOne(); &lt;br /&gt;... &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;The main program performs the input and delivers the value to the workflow. Using this approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The main program is flexible in how it wants to get values from the user and any other input source &lt;/li&gt;
&lt;li&gt;The workflow becomes idle when it is waiting for the input and during that time not consuming any resources from the machine. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;To query the available bookmarks in a workflow instance, we can use the following code:&lt;/p&gt;
&lt;div style="FONT-FAMILY:consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;IList&lt;/span&gt; bookmarks = myInstance.GetAllBookmarks();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;BookmarkInfo&lt;/span&gt; info &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; bookmarks)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;Console&lt;/span&gt;.Write(info.BookmarkName);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=298145" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/bursteg/~4/SBLoijJF8CE" height="1" width="1"/&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/WF/default.aspx">WF</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/.Net+Framework+4.0/default.aspx">.Net Framework 4.0</category><category domain="http://blogs.microsoft.co.il/blogs/bursteg/archive/tags/WF+4/default.aspx">WF 4</category><feedburner:origLink>http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/05/19/wf-4-0-long-running-custom-activities-with-bookmarks-and-nativeactivity.aspx</feedburner:origLink></item></channel></rss>
