<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>MS Israel Community</title><link>http://blogs.microsoft.co.il/blogs/</link><description>Building a community
</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Introduction to Cloud Computing &amp; Windows Azure: my Developer Academy 4 Presentation</title><link>http://blogs.microsoft.co.il/blogs/maordavid/archive/2010/03/21/introduction-to-cloud-computing-amp-windows-azure-my-developer-academy-4-presentation.aspx</link><pubDate>Sun, 21 Mar 2010 21:07:58 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:555084</guid><dc:creator>maor.Blogging();</dc:creator><slash:comments>0</slash:comments><description>Developer Academy 4 is here! its tomorrow! More than 1400 attendees will join us at the Avenue, Airport City, Israel. We’ll launch there .NET 4, Visual Studio 2010, Silverlight 4 &amp;#38; Windows Azure.
I’ll speak there about cloud computing and Windows Azure. You can download my presentation from the presentations page.
Enjoy!
Similar Posts: The World Summit of Cloud [...]...(&lt;a href="http://blogs.microsoft.co.il/blogs/maordavid/archive/2010/03/21/introduction-to-cloud-computing-amp-windows-azure-my-developer-academy-4-presentation.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=555084" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/maordavid/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.microsoft.co.il/blogs/maordavid/archive/tags/Developer+Academy+4/default.aspx">Developer Academy 4</category><category domain="http://blogs.microsoft.co.il/blogs/maordavid/archive/tags/Presentations/default.aspx">Presentations</category></item><item><title>Introduction to Cloud Computing &amp; Windows Azure: my Developer Academy 4 Presentation</title><link>http://blogs.microsoft.co.il/blogs/maor/archive/2010/03/21/introduction-to-cloud-computing-amp-windows-azure-my-developer-academy-4-presentation.aspx</link><pubDate>Sun, 21 Mar 2010 21:07:58 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:555085</guid><dc:creator>maor.Blogging();</dc:creator><slash:comments>0</slash:comments><description>Developer Academy 4 is here! its tomorrow! More than 1400 attendees will join us at the Avenue, Airport City, Israel. We’ll launch there .NET 4, Visual Studio 2010, Silverlight 4 &amp;#38; Windows Azure.
I’ll speak there about cloud computing and Windows Azure. You can download my presentation from the presentations page.
Enjoy!
Similar Posts: The World Summit of Cloud [...]...(&lt;a href="http://blogs.microsoft.co.il/blogs/maor/archive/2010/03/21/introduction-to-cloud-computing-amp-windows-azure-my-developer-academy-4-presentation.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=555085" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/maor/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.microsoft.co.il/blogs/maor/archive/tags/Developer+Academy+4/default.aspx">Developer Academy 4</category><category domain="http://blogs.microsoft.co.il/blogs/maor/archive/tags/Presentations/default.aspx">Presentations</category></item><item><title>Server.Transfer Vs. Response.Redirect</title><link>http://blogs.microsoft.co.il/blogs/arnold/archive/2010/03/21/server-transfer-vs-response-redirect.aspx</link><pubDate>Sun, 21 Mar 2010 18:39:55 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:554794</guid><dc:creator>Arnold</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;   &lt;p class="thumbImg" align="center"&gt;&lt;img title="Server.Transfer Vs. Response.Redirect" alt="Server.Transfer Vs. Response.Redirect" src="http://blogs.microsoft.co.il/blogs/arnold/serverTransfer_5C495F78.jpg" width="450" height="120" /&gt; &lt;/p&gt;    &lt;p&gt;לאחרונה שאלו אותי כמה אנשים על ההבדל בין Server.Transfer לבין Response.Redirect? מתי משתמשים בכל אחד מהם? ומדוע כדאי להשתמש ב Server.Transfer?      &lt;br /&gt;אז הגיע זמן לענות על השאלות :)&lt;/p&gt; &lt;/div&gt; &lt;!--more--&gt;  &lt;div dir="rtl" align="right"&gt;   &lt;h5&gt;Response.Redirect&lt;/h5&gt;    &lt;p&gt;הפקודה הזאת אומרת לדפדפן לעבור לעמוד המבקש:&lt;/p&gt;    &lt;pre class="csharpcode" align="left"&gt;Response.Redirect(&lt;span class="str"&gt;&amp;quot;&lt;a title="http://one-v.co.il/" href="http://one-v.co.il/"&gt;http://one-v.co.il/&lt;/a&gt;&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

  &lt;h5&gt;Server.Transfer&lt;/h5&gt;

  &lt;p&gt;גם הפקודה אומרת לדפדפן לעבור לעמוד המבוקש: 
    &lt;br /&gt;&lt;/p&gt;

  &lt;pre class="csharpcode" align="left"&gt;Server.Transfer(&lt;span class="str"&gt;&lt;a href="http://one-v.co.il"&gt;http://one-v.co.il&lt;/a&gt;&lt;/span&gt;);&lt;/pre&gt;

  &lt;h5&gt;אז מה ההבדל?&lt;/h5&gt;

  &lt;p&gt;Server.Transfer&amp;#160; שומרת על הנתיב הנוכחי של העמוד ומעבירה רק את בקשה. אחד היתרונות של הפעולה היא חיסכון בבקשות של HTTP. 
    &lt;br /&gt;

    &lt;br /&gt;החסרון בזה הוא שניתן להשתמש Server.Transfer רק כשרוצים להעביר באותו דומיין, Server.Transfer&amp;#160; לא יעבוד במידה ונרצה להעביר לדומיין אחר.&lt;/p&gt;

  &lt;pre class="csharpcode" align="left"&gt;Server.Transfer (&lt;span class="str"&gt;&amp;quot;http://one-v.org&amp;quot;&lt;/span&gt;);     //won&amp;#39;t work&lt;/pre&gt;

  &lt;p&gt;Server.Transfer&amp;#160; מאפשר לנו גם לשמור את הנתונים של העמוד הקודם:&lt;/p&gt;

  &lt;pre class="csharpcode" align="left"&gt;Server.Transfer(&lt;span class="str"&gt;&amp;quot;send.aspx&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;&amp;quot;);&lt;/pre&gt;

  &lt;p&gt;ל Server.Transfer&amp;#160; יש פרמטר נוסף וכשהוא נמצא במצב true הנתונים (לדוגמא נתון שנמצא ב textbox) מועברים לעמוד החדש (אנו גם נוכל לעבד את הנתונים הללו אחר כך).&lt;/p&gt;

  &lt;p&gt;אחד הבעיות של Server.Transfer&amp;#160; הוא כשמנסים להעביר פרמטים או נתוני FORM מתקבלת שגיאה:&lt;/p&gt;

  &lt;p align="center"&gt;&lt;strong&gt;&lt;font size="4"&gt;“View State Is Invalid”&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

  &lt;p&gt;הפתרון לבעיה הוא:&lt;/p&gt;

  &lt;p&gt;&lt;a title="http://support.microsoft.com/default.aspx?id=kb;en-us;Q316920" href="http://support.microsoft.com/default.aspx?id=kb;en-us;Q316920"&gt;http://support.microsoft.com/default.aspx?id=kb;en-us;Q316920&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;לשים &lt;strong&gt;enableViewStateMac =true&lt;/strong&gt; לעבוד אליו אנו מעבירים.&lt;/p&gt;

  &lt;h5&gt;איפה כדאי להשתמש ב Server.Transfer&lt;/h5&gt;

  &lt;p&gt;אחד הדוגמאות הכי טובות לנושא הוא wizard, במידה ולא נרצה להשתמש ב wizard של asp.net נוכל להשתמש ב Server.Transfer כדי להעביר את המשתמש דרך השלבים.&lt;/p&gt;

  &lt;h5&gt;סוף!&lt;/h5&gt;
&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=554794" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arnold/archive/tags/Asp.NET/default.aspx">Asp.NET</category><category domain="http://blogs.microsoft.co.il/blogs/arnold/archive/tags/TECH/default.aspx">TECH</category></item><item><title>Windows Live Movie Maker</title><link>http://blogs.microsoft.co.il/blogs/support/archive/2010/03/21/Windows-Live-Movie-Maker.aspx</link><pubDate>Sun, 21 Mar 2010 15:31:20 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:554445</guid><dc:creator>Ariel Baratz</dc:creator><slash:comments>0</slash:comments><description>&amp;#160; אהלן חברים! שמי קוסטיה וסילקוב ואני נציג תמיכה טכנית של מיקרוסופט. לפני שהגעתי למרכז התמיכה, בין היתר עסקתי בעריכת וידאו מקצועית והתמחתי בתוכנות המובילות בשוק. ברצוני להראות לכם שבעזרת התוכנה Windows Live Movie Maker אפשר ליצור סרטים ביתיים במהירות, בקלות והתוצאות מאוד יפות . לאחר מכן אלמד מעט כיצד לשתף את הסרטים על ערוצי המדיה השונים ביתר קלות. דבר הנוסף שמייחד את Windows Live Movie Maker זה שהוא תומך בטכנולוגיית ה-HD ((High Definition. במדריך הבא אסביר על האפשרויות הבסיסיות של Windows Live...(&lt;a href="http://blogs.microsoft.co.il/blogs/support/archive/2010/03/21/Windows-Live-Movie-Maker.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=554445" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/support/archive/tags/Windows+Vista/default.aspx">Windows Vista</category><category domain="http://blogs.microsoft.co.il/blogs/support/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://blogs.microsoft.co.il/blogs/support/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/support/archive/tags/_D705DC05D505E005D505EA05_/default.aspx">חלונות</category><category domain="http://blogs.microsoft.co.il/blogs/support/archive/tags/Windows+Live+Movie+Maker/default.aspx">Windows Live Movie Maker</category><category domain="http://blogs.microsoft.co.il/blogs/support/archive/tags/_D905D505E605E805_+_D405E105E805D805D905DD05_+Live/default.aspx">יוצר הסרטים Live</category></item><item><title>Dynamic Memory and RemoteFX</title><link>http://blogs.microsoft.co.il/blogs/lior/archive/2010/03/21/dynamic-memory-and-remotefx.aspx</link><pubDate>Sun, 21 Mar 2010 14:34:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:554384</guid><dc:creator>Lior Arviv</dc:creator><slash:comments>1</slash:comments><description>&lt;div dir="rtl" align="right"&gt;&lt;font face="arial,helvetica,sans-serif" size="3"&gt;לאחרונה מיקרוסופט פרסמה פרטים ראשוניים בנוגע לחבילת העדכון Service Pack 1 עבור Windows 7 ו-Windows
Server 2008 R2. &lt;/font&gt;&lt;/div&gt;&lt;div dir="rtl" align="right"&gt;&lt;font face="arial,helvetica,sans-serif" size="3"&gt;דרך &lt;a href="http://www.microsoft.com/Presspass/press/2010/mar10/03-18DesktopVirtPR.mspx"&gt;הודעה
רשמית&lt;/a&gt;, חושפת החברה פרטים לגבי מספר תכונות חדשות ושינויים במודל הרישוי. בצעד
זה עושה מיקרוסופט צעד משמעותי בחיזוק מעמדה בתחום ה-VDI, על ידי הוספת שתי יכולות
חדשות ומעניינות ל-Windows Server 2008 R2.&lt;/font&gt;

&lt;/div&gt;&lt;div dir="rtl" align="right"&gt;&lt;p dir="RTL"&gt;&lt;font face="arial,helvetica,sans-serif" size="3"&gt;&lt;b&gt;Hyper-V Dynamic
Memory&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p dir="RTL"&gt;&lt;font face="arial,helvetica,sans-serif" size="3"&gt;כשמו כן הוא - זיכרון דינמי היא תכונה חדשה המאפשרת
למנהל ה IT לנצל את בריכת
הזיכרון הזמין במחשב המארח (Host)
ולהפיצו אל מכונות וירטואליות במידת הצורך. כלומר, בהתאם לשינויים בעומס העבודה, VMs על גבי Hyper-V יוכלו לקבל הקצאת זיכרון חדשה ללא הפרעה במהלך העבודה.&lt;/font&gt;&lt;/p&gt;

&lt;p dir="RTL"&gt;&lt;font face="arial,helvetica,sans-serif" size="3"&gt;&lt;b&gt;RemoteFX&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p dir="RTL"&gt;&lt;font face="arial,helvetica,sans-serif" size="3"&gt;תוספת חדשה לוירטואליזציית שולחן העבודה מבית
מיקרוסופט VDI.
באמצעות תכונה חדשה זו, משתמשים יוכלו לעבוד ולהנות מסביבה מרוחקת ועשירה יותר הכוללים
Windows Aero,
וידיאו באיכות גבוהה, גרפיקה מבוססת Silverlight/Flash ועבודה עם יישומי 3D.
הגישה לסביבת העבודה מתבצעת דרך חיבור RDP רגיל ממגוון
רחב של תחנות קצה: לקוח רגיל / רזה, מה שמאפשר פריסה רחבה בארגון.&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;



&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=554384" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/lior/archive/tags/Hyper-V/default.aspx">Hyper-V</category><category domain="http://blogs.microsoft.co.il/blogs/lior/archive/tags/Virtualization/default.aspx">Virtualization</category><category domain="http://blogs.microsoft.co.il/blogs/lior/archive/tags/SP1/default.aspx">SP1</category><category domain="http://blogs.microsoft.co.il/blogs/lior/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/lior/archive/tags/R2/default.aspx">R2</category></item><item><title>געגעועים</title><link>http://blogs.microsoft.co.il/blogs/liorz/archive/2010/03/21/more.aspx</link><pubDate>Sun, 21 Mar 2010 14:18:54 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:554351</guid><dc:creator>ליאור צורף</dc:creator><slash:comments>1</slash:comments><description>&lt;div&gt;   &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/liorz/image_24EFEC1A.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://blogs.microsoft.co.il/blogs/liorz/image_thumb_4054A283.png" width="169" height="152" /&gt;&lt;/a&gt; &lt;font size="3"&gt;אני: מאיה?&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;מאיה: מה?&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;אני: את לא מאמינה כמה אני אתגעגע אליך כשאהיה בחו”ל.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;מאיה: באמת? גם אני. אבל אני יותר….&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;אני: איך יותר?&lt;/font&gt;&lt;/p&gt;    &lt;p&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=554351" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/liorz/archive/tags/_DE05D005D905D405_/default.aspx">מאיה</category><category domain="http://blogs.microsoft.co.il/blogs/liorz/archive/tags/offtopic/default.aspx">offtopic</category></item><item><title>WCF Service Throttling</title><link>http://blogs.microsoft.co.il/blogs/zuker/archive/2010/03/21/wcf-service-throttling.aspx</link><pubDate>Sun, 21 Mar 2010 14:05:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:554346</guid><dc:creator>Amir Zuker</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Throttling is an important behavior of your WCF service that you should be addressing before publishing your service to clients.&lt;/p&gt;  &lt;p&gt;The throttling behavior holds the configuration for 3 limitations that control the amount of resources that your service hosting can allocate to deal with client requests, thus enables you to manage the resource usage and balance the performance load.&lt;/p&gt;  &lt;p&gt;It is crucial that you set the behavior appropriately because the default limitations of this service behavior is considered to be quite low.   &lt;br /&gt;The reason for such default values was for blocking DOS (Denial of Service) attacks on your service. However, most of the services we build are on-premises services within our enterprise, it is more appropriate to support more clients rather than block malicious attacks of some kind. (The general purpose is to find the right balance between the two, yet, it usually isn’t as the default values are)&lt;/p&gt;  &lt;p&gt;Why am I blogging about it just now?   &lt;br /&gt;Well, one of the rather unknown changes made in WCF 4.0 is the change of the service throttling behavior default values.&lt;/p&gt;  &lt;p&gt;Microsoft realized that the prior default values weren’t practical and were seldom applied that way.&lt;/p&gt;  &lt;p&gt;The following summarizes the throttling behavior elements and their default value setting.&lt;br /&gt;You should note that &amp;quot;ProcessorCount&amp;quot; indicates the number of CPU processors at the machine.&lt;br /&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;b&gt;MaxConcurrentCalls&lt;/b&gt;&lt;/li&gt;    &lt;p&gt;Defines the total number of concurrent calls that the service will accept. &lt;/p&gt;    &lt;p&gt;Prior to .NET 4.0 the default value is 16, whereas in .NET 4.0 the default value is 16 * ProcessorCount. &lt;/p&gt;    &lt;p&gt;In practice, The amount of calls your service will actually handle depends on the concurrency mode your service is configured with.&lt;/p&gt;    &lt;li&gt;&lt;b&gt;MaxConcurrentSessions&lt;/b&gt;&lt;/li&gt;    &lt;p&gt;Defines the total number of sessionful channels that the service will accept. &lt;/p&gt;    &lt;p&gt;Prior to .NET 4.0 the default value is 10, whereas in .NET 4.0 the default value is 100 * ProcessorCount. &lt;/p&gt;    &lt;p&gt;This setting affects only sessionful channels where a session is represented by each proxy created by the client. &lt;/p&gt;    &lt;p&gt;If a client calls through a sessionful channel which needs to be created and the limitation is exceeded, the request will be queued.&lt;/p&gt;    &lt;li&gt;&lt;b&gt;MaxConcurrentInstances&lt;/b&gt;&lt;/li&gt;    &lt;p&gt;Defines the total number service instances that will be created for servicing requests. &lt;/p&gt;    &lt;p&gt;Prior to .NET 4.0 the default value is 26, whereas in .NET 4.0 the default value is 116 * ProcessorCount. (the sum of the previous two)&lt;/p&gt;    &lt;p&gt;In practice, the amount of service instances that will actually be created depends on the instance context mode your service is configured with. &lt;/p&gt;    &lt;p&gt;If your service is configured as per-session, the maximum number of instances and sessions will be the minimum value between the MaxConcurrencySessions and MaxConcurrancyInstances. &lt;/p&gt;    &lt;p&gt;If your service is configured as per-call, the setting limits the number of active service instances. If exceeded, new requests will be queued. &lt;/p&gt;    &lt;p&gt;If your service is configured as single, this setting is ignored.&lt;/p&gt; &lt;/ol&gt;  &lt;p&gt;Finally, WCF 4.0 has surely made the default values a bit more practical. In spite of that, I still recommend paying a visit to that behavior and set it differently if needed.&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=554346" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/zuker/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/zuker/archive/tags/WCF/default.aspx">WCF</category></item><item><title>TF60008: VSS database version older than 6.0 – When migrating from VSS to TFS</title><link>http://blogs.microsoft.co.il/blogs/morgen/archive/2010/03/21/tf60008-vss-database-version-older-than-6-0-when-migrating-from-vss-to-tfs.aspx</link><pubDate>Sun, 21 Mar 2010 11:45:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:554138</guid><dc:creator>Dan Morgenstern</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I was performing a conversion from Visual Source Safe to Team Foundation Server, using &lt;a href="http://blogs.microsoft.co.il/blogs/srlteam/archive/2006/09/26/3367.aspx"&gt;SRL’s legendary check list&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Phase 1 – Analyzing using VSS tool, completed successfully.   &lt;br /&gt;Phase 2 – Analyzing using TFS tool (VSSConverter analyze) – could not start because of an error: &lt;/p&gt;  &lt;p&gt;TF60008:&amp;nbsp; The VSS database version is older than 6.0. The VSS converter only supports database versions 6.0 or above. Please upgrade the database version and try again.&lt;/p&gt;  &lt;p&gt;Visual Source Safe database must be converted to version 6 before TFS migration, but how?&lt;/p&gt;  &lt;p&gt;The Solution (Thanks to Leon Langleyben) – Using command line, go to VSS 2005 directory (Program Files\Microsoft Visual Source Safe) and activate ddupd.exe , using vss data folder path as a parameter.&lt;/p&gt;  &lt;p&gt;For example: “c:\program files\Microsoft Visual Source Safe\ddupd.exe” c:\myvss\data&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=554138" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/morgen/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/morgen/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.microsoft.co.il/blogs/morgen/archive/tags/Team+System/default.aspx">Team System</category></item><item><title>TFS 2010 RTM already here?</title><link>http://blogs.microsoft.co.il/blogs/adiel_sharabi/archive/2010/03/21/tfs-2010-rtm-already-here.aspx</link><pubDate>Sun, 21 Mar 2010 09:37:04 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:553991</guid><dc:creator>Adiel Sharabi</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;אני בדיוק בשלבי התקנה שונים של שרת פיתוח לאיזה פרוייקט, היום נכנסתי כדי לבדוק ולקנפג כמה דברים ולהפתעתי הסתבר שהשרת שודרג לגרת RTM! &lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;עדיין אין אפשרות להוריד אותה לפחות לא מה שבדקתי (MSDN) אבל בעדכונים זה מגיע. &lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/adiel_sharabi/image_283CD0EA.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/adiel_sharabi/image_thumb_1577B166.png" width="539" height="430" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=553991" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/adiel_sharabi/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/adiel_sharabi/archive/tags/VS2010/default.aspx">VS2010</category><category domain="http://blogs.microsoft.co.il/blogs/adiel_sharabi/archive/tags/TFS/default.aspx">TFS</category></item><item><title>Exchange Server 2010 - DAG, DAC and Site Resilience important notes</title><link>http://blogs.microsoft.co.il/blogs/mcs/archive/2010/03/21/exchange-server-2010-dag-dac-and-site-resilience-important-notes.aspx</link><pubDate>Sun, 21 Mar 2010 09:11:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:553958</guid><dc:creator>efib</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p dir="rtl"&gt;בתקופה האחרונה במסגרת ייעוצים של הסבות/שדרוגים מתשתית Exchange Server 2003/7 לארכיטקטורה מבוססת על Exchange Server 2010 ליוויתי וסקרתי מסמכי תכנון שנכתבו על ידי שותפים וגיליתי שיש מספר נקודות מהותיות בתפישת הארכיטקטורה בגרסה זו של Exchange שאינן ברורות מספיק, ולכן החלטתי לפרסם Blog קצר זה והפניות ללינקים חשובים שיספקו פירוט נוסף. &lt;/p&gt;
&lt;p dir="rtl"&gt;ב Exchange Server 2010 חשפנו יכולות שרידות וזמינות משופרות לתפקיד ה Mailbox Server, מאילו שהיו בגרסאות ה Exchange עד כה. היכולות כלולות במושג חדש המכונה Database Availability Group (בקיצור &amp;quot;דג&amp;quot; - DAG). &lt;/p&gt;
&lt;p dir="rtl"&gt;ה DAG הינו אוסף של שרתי Mailbox ובסיסי נתונים (של תיבות דואר בלבד), שיכולים להיות משוכפלים בין שרתי ה Mailbox בהתאם לדרישות הארגון (ניתן להגדיר עד 16 שרתי תיבות ועד 16 עותקים של כל אחד מבסיסי הנתונים בתצורה זו). &lt;/p&gt;
&lt;p dir="rtl"&gt;להלן איור כללי של תשתית Exchange 2010 הפרושה על פני שני Datacenters - &amp;quot;ראשי&amp;quot; (Redmond) ו&amp;quot;משני&amp;quot; (Dublin):&lt;/p&gt;
&lt;p dir="rtl"&gt;&lt;img border="0" alt="Datacenters and Exchange 2010 DAG" align="absMiddle" src="http://i.technet.microsoft.com/Dd638104.cbe4edc6-5c6e-4632-96d8-b9e155070232(en-us,EXCHG.140).gif" width="559" height="351" /&gt;&lt;/p&gt;
&lt;p dir="rtl" align="center"&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p dir="rtl"&gt;מנהל המערכת יכול להגדיר את העדיפות למעבר של בסיס נתונים, במקרה של כשל כלשהו בבסיס הנתונים, או בשרת שעליו הוא פעיל (כלומר: אל איזה שרת Mailbox אנחנו מעדיפים שהוא יעבור). יש לשים לב שמערכת ה Exchange תחליט בזמן אמיתי, על בסיס קריטריונים מוגדרים, מיהו השרת שעליו נמצא העותק &amp;quot;הטוב ביותר&amp;quot; של בסיס הנתונים הרלוונטי, שיהפוך לפעיל בעקבות אותו כשל (חלק מהקריטריונים לדוגמה: האם העותק מסונכרן, האם העותק תקין - Healthy ועוד). &lt;/p&gt;
&lt;p dir="rtl"&gt;לרוב, בתצורה בה מוגדר Datacenter &amp;quot;ראשי&amp;quot; (פעיל) ו Datacenter &amp;quot;משני&amp;quot; (למטרות Disaster Recovery בלבד) - מומלץ יהיה להגדיר DAG יחיד, כאשר ה File Share Witness - FSW, נמצא ב Datacenter ה&amp;quot;ראשי&amp;quot;. &lt;/p&gt;
&lt;p dir="rtl"&gt;יש לשים לב כי בתצורה זו, במקרה של כשל בתקשורת בין שני ה Datacenters, במידה והיו בסיסי נתונים &lt;u&gt;פעילים&lt;/u&gt; ב Datacenter ה&amp;quot;משני&amp;quot; (בו &lt;b&gt;&lt;u&gt;לא&lt;/u&gt;&lt;/b&gt; נמצא ה FSW) - בסיסי הנתונים יבצעו &lt;b&gt;&lt;u&gt;Dismount&lt;/u&gt;&lt;/b&gt; ולכן &lt;b&gt;&lt;u&gt;לא&lt;/u&gt;&lt;/b&gt; יהיה שירות למשתמשים ב Datacenter ה&amp;quot;משני&amp;quot;. &lt;/p&gt;
&lt;p dir="rtl"&gt;מכאן, שבמקרה שבו מעוניינים שגם שרתי ה Exchange 2010 באתר ה&amp;quot;משני&amp;quot; יהיו פעילים בשוטף (ולא רק במקרה של DR) - הפתרון המומלץ יהיה: שימוש בשני DAG (אחד עבור כל Datacenter) והגדרת ה FSW &amp;quot;מקומי&amp;quot; בכל אחד מה Datacenter. יש לשים לב, שבמקרה זה נדרשים עוד שני שרתי Exchange 2010 Mailbox Role (אחד עבור כל Datacenter, אשר ישמשו במקרה של DR באתר השני) &lt;/p&gt;
&lt;p dir="rtl"&gt;נקודה נוספת שחשוב להבהיר היא שבמידה והגדרתם כחלק מה DAG גם Alternate File Share Witness ומיקמתם אותו על שרת ב Datacenter &amp;quot;המשני&amp;quot;, הרי שבמקרה של כשל ב Datacenter &amp;quot;הראשי&amp;quot; אותו Alternate File Share Witness אינו מתפקד כלל בצורה אוטומטית! נדרשת התערבות ידנית של מנהל המערכת, על מנת להפוך את ה Alternate File Share Witness ל File Share Witness &amp;quot;רגיל&amp;quot;! &lt;/p&gt;
&lt;p dir="rtl"&gt;שימו לב שהמעבר במקרה של כשל באחד מה Datacenters הוא &lt;b&gt;&lt;u&gt;ידני&lt;/u&gt;&lt;/b&gt; (ולא אוטומטי)!&lt;/p&gt;
&lt;p dir="rtl"&gt;שימו לב גם, כי נדרש גם עדכון &lt;b&gt;&lt;u&gt;ידני&lt;/u&gt;&lt;/b&gt; של כתובת ה IP של שירות ה CAS (הפניית ה IP Address של ה CAS Array מה Datacenter &amp;quot;הראשי&amp;quot; אל ה IP Address של ה CAS Array המצוי ב Datacenter &amp;quot;המשני&amp;quot;)!&lt;/p&gt;
&lt;p dir="rtl"&gt;בנוסף, על מנת למנוע מצב של Split-Brain Syndrome, שעלול להיווצר במקרה שה Datacenter &amp;quot;הראשי&amp;quot; חוזר לתפקד לאחר הכשל, וה Datacenter &amp;quot;המשני&amp;quot; עדיין משרת את המשתמשים שתיבותיהם נמצאות בבסיסי הנתונים שפעלו קודם לכן ב Datacenter ה&amp;quot;ראשי&amp;quot;, מומלץ להגדיר את ה DAG בתצורה המכונה: &amp;quot;Datacenter Activation Coordination&amp;quot; (בקיצור &lt;b&gt;DAC&lt;/b&gt;). שימוש בתצורה זו ימנע מבסיסי הנתונים ב Datacenter שכשל מלבצע Mount אוטומטית. &lt;/p&gt;
&lt;p dir="rtl"&gt;לינקים שימושיים בנושא: &lt;/p&gt;
&lt;p dir="rtl"&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; מידע אודות DAC ומטרתו: &lt;a href="http://technet.microsoft.com/en-us/library/dd979790.aspx"&gt;http://technet.microsoft.com/en-us/library/dd979790.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p dir="rtl"&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; מידע אודות Datacenter Switchovers: &lt;a href="http://technet.microsoft.com/en-us/library/dd351049.aspx"&gt;http://technet.microsoft.com/en-us/library/dd351049.aspx&lt;/a&gt; &lt;/p&gt;
&lt;p dir="rtl"&gt;בהצלחה ו&amp;quot;דיג&amp;quot; נעים, &lt;/p&gt;
&lt;p dir="rtl"&gt;אפי ברגמן. &lt;/p&gt;
&lt;p dir="rtl"&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=553958" width="1" height="1"&gt;</description></item><item><title>IASA Israeli – 1st meeting – The Feedback</title><link>http://blogs.microsoft.co.il/blogs/ohad/archive/2010/03/21/iasa-israeli-1st-meeting-the-feedback.aspx</link><pubDate>Sun, 21 Mar 2010 07:45:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:553816</guid><dc:creator>Ohad Israeli</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4938_3D168854.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4938" border="0" alt="_MG_4938" src="http://weblogs.asp.net/blogs/israelio/_MG_4938_thumb_4CF5A74B.jpg" width="244" height="179" /&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4937_1D5788BF.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4937" border="0" alt="_MG_4937" src="http://weblogs.asp.net/blogs/israelio/_MG_4937_thumb_53E53403.jpg" width="244" height="179" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I would like to thank everyone who attended the first meeting of the IASA Israel chapter.&lt;/p&gt;
&lt;p&gt;By the end of the meeting we passed a feedback form among the ones who participated, I would like to share with you the summary of the feedback.&lt;/p&gt;
&lt;p&gt;One of the main pillars of IASA is to group architects together while keeping technology and vendor agnostic, the first question on the feedback from was aimed to &lt;strong&gt;map the technology background of the participants&lt;/strong&gt; in order to see if we managed to capture .NET architect, Java architect &amp;amp; C++ architect in the same room. &lt;/p&gt;
&lt;p&gt;The results are that 57% of the attendees were .NET Architect, 57% of the attendees were JAVA Architect, 16% of the attendees were C++ Architect and 22% PHP,Flex,Django, Ruby, Python.&lt;/p&gt;
&lt;p&gt;The second question that we asked was &lt;strong&gt;where did you hear about the event ? &lt;br /&gt;&lt;/strong&gt;Here we received that 89% heard about it on LinkedIn, 5% heard about it over a blog (and here I assume it was my blog post on &lt;a href="http://blogs.microsoft.co.il/controlpanel/blogs/blogs.microsoft.co.il/blogs/ohad" target="_blank"&gt;blogs.microsoft.co.il/blogs/ohad&lt;/a&gt;) and 16% heard about it from a friend.&lt;/p&gt;
&lt;p&gt;Each one of the attendees answered that the event matched his expectation which a great feedback for us as the &lt;strong&gt;event also scored &lt;/strong&gt;a score of 4.83 (1 – worst event ever… 5- great event…)&lt;/p&gt;
&lt;p&gt;Another interesting question that we asked was to figure out &lt;strong&gt;what would the participants be seeking in joining IASA Israel&lt;/strong&gt;. 84% would be interested in networking, 78% self-development, 57% resources, 43% gaining a certification, 38% training.&lt;/p&gt;
&lt;p&gt;When we asked &lt;strong&gt;if participants would be interested in taking an active part in our meetings&lt;/strong&gt; we received that 81% would be interested and 5% answered that they might be interested.&lt;/p&gt;
&lt;p&gt;The feedback from also was used to gather ideas for future activities and we will open another discussion about these.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4935_0021BAE8.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4935" border="0" alt="_MG_4935" src="http://weblogs.asp.net/blogs/israelio/_MG_4935_thumb_7AA32476.jpg" width="244" height="179" /&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4925_38BC3F28.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4925" border="0" alt="_MG_4925" src="http://weblogs.asp.net/blogs/israelio/_MG_4925_thumb_6F49EA6C.jpg" width="244" height="179" /&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4927_549D4E53.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4927" border="0" alt="_MG_4927" src="http://weblogs.asp.net/blogs/israelio/_MG_4927_thumb_43D5A3A5.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4932_70122A89.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4932" border="0" alt="_MG_4932" src="http://weblogs.asp.net/blogs/israelio/_MG_4932_thumb_1D639A8D.jpg" width="244" height="179" /&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4939_7B97C1FB.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4939" border="0" alt="_MG_4939" src="http://weblogs.asp.net/blogs/israelio/_MG_4939_thumb_58F38380.jpg" width="244" height="179" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4940_3727AAEF.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4940" border="0" alt="_MG_4940" src="http://weblogs.asp.net/blogs/israelio/_MG_4940_thumb_32154773.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4941_4555FE12.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4941" border="0" alt="_MG_4941" src="http://weblogs.asp.net/blogs/israelio/_MG_4941_thumb_7A9F1077.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4943_78EE44A3.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4943" border="0" alt="_MG_4943" src="http://weblogs.asp.net/blogs/israelio/_MG_4943_thumb_223566D5.jpg" width="244" height="179" /&gt;&lt;/a&gt;&lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4949_0B93188E.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4949" border="0" alt="_MG_4949" src="http://weblogs.asp.net/blogs/israelio/_MG_4949_thumb_35466DB4.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4945_3395A1E0.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4945" border="0" alt="_MG_4945" src="http://weblogs.asp.net/blogs/israelio/_MG_4945_thumb_637043A1.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4953_28A89ACB.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4953" border="0" alt="_MG_4953" src="http://weblogs.asp.net/blogs/israelio/_MG_4953_thumb_525BEFF1.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4950_57CA6095.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4950" border="0" alt="_MG_4950" src="http://weblogs.asp.net/blogs/israelio/_MG_4950_thumb_52B7FD19.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4956_5C30BB8F.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4956" border="0" alt="_MG_4956" src="http://weblogs.asp.net/blogs/israelio/_MG_4956_thumb_10A1680B.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4955_2375EBB5.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4955" border="0" alt="_MG_4955" src="http://weblogs.asp.net/blogs/israelio/_MG_4955_thumb_0AB69EA5.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4959_10250F49.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4959" border="0" alt="_MG_4959" src="http://weblogs.asp.net/blogs/israelio/_MG_4959_thumb_33FDC0D6.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4958_603A47BA.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4958" border="0" alt="_MG_4958" src="http://weblogs.asp.net/blogs/israelio/_MG_4958_thumb_56FE0C79.jpg" width="244" height="179" /&gt;&lt;/a&gt; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4961_0091D7AD.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4961" border="0" alt="_MG_4961" src="http://weblogs.asp.net/blogs/israelio/_MG_4961_thumb_4C110564.jpg" width="244" height="179" /&gt;&lt;/a&gt;&amp;nbsp; &lt;a href="http://weblogs.asp.net/blogs/israelio/_MG_4957_3883A5C3.jpg"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="_MG_4957" border="0" alt="_MG_4957" src="http://weblogs.asp.net/blogs/israelio/_MG_4957_thumb_260B2F41.jpg" width="244" height="179" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=553816" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/ohad/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.microsoft.co.il/blogs/ohad/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/ohad/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/ohad/archive/tags/IASA/default.aspx">IASA</category></item><item><title>עברית או לא עברית? זו השאלה?</title><link>http://blogs.microsoft.co.il/blogs/lior_israel/archive/2010/03/20/553329.aspx</link><pubDate>Sat, 20 Mar 2010 21:38:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:553329</guid><dc:creator>Lior Israel</dc:creator><slash:comments>4</slash:comments><description>&lt;div dir="rtl"&gt;
&lt;p&gt;בפתיחת פוסט זה אני חייב לציין שזה הולך להיות פוסט לא שגרתי שלי...&lt;/p&gt;
&lt;p&gt;פוסט זה חותם 30 פוסטים שכתבתי (לפני שבדקתי חשבתי שכתבתי הרבה פחות) וקצת יותר משנתיים של כתיבה.&lt;/p&gt;
&lt;p&gt;למען האמת שהתחלתי לכתוב בבלוג הזה חשבתי שהקצב יהיה בערך 4 בחודש... אבל לצערי בממוצע זה בערך אחד בחודש (וגם זה בגלל כמה אירועים).&lt;/p&gt;
&lt;p&gt;מטרת פוסט זה להתלבט יחד איתכם בבחירה שעשיתי לכתוב גם בעברית וגם באנגלית בבלוג אחד.&lt;/p&gt;
&lt;p&gt;אז כמו שכתבתי בהתחלה החלוקה ברורה, חומר מקצועי באנגלית וכל השאר בעברית.&lt;/p&gt;
&lt;p&gt;האפשרויות שעומדות לפני:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;להמשיך במצב הקיים&lt;/li&gt;
&lt;li&gt;לכתוב רק בעברית&lt;/li&gt;
&lt;li&gt;לכתוב רק באנגלית&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;בואו נראה מספר מצבים ולבסוף אכתוב באיזו אפשרות כתבתי&lt;/p&gt;
&lt;p&gt;עברית זו שפת האם שלי ואני מאוד אוהב לקרוא ספרים (בעיקר בשפת הקודש), אלפים עד היום. אבל אני לא יכול להתחמק... שגיאות כתיב הם מחלה אצלי וזה נובע מהרבה סיבות כולל סיכול אותיות השמטת אותיות וכד&amp;#39; אפילו התבלבלות בין שתיים לשניים כן אתם יודעים 2 TWO :-) . כמובן שאוצר המילים שלי מאוד עשיר בעברית.&lt;/p&gt;
&lt;p&gt;בפוסט הראשון שלי כתבתי את הכוונות שלי מראש הבלוג יערב עברית ואנגלית&lt;/p&gt;
&lt;p&gt;לעומת זאת אחת הנקודות החלשות שלי זו היכולת באנגלית.&lt;/p&gt;
&lt;p&gt;אני יכול לקיים שיחה באנגלית (לפחות אני מקווה שכך), קורא מאמרים בלי בעיה וספרים גם כן (הרבה יותר לאט מעברית). אבל אוצר המילים, התחביר ושגיאות הכתיב הם נושא מאוד מאוד כואב. זאת אומרת שעל כל פוסט אני עובד הרבה מאוד ויחד עם זאת בטוח שעדין רמת הכתיבה באנגלית לא משהו בלשון המעטה. &lt;/p&gt;
&lt;p&gt;אבל לא לשכוח מה שכתבתי עד היום באנגלית זה רק חומר מקצועי, ז&amp;quot;א יותר קוד ופחות מלל.&lt;/p&gt;
&lt;p&gt;כן כן אני בטוח שאתם אומרים בלב (אשמח אם תצרפו הערות לפוסט) רק הכתיבה באנגלית תשפר את מצבך. &lt;u&gt;טוב אני חושב שהבהרתי את הנקודה הזו&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;RSS זה אחד הדברים הטובים שגיליתי בשנים האחרונות ובשילוב עם outlook 2007 זה עושה לי את החיים קלים יחסית. &lt;/p&gt;
&lt;p&gt;אני מצליח לקרוא מאסות של חומר ולתייג אותו לשימוש מאוחר יותר. &lt;/p&gt;
&lt;p&gt;ולמה אני אומר זאת?.?.?.? תארו לעצמכם שמישהו רשום על ה RSS של blogs.microsoft.co.il ומקבל גם את העברית שלי לקריאה שלו. &lt;/p&gt;
&lt;p&gt;ונניח שמי שהוא קרא את אחד מהפוסטים המקצועים שלי באנגלית ובחר להירשם לRSS של הבלוג שלי....... ממש לא נעים.&lt;/p&gt;
&lt;p&gt;כמו שאומר השיר המקורי תמיד חולם ב.... עברית. &lt;/p&gt;
&lt;p&gt;בתור ישראלי יש הרבה דברים שרק ישראלי אחר יוכל להבין קבלו כמה דוגמאות&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;ארכיטקט הניצחון&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;צהוב עולה זה מכבי&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;סוף הדרך&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;בוא הנה לך מכאן&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;למה מה קרה&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;חוק הספריות&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;כל העולם צבא&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;חזון אחרית הימים&amp;quot;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;טוב אני חושב שהבנתם את הכוונה זו לדעתי סוג של .... לכתוב באנגלית על דברים ישראלים לישראלים .&lt;/p&gt;
&lt;p&gt;&lt;u&gt;&lt;strong&gt;לסיכום&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;בתחילת הסיכום אני חייב לציין הממשק שלי במחשב הוא אנגלית (השווה המקורית שהמוצר פותח על בסיסו) ואני ממש פנאטי בכתיבת קוד באנגלית ולא בגבריש וכמובן התיעוד בתוך הקוד חייב להיות באנגלית.&lt;/p&gt;
&lt;p&gt;וממש לסיכום אני חושב שדעתי המקורית על הבלוג שלי לא השתנתה ויסלחו לי קוראי שלא מבניים את שפת הקודש.&lt;/p&gt;
&lt;p&gt;ואני חייב לסיים אם דוגמא נוספת של חבר טוב על נושא שקרוב לליבי ויש עליו אין סוף בלוגים באנגלית אבל המוביל בעברית הוא &lt;a href="http://eladsof.blogli.co.il/"&gt;אג&amp;#39;יל (Agile) זו לא מילה גסה&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=553329" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/lior_israel/archive/tags/_E205D505D105D305D505EA05_+_D405D705D905D905DD05_/default.aspx">עובדות החיים</category><category domain="http://blogs.microsoft.co.il/blogs/lior_israel/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category></item><item><title>שוק המחשוב בישראל – לאן ?</title><link>http://blogs.microsoft.co.il/blogs/dynamics/archive/2010/03/20/553241.aspx</link><pubDate>Sat, 20 Mar 2010 19:58:39 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:553241</guid><dc:creator>Zivak</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/dynamics/lopez_3B4B8DD5.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 0px 0px 12px;display:inline;border-top:0px;border-right:0px;" title="Gideon Lopez, Managing Director, IDC Israel" border="0" alt="Gideon Lopez, Managing Director, IDC Israel" align="right" src="http://blogs.microsoft.co.il/blogs/dynamics/lopez_thumb_4ABE79D7.jpg" width="62" height="66" /&gt;&lt;/a&gt; תוצאות ראשוניות מצביעות על המשך מגמת ההתאוששות במשק ה-IT בישראל. הרבעון המסכם של השנה הראה ביקושים ערים לשרתים, אחסון, תקשורת ומגוון רחב של מוצרי תוכנה. וירטואליזציה, המשכיות עסקית, מערכות תומכות החלטה ומערכות ניהול ממשיכים לרכז את העניין של ארגונים גדולים ובינוניים. רוב ההשקעה הנוכחית היא מעין תיקון של התגובה הקיצונית של תחילת 2009 ואם מנטרלים את השפעות התיקון וגורמים עונתיים, הרי שתקציבי המחשוב הרב שנתיים נמצאים במגמת שימור או עלייה צנועה בלבד.&lt;/p&gt;  &lt;p&gt;ירידות מחירים אורגניות והישגים טכנולוגיים מכוונים את תשתיות המחשוב הארגוניות להפיק ביצועים מוגברים בהוצאה יורדת. הרבה מהתקציבים שמתפנים מתהליך זה עוברים באופן טבעי לתחום התוכנה. בשלב מאוחר יותר – עוד כשנתיים – תהיה הגירה נוספת של תקציבים ממוצרי תוכנה לחוזי שירות. מגמת המעבר ממחשוב באתר למחשוב כשירות תתרחש לאט ובאופן לא אחיד. שאלות האבטחה, המשכיות עסקית ואינטגרציה עם מערכות קיימות ייפתרו במשך הזמן, אך הצורך לתרום לביצועים עסקיים לא ישתנה. &lt;/p&gt;  &lt;p&gt;חברות שירותי המחשוב בישראל מתלבטות כעת בשאלה האם להיות ספק שירותי ענן – אילו שירותים ואיזה לקוחות. לדעתנו התלבטות זו מעט מוקדמת ונראה שתחום &amp;quot;אינטגרציה של שירותים&amp;quot; יהיה אפקטיבי יותר. על ארגוני השירותים לפתח מיומנויות ייעוץ ללקוחות איך להטמיע שירותי ענן בארגונם באופן המתאים לארגון ולפעילותו העסקית. חוות שרתים יש הרבה, אנשים שיכולים למנף שירותי תוכנה ותשתיות על מנת להפיק ביצועים עסקיים משופרים – כאלה יש עדיין מעט.&lt;/p&gt;  &lt;p&gt;שוק המחשוב בישראל יצא מהמיתון הקל שחווה במהלך סוף 2008 והמחצית הראשונה של 2009. תחזית הצמיחה לשנים הקרובות תהיה בתחום ה-5%. תהליכים טכנולוגיים ועסקיים משמעותיים יתרחשו בתוך מסגרת תקציבית קבועה יחסית.&lt;/p&gt;  &lt;p&gt;נכתב על ידי Gideon Lopez, Managing Director, IDC Israel&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=553241" width="1" height="1"&gt;</description></item><item><title>Demystifying 'goto' Evilness</title><link>http://blogs.microsoft.co.il/blogs/liran_chen/archive/2010/03/20/demystifying-goto-evilness.aspx</link><pubDate>Sat, 20 Mar 2010 19:31:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:553208</guid><dc:creator>Liran Chen</dc:creator><slash:comments>2</slash:comments><description>&lt;font size="3"&gt;&lt;div dir="rtl"&gt;&lt;div&gt;הפעם, נתחיל בשאלה. אם הייתם נשאלים מה היא לדעתכם מילת המפתח הכי 
מסוכנת שקיימת היום בעולם התכנות, איך הייתם משיבים? סביר להניח שכמו הרוב 
המוחלט של מתכנתים הייתם שולפים במהירות בזק את מילת המפתח האלמוותית &amp;quot;&lt;a href="http://en.wikipedia.org/wiki/Goto" target="_blank"&gt;goto&lt;/a&gt;&amp;quot;.&lt;br /&gt;
לאורך השנים, מילת המפתח העתיקה הזאת הצליחה לספוג לא מעט ביקורת על היותה 
פתח מסוכן שיכול להוביל &lt;a href="http://en.wikipedia.org/wiki/Spaghetti_code"&gt;לקוד ספגטי&lt;/a&gt; בלתי 
קריא ובלתי ניתן לתחזוקה. ובכך, היא הצליחה לעשות את הבלתי יאומן ולהגיע 
למעמד סטטוס מרשים, ולהשיג קונצנזוס מלא על היותה &amp;quot;רעה&amp;quot; (או: Evil). תחשבו 
על זה, יש לנו כאן מילת מפתח קטנה, שעם הזמן הפכה לשם נרדף לצרות וכאוס 
טוטאלי. למעשה, הגענו היום למצב בו לא ניתן בכלל להעלות על הדעת שמתכנת 
שפוי יעז להכניס איזה goto קטן לתוך הקוד. והנה, אם בכל זאת הבלתי יאומן 
קרה והוא העז לעשות זאת, הוא צפוי לחטוף מייד שלל הרצאות ודקלומים לא 
נגמרים מעמיתיו שיאמרו לו ש&amp;quot;אסור להשתמש ב-goto אף פעם! היא גורמת רק 
לצרות, ופשוט מדובר ב-&lt;a href="http://en.wikipedia.org/wiki/Code_smell"&gt;code
 smell&lt;/a&gt; מובהק&amp;quot;.&lt;br /&gt;




עם זאת, מילת המפתח השנויה במחלוקת הזאת עדיין מצליחה להחזיק את הראש מעל 
המים ולמצוא את עצמה גם בשפה מודרנית כגון #C. עצם המצאותה של מילת המפתח 
הזאת ברשימת מילות המפתח של השפה מהווה מטרה קלה עבור כל מי שבא להדריך 
מתכנתים אחרים שעושים את צעדיהם הראשונים בעולם התכנות. בדרך כלל נוהגים 
לקטול אותה לגמרי, ומעדיפים לאפסן אותה בעליית הגג של מילות המפתח שלא 
נשתמש בהן יותר בחיים.&lt;br /&gt;




שלא יהיה כאן טעות, הפוסט הזה לא בא לסתור את הטענות האלה ולהפריח אותן 
לגמרי (כן, שימוש ב-goto יכול להוביל בקלות לקוד ספגטי מזעזע). אבל הוא כן 
בא לנסות לשים את הכל &lt;b&gt;בפרופורציה&lt;/b&gt;. איכשהו יצא שמתכנתים היום מפחדים 
פחד מוות ממנה, בלי שהם אפילו ראו אי פעם בחייהם קטע קוד שבאמת עושה בה 
שימוש. הקטע הבעייתי כאן הוא שמילת המפתח goto היא הרי לא באמת &amp;quot;רעה&amp;quot;, אלא 
דווקא שימושית למדי. באמצעות שימוש מושכל וזהיר ב-goto, אפשר להגיע לקוד 
קריא וברור הרבה יותר מאשר האלטנטיבות שאינן כוללות שימוש בה. אחת הדוגמאות
 הפופולריות למקרה כזה היא יציאה מלולאה כאשר אנחנו נמצאים בתוך switch 
statement (כאשר קריאה ל-break תוציא אותנו רק מה-case הנוכחי, אך לא 
מהלולאה), או יציאה מהירה ונוחה מסדרה של לולאות מקוננות (דבר שללא שימוש 
ב-goto יוביל לפיזור מוגזם של משפטי if שנועדו אך ורק לשלוט על ה-control 
flow של הלולאות המקוננות).&lt;br /&gt;




&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" align="left"&gt;
&lt;div style="background:none repeat scroll 0% 0% white;font-family:Courier New;font-size:10pt;color:black;"&gt;



&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// which option 
do you find more readable? a single goto statement,&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:green;"&gt;// or keeping 
track of the value of the new &amp;#39;shouldIGetOut&amp;#39; variable?&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;while&lt;/span&gt;(otherCondition)&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;&amp;nbsp; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; 
shouldIGetOut;&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;switch&lt;/span&gt;
 (input)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;case&lt;/span&gt;
 1:&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DoThat();&lt;/p&gt;&lt;p style="margin:0px;"&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; shouldIGetOut = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;goto&lt;/span&gt;
 GetOutQuick;&lt;/p&gt;&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 &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;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;if&lt;/span&gt; 
(shouldIGetOut)&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color:blue;"&gt;break&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;GetOutQuick:&lt;/p&gt;
&lt;p style="margin:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DoThis();&lt;/p&gt;
&lt;/div&gt;

&lt;/div&gt;&lt;div&gt;&lt;br /&gt;אחד המקורות שנוטים להפנות אליו כאשר רוצים לתת איזשהו 
סימוכין מהימן לטענות הללו ולהביע למה באמת השימוש ב-goto יכול להיות רע, 
הוא המאמר המפורסם &lt;a href="http://www.u.arizona.edu/%7Erubinson/copyright_violations/Go_To_Considered_Harmful.html" target="_blank"&gt;Go To Statement Considered Harmful&lt;/a&gt; מאת Edsger 
Dijkstra שפורסם כבר בשנת 1968. הבעיה היחידה היא שרבים מאלו שמפנים למאמר 
המוכר לא טורחים באמת לקרוא אותו, אלא רק נמשכים לכותרת המבטיחה והמוניטין 
של המחבר שמקנה בטחון רב באשר לתוכנו של המאמר. הקטע המשעשע הוא שדייקסטרה 
כלל לא היה זה שהגה את שמו של המאמר האלמוותי. לעומת זאת, במקור ניתן למאמר
 השם הפעוט יותר &amp;quot;A Case Against the goto Statement&amp;quot;. את כל זה דייקסטרה &lt;a href="http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1308.html" target="_blank"&gt;מסביר&lt;/a&gt; בעצמו:&lt;br /&gt;




&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" align="left"&gt;&lt;i&gt;&amp;quot;...but what had happened? I had submitted a
 paper under the title &amp;quot;A case
against the goto statement&amp;quot;, which, in order to speed up its
publication, the editor had changed into a &amp;quot;letter to the Editor&amp;quot;, and
in the process he had given it a new title of his own invention!&amp;quot;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;למי
 שיצא להתנסות מעט בג&amp;#39;אווה, בוודאי שם לב שהשפה לא תומכת במילת המפתח 
המדוברת. אולם, כן נוספה התמיכה בפיצ&amp;#39;ר הנקרא &lt;a href="http://java.sun.com/docs/white/langenv/Simple.doc1.html#429" target="_blank"&gt;Multi-Level Break&lt;/a&gt;. שאיך שלא מסתכלים על זה, מדובר 
ב-goto בעל יכולות מצומצמות. עם זאת, בהתחשב בכך שמרבית השימוש (השפוי) 
ב-goto מסתכם ביציאה מ-switch&amp;#39;ים ולולאות מקוננות, התמיכה ב-Multi-Level 
Break יכולה להוות תחליף מתאים ונכון ל-goto המלא שעשוי להביא איתו סכנות 
מיותרות. Sun מציינת שמחקרים מראים שלאחר ניתוח של 100,000 שורות קוד ב-C 
אפשר להתרשם כי 90% מהשימושים במשפטי goto נעשים על מנת לצאת מלולאות 
מקוננות. כך ששימוש ב-Multi-Level Break צריך להוות Tradeoff טוב למדי בין 
השימושיות של goto לבין המנעות מסכנות מיותרות.&lt;br /&gt;




&lt;br /&gt;בשורה התחתונה? לכוח רב מצטרפת אחריות רבה. זה משפט שאני מוצא את עצמי 
משתמש בו לא מעט, אבל רק בגלל שהוא כל כך נכון ומתאר בדיוק מה שקורה כאן. 
שימוש ב-goto יכול לעשות ניסים ונפלאות למידת הקריאות של הקוד. ועם זאת, 
בשימוש לא זהיר ומושכל אפשר למצוא את עצמנו מתחזקים קוד ספגטי נוראי 
ומקללים את היום שבו הכרנו את מילת המפתח הזאת. מהסיבה הזאת, עד היום לא 
מצאתי לנכון להמליץ לאדם אחר להשתמש ב-goto על מנת להפוך את הקוד שלו לבהיר
 יותר. זה מסוג הדברים שכל אדם צריך להבין בעצמו את כל המעלות והחסרונות של
 הפיצ&amp;#39;ר המסויים, ולהחליט מתי כן ומתי לא להשתמש בו. עם זאת, אני כן רואה 
לנכון לגרום לאנשים להיות מעט יותר פתוחים לקראת רעיונות &amp;quot;מטורפים&amp;quot; כמו 
שימוש ב-goto בקוד. הרי העולם לא יבוא לקיצו אם נקליד את רצף האותיות 
g-o-t-o. ובכלל, תמיד כששומעים מישהו מדקלם ש&amp;quot;&lt;b&gt;אף פעם&lt;/b&gt; לא צריך לעשות 
X&amp;quot;, תמיד צריך לקבל את דבריו בערבון מוגבל. הרי איננו חיים בעולם שחור-לבן,
 שבנוי על מערכת חוקים נוקשית. לפעמים אפשר להתקל גם בתחומים אפורים, 
ובחוקים שאפשר מעט לקופף ולעוות כדי שהתמונה המלאה תראה ישרה ונכונה יותר.&lt;br /&gt;




לסיכום, אולי פשוט צריך להקשיב למה שדייקסטרה אומר:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir="ltr" align="left"&gt;&lt;i&gt;&amp;quot;Please don&amp;#39;t fall into the trap of believing that I am 
terribly dogmatical about [the goto statement]. I have the uncomfortable
 feeling that others are making a religion out of it, as if the 
conceptual problems of programming could be solved by a single trick, by
 a simple form of &lt;b&gt;coding discipline&lt;/b&gt;!&lt;/i&gt;&amp;quot;&lt;br /&gt;




&lt;/div&gt;&lt;/div&gt;&lt;/font&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=553208" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/liran_chen/archive/tags/Coding+Practices/default.aspx">Coding Practices</category><category domain="http://blogs.microsoft.co.il/blogs/liran_chen/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/liran_chen/archive/tags/Don_2700_ts/default.aspx">Don'ts</category><category domain="http://blogs.microsoft.co.il/blogs/liran_chen/archive/tags/Do_2700_s/default.aspx">Do's</category><category domain="http://blogs.microsoft.co.il/blogs/liran_chen/archive/tags/Development/default.aspx">Development</category></item><item><title>MEF for Beginner (Import from Xaml) - part 11</title><link>http://blogs.microsoft.co.il/blogs/bnaya/archive/2010/03/20/mef-for-beginner-import-from-xaml-part-11.aspx</link><pubDate>Sat, 20 Mar 2010 15:28:23 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:552959</guid><dc:creator>bnaya</dc:creator><slash:comments>0</slash:comments><description>&lt;h2&gt;MEF for Beginner (Import from Xaml) - part 11&lt;/h2&gt;  &lt;p&gt;this is the 11th post of the &lt;a href="http://mef.codeplex.com/"&gt;&lt;strong&gt;MEF&lt;/strong&gt;&lt;/a&gt; for Beginner series, the series &lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/archive/2010/01/09/mef-for-beginner-toc.aspx"&gt;TOC&lt;/a&gt; is available &lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/archive/2010/01/09/mef-for-beginner-toc.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;this post will focus on &lt;strong&gt;Importing mef parts &lt;/strong&gt;directly from the &lt;strong&gt;Xaml&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/iStock_000005438250VerySmallXmXorl_0339C5C9.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Import, ImportMany, MEF, composition, CLR 4" border="0" alt="Import, ImportMany, MEF, composition, CLR 4" src="http://blogs.microsoft.co.il/blogs/bnaya/iStock_000005438250VerySmallXmXorl_thumb_2E6E3703.jpg" width="303" height="77" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;the code sample for this post is available &lt;a href="http://cid-9bf7c1a515d76a9a.skydrive.live.com/browse.aspx/Code%20Samples/MEF/MEF%20for%20Beginners/Part%2011?uc=1&amp;amp;isFromRichUpload=1" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;assuming that we have the following &lt;strong&gt;exports&lt;/strong&gt;:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3c19987e-7cb2-4576-8452-1bb91342eeae" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#ddd;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;DemoStrings&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[&lt;span style="color:#2b91af;"&gt;Export&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;MyTag&amp;quot;&lt;/span&gt;)]&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Text1 { &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#a31515;"&gt;&amp;quot;Hello world&amp;quot;&lt;/span&gt;; } }&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[&lt;span style="color:#2b91af;"&gt;Export&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;MyTag&amp;quot;&lt;/span&gt;)]&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Text2 { &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#a31515;"&gt;&amp;quot;export using custom attribute&amp;quot;&lt;/span&gt;; } }&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[&lt;span style="color:#2b91af;"&gt;Export&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;NotMyTag&amp;quot;&lt;/span&gt;)]&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Text3 { &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#a31515;"&gt;&amp;quot;not included (Not My Tag contract)&amp;quot;&lt;/span&gt;; } }&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[&lt;span style="color:#2b91af;"&gt;Export&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;MyTag&amp;quot;&lt;/span&gt;)]&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Text4 { &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#a31515;"&gt;&amp;quot;Wpf markup extension&amp;quot;&lt;/span&gt;; } }&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[&lt;span style="color:#2b91af;"&gt;Export&lt;/span&gt;]&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; Text5 { &lt;span style="color:#0000ff;"&gt;get&lt;/span&gt; { &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#a31515;"&gt;&amp;quot;not included (have no contract)&amp;quot;&lt;/span&gt;; } }&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;we may want to have it &lt;strong&gt;import&lt;/strong&gt; into the &lt;strong&gt;Xaml&lt;/strong&gt; as follow:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8f4b3bb2-cced-4c46-9881-b1d7f42810a4" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#ddd;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Window&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Class&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;Bnaya.Samples.MainWindow&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#ff0000;"&gt; xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#ff0000;"&gt; xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#ff0000;"&gt; xmlns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;mef&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;clr-namespace:Bnaya.Samples&amp;quot;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#ff0000;"&gt; Title&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;MainWindow&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Height&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;350&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; Width&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;525&amp;quot;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ListBox&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&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;&lt;span style="color:#ff0000;"&gt; DataContext&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;mef&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ImportManyStrings&lt;/span&gt;&lt;span style="color:#ff0000;"&gt; MyTag}&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;&lt;/span&gt; &lt;/li&gt; &lt;li&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;&lt;span style="color:#ff0000;"&gt; ItemsSource&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Binding}&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;quot;/&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#a31515;"&gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Grid&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Window&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;as you can see at &lt;strong&gt;line 8&lt;/strong&gt; the &lt;strong&gt;data context&lt;/strong&gt; is using special definition for &lt;strong&gt;importing&lt;/strong&gt; all &lt;strong&gt;exported&lt;/strong&gt; &lt;strong&gt;strings&lt;/strong&gt; that     &lt;br /&gt;define the their &lt;strong&gt;contract&lt;/strong&gt; as &lt;strong&gt;MyTag&lt;/strong&gt; (&lt;font color="#808080"&gt;looking at the &lt;strong&gt;exports&lt;/strong&gt; it will &lt;strong&gt;import&lt;/strong&gt; the exports at&lt;strong&gt; lines 4,6,10&lt;/strong&gt;&lt;/font&gt;).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;what should we have in order to achieve that functionality?&lt;/h5&gt;  &lt;p&gt;actually very little, all we have to do is to define a&lt;strong&gt; markup extension&lt;/strong&gt; that return the &lt;strong&gt;exported&lt;/strong&gt; &lt;strong&gt;parts&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;the following code is how the &lt;strong&gt;markup extension&lt;/strong&gt; should be define:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ce4d674f-f189-46ff-82bc-0b4ea7447c79" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#ddd;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;[&lt;span style="color:#2b91af;"&gt;MarkupExtensionReturnType&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;))]&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ImportManyStringsExtension&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;MarkupExtension&lt;/span&gt;&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;readonly&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt; _dataSource;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; ImportManyStringsExtension(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; contract)&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;_dataSource = &lt;span style="color:#2b91af;"&gt;CompositionHost&lt;/span&gt;.Provider.GetExportedValues&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt;(contract);&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;object&lt;/span&gt; ProvideValue(&lt;span style="color:#2b91af;"&gt;IServiceProvider&lt;/span&gt; serviceProvider)&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; _dataSource;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&amp;#160;&amp;#160;&amp;#160;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 1&lt;/strong&gt;, decorate that our &lt;strong&gt;markup extension&lt;/strong&gt; for returning &lt;strong&gt;IEnumerable&amp;lt;string&amp;gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 2&lt;/strong&gt;, derive from &lt;strong&gt;MarkupExtension&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 7&lt;/strong&gt;, at the construction time, dynamically ask &lt;strong&gt;mef&lt;/strong&gt; for any &lt;strong&gt;discoverable parts&lt;/strong&gt; that follow the &lt;strong&gt;contract&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;font color="#808080"&gt;the CompositionHost is a very small helper class that was taken from the &lt;strong&gt;MEF Silverlight&lt;/strong&gt; implementation &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#808080"&gt;with some very minor enhancements&lt;/font&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;lines 10-13&lt;/strong&gt;, returning the &lt;strong&gt;discoverable parts&lt;/strong&gt; to the &lt;strong&gt;Xaml&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;One last thing&lt;/h5&gt;  &lt;p&gt;we should remove the &lt;strong&gt;StartupUri&lt;/strong&gt; from the &lt;strong&gt;App.Xaml&lt;/strong&gt; and using the &lt;strong&gt;OnStartup override&lt;/strong&gt; instead:&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a18e7edc-77f1-43b8-8db2-338a4a86aea3" class="wlWriterSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;"&gt;Code Snippet&lt;/div&gt; &lt;div style="background:#ddd;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; OnStartup(&lt;span style="color:#2b91af;"&gt;StartupEventArgs&lt;/span&gt; e)&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.OnStartup(e);&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (!&lt;span style="color:#2b91af;"&gt;Utils&lt;/span&gt;.IsInDesignTool)&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; asmCatalog = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;AssemblyCatalog&lt;/span&gt;(&lt;span style="color:#0000ff;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;App&lt;/span&gt;).Assembly);&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; catalogs = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;AggregateCatalog&lt;/span&gt;(asmCatalog);&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; container = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CompositionContainer&lt;/span&gt;(catalogs);&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af;"&gt;CompositionHost&lt;/span&gt;.Initialize(container);&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;container.Compose(&lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CompositionBatch&lt;/span&gt;());&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; root = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MainWindow&lt;/span&gt;(); &lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;root.ShowDialog();&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;strong&gt;line 5&lt;/strong&gt;, preventing &lt;strong&gt;MEF&lt;/strong&gt; operation during&lt;strong&gt; design time&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;lines 7-9&lt;/strong&gt;, setting the&lt;strong&gt; MEF container&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 10&lt;/strong&gt;, setting the &lt;strong&gt;MEF container&lt;/strong&gt; as the &lt;strong&gt;main container&lt;/strong&gt; of the application &lt;/p&gt;  &lt;p&gt;(this way it can be &lt;strong&gt;reachable anywhere&lt;/strong&gt;).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 11&lt;/strong&gt;, do the &lt;strong&gt;composition&lt;/strong&gt;, &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;IMPOERANT&lt;/font&gt;&lt;/strong&gt;: the &lt;strong&gt;composition&lt;/strong&gt; should happens &lt;strong&gt;before&lt;/strong&gt; the &lt;strong&gt;window instantiation&lt;/strong&gt;, &lt;/p&gt;  &lt;p&gt;because that when the &lt;strong&gt;markup extension&lt;/strong&gt; will be invoke.&lt;/p&gt;  &lt;p&gt;the &lt;strong&gt;exported part&lt;/strong&gt; should be available at this time. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;lines 13-14&lt;/strong&gt;, starting the application.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Summary&lt;/h5&gt;  &lt;p&gt;we can extend the &lt;strong&gt;Xaml&lt;/strong&gt; very easily in order to get better &lt;strong&gt;Xaml&lt;/strong&gt;-&amp;gt;&lt;strong&gt;Mef&lt;/strong&gt; experience.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;the code sample for this post is available &lt;a href="http://cid-9bf7c1a515d76a9a.skydrive.live.com/browse.aspx/Code%20Samples/MEF/MEF%20for%20Beginners/Part%2011?uc=1&amp;amp;isFromRichUpload=1" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1bd718e5-fd3d-4d99-80e3-d80d7f7d4f74" class="wlWriterSmartContent"&gt;תגים של Technorati:‏ &lt;a href="http://technorati.com/tags/Import" rel="tag"&gt;Import&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ImportMany" rel="tag"&gt;ImportMany&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MEF" rel="tag"&gt;MEF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/composition" rel="tag"&gt;composition&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CLR+4" rel="tag"&gt;CLR 4&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.microsoft.co.il%2fblogs%2fbnaya%2farchive%2f2010%2f03%2f20%2fmef-for-beginner-import-from-xaml-part-11.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.microsoft.co.il%2fblogs%2fbnaya%2farchive%2f2010%2f03%2f20%2fmef-for-beginner-import-from-xaml-part-11.aspx" /&gt;&lt;/a&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=552959" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/MEF/default.aspx">MEF</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Extensibility/default.aspx">Extensibility</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Beginner/default.aspx">Beginner</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/SELA/default.aspx">SELA</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/extension/default.aspx">extension</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/.net/default.aspx">.net</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Composition/default.aspx">Composition</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/ImportMany/default.aspx">ImportMany</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Export/default.aspx">Export</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Import/default.aspx">Import</category></item><item><title>מאחורי הקלעים של הפקת ה-LIPDUB</title><link>http://blogs.microsoft.co.il/blogs/liorz/archive/2010/03/20/behind-the-scenes-of-making-a-lipdub.aspx</link><pubDate>Sat, 20 Mar 2010 14:27:03 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:552897</guid><dc:creator>ליאור צורף</dc:creator><slash:comments>7</slash:comments><description>&lt;div dir="rtl"&gt;   &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;אתמול, ביום שישי אביבי ומקסים, ביימנו וצילמנו את ה-LIPDUB הישראלי הראשון (למיטב ידיעתי) למילות השיר Don&amp;#39;t stop me now של Queen.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;הוידאו צולם במסגרת מחנה שנקרא EureKamp. מדובר ב-Unconference בנושא יצירתיות והשראה שבו המשתתפים קובעים את ה-Agenda. היו מעל 200 משתתפים בניהם הרבה סטארטאפיסטים, VCs, בלוגרים ועוד ועוד.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;חשבנו וחשבנו (יוסי תאגורי ועבדיכם) מה אנחנו יכולים לעשות כך שנפעיל את כל המשתתפים במחנה באווירת שיתוף פעולה ויצירתיות. הרעיון שצץ היה להפיק LIPDUB! @efratk הציעה את השיר ודניאלה טוף-ליבר הצטרפה והיתה מרכזי בצוות ההפקה.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;הבעייה היתה שמסגרת הזמן שהוקצתה לחזרות ולצילומים היתה 20 דקות!... נשמע בלתי אפשרי, נכון? לא הייתי בטוח שנצליח...&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;החלטנו לחלק את המחנה ל-4 קבוצות. כל קבוצה קיבלה 45 שניות מהשיר ובמשך כ-20 דק העמדנו את המשתתפים במסלול ועשינו כמה חזרות (עם דפים מודפסים שבהם מילות השיר מחולקות לפי שניות).&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;ואז הגיעה השעה לצלם את הכל ביחד ב-One shot... כל הסיפור לקח חצי שעה שבה קיימנו 2 חזרות ואת הצילום הסופי. קשה לי לתאר לכם את כמות האדרנלין שהיתה לי בגוף תוך כדי שהחזקתי את המצלמה ועברתי במסלול עם 200 משתתפים מקסימים ומתלהבים.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;אתה חייבים להבין שסיפרנו למשתתפים במחנה על הרעיון לסרט בסביבות השעה 11:00 בבוקר, וב-13:30 כולם עמדו במקום וצילמנו. פחות מ-3 שעות וכל הסיפור נגמר...&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;זאת היתה חוויה מאוד מיוחדת... כל אחד עשה משהו מאוד קטן אבל היה חלק ממשהו הרבה יותר גדול ומורכב. בצילום הסופי היו אנרגיות מטורפות...&lt;/font&gt;&lt;/p&gt;   &lt;object width="540" height="305"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1dBGaUvMoZk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/1dBGaUvMoZk&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="540" height="315"&gt;&lt;/embed&gt;&lt;/object&gt;    &lt;p&gt;&lt;font size="3"&gt;אז מה למדנו מכל הסיפור?&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;קודם כל – כל התהליך היה כיף אחד גדול!... חוויה שאני מניח שנזכור לתקופה ארוכה.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;הפקת סרט כזה בזמן כל כך קצר היתה עבורי גם שיעור מרתק במנהיגות וניהול. נזכרתי בפרוייקטים גדולים שהובלתי (כדוגמת Tech-Ed) ומצאתי הרבה מן המשותף. הובלה, ניהול משברים, לו&amp;quot;ז בלתי אפשרי, ירידה לפרטים, ניהול אגואים (שרוצים תפקיד מאוד מסוים), השגה משותפת של המטרה והרגשת העילוי בסוף.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;אבל גם למדנו גם מה לא צריך לעשות...&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;קודם כל – כמו שאתם יכולים לראות, הוידאו באיכות בינונית ויש חלקים שהם לא בפוקוס. מסתבר שכאשר מצלמים כזה סרט, בגלל כל התזוזות, המצלמה משנה פוקוס כל כמה שניות. התהליך הזה לוקח חצי שנייה. אז נוצר מצב שבגלל כמות התזוזות, רוב הסרט לא בפוקוס.... ראינו את זה בחזרה האחרונה והחלטנו לקבוע פוקוס קבוע בצילום הסופי כדי להציל את המצב. למי שמתכנן לצלם כזה קליפ – חייבים מצלמת וידאו טובה שיודעת לכוון פוקוס מיידית.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;יש כמובן עוד לקחים, אבל כולם כמובן בזכות העובדה שניסינו ובסופו של דבר גם יצא סרט נחמד מאוד עם יוסי ורדי בתפקיד ראשי.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;תודה רבה לשותפי יוסי תאגורי, לדניאלה, רוסתם, אפרת וכל המשתתפים שלא מפסיקים לשלוח לי מיילים והודעות על כמה היה להם כיף להיות חלק ממה שעשינו.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;חלקם כבר הציעו להמשיך ולצלם סדרת של סרטי LIPDUB לכל Queen. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="3"&gt;כמו שנאמר: Don&amp;#39;t stop me now, cause I&amp;#39;m having a good time...&lt;/font&gt;&lt;/p&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=552897" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/liorz/archive/tags/_E905D505E005D505EA05_/default.aspx">שונות</category><category domain="http://blogs.microsoft.co.il/blogs/liorz/archive/tags/_E905D905D305D505E805D905_+_D405E005D905E105D905D505DF05_+_E905DC05_+_D905D505E105D905_+_D505DC05D905D005D505E805_/default.aspx">שידורי הניסיון של יוסי וליאור</category><category domain="http://blogs.microsoft.co.il/blogs/liorz/archive/tags/offtopic/default.aspx">offtopic</category></item><item><title>Recommendation</title><link>http://blogs.microsoft.co.il/blogs/bnaya/archive/2010/03/20/recommendation.aspx</link><pubDate>Sat, 20 Mar 2010 09:25:41 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:552386</guid><dc:creator>bnaya</dc:creator><slash:comments>0</slash:comments><description>&lt;h2&gt;Recommendation&lt;/h2&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;this is a &lt;a href="http://geekswithblogs.net/bdiaz/archive/2010/03/14/updated-the-whiteboard-demo.aspx" target="_blank"&gt;post&lt;/a&gt; recommendation about using &lt;strong&gt;Rx&lt;/strong&gt; framework with &lt;strong&gt;WPF events&lt;/strong&gt;,&lt;/p&gt;  &lt;p&gt;I&amp;#39;m recommending &lt;a href="http://geekswithblogs.net/bdiaz/archive/2010/03/14/updated-the-whiteboard-demo.aspx" target="_blank"&gt;this&lt;/a&gt; post from &lt;a href="http://geekswithblogs.net/bdiaz/Default.aspx"&gt;bobby&amp;#39;s blog&lt;/a&gt;, the post is demonstrating the&lt;/p&gt;  &lt;p&gt;use of creating &lt;strong&gt;observable&lt;/strong&gt; stream from &lt;strong&gt;WPF&lt;/strong&gt; event.&lt;/p&gt;  &lt;p&gt;it is a short post with nice little &lt;a href="http://www.bmdiaz.com/Files/Whiteboard.zip" target="_blank"&gt;code sample&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;bobby did a real good job by wrapping the &lt;strong&gt;observable&lt;/strong&gt; event (&lt;strong&gt;&lt;font color="#404040"&gt;Observable.FromEvent&lt;/font&gt;&lt;/strong&gt;) &lt;/p&gt;  &lt;p&gt;into more human readable format (using T4 template).&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;
&lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=552386" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/SELA/default.aspx">SELA</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/CLR+4/default.aspx">CLR 4</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/.net/default.aspx">.net</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Rx/default.aspx">Rx</category><category domain="http://blogs.microsoft.co.il/blogs/bnaya/archive/tags/Reactive+Extensions/default.aspx">Reactive Extensions</category></item><item><title>DevAcademy4 Session: Parallel Programming in .NET 4 and Visual Studio 2010</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2010/03/20/devacademy4-session-parallel-programming-in-net-4-and-visual-studio-2010.aspx</link><pubDate>Sat, 20 Mar 2010 07:43:19 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:552362</guid><dc:creator>Sasha Goldshtein</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/sasha/DevAcademy4Logo_1EECDDEB.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 0px 10px 10px;display:inline;border-top:0px;border-right:0px;" title="DevAcademy4Logo" border="0" alt="DevAcademy4Logo" align="right" src="http://blogs.microsoft.co.il/blogs/sasha/DevAcademy4Logo_thumb_14D83CC0.png" width="177" height="240" /&gt;&lt;/a&gt;Sorry for the late announcement, but on Monday I’m going to present a session called Parallel Programming in .NET 4 and Visual Studio 2010 at the &lt;a href="http://www.microsoft.com/israel/msdn/devacademy4/"&gt;Microsoft Developer Academy 4&lt;/a&gt; (Avenue, Airport City).&lt;/p&gt;  &lt;p&gt;There are six (!) Sela speakers at the conference: Gil Fink, Alex Golesh, Shai Raiten, Alon Fliess, Noam King, and yours truly—and I’m sure they are going to rock, so take a look at the conference schedule to see which sessions you want to attend.&lt;/p&gt;  &lt;p&gt;I wouldn’t want to ruin the fun for the ones who are planning to come to my talk, but here are some of the things we’ll see:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Styles of concurrent applications today&lt;/li&gt;    &lt;li&gt;The shift from imperative to declarative parallelism&lt;/li&gt;    &lt;li&gt;What’s in the box with .NET 4 and Visual Studio 2010 with regards to parallel programming&lt;/li&gt;    &lt;li&gt;Data parallelism, processing parallelism, explicit task management&lt;/li&gt;    &lt;li&gt;Migration strategy and integration examples&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The sessions will be recorded (AFAIK) so even if you’re unable to attend my talk, I’ll let you know how you can tune in after the conference. I will also upload the presentation, the demos, and any other materials after my talk.&lt;/p&gt;  &lt;p&gt;As for the demos—let’s just say that it’s popular to integrate Twitter into every demo at every conference talk, so there will be a Twitter client of some sort but it might have a surprising user interface.&lt;/p&gt;  &lt;p&gt;&lt;font face="CONSOLAS"&gt;/--------------------\     &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;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;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;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;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; |      &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; |      &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; |      &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; |      &lt;br /&gt;|&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ** *********&amp;#160; |      &lt;br /&gt;|&amp;#160;&amp;#160;&amp;#160;&amp;#160; *************&amp;#160; |      &lt;br /&gt;|&amp;#160;&amp;#160;&amp;#160; .***********&amp;#160;&amp;#160;&amp;#160; |      &lt;br /&gt;|&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; **********&amp;#160;&amp;#160;&amp;#160; |      &lt;br /&gt;|&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ********&amp;#160;&amp;#160;&amp;#160; |      &lt;br /&gt;|&amp;#160; .&amp;#160;&amp;#160;&amp;#160; ********&amp;#160;&amp;#160;&amp;#160;&amp;#160; |      &lt;br /&gt;|&amp;#160;&amp;#160; ***********&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |      &lt;br /&gt;|&amp;#160;&amp;#160;&amp;#160; .*******&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; |      &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;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;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;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;br /&gt;\--------------------/&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=552362" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/sasha/archive/tags/ParallelFX/default.aspx">ParallelFX</category><category domain="http://blogs.microsoft.co.il/blogs/sasha/archive/tags/DevAcademy4/default.aspx">DevAcademy4</category></item><item><title>MIX10 - Summary</title><link>http://blogs.microsoft.co.il/blogs/gilf/archive/2010/03/19/mix10-summary.aspx</link><pubDate>Fri, 19 Mar 2010 16:17:02 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:551732</guid><dc:creator>Gil Fink</dc:creator><slash:comments>0</slash:comments><description>&lt;h1&gt;&lt;strong&gt;MIX10 – Summary&lt;/strong&gt;&lt;/h1&gt;  &lt;p&gt;Home sweet home!&lt;a href="http://blogs.microsoft.co.il/blogs/gilf/logo_footer_59E76343.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="MIX10 – Summary" border="0" alt="MIX10 – Summary" align="right" src="http://blogs.microsoft.co.il/blogs/gilf/logo_footer_thumb_114D7472.png" width="132" height="60" /&gt;&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;I arrived today back     &lt;br /&gt;to Israel after a trip     &lt;br /&gt;of six days to the     &lt;br /&gt;&lt;a title="MIX10 Conference Site" href="http://live.visitmix.com/"&gt;&lt;strong&gt;MIX10 conference&lt;/strong&gt;&lt;/a&gt;    &lt;br /&gt;(three days conference and almost three days “on the roads”).    &lt;br /&gt;To tell the truth, I was a little disappointed from the conference.    &lt;br /&gt;I’ve expected more relevant information and less recycling of things     &lt;br /&gt;that I already know. As you know (if you followed the &lt;a title="MIX10 Conference Site" href="http://live.visitmix.com/"&gt;&lt;strong&gt;MIX10&lt;/strong&gt;&lt;/a&gt;),    &lt;br /&gt;there were announcements about &lt;strong&gt;Windows Phone 7&lt;/strong&gt;, &lt;strong&gt;Silverlight 4&lt;/strong&gt;, &lt;strong&gt;OData&lt;/strong&gt;    &lt;br /&gt;protocol, &lt;strong&gt;IE9&lt;/strong&gt; and more. After being at the conference and meeting attendees     &lt;br /&gt;from all over the world, I think that &lt;strong&gt;Microsoft&lt;/strong&gt; missed an opportunity to do     &lt;br /&gt;more buzz then I think they did. Every person that I talked to said the same     &lt;br /&gt;things so apparently it isn’t only my opinion. As I see it the world of the     &lt;br /&gt;web is going to shift to platforms like &lt;strong&gt;Silverlight&lt;/strong&gt; which I’m going to learn     &lt;br /&gt;in the future in order not to stay behind.    &lt;br /&gt;Moreover, I’ve be asked why did I went to the conference. The answer is really    &lt;br /&gt;simple – from the beginning of my professional life I’ve been more web oriented.    &lt;br /&gt;So I hope this is making more sense to the people who asked me that question.    &lt;br /&gt;The next thing in mind now is my session in the &lt;a title="DevAcademy4 Site" href="http://www.microsoft.com/israel/msdn/DevAcademy4/"&gt;&lt;strong&gt;DevAcademy4&lt;/strong&gt;&lt;/a&gt; conference which     &lt;br /&gt;is going to take place next Monday in Israel. If you want to hear my &lt;strong&gt;EF4&lt;/strong&gt; session     &lt;br /&gt;you are most welcome.     &lt;br /&gt;See you there!    &lt;br /&gt;&lt;/p&gt;&lt;div class="wlWriterHeaderFooter" style="text-align:left;margin:0px;padding:4px 4px 4px 4px;"&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2010/03/19/mix10-summary.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http://blogs.microsoft.co.il/blogs/gilf/archive/2010/03/19/mix10-summary.aspx&amp;amp;bgcolor=0080C0&amp;amp;fgcolor=FFFFFF&amp;amp;border=000000&amp;amp;cbgcolor=D4E1ED&amp;amp;cfgcolor=000000" border="0/" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=551732" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Miscellaneous/default.aspx">Miscellaneous</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Personal/default.aspx">Personal</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Opinion/default.aspx">Opinion</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/DevAcademy4/default.aspx">DevAcademy4</category><category domain="http://blogs.microsoft.co.il/blogs/gilf/archive/tags/MIX10/default.aspx">MIX10</category></item><item><title>SSAS – Cache Usage and Profiler</title><link>http://blogs.microsoft.co.il/blogs/yanivmor/archive/2010/03/19/ssas-cache-usage-and-profiler.aspx</link><pubDate>Fri, 19 Mar 2010 08:05:21 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:551221</guid><dc:creator>yanivmor</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I recently was required to check on the performance of an SSAS instance. We had a new OLAP model with several MDX queries that we wanted to ensure were performing adequately. Now, you may know that SSAS is using caching in order to speed up its response time. Initial queries are directed to disk and once data is first read, it is then being placed in cache to serve future queries faster, eliminating the need to access disk again.&lt;/p&gt;  &lt;p&gt;What we did first was to clear the cache, using the following XMLA command:&lt;/p&gt;  &lt;p&gt;&amp;lt;Batch xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/analysisservices/2003/engine&amp;quot;"&gt;http://schemas.microsoft.com/analysisservices/2003/engine&amp;quot;&lt;/a&gt;&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;ClearCache&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;object&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;DatabaseID&amp;gt;DBNAME&amp;lt;/DatabaseID&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/Object&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/ClearCache&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/Batch&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Where the “DBName” stands for our OLAP database. Next we started hitting the server with MDX queries and ran Profiler against the instance to gauge response time and query behaviour. We were using the “Query Begin” and “Query End” events as well as the “Get Data From Cache” and “Query Subcube Verbose” to monitor cache behaviour.&lt;/p&gt;  &lt;p&gt;We ran Windows Performance Monitor in the background as well, with the following counters:&lt;/p&gt;  &lt;p&gt;1. Total Queries From File: this counter tells us the number of queries being serviced by the file system, i.e. before data is cached.&lt;/p&gt;  &lt;p&gt;2. Total Queries From Cache: this counter tells us the number of queries being serviced by the cache.&lt;/p&gt;  &lt;p&gt;When we ran the first MDX query, we saw an increase in the “Total Queries From File” counter and the next time we ran the same query we saw an increase in the “Total Queries From File” counter, which is exactly the behaviour that we were expecting. &lt;/p&gt;  &lt;p&gt;However, looking at Profiler, we noticed that the “Get Data From Cache” event was raised even when we ran the MDX query for the first time. We can provide an answer to this seemingly abnormality by looking the “Query Subcube Verbose” event. When running the query for the first time, you will see an indication that the engine queries “Non-cached data” first and that issues a query on “Cached Data”. The second time you run the MDX query, we only see the &amp;quot;Cached Data” query events being raised. So, the way this all works is like this: the Query Processor engine will always execute its queries from cache. This is why we will always see the “Get Data From Cache” event raised, regardless of the fact cache was cleared or not to begin with. However, when no data is in cache, it will trigger a “Non cached data” query first, the Storage Engine will fetch data from disk, place it in cache, and the the Query Processor engine will query this newly fetched cached data.&lt;/p&gt;  &lt;p&gt;Hope this will help anyone who is doing SSAS performance monitoring!&lt;/p&gt;  &lt;p&gt;-Yaniv&lt;/p&gt;  &lt;p&gt;(This is post number 16 for week number 16 of my SQL blog challenge)&lt;/p&gt;  &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:9dfde290-c667-4152-a718-beb6487d27d6" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SSAS+2008" rel="tag"&gt;SSAS 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SSAS+2005" rel="tag"&gt;SSAS 2005&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Performance" rel="tag"&gt;Performance&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=551221" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/yanivmor/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://blogs.microsoft.co.il/blogs/yanivmor/archive/tags/Performance/default.aspx">Performance</category><category domain="http://blogs.microsoft.co.il/blogs/yanivmor/archive/tags/SSAS+2008/default.aspx">SSAS 2008</category><category domain="http://blogs.microsoft.co.il/blogs/yanivmor/archive/tags/SSAS+2005/default.aspx">SSAS 2005</category></item><item><title>פקודות (Switches) בתוכנת Microsoft Outlook</title><link>http://blogs.microsoft.co.il/blogs/support/archive/2010/03/19/switches-microsoft-outlook.aspx</link><pubDate>Fri, 19 Mar 2010 06:28:37 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:551131</guid><dc:creator>Ariel Baratz</dc:creator><slash:comments>1</slash:comments><description>&amp;#160; שלומות, כאן עומר מצוות התמיכה! לא פעם Outlook עושה לנו קצת צרות שאנחנו לא בטוחים כיצד לפתור. הנטייה הראשונית היא להתקין מחדש, למרות שלא תמיד זה יפתור את הבעיה, וגם אפשר לפתור אותה בתהליך הרבה יותר קצר ופשוט. ל-Outlook (כמו לכל תוכנות Office) יש רשימת פקודות (Switches) שניתן להריץ, אשר לכל אחת מטרה משלה והיא יכולה לחסוך הרבה כאב ראש. את הפקודות יש לכתוב בתוך שורת הפקודה, אליה ניתן להגיע דרך: XP – התחל&amp;gt;הפעלה. Windows Vista \ Windows 7 – מקש החלונות (winkey) והאות R במקלדת, או דרך התחל&amp;gt;כל...(&lt;a href="http://blogs.microsoft.co.il/blogs/support/archive/2010/03/19/switches-microsoft-outlook.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=551131" width="1" height="1"&gt;</description></item><item><title>How To Investigate Existing Code Using The Visual Studio 2010 Architect Tools</title><link>http://blogs.microsoft.co.il/blogs/eranruso/archive/2010/03/19/how-to-investigate-existing-code-using-the-visual-studio-2010-architect-tools.aspx</link><pubDate>Thu, 18 Mar 2010 22:06:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:550783</guid><dc:creator>Eran Ruso</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;How many times you have spent hours on code just to understand what it does?&lt;/p&gt;
&lt;p&gt;How many of these times it was your own code?&lt;/p&gt;
&lt;p&gt;From my experience the answer to both of these questions is A LOT!&lt;/p&gt;
&lt;p&gt;In Visual Studio 2010 we can find a set of tools that can help us understand the code a lot faster. &lt;/p&gt;
&lt;p&gt;&lt;font color="#800000" size="4"&gt;&lt;strong&gt;On This post I will show some of the abilities we get with the Visual Studio 2010 Architect Tools when investigating an existing code.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#800000" size="3"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: &lt;/strong&gt;The Architect Tools is in the Visual Studio Ultimate Edition only.&lt;/p&gt;
&lt;p&gt;Lets start with &lt;strong&gt;ways to investigate an existing code&lt;/strong&gt;, for that I will use a common solution called “TailSpinToys”.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Go to the “Architect” menu item on the main menu&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Choose “Generate Dependency Graph”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Choose “By Assembly”&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_1__Dependency_graph_by_assembly_40C55166.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" title="Step_1__Dependency_graph_by_assembly" border="0" alt="Step_1__Dependency_graph_by_assembly" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_1__Dependency_graph_by_assembly_thumb_45C78F15.png" width="482" height="147" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;What we get is an Assemblies graph that shows all the dependencies between the Assemblies in our solution and two more very important groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Generics &lt;/li&gt;
&lt;li&gt;Externals &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The thickness of the links shows how strong is the link between the assemblies. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_2__Dependancy_Graph_by_Assembly_16297089.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" title="Step_2__Dependancy_Graph_by_Assembly" border="0" alt="Step_2__Dependancy_Graph_by_Assembly" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_2__Dependancy_Graph_by_Assembly_thumb_6C45A9FB.png" width="504" height="298" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Lets continue and play with it a little, I will extract the Generics group.&lt;/p&gt;
&lt;p&gt;Its little hard to see but what we get is all the generics that we use in our solution&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_3__etract_Generics_32464142.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" title="Step_3__etract_Generics" border="0" alt="Step_3__etract_Generics" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_3__etract_Generics_thumb_37A48C19.png" width="504" height="215" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;I will now extract the Externals group.&lt;/p&gt;
&lt;p&gt;You can see here all the references that we use in the solution.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_4__Extract_Externals_237B49C3.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" title="Step_4__Extract_Externals" border="0" alt="Step_4__Extract_Externals" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_4__Extract_Externals_thumb_02E3E444.png" width="504" height="283" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I will now extend the System.dll&lt;/p&gt;
&lt;p&gt;You can now see all the workspaces in the System.dll, these are not all the workspaces that exist but only the workspaces that are used.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_5__Extract_System_DLL_64697D8D.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_5__Extract_System_DLL" border="0" alt="Step_5__Extract_System_DLL" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_5__Extract_System_DLL_thumb_0BE049F8.png" width="504" height="94" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;You can continue to dig in and see all the methods that are in the classes that are in the namespaces.&lt;/p&gt;
&lt;p&gt;That is nice, but what if I like to be more specific in my Graph creation?&lt;/p&gt;
&lt;p&gt;The answer to this need comes from the Architecture Explorer:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_10_Architecture_Explorer_5E128132.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_10_Architecture_Explorer" border="0" alt="Step_10_Architecture_Explorer" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_10_Architecture_Explorer_thumb_7C108F26.png" width="504" height="127" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Here you can choose what to investigate and set the scope for the graph.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_11_First_View_10662EE5.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_11_First_View" border="0" alt="Step_11_First_View" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_11_First_View_thumb_677B19DB.png" width="328" height="205" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;In my example I have done the following steps:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: &lt;/strong&gt;Choose “Solution View”&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: &lt;/strong&gt;Click the filter to see only the “Projects”&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_12__Clicking_on_Solution_3A19840B.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_12__Clicking_on_Solution" border="0" alt="Step_12__Clicking_on_Solution" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_12__Clicking_on_Solution_thumb_786F21F1.png" width="441" height="213" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_13__Choose_Project_2DD7BE4A.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_13__Choose_Project" border="0" alt="Step_13__Choose_Project" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_13__Choose_Project_thumb_08AA4E11.png" width="432" height="206" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can see that the view is filtered by a Filter Icon.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_14__Result_29DA43ED.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_14__Result" border="0" alt="Step_14__Result" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_14__Result_thumb_454F2023.png" width="244" height="117" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5: &lt;/strong&gt;Choose the Projects that are shown in the screenshot&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Click the “Files” bar and choose “References”&lt;/p&gt;
&lt;p&gt;By choosing References you will see only the reference files&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_15__Choose_projects_5672D7F9.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_15__Choose_projects" border="0" alt="Step_15__Choose_projects" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_15__Choose_projects_thumb_632CE27D.png" width="504" height="158" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_16_Referances_024F3DB7.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_16_Referances" border="0" alt="Step_16_Referances" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_16_Referances_thumb_30E54699.png" width="459" height="188" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; Filter by Project&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_17_Filter_to_projects_7B1FDB71.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_17_Filter_to_projects" border="0" alt="Step_17_Filter_to_projects" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_17_Filter_to_projects_thumb_182537E2.png" width="504" height="163" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_18_Filter_42814332.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_18_Filter" border="0" alt="Step_18_Filter" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_18_Filter_thumb_6EBDCA16.png" width="227" height="236" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 8:&lt;/strong&gt; Choose all and click the Generate a Graph button on the left&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_19_choose_all_71174C14.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_19_choose_all" border="0" alt="Step_19_choose_all" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_19_choose_all_thumb_08AE37E1.png" width="504" height="112" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.microsoft.co.il/blogs/eranruso/Step_20_The_result_27E0B8E7.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Step_20_The_result" border="0" alt="Step_20_The_result" src="http://blogs.microsoft.co.il/blogs/eranruso/Step_20_The_result_thumb_477F6CE2.png" width="504" height="221" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;There are many more options in the architect tools that I will cover in future posts.&lt;/p&gt;
&lt;p&gt;Have Fun!!!&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=550783" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/TECH/default.aspx">TECH</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/Team+System+2010/default.aspx">Team System 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/VS2010/default.aspx">VS2010</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/VSTS2010/default.aspx">VSTS2010</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/ALM/default.aspx">ALM</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/Visual+Studio+2010+Architect/default.aspx">Visual Studio 2010 Architect</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/Architect+Tools/default.aspx">Architect Tools</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/Architecture+Edition/default.aspx">Architecture Edition</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/Architect/default.aspx">Architect</category><category domain="http://blogs.microsoft.co.il/blogs/eranruso/archive/tags/Visual+Studio+2010+Architect+Tools/default.aspx">Visual Studio 2010 Architect Tools</category></item><item><title>WPF Grid IsSharedSizeScope &amp; SharedSizeGroup</title><link>http://blogs.microsoft.co.il/blogs/yitzhaks/archive/2010/03/18/wpf-grid-issharedsizescope-amp-sharedsizegroup.aspx</link><pubDate>Thu, 18 Mar 2010 10:46:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:550125</guid><dc:creator>yitzhaks</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;
	There is a Chinese saying, &amp;quot;good things come in pairs&amp;quot;.&lt;br /&gt;
	After a long dry spell, I have two posts in one day.&lt;br /&gt;
	Alas, G-D works in mysterious ways...&lt;br /&gt;
	&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
	An application my friend Alex Barmak is working on has been having some very weird issue with its ScrollBar position jumping unexpectedly while switching between tabs.
	The layout is similar to this:&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
	&lt;a href="http://img62.imageshack.us/img62/2577/windowlayout.png" target="_blank"&gt;
		&lt;img src="http://img62.imageshack.us/img62/2577/windowlayout.th.png" border="0" alt="" /&gt;
	&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
	The green area represents a ribbon, the red area is a navigation tree, and the blue area is the details.&lt;br /&gt;
	In this application, the details are divided between a few tabs, and once in a while when switching between tabs,&lt;br /&gt;
	The ScrollBar for the navigation area (generated by a ScrollViewer) would jump up for no apparent reason.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
	I&amp;#39;ll save you the story of all the failed attempts at solving the problem and skip directly to the solution.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
	It all stems from a cool yet dangerous feature in WPF. This feature allows grids to share size between them.&lt;br /&gt;
	Let me illustrate this using the code that created the image above:&lt;br /&gt;
	&lt;/p&gt;&lt;div style="background:white none repeat scroll 0% 0%;font-family:Courier New;font-size:10pt;color:black;-moz-background-clip:border;-moz-background-origin:padding;-moz-background-inline-policy:continuous;"&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.IsSharedSizeScope&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; SnapsToDevicePixels&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;contentGrid&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.RowDefinitions&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; SharedSizeGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Header&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;contentRow&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;*&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.ColumnDefinitions&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;*&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Red&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Blue&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;headerGrid&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.RowDefinitions&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;headerRow&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; SharedSizeGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Header&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;*&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;header&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;70&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Green&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&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:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
	&lt;/div&gt;

&lt;p&gt;
	In plain English, What this piece of XAML does is create two grids inside a grid, having the grids share the space inside the outer grid.&lt;br /&gt;
	I believe MSDN can explain how this works better than I can:&lt;br /&gt;
	&lt;/p&gt;&lt;ul&gt;
		&lt;li&gt;
			&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.grid.issharedsizescope.aspx" target="_blank"&gt;
				Grid.IsSharedSizeScope Attached Property
			&lt;/a&gt;
		&lt;/li&gt;
		&lt;li&gt;
			&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.definitionbase.sharedsizegroup.aspx" target="_blank"&gt;
				DefinitionBase.SharedSizeGroup Property 
			&lt;/a&gt;
		&lt;/li&gt;
	&lt;/ul&gt;

&lt;p&gt;
	The reason for using this trick to lay out the application is very long, and deserves a post of its own (&lt;a href="http://arbel.net/blog/" target="_blank"&gt;Eli Arbel&lt;/a&gt;, this one is on you :-) )
&lt;/p&gt;
&lt;p&gt;
	Ultimately, what is happening here (as far as I understand :-) ) is two grids, whose first row is sharing size between them.&lt;br /&gt;
	The first grid is in charge of presenting the navigation and details of the application, while the second grid is in charge of the ribbon.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
	So far, so good. The application runs smoothly, and everything seems to be in order.&lt;br /&gt;
	The navigation for this application is represented by a tree structure, wherein clicking any node displays additional information about it.&lt;br /&gt;
	When the user expands a few nodes, the tree outgrows its display area, and in comes a ScrollViewer to the rescue.&lt;br /&gt;
	The trouble started when a user noticed that when he is scrolled to the bottom of the tree, if he switches between tabs in the details view, the ScrollBar jumps up inexplicably.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
	After searching long and hard, we found out that what isn&amp;#39;t mentioned (as far as I can see, anywhere) is the fact the grids are arranged in sequential order, and not in parallel.&lt;br /&gt;
	What this means is that the first (content) grid has a layout pass, in which it&amp;#39;s only row is allowed to take up the space of the entire outer grid.&lt;br /&gt;
	Then, the second (header) grid is rendered. In this pass, the second (header) grid takes 70 pixels, and since the row sizes of the grids are linked, a second layout pass is triggered on the first (content) grid. In this pass, the row is allotted 70 pixels less than in the previous pass, and eventually everything looks in place.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
	The problem is twofold:&lt;br /&gt;
	First and foremost, the &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer.viewportheight.aspx" target="_blank"&gt;ViewportHeight&lt;/a&gt; of the (navigation) ScrollViewer is set twice, as if the window is enlarged by 70 pixels and immediately reduced back again. This causes the ScrollBar to jump up by a fraction of the change (around half).
	Second, an extraneous layout pass is performed. I hope I don&amp;#39;t need to explain why this is not good. :-)&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
	After some trial and error, Alex and I found the simplest way to avoid this is to bind the Height of the &amp;quot;header&amp;quot; row in the &amp;quot;content&amp;quot; grid to the ActualHeight of the &amp;quot;header&amp;quot; row of the &amp;quot;header&amp;quot; grid, like so (notice the &lt;b&gt;bold&lt;/b&gt; line):&lt;br /&gt;
	&lt;/p&gt;&lt;div style="background:white none repeat scroll 0% 0%;font-family:Courier New;font-size:10pt;color:black;-moz-background-clip:border;-moz-background-origin:padding;-moz-background-inline-policy:continuous;"&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.IsSharedSizeScope&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; SnapsToDevicePixels&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;True&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;contentGrid&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;font-weight:bold;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Binding&lt;/span&gt;&lt;span style="color:red;"&gt; ElementName&lt;/span&gt;&lt;span style="color:blue;"&gt;=headerRow,&lt;/span&gt;&lt;span style="color:red;"&gt; Path&lt;/span&gt;&lt;span style="color:blue;"&gt;=ActualHeight}&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; SharedSizeGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Header&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;contentRow&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;*&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.ColumnDefinitions&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;ColumnDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;*&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.ColumnDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Width&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Red&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.Column&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Blue&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;headerGrid&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.RowDefinitions&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:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;headerRow&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Auto&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; SharedSizeGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Header&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;RowDefinition&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;*&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid.RowDefinitions&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&amp;nbsp;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Rectangle&lt;/span&gt;&lt;span style="color:red;"&gt; x&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;=&amp;quot;header&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Height&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;70&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Grid.Row&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt; Fill&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Green&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
		&lt;p style="margin:0px;"&gt;&lt;span style="color:FireBrick;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:FireBrick;"&gt;Grid&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:FireBrick;"&gt;Grid&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
	&lt;/div&gt;

&lt;p&gt;
	By doing this, there is only one extra pass on the first time the window renders, as the ActualHeight of the headerRow is still 0.&lt;br /&gt;
	Other than that, on all the subsequent passes, the &amp;quot;content&amp;quot; row is allotted it&amp;#39;s real size on the first pass.
&lt;/p&gt;
&lt;p&gt;
	&lt;br /&gt;
	Mission accomplished.&lt;br /&gt;
	Now, that wasn&amp;#39;t so terrible, was it... :-)
	&lt;br /&gt;
	&lt;br /&gt;
&lt;/p&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=550125" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/yitzhaks/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/yitzhaks/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.microsoft.co.il/blogs/yitzhaks/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.microsoft.co.il/blogs/yitzhaks/archive/tags/Grid/default.aspx">Grid</category><category domain="http://blogs.microsoft.co.il/blogs/yitzhaks/archive/tags/IsSharedSizeScope/default.aspx">IsSharedSizeScope</category><category domain="http://blogs.microsoft.co.il/blogs/yitzhaks/archive/tags/SharedSizeGroup/default.aspx">SharedSizeGroup</category></item><item><title>מה קרה לכל המקום הפנוי שלי?!</title><link>http://blogs.microsoft.co.il/blogs/support/archive/2010/03/18/549916.aspx</link><pubDate>Thu, 18 Mar 2010 09:48:19 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:549916</guid><dc:creator>Ariel Baratz</dc:creator><slash:comments>0</slash:comments><description>&amp;#160; היי חבר’ה, כאן עומר מצוות התמיכה… מכירים את זה שיום אחד אתם מגיעים למחשב ופתאום אין לכם מקום פנוי? מה לעזאזל ממלא אותו? אז לפני שאנחנו רצים לקנות כונן קשיח חדש, בואו נבדוק איך אפשר לפנות קצת מקום במחשב מפריטים שאנחנו לא ממש צריכים או משתמשים. חשוב לדעת! פינוי מקום בכונן הקשיח משמעותו מחיקה, לכן יש מאד להיזהר כאשר מבצעים ניקוי. ודאו שאתם מוחקים בדיוק את מה שאתם רוצים כדי לא לגרום לבעיות מיותרות. אז מה אפשר לנקות? 1. הכי בסיסי – הסרה של תוכנות שאנחנו לא משתמשים בהם דרך לוח הבקרה. VISTA \ WINDOWS...(&lt;a href="http://blogs.microsoft.co.il/blogs/support/archive/2010/03/18/549916.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=549916" width="1" height="1"&gt;</description></item><item><title>הדרכות ואירועים וירטואלים למומחי מחשוב</title><link>http://blogs.microsoft.co.il/blogs/michalnis/archive/2010/03/18/549866.aspx</link><pubDate>Thu, 18 Mar 2010 08:00:57 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:549866</guid><dc:creator>michalnis</dc:creator><slash:comments>0</slash:comments><description>&lt;div align="left"&gt;   &lt;table cellpadding="0" align="left"&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;a href="http://www.vconferenceonline.com/shows/spring10/virtualization/?CID%20=ToolkitMSField"&gt;Online Conference: Business Critical Virtualization on March 31 – Spread the Word&lt;/a&gt; &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;Customers can participate in in-depth training sessions, meet Microsoft Virtualization experts and key Virtualization partners like Hitachi Data Systems, HP, EMC, and NetApp in the virtual expo hall, network with peers, and get questions answered - and do all of this directly from the computer, for free, with no registration fee! The event kicks off with an interactive roundtable discussion about Microsoft Virtualization as best choice for Microsoft Server applications. Forrester analyst Noel Yuhanna, Microsoft speakers Jeff Woolsey (Virtualization) and Rob Reinauer (SQL) and customer Scott Burkland from Avanade discuss how Windows Server 2008 R2 Hyper-V and System Center can increase resource utilization, enhance business continuity, and provide a more cost-efficient, integrated, end-to-end management solution for both physical and virtual environments.&amp;#160;&amp;#160; &lt;/p&gt;            &lt;p&gt;Encourage your customers to attend this event! &lt;a href="http://www.vconferenceonline.com/shows/spring10/virtualization/?CID%20=ToolkitMSField"&gt;Registration information&lt;/a&gt;.              &lt;table cellpadding="0"&gt;                 &lt;tr&gt;                   &lt;td&gt;                     &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032445737&amp;amp;Culture=en-US"&gt;Windows Failover Clustering PowerShell Cmdlets:&amp;#160; Overview and Examples&lt;/a&gt;&lt;/p&gt;                   &lt;/td&gt;                 &lt;/tr&gt;                  &lt;tr&gt;                   &lt;td&gt;                     &lt;p&gt;3/22/2010 at 9am- Aric Bernard, - HP - Microsoft Certified Architect &lt;/p&gt;                      &lt;p&gt;With the release of Windows Server 2008 R2, a new set of PowerShell cmdlets has been included providing a new level of robust automation for Windows clusters.&amp;#160; This webinar will review the pre-PowerShell methods for interacting with a Windows cluster and then dive into the new cmdlets.&amp;#160; The bulk of the webinar will leverage two demonstrations that focus on the top 20 new cmdlets that every “traditional” and Hyper-V cluster administrator should know.&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;table cellpadding="0"&gt;                           &lt;tr&gt;                             &lt;td&gt;                               &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032433236&amp;amp;Culture=en-US"&gt;&lt;strong&gt;Microsoft Virtualization Best Practices for SharePoint 2007 &amp;amp; 2010&lt;/strong&gt;&lt;/a&gt;. Friday March 19th @ 9am (PT)-&amp;#160; Arno Mihm.&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;Virtualizing business critical applications will deliver significant customer benefits including cost savings, enhanced business continuity and an agile and efficient management solution.&amp;#160; This session will focus on virtualizing SharePoint using Microsoft solutions, the benefits over key competitors such as VMware, and guidance for virtualizing SharePoint for Production and Test/Dev scenarios focusing on scale, load balancing, dynamic provisioning and high availability.&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032442916&amp;amp;Culture=en-US"&gt;&lt;strong&gt;Extending and Customizing System Center Service Manager 2010&lt;/strong&gt;&lt;/a&gt;. Wednesday March 31st @ 11am (PT)- Travis Wright; Corina Feurstein.&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;Service Manager 2010 is built on a powerful, mature platform that allows you to easily customize and extend the product to meet the needs of the most demanding customers and partners.&amp;#160; In this session you will learn a wide range of methods for customizing and extending Service Manager including: extending the CMDB model, creating custom forms, templates, workflows, and reports just to name a few.&amp;#160; This is a very technical session - lots of XML and code.&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032443671&amp;amp;Culture=en-US"&gt;&lt;strong&gt;Implementation, Architecture and Administration of a Service Manager Deployment&lt;/strong&gt;&lt;/a&gt;. Monday April 5th @ 11am (PT) - Marc Umeno; Darko Vukovic.&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;Service Manager 2010 is about to RTM!&amp;#160; Are you ready?&amp;#160; Learn how to design a scalable, redundant installation of Service Manager, how to configure the most common settings such as creating notification templates/subscriptions, user roles, configuring workflows, creating templates, customizing lists, and much more.&lt;/p&gt;                                &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032442977&amp;amp;Culture=en-US"&gt;&lt;strong&gt;Deep Dive - Microsoft Virtualization Best Practices for SQL Server&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;. &lt;/strong&gt;Thursday April 15th @ 10am (PT)- Arno Mihm, Sung Hsueh.&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;Curious about running SQL Server using Hyper-V virtualization? Our presentation will provide an in depth discussion of SQL Server performance&amp;#160; inside of a Hyper-V VM based on industry experience and test scenarios as well as demonstrate some of the benefits that can be achieved through virtualization. &lt;/p&gt;                                &lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032441810&amp;amp;Culture=en-US"&gt;&lt;strong&gt;Hyper-V for the VMware Administrator (on demand webcast)&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;                                &lt;p&gt;If you are a VMware Administrator or you are considering a Virtualization Platform purchase than this session is for you. Using demos we will cover in comparative nature how things are configured within Microsoft Virtualization and highlight the differences in the two platforms. &lt;/p&gt;                                &lt;p&gt;For more information or to ask questions, please contact &lt;a href="mailto:v-noktab@microsoft.com"&gt;Nokta Berberoglu (Xtreme Consulting Group Inc)&lt;/a&gt;.&lt;/p&gt;                             &lt;/td&gt;                           &lt;/tr&gt;                            &lt;tr&gt;                             &lt;td&gt;                               &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/michalnis/clip_image002_32052FEA.gif"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.microsoft.co.il/blogs/michalnis/clip_image002_thumb_58671335.gif" width="240" height="8" /&gt;&lt;/a&gt;&lt;/p&gt;                             &lt;/td&gt;                           &lt;/tr&gt;                            &lt;tr&gt;                             &lt;td&gt;                               &lt;p&gt;Upcoming Academy Live Webcasts&lt;/p&gt;                             &lt;/td&gt;                           &lt;/tr&gt;                            &lt;tr&gt;                             &lt;td&gt;                               &lt;p&gt;&lt;strong&gt;&lt;a href="https://academymobile.microsoft.com/academylive/Pages/PodcastDetail.aspx?itemId=2220&amp;amp;userId=&amp;amp;caid=&amp;amp;psid=,3682,,3835,%20&amp;amp;csId=%257B38CF0515-9906-482A-8FD5-8E79CE78830F%257D%2540%257BF933AF51-7E82-4A33-BCF8-BCA268E54679%257D"&gt;MGT50PAL: Opportunity Knocks: Selling System Center in the Midmarket&lt;/a&gt;.&lt;/strong&gt; Thursday March 25th @ 8am (PT) - Jason Buffington; David Mills (MKTG)&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;Midsize businesses struggle with using disparate IT management tools and manual processes to keep their infrastructures up and running. In many cases, they’re simply not aware of the management and virtualization technologies available to help them reduce IT complexity, improve IT availability and prevent data loss. In this webcast, we’ll introduce you to Microsoft’s latest virtualization and management technologies built into Data Protection Manager 2010, System Center Essentials 2010 and Hyper-v. Next, we’ll show you the opportunities these solutions provide partners for expanding their roles as trusted advisors, delivering increasing business value and winning more business.&amp;#160; &lt;/p&gt;                                &lt;p&gt;&lt;a href="https://academymobile.microsoft.com/academylive/Pages/PodcastDetail.aspx?itemId=2585&amp;amp;userId=&amp;amp;caid=&amp;amp;psid=,27187,&amp;amp;csId=%257B38CF0515-9906-482A-8FD5-8E79CE78830F%257D%2540%257BF933AF51-7E82-4A33-BCF8-BCA268E54679%257D"&gt;&lt;strong&gt;Microsoft Integrated Virtualization – From the Desktop and Datacenter, to the Cloud (MGT66PAL)&lt;/strong&gt;&lt;/a&gt;. Friday March 26th @ 8am (PT) - Kenon Owens&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;As Organizations begin to see the Value of Virtualization and adopt different Virtualization Technologies, they may want to know what’s next? Who can help me realize the benefits of virtualization today, and prepare me to leverage my existing investments into the future? Learn how the Integrated Virtualization Solutions Microsoft delivers today can help you realize the Better Value, Improved Availability, and Business Agility that Virtualization provides, and can help you prepare for the future.&lt;/p&gt;                                &lt;p&gt;&lt;a href="https://academymobile.microsoft.com/academylive/Pages/PodcastDetail.aspx?itemId=2627&amp;amp;userId=543&amp;amp;caid=&amp;amp;psid=,543,,15463,&amp;amp;csId=%257B38CF0515-9906-482A-8FD5-8E79CE78830F%257D%2540%257BF933AF51-7E82-4A33-BCF8-BCA268E54679%257D"&gt;&lt;strong&gt;Selling the New Client Management Suite and Service Manager&lt;/strong&gt;&lt;/a&gt;. March 30th at 7.30am (PT). Kelly Wagman and Nate Shea-han&lt;/p&gt;                                &lt;p&gt;The New Client Management Suite from Microsoft is just around the corner. A key part of ECAL, the suite will include Data Protection Manager, Operations Manager and Service Manager. Learn from sellers that are already having success how to position this suite to compete and win in client opportunities – and how to get more in up sale or expand your opportunities to generate the most revenue per sale.&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;&lt;a href="https://academymobile.microsoft.com/academylive/Pages/PodcastDetail.aspx?itemId=2425&amp;amp;userId=&amp;amp;caid=&amp;amp;psid=,9472,%20&amp;amp;csId=%257B38CF0515-9906-482A-8FD5-8E79CE78830F%257D%2540%257BF933AF51-7E82-4A33-BCF8-BCA268E54679%257D"&gt;&lt;strong&gt;System Center and Virtualization, A Double Win at the USDA: Lessons Learned from the Account Team (MGT63AL)&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;. &lt;/strong&gt;Wednesday April 14th 2010 at 10.30am (PT).- Kelly Wagman, Jamal Malik and Keith Nielsen&amp;#160;&amp;#160; &lt;/p&gt;                                &lt;p&gt;The USDA/ITS is in the final stages of migrating from SMS to Configuration Manager 2007. In this session you will learn how the Microsoft Sales and Services team managed to convert this VMware customer to Hyper-V, using Hyper-V to virtualize Configuration Manager.&lt;/p&gt;                             &lt;/td&gt;                           &lt;/tr&gt;                         &lt;/table&gt;                     &lt;/p&gt;                     &lt;a href="http://blogs.microsoft.co.il/blogs/michalnis/bc71a6cf747144c5ab061fd327d50274_5C052E12.gif"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="bc71a6cf-7471-44c5-ab06-1fd327d50274" border="0" alt="bc71a6cf-7471-44c5-ab06-1fd327d50274" src="http://blogs.microsoft.co.il/blogs/michalnis/bc71a6cf747144c5ab061fd327d50274_thumb_61DFD1AB.gif" width="236" height="50" /&gt;&lt;/a&gt; &lt;/td&gt;                 &lt;/tr&gt;               &lt;/table&gt;           &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=549866" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/michalnis/archive/tags/itpro/default.aspx">itpro</category></item></channel></rss>