<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://beta.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://beta.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>אומנות יצירת התוכנה</title><link>http://beta.blogs.microsoft.co.il/blogs/herman/archive/2010/03/11/541993.aspx</link><pubDate>Thu, 11 Mar 2010 13:59:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541993</guid><dc:creator>Herman</dc:creator><slash:comments>0</slash:comments><description>&lt;p dir="rtl" align="right"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;הפוסט הראשון&amp;nbsp;בסדרה &amp;quot;אומנות יצירת התוכנה&amp;quot;&amp;nbsp;שמוקדשת&amp;nbsp;לארכיטקטורת תוכנה,&amp;nbsp;דן בשאלה : מהו ארכיטקט, מהי ארכיטקטורה ומה מקומה בתהליך בניית מערכת מחשב.&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;מבוא&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;איך אתה קורא למישהו שיוצר מוזיקה יפה? איך אתה קורא למישהו שיוצר פסל יפה? איך אתה קורא למישהו שיוצר תוכנה מתוחכמת?&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;אם תשובתך &amp;quot;תוכניתן&amp;quot; אז כנראה עבורך שפת &lt;/span&gt;&lt;font face="Calibri"&gt;&lt;span&gt;C++&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span&gt;&lt;/span&gt; היא בסך הכול דיאלקט נוסף של הצרפתית. יצירת תוכנה זוהי אומנות, הנוצרת ע&amp;quot;י קבוצה של אנשי מקצוע מדיסציפלינות שונות אשר עובדים ביחד.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;ובכן, מהם הדברים העיקריים שעל קבוצת אנשי המקצוע לעשות?&lt;/font&gt;&lt;/span&gt; &lt;/div&gt;
&lt;p style="TEXT-INDENT:-18pt;MARGIN:0cm 36pt 0pt 0cm;mso-list:l1 level1 lfo1;" dir="rtl" class="MsoListParagraphCxSpFirst" align="right"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;השלב הראשון ביצירה הזו היא הגדרת הצרכים. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 36pt 0pt 0cm;" dir="rtl" class="MsoListParagraphCxSpMiddle" align="right"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;תאר לעצמך מלך מטורלל שמבקש: &amp;quot;תכין לי שולחן מלא במזון משובח, אני חוגג היום!&amp;quot;. מישהו אמור להקשיב&amp;nbsp;לזה ולתרגם&amp;nbsp;לאנשי המטבח. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0cm 36pt 0pt 0cm;" dir="rtl" class="MsoListParagraphCxSpMiddle" align="right"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;הרי משמעות הבקשה שלו יכולה להיות : קויאר שחור, קרם ברולה, והרבה מאוד יין...&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;או שלא.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-18pt;MARGIN:0cm 36pt 0pt 0cm;mso-list:l1 level1 lfo1;" dir="rtl" class="MsoListParagraphCxSpMiddle" align="right"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;השלב השני ב&amp;quot;בישול&amp;quot; הוא &amp;quot;ריקוד השף&amp;quot;: השף מסתובב כמו סביבון וצועק לשוליות באילו &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;מרכיבים להשתמש, איך לערבב אותם ואיך למקם אותם בתוך הסיר.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-18pt;MARGIN:0cm 36pt 0pt 0cm;mso-list:l1 level1 lfo1;" dir="rtl" class="MsoListParagraphCxSpMiddle" align="right"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;3.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;לאחר שכל כך הרבה חוכמה טפטפה על האש, מישהו צריך להפוך את כל זה למציאות ובאמת להביא מרכיבים, לערבב, למקם וכו&amp;#39;, בקיצור - לבשל. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT:-18pt;MARGIN:0cm 36pt 10pt 0cm;mso-list:l1 level1 lfo1;" dir="rtl" class="MsoListParagraphCxSpLast" align="right"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;4.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;השלב האחרון בתהליך הזה הינו בדיקות. המטרה של הבודק היא למעשה להוכיח שהמזון לא טוב! ורק אם הוא נכשל בלהוכיח את זה – הארוחה יכולה להגיע לשולחן המלך.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;כמובן ישנם עוד הרבה מקצועות &amp;quot;תומכות לחימה&amp;quot; כגון: מנהל פיתוח, אדמיניסטרטור רשת, אינטגרטור, אדמיניסטרטור בסיסי נתונים, אנשי &lt;/span&gt;&lt;font face="Calibri"&gt;&lt;span&gt;ALM&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span&gt;&lt;/span&gt; וכו&amp;#39;, אבל בבלוג הזה, אני מזכיר,&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;אנחנו נדון אך ורק בדברים שקשורים בצורה זו או אחרת לארכיטקטורה.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;קצת פורמליסטיקה&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;ועכשיו בוא ננסה להגדיר את עולם המקצועות עבור שלושת השלבים ראשונים, כדי להבין איפה בתוכם נמצא ארכיטקט המערכת.&lt;/font&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;1.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;font size="3"&gt;מפרש החלומות&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;p style="TEXT-INDENT:18pt;MARGIN:0cm 18pt 0pt 0cm;mso-add-space:auto;" dir="rtl" class="MsoListParagraphCxSpMiddle" align="right"&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;span style="mso-spacerun:yes;"&gt;בעולם התוכנה זהו תפקיד של מנתח מערכת או מנהל מוצר או מהנדס מערכת (הדבר תלוי בתחום שלטובתו מפותחת המערכת)&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;&lt;b&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;2.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;ריקוד השף&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt; &lt;/div&gt;
&lt;p style="TEXT-INDENT:18pt;MARGIN:0cm 18pt 0pt 0cm;mso-add-space:auto;" dir="rtl" class="MsoListParagraphCxSpMiddle" align="right"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;בעולם התוכנה זהו עיצוב-על של המערכת שנמצא באחראיותו של ארכיטקט המערכת&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;&lt;b&gt;&lt;span style="mso-bidi-font-family:Calibri;"&gt;&lt;span style="mso-list:Ignore;"&gt;&lt;font size="3" face="Calibri"&gt;3.&lt;/font&gt;&lt;span style="FONT:7pt &amp;#39;Times New Roman&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;בישול&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/font&gt; &lt;/div&gt;
&lt;p style="MARGIN:0cm 36pt 10pt 0cm;" dir="rtl" class="MsoListParagraphCxSpLast" align="right"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;בעולם התוכנה זהו עיצוב מפורט של מודולים ומימוש שלהם על ידי תוכנתנים ( גם כאן יש לפעמים היררכיה מסוימת, למשל, מעצב אשר מכין עיצוב מפורט ותוכניתן אשר מממש אותו).&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;והנה, סוף סוף, אחרי שהגדרנו את העולם מסביב לארכיטקט, אנחנו מגיעים ללב לבו של החלק הזה, להגדרה: &amp;quot;מהו ארכיטקט?&amp;quot; &lt;/font&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;להלן ההגדרה מתוך תקן &lt;/span&gt;&lt;font face="Calibri"&gt;&lt;span&gt;IEEE&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span&gt;&lt;/span&gt; 1471 (תקן טכניקות מומלצות להגדרת ארכיטקטורה של מערכות תוכנה) : &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;em&gt;ארכיטקט הינו אדם, קבוצה או ארגון האחראי על יצירת ארכיטקטורה של המערכת.&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&amp;nbsp;ומהי ארכיטקטורה?&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&amp;quot;&amp;nbsp;&lt;em&gt;ארכיטקטורה הינה ארגון של מערכת, אשר בא לידי ביטוי ברכיבים, קשרים בין הרכיבים וקשרים בין הרכיבים לבין הסביבה וכן עקרונות המתווים עיצוב וגידול של המערכת.&amp;quot;&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;הגדרה קצת יותר פשוטה מתוך וויקפדיה: &amp;quot;&lt;em&gt;ארכיטקט הינו אדם האחראי על עיצוב-על של מערכת&lt;/em&gt;.&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;פשוט. משמעות ההגדרה היא שארכיטקטורה היא בסך הכול עיצוב. אומנם עיצוב-על, אבל עדיין עיצוב. &lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;כמו כן, ההגדרה מתייחסת ל&amp;quot;מערכת&amp;quot; ומהי מערכת? האם מסך שמדפיס &lt;/span&gt;&lt;font face="Calibri"&gt;&lt;span&gt;Hello world&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;span&gt;&lt;/span&gt; ותו לא הוא מערכת? כן, אם זה כל מה שיש. &lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;וגם כאן נדרש עיצוב, כלומר, דרוש ארכיטקט, אלא שבמקרה הזה כל תוכניתן מתחיל יכול למלא את התפקיד. &lt;/span&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;כך שלמעשה, ארכיטקט במובן היותר עממי, הינו מומחה מהמדרגה הראשונה לעיצוב מערכות, כלומר, מישהו שמסוגל לעצב לא רק מערכות פשוטות אלא גם מערכות מסובכות ביותר.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;font size="3"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;&lt;em&gt;בחלק הבא אנחנו נתמקד ב&amp;quot;ריקוד השף&amp;quot;, נדון במשתנים המשפיעים על ארכיטקטורה ובשיטות שונות המנסות לסווג אותם.&lt;/em&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;"&gt;&lt;font size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541993" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/herman/archive/tags/_D005E805DB05D905D805E705D805D505E805D405_+Architect+software+system/default.aspx">ארכיטקטורה Architect software system</category></item><item><title>הזמנה לכנס HP &amp; Citrix Introducing Future Desktop</title><link>http://beta.blogs.microsoft.co.il/blogs/gadifeldman/archive/2010/03/11/hp-amp-citrix-introducing-future-desktop.aspx</link><pubDate>Thu, 11 Mar 2010 13:54:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541981</guid><dc:creator>גדי פלדמן</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;תפתחו יומנים. ב- 14 לאפריל מתקיים כנס משותף של HP ו- Citrix בנושא Desktop Virtualization.&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;יהיו שם הרבה דברים מגניבים, כמו למשל הרצאה של שגיא על ה- Thin Clients של HP שיצא לי לראות כמה מהם בזמן האחרון והם נראים ממש מעולה. שימו לב ל- Thin Client הנייד, כששגיא הראה לי אותו שקלתי ברצינות לחטוף אותו ממנו ולפתוח בריצת אמוק לעבר השקיעה. או לפחות לעבר נקודת ה- WiFi הקרובה. &lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;או למשל הרצאה של דרור על Citrix XenApp 6 הדנדש, שמביא איתו המון חידושים מלהיבים וחידוש אחד מלהיב במיוחד (!!!No More Java). ואם אני לא טועה, זאת תיהיה ההצגה הראשונה שלו בארץ הקודש, רק שבועיים אחרי היציאה שלו לשוק. שווה לגמרי!&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;וכמובן אי אפשר לשכוח את המצגת שלי על שירות ה- HP Desktop Virtualization עם Citrix XenDesktop – דבר שהופך את זה למגניב כפליים – והדגמות של כל העניין מעט מאוחר יותר. וזה כבר הופך את זה למגניב בריבוע.   &lt;br /&gt;בקיצור, מי שלא בא, ביצה סרוחה.&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;עכשיו לקטע היותר מעניין. כדי להפוך את ההדגמות ליותר מעניינות (לכם ולי) אתם יותר ממוזמנים להציע רעיונות עבור מה לעשות/להדגים בהדגמות – כאמור, מבין שלל הרכיבים של XenDesktop 4.    &lt;br /&gt;ההצעה או ההצעות הזוכות ייזכו את בעליהן להצטרף אלי ולהציג את פרי מוחם הקודח. וזה עוד בלי להזכיר את הקרואסון וקפה שאני אעניק לאותם ברי מזל. שלא תגידו שאני לא מפנק או משהו.    &lt;br /&gt;את ההצעות, אפשר להשאיר בתגובות (עם פרטי יצירת קשר כמובן), לשלוח במייל או להעביר אלי בכל דרך מקובלת – או מקובלת פחות – אחרת.&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&lt;a href="http://h41267.www4.hp.com/eventpage.aspx?eventid=MgAzADMAMAAyAA%3d%3d&amp;amp;cc=il&amp;amp;lang=he" target="_blank"&gt;להרשמה&lt;/a&gt; (לאחר לחיצה על כפתור הרשם/י, תבחרו באפשרות התחתונה של הירשם/י לאירוע.)&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&lt;a href="http://h41267.www4.hp.com/eventpage.aspx?eventid=MgAzADMAMAAyAA%3d%3d&amp;amp;cc=il&amp;amp;lang=he"&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&lt;a href="http://h41267.www4.hp.com/eventpage.aspx?eventid=MgAzADMAMAAyAA%3d%3d&amp;amp;cc=il&amp;amp;lang=he"&gt;&lt;img src="http://blogs.microsoft.co.il/blogs/gadifeldman/kenes_24DAA166.png" style="border:0px none;display:inline;" title="kenes" alt="kenes" border="0" height="735" width="527" /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;   &lt;br /&gt;&lt;/div&gt;  &lt;div dir="rtl" align="right"&gt;&lt;/div&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541981" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/gadifeldman/archive/tags/Citrix/default.aspx">Citrix</category><category domain="http://beta.blogs.microsoft.co.il/blogs/gadifeldman/archive/tags/HP/default.aspx">HP</category><category domain="http://beta.blogs.microsoft.co.il/blogs/gadifeldman/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://beta.blogs.microsoft.co.il/blogs/gadifeldman/archive/tags/Desktop+Virtualization/default.aspx">Desktop Virtualization</category></item><item><title>About Me</title><link>http://beta.blogs.microsoft.co.il/blogs/dimkin/archive/2010/03/11/about-me.aspx</link><pubDate>Thu, 11 Mar 2010 11:25:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541831</guid><dc:creator>Dimkin</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hello, my name is Danny. I live in Israel and right now (March 2010) about to end my MCPD studies at sela college.&lt;/p&gt;
&lt;p&gt;A couple of weeks ago I&amp;#39;ve been inspired by &lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/"&gt;Shlomo Goldberg&lt;/a&gt; to create a Microsoft blog. Though it&amp;#39;s pretty easy these days to find all the information you need about every little problem you have while programming I still decided to post mine (and of course their solutions) to provide another source of information for them. &lt;/p&gt;
&lt;p&gt;I do realize that my solutions could be wrong, and thus, I will be happy to read your comments on my posts and correct the mistakes that I may have.&lt;/p&gt;
&lt;p&gt;Also, you will probably find on the blog general topics that do not have any connection to programming. As part of my life I do climbing, diving, slacklining and all sorts of other stuff. I can&amp;#39;t help myself and not to write about it :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;So, enjoy your stay and feel free to comment and contact me.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards, &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Danny.&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541831" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/dimkin/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category></item><item><title>Exceptions are common enemies of Web Apps performance</title><link>http://beta.blogs.microsoft.co.il/blogs/linqed/archive/2010/03/11/exceptions-are-common-enemies-of-web-apps-performance.aspx</link><pubDate>Thu, 11 Mar 2010 09:52:34 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541745</guid><dc:creator>linqed</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Yes, exceptions are one of most common sources of performance issues of any .NET application, and especially of ASP.NET Web Applications. Without going into details, every thrown exception, either handled or not, introduces a serious penalty on the code execution time. &lt;/p&gt;  &lt;p&gt;Consider the following two simplistic functions:&lt;/p&gt;  &lt;p&gt;&lt;/p&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:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:32271810-1fe1-40f9-8d8f-d5db5aa7e4dc" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow:auto;"&gt;&lt;span style="color:#0000FF;"&gt;private&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;static&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; Divide(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; a, &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; b)
{
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt; (b &lt;/span&gt;&lt;span style="color:#000000;"&gt;==&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;) &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt;.MaxValue;
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; a &lt;/span&gt;&lt;span style="color:#000000;"&gt;/&lt;/span&gt;&lt;span style="color:#000000;"&gt; b;
}

&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;private&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;static&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; DivideEx(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; a, &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; b)
{
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;try&lt;/span&gt;&lt;span style="color:#000000;"&gt;
  {
      &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; a &lt;/span&gt;&lt;span style="color:#000000;"&gt;/&lt;/span&gt;&lt;span style="color:#000000;"&gt; b;
  }
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;catch&lt;/span&gt;&lt;span style="color:#000000;"&gt; (DivideByZeroException ex)
  {
      &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt;.MaxValue;
  }
}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/p&gt;

&lt;p&gt;The first one checks the input, and returns the maximum value of integer in case of invalid denominator. The second one, relies on the user input, and handles the exception. Unfortunately, in my practice I’ve seen much more of the second type of function. Now let’s see what this does to the execution performance. &lt;/p&gt;

&lt;p&gt;I’m gong to use the following method to benchmark the performance of the above functions:&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:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:d8919009-cd6f-40ca-8063-bd73deac91a3" class="wlWriterEditableSmartContent"&gt;&lt;pre style="background-color:#FFFFFF;overflow:auto;"&gt;&lt;span style="color:#0000FF;"&gt;private&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;static&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;long&lt;/span&gt;&lt;span style="color:#000000;"&gt; ProfileDivideFunc(Func&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt;, &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt;, &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; func)
{
  Random rnd &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; Random(DateTime.Now.Millisecond);
  Stopwatch sw &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; Stopwatch();
  sw.Start();
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;for&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;int&lt;/span&gt;&lt;span style="color:#000000;"&gt; i &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;; i &lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;10000&lt;/span&gt;&lt;span style="color:#000000;"&gt;; i&lt;/span&gt;&lt;span style="color:#000000;"&gt;++&lt;/span&gt;&lt;span style="color:#000000;"&gt;)
  {
      func(rnd.Next(&lt;/span&gt;&lt;span style="color:#800080;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;, i), &lt;/span&gt;&lt;span style="color:#800080;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;);
  }
  sw.Stop();
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; sw.ElapsedMilliseconds;            
}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Nothing fancy here. The only “interesting” thing is that the method accepts a delegate and invokes it. Inside the method, I’m just running the tested function 10,000 times, passing a random integer as nominator, and zero as denominator. Practically, I’m measuring the performance penalty of throwing and catching 10,000 exceptions.&lt;/p&gt;

&lt;p&gt;The results are pretty much as expected. On my D-Core/4G/Win7 x64 laptop, the first function test returns 0ms, whereas the second function (the one with exceptions), takes &lt;strong&gt;422ms&lt;/strong&gt; to complete. &lt;/p&gt;

&lt;p&gt;It sounds like nothing, however, consider what happens, in ASP.NET app, when 500 or 1,000 concurrent requests are being handled. Also take into consideration the fact that usually we don’t catch exceptions in every function (bad-bad practice), so it bubbles all the way to some top-level-exception-catching-mechanism. In addition, it has to be logged, which also takes some CPU cycles. &lt;/p&gt;

&lt;p&gt;I’ve recently seen a web app, that thrown and logged 3 exceptions on each and every request. Needless to mention how the performance was improved after eliminating the sources for those exceptions.&lt;/p&gt;

&lt;p&gt;So here are couple of recommendations:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Never, and I repeat, never, throw exceptions. Use response error codes if you need to indicate and error.&lt;/li&gt;

  &lt;li&gt;Verify user input. Don’t handle exceptions following bad input.&lt;/li&gt;

  &lt;li&gt;Try eliminating usage of functions that throw exceptions in case of invalid input, like Parse(). Use TryParse() instead.&lt;/li&gt;

  &lt;li&gt;Watch for exceptions, log them and eliminate their sources ASAP. &lt;/li&gt;

  &lt;li&gt;There is nothing worst than unhandled exceptions in ASP.NET application. Catch everything in some top-level mechanism, like Application_Error of global.asax, or connect to AppDomain.CurrentDomain.UnhandledException event to catch and log them all.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most important this is: remember, Exceptions are EXCEPTIONS from the normal, so they should be treated accordingly. They are not NORMAL at runtime.&lt;/p&gt;

&lt;p&gt;Have fun.&lt;/p&gt;

&lt;p&gt;Want to know why you should use IIS7 ? Come to see me at Developers Academy 4.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.microsoft.com/israel/msdn/devacademy4/default.aspx"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.microsoft.co.il/blogs/linqed/clip_image001_62F46461.jpg" width="244" height="57" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541745" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/linqed/archive/tags/DEV/default.aspx">DEV</category><category domain="http://beta.blogs.microsoft.co.il/blogs/linqed/archive/tags/Web/default.aspx">Web</category><category domain="http://beta.blogs.microsoft.co.il/blogs/linqed/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://beta.blogs.microsoft.co.il/blogs/linqed/archive/tags/Performance/default.aspx">Performance</category></item><item><title>The Administrator's Guide to Windows PowerShell Remoting</title><link>http://beta.blogs.microsoft.co.il/blogs/scriptfanatic/archive/2010/03/11/the-administrator-s-guide-to-windows-powershell-remoting.aspx</link><pubDate>Thu, 11 Mar 2010 09:19:33 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541712</guid><dc:creator>ScriptFanatic</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;em&gt;‘Remoting is one of the most anticipated new features in Windows PowerShell 2.0. It turns Windows Powershell &lt;/em&gt;&lt;em&gt;into an industrial strength management platform by enabling users to run Windows PowerShell commands on remote machines throughout the enterprise. However, setting up PowerShell remoting can be a daunting task. This guide helps users understand the concepts of remoting and provides essential and practical advice on setup, deployment and security.’&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://powershell.com/cs/media/p/4908.aspx"&gt;‘Administrator&amp;#39;s Guide To Windows PowerShell Remoting‘&lt;/a&gt; is a &lt;strong&gt;must read document,&lt;/strong&gt; written by PowerShell MVPs &lt;a href="http://powershell.com/cs/blogs/tobias/default.aspx"&gt;Dr. Tobias Weltner&lt;/a&gt; (who is also the brilliant mind behind &lt;a href="http://www.idera.com/Products/PowerShell/PowerShell-Plus/"&gt;PowerShellPlus&lt;/a&gt;) and &lt;a href="http://powershellers.blogspot.com/"&gt;Aleksandar Nikolic&lt;/a&gt;, along with Richard Giles (Product Manager at &lt;a href="http://www.idera.com/"&gt;Idera&lt;/a&gt;)&lt;strong&gt;.&lt;/strong&gt; The guide is available for free to all &lt;a href="http://PowerShell.com"&gt;PowerShell.com&lt;/a&gt; members. So, if you&amp;#39;re not a member already… now is time to &lt;a href="http://powershell.com/cs/user/CreateUser.aspx?ReturnUrl=/cs/media/p/4908.aspx"&gt;join&lt;/a&gt;! &lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541712" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/scriptfanatic/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://beta.blogs.microsoft.co.il/blogs/scriptfanatic/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://beta.blogs.microsoft.co.il/blogs/scriptfanatic/archive/tags/Remoting/default.aspx">Remoting</category></item><item><title>Windows 7 – הצייר החדש (Paint)</title><link>http://beta.blogs.microsoft.co.il/blogs/support/archive/2010/03/11/Windows-7-Paint.aspx</link><pubDate>Thu, 11 Mar 2010 09:03:31 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541694</guid><dc:creator>Ariel Bar</dc:creator><slash:comments>0</slash:comments><description>&amp;#160; שלום חברים, שמי קוסטיה ואני נציג חדש בתמיכה הטכנית של מיקרוסופט! בין כל החידושים של 7 WINDOWS, נמצא בין היתר הצייר ! הצייר זכה לעיצוב חדיש בשיטת הRIBBON (כמו כל יישומיי OFFICE החדשים), אשר נועד להקל על המשתמש ולהפוך את שלל יכולות התוכנה לנגישים יותר. בצייר החדש נוספו הרבה אפשרויות חדשות, חלקן מאוד שימושיות וחלקן פשוט מגניבות J נתמקד בשימושיות: CROP – חיתוך כמה פעמים יצא לנו לצלם תמונה, שאת הרקע המרהיב הורס לנו איזה עצם בלתי מזוהה, וברצוננו לחתוך אותו מהתמונה? או שפשוט בא לנו לחתוך את הפנים...(&lt;a href="http://beta.blogs.microsoft.co.il/blogs/support/archive/2010/03/11/Windows-7-Paint.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541694" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/Windows/default.aspx">Windows</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/_D705DC05D505E005D505EA05_+7/default.aspx">חלונות 7</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/_D705DC05D505E005D505EA05_/default.aspx">חלונות</category></item><item><title>WCF multipleSiteBindingsEnabled</title><link>http://beta.blogs.microsoft.co.il/blogs/vardi/archive/2010/03/11/wcf-multiplesitebindingsenabled.aspx</link><pubDate>Thu, 11 Mar 2010 08:48:09 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541678</guid><dc:creator>Vardi</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;   &lt;p&gt;כאשר רוצים לאחסן שרות WCF תחת IIS ושיהיה אפשר להגיעה אליו ע&amp;quot;י מספר שמות למשל:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://www.E4D.co.il/Service.svc"&gt;www.&lt;/a&gt;&lt;a href="http://www.e4d.co.il/"&gt;E4D&lt;/a&gt;.co.il/Service.svc&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.Expert4D.co.il/Service.svc"&gt;www.Expert4D.co.il/Service.svc&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;אפשר להשתמש ביכולת חדשה של WCF 4.0:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/vardi/image_1AFAEF3E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/vardi/image_thumb_691B724F.png" width="644" height="26" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;בדוט-נט 3.5 אפשר גם אך צריך לכתוב יותר שורות ולציין מראש את שמות השרתים.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/vardi/image_19BE542E.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/vardi/image_thumb_395D0829.png" width="644" height="198" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541678" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/vardi/archive/tags/WCF+4.0/default.aspx">WCF 4.0</category></item><item><title>סיפור לקוח מצולם: עיריית תל אביב</title><link>http://beta.blogs.microsoft.co.il/blogs/michalnis/archive/2010/03/11/541612.aspx</link><pubDate>Thu, 11 Mar 2010 07:50:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541612</guid><dc:creator>michalnis</dc:creator><slash:comments>0</slash:comments><description>
&lt;p&gt;&lt;a href="http://edge.technet.com/Media/Tel-Aviv-Case-Study-Windows-Server-2008-Hyper-V/"&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;DISPLAY:inline;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-LEFT-WIDTH:0px;" title="telaviv" border="0" alt="telaviv" src="http://blogs.microsoft.co.il/blogs/michalnis/telaviv_06B4AF2B.png" width="240" height="175" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p style="TEXT-ALIGN:right;"&gt;עיריית תא שיפרה את רמת השירות והזמינות של מערכות המחשוב תוך חיסכון ניכר בעלויות כתוצאה מיישום פתרון הוירטואליזציה: Windows Server 2008 Hyper –V &lt;/p&gt;
&lt;p style="TEXT-ALIGN:right;"&gt;במסגרת הפרויקט, הוקמה חוות שרתים וירטואליים בסביבת Windows Server 2008 Hyper-V. בין ההישגים ניתן למנות שרידות, גמישות וחיסכון ניכר ומוכח בהוצאות&lt;/p&gt;
&lt;p style="TEXT-ALIGN:right;"&gt;לסיפור הלקוח הלא לחץ &lt;a href="http://www.microsoft.com/israel/casestudies/telaviv.mspx"&gt;כאן&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541612" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/michalnis/archive/tags/video/default.aspx">video</category><category domain="http://beta.blogs.microsoft.co.il/blogs/michalnis/archive/tags/itpro/default.aspx">itpro</category></item><item><title>MMS 2010</title><link>http://beta.blogs.microsoft.co.il/blogs/michalnis/archive/2010/03/11/mms-2010.aspx</link><pubDate>Thu, 11 Mar 2010 07:25:24 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541585</guid><dc:creator>michalnis</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;כנס ה Microsoft Management Summit (MMS) 2010 מתקיים השנה בארה&amp;quot;ב 19-23.4.2010&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.mms-2010.com"&gt;http://www.mms-2010.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;זהו הכנס המרכזי של מיקרוסופט בנושאי ניהול מרכזי ומוצרי ה system center, ומהווה את המקום הראשון בו מיקרוסופט חושפת את ה roadmap השנתי שלה בנושאים אלו.&lt;/p&gt;  &lt;p&gt;הכנס מיועד לאוכלוסייה מרקע מגוון והוא מכיל את מספר רב של מסלולים שונים כחלק מנסיון העבר&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/michalnis/clip_image002_0042C506.png"&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_49856A01.png" width="224" height="236" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;לארגונים אשר צופים &lt;b&gt;מעבר לחלונות 7&lt;/b&gt; במהלך השנה הקרובה צפוי ערך רב&amp;#160; מנוכחות שכן במהלך הכנס של שנת 2010 צפוי דגש מיוחד על שימוש&amp;#160; במערכת בגרסאות השונות לצרכי הפצה מרכזית של חלונות 7 &lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;דגשים מיוחדים לגבי התוכן השנה:&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;חידושים והצהרות לגבי ה roadmap, בשנה זאת יהיה דגש מיוחד על הגרסה החדשה של ה- SCCM שאמורה להשתחרר במהלך השנה הקרובה&lt;/li&gt;    &lt;li&gt;הרצאות טכניות בנושאים מגוונים הקשורים לניהול מרכזי, בין השאר:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;תפישות יישום של פתרונות ה System Center לניהול מרכזי הן של שולחן העבודה והן של סביבות השרתים, Best Practices&lt;/li&gt;      &lt;li&gt;דוגמאות מהשטח של יישום מתקדם של SCCM להפצות &amp;quot;מתוחכמות&amp;quot; של Win7 ללא מגע אדם תוך ניהול תהליכי התקנה מורכבים&lt;/li&gt;      &lt;li&gt; ניהול משולב של סביבת XP+Win7 במהלך ההסבה&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;הרצאות ותובנות טכנולוגיות בנושאי Public/private clouds ואיך ניתן לנהל סביבה שכזאת&lt;/li&gt;    &lt;li&gt;מעבדות התנסות מלוות ע&amp;quot;י מדריכים על מנת לחוש עם הידיים את שמראים בהרצאות&lt;/li&gt;    &lt;li&gt;· הרצאות ומפגשים עם מנהלי הפיתוח של מיקרוסופט, חשיפה לניסיון ותובנות שקשה למצוא&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/michalnis/sc_43CA505B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="sc" border="0" alt="sc" src="http://blogs.microsoft.co.il/blogs/michalnis/sc_thumb_7B306189.png" width="507" height="215" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;ניתן להרשם באתר &lt;a href="http://www.mms-2010.com"&gt;www.mms-2010.com&lt;/a&gt; הרשמה רגילה בתעריף מוזל עד ה 24/3/2010 ולאחר מכן הרשמה מאוחרת בתעריף מלא.&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541585" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/michalnis/archive/tags/itpro/default.aspx">itpro</category></item><item><title>We are glad to welcome the Microsoft Identity and Security Division team!</title><link>http://beta.blogs.microsoft.co.il/blogs/plotniko/archive/2010/03/11/we-are-glad-to-welcome-the-microsoft-identity-and-security-division-team.aspx</link><pubDate>Thu, 11 Mar 2010 01:03:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:541209</guid><dc:creator>Plotniko</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;PING,&lt;/p&gt;
&lt;p&gt;Our next UG will be extraordinary; we are going to host &lt;strong&gt;Cristian Mora,&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Who is a Senior Product Manager&amp;nbsp;and in charge of Secure Messaging, Secure Collaboration and Information Protection solutions in the Microsoft Identity and Security Division.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is the link for registration:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032445818&amp;amp;Culture=he-IL"&gt;http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032445818&amp;amp;Culture=he-IL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope to see you all there...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ohad Plotnik (Plotniko)&lt;br /&gt;System &amp;amp; network&lt;br /&gt;Security Architect&lt;br /&gt;Security User Group Leader @Microsoft&lt;br /&gt;My Blog: &lt;a title="Http://blogs.microsoft.co.il/blogs/Plotniko " href="http://blogs.microsoft.co.il/blogs/Plotniko"&gt;http://blogs.microsoft.co.il/blogs/Plotniko&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=541209" width="1" height="1"&gt;</description></item><item><title>AppFabric Caching Beta 2 UI Admin Tool</title><link>http://beta.blogs.microsoft.co.il/blogs/vardi/archive/2010/03/10/appfabric-caching-beta-2-ui-admin-tool.aspx</link><pubDate>Wed, 10 Mar 2010 17:51:34 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:540766</guid><dc:creator>Vardi</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;   &lt;h3&gt;AppFabric Caching Beta 2 UI Admin Tool&lt;/h3&gt;    &lt;p&gt;גירסה חדשה בשלב אלפא. &lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/vardi/FileDownload_054EB623.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="FileDownload" border="0" alt="FileDownload" src="http://blogs.microsoft.co.il/blogs/vardi/FileDownload_thumb_090C5AF3.png" width="604" height="376" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&lt;a title="http://mdcadmintool.codeplex.com/" href="http://mdcadmintool.codeplex.com/"&gt;http://mdcadmintool.codeplex.com/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=540766" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/vardi/archive/tags/DEV/default.aspx">DEV</category><category domain="http://beta.blogs.microsoft.co.il/blogs/vardi/archive/tags/AppFabric/default.aspx">AppFabric</category></item><item><title>SharePoint 2010 Developer Dashboard</title><link>http://beta.blogs.microsoft.co.il/blogs/sp2010/archive/2010/03/10/sharepoint-2010-developer-dashboard.aspx</link><pubDate>Wed, 10 Mar 2010 17:38:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:540609</guid><dc:creator>SP2010</dc:creator><slash:comments>0</slash:comments><description>&lt;div dir="rtl" align="right"&gt;פעם שמעתי שיש פה ושם מפתח SharePoint אחד או שניים שלא טורחים לבדוק את ביצועי הקוד שלהם (כי אין כלים מתאימים או תירוצים כאלו) – אז אם יש אמת בשמועות האלו, SP2010 מציע פתרון די מקיף לאותו מיעוט זניח של מפתחים, הלא הוא Developer Dashboard. טוב, זה לא נראה &amp;quot;נוצץ&amp;quot; כמו ה- &lt;a href="http://www.idera.com/Products/SharePoint/SharePoint-perf-manager/"&gt;Idera SharePoint performance manager&lt;/a&gt; (לשעבר Sonar) אבל זה בחינם! 
&lt;h2&gt;אז מה הוא עושה?&lt;/h2&gt;
&lt;p dir="rtl"&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="right"&gt;פירוט (במילי-שניות) של זמן טעינת כל רכיב בדף (Get http)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;פירוט של שאילתות ה- DB (כגון stored procedures)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;פירוט של Service Calls ושל SPRequests&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;הצגת Webparts offsets (ראו בהמשך)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;הצגת שגיאות והתראות&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;איך הוא נראה?&lt;/h2&gt;
&lt;p dir="rtl"&gt;משהו כזה:&lt;/p&gt;
&lt;p dir="rtl"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/sp2010/SP2010DevDbGeneral_67174DAB.jpg"&gt;&lt;img title="SP2010-DevDb-General" style="BORDER-TOP-WIDTH:0px;DISPLAY:inline;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="175" alt="SP2010-DevDb-General" src="http://blogs.microsoft.co.il/blogs/sp2010/SP2010DevDbGeneral_thumb_23D166ED.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;איך מפעילים אותו?&lt;/h2&gt;
&lt;p dir="rtl"&gt;בתמונה למעלה ניתן לראות אייקון קטן בצד ימין למעלה שלחיצה עליו מפעילה את הרכיב בחצי המסך התחתון.&lt;/p&gt;
&lt;p dir="rtl"&gt;דא עקא, האייקון לא נמצא שם כברירת מחדל. לשם כך יש להפעיל פקודת stsadm או PowerShell (משום מה ההפעלה היא לא ע&amp;quot;י Feature באתר - אני צופה בעיות עם הרעיון הזה, כי זה אומר שמפתח יצטרך הרשאות מנהל חווה בשרת להריץ את הפקודה הזאת – אולי זה ייפתר בגירסת ה- RTM, או צד שלישי, נראה…)&lt;/p&gt;
&lt;p dir="rtl"&gt;יש לציין כי ישנם 3 מצבים של ה- DevDb: מופעל (On), לא מופעל (Off), מופעל עפ&amp;quot;י דרישה (OnDemand) – ושלושת אלו מוגדרים במאפיין בפקודה בהתאם&lt;/p&gt;
&lt;h3&gt;stsadm&lt;/h3&gt;
&lt;p dir="rtl"&gt;&lt;strong&gt;הפעלה עפ&amp;quot;י דרישה - &lt;/strong&gt;&lt;/p&gt;
&lt;div dir="ltr" align="left"&gt;&lt;pre&gt;stsadm -o setproperty -pn developer-dashboard -pv &lt;strong&gt;OnDemand&lt;/strong&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;כיבוי - &lt;/strong&gt;&lt;/p&gt;
&lt;div dir="ltr" align="left"&gt;&lt;pre&gt;stsadm -o setproperty -pn developer-dashboard -pv &lt;strong&gt;Off&lt;/strong&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;מופעל תמיד - &lt;/strong&gt;&lt;/p&gt;
&lt;div dir="ltr" align="left"&gt;&lt;pre&gt;stsadm -o setproperty -pn developer-dashboard -pv &lt;strong&gt;On&lt;/strong&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;PowerShell&lt;/h3&gt;
&lt;div dir="ltr" align="left"&gt;&lt;pre&gt;[Microsoft.SharePoint.Administration.SPWebService]::&lt;/pre&gt;&lt;pre&gt;ContentService.DeveloperDashboardSettings.DisplayLevel = &lt;strong&gt;OnDemand/On/Off&lt;/strong&gt;;
  &lt;br /&gt;[Microsoft.SharePoint.Administration.SPWebService]::&lt;/pre&gt;&lt;pre&gt;ContentService.DeveloperDashboardSettings.Update();&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;וככה הוא נראה מקרוב בדף מייצג&lt;/h2&gt;
&lt;p&gt;השתמשתי בדף החביב עליי, המכיל 4 webparts שונים:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/sp2010/SP2010NewWebparts_4EAC5BB0.jpg"&gt;&lt;img title="SP2010-New-Webparts" style="BORDER-TOP-WIDTH:0px;DISPLAY:inline;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="181" alt="SP2010-New-Webparts" src="http://blogs.microsoft.co.il/blogs/sp2010/SP2010NewWebparts_thumb_6D85603F.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;ולאחר הפעלת ה- DevDb מתקבל המסך הבא, המחולק לשמאל ולימין:&lt;/p&gt;
&lt;h3&gt;שמאל&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/sp2010/SP2010DevDbLeft_743AFA73.jpg"&gt;&lt;img title="SP2010-DevDb-Left" style="BORDER-TOP-WIDTH:0px;DISPLAY:inline;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="244" alt="SP2010-DevDb-Left" src="http://blogs.microsoft.co.il/blogs/sp2010/SP2010DevDbLeft_thumb_005F054C.jpg" width="193" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;ניתן לראות כי זמן הבקשה הכולל היה 715 מילי-שניות, והוא מחולק לעשרות תתי-בקשות במבנה היררכי&lt;/p&gt;
&lt;p&gt;שימו לב היטב לשמות ה- events המוצגים – אלו נקראים &amp;quot;monitored scopes&amp;quot; ולכל רכיב ניתן להגדיר , ע&amp;quot;י שימוש ב- class החדש שנקרא SPMonitoredScope&amp;nbsp; . ראו להלן מה נדרש לעשות בקוד שלכם כדי שגם הרכיב שלכם יופיע!&lt;/p&gt;
&lt;h3&gt;ימין&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/sp2010/SP2010DevDbRight_5FDA564A.jpg"&gt;&lt;img title="SP2010-DevDb-Right" style="BORDER-TOP-WIDTH:0px;DISPLAY:inline;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="244" alt="SP2010-DevDb-Right" src="http://blogs.microsoft.co.il/blogs/sp2010/SP2010DevDbRight_thumb_3A72F38D.jpg" width="151" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;שימו לב לשורות המוקפות באדום – זהו זמן ה&amp;quot;Offset&amp;quot; של ה- webpart&amp;nbsp; הכבדים יחסית - כלומר, כמה זמן עבר מרגע שנטען &amp;quot;רכיב האב&amp;quot; שלו, עד שהוא עצמו הואיל בטובו לעלות. הסיבה היא ש- WP אלו מכילים תמונות, זה הכל…&lt;/p&gt;
&lt;p&gt;חוץ מזה, בראש הדף (בחלק &amp;quot;כללי&amp;quot;) ניתן לראות את ה- correlation ID שמאפשר לאתר את ה- ULS Log המתאים!&lt;/p&gt;
&lt;p&gt;מה שיפה הוא שלוחצים על אחד הקישורים הכתומים, נפתח חלון Tracing מפורט כמו זה:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/sp2010/SP2010DevDbTrace_04FCC219.jpg"&gt;&lt;img title="SP2010-DevDb-Trace" style="BORDER-TOP-WIDTH:0px;DISPLAY:inline;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="154" alt="SP2010-DevDb-Trace" src="http://blogs.microsoft.co.il/blogs/sp2010/SP2010DevDbTrace_thumb_01ECF4D5.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;h2&gt;מה עוד אפשר לעשות איתו?&lt;/h2&gt;
&lt;p&gt;דבר ראשון, לנצל את ה- class החדש שנקרא SPMonitoredScope – ברגע שמשלבים אותו בקוד, הרכיב יוצף ל-DevDb ותוכלו לנטר אותו, לדוגמה:&lt;/p&gt;
&lt;div dir="ltr" align="left"&gt;&lt;span class="Apple-style-span" style="WORD-SPACING:0px;FONT:medium &amp;#39;Times New Roman&amp;#39;;TEXT-TRANSFORM:none;TEXT-INDENT:0px;WHITE-SPACE:normal;LETTER-SPACING:normal;BORDER-COLLAPSE:separate;orphans:2;widows:2;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;"&gt;&lt;span class="Apple-style-span" style="FONT-SIZE:11px;FONT-FAMILY:verdana, arial, helvetica;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&lt;font size="3"&gt;using (SPMonitoredScope GetListsBtnScope =&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&lt;font size="3"&gt;new&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&lt;font size="3"&gt;SPMonitoredScope(&amp;quot;GetListsBtn_Click&amp;quot;)) &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&lt;font size="3"&gt;{ &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Courier New&amp;#39;;"&gt;&lt;font size="3"&gt;//your code goes here &lt;/font&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="WORD-SPACING:0px;FONT:medium &amp;#39;Times New Roman&amp;#39;;TEXT-TRANSFORM:none;TEXT-INDENT:0px;WHITE-SPACE:normal;LETTER-SPACING:normal;BORDER-COLLAPSE:separate;orphans:2;widows:2;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;"&gt;&lt;span class="Apple-style-span" style="FONT-SIZE:11px;FONT-FAMILY:verdana, arial, helvetica;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;(מקור: &lt;a href="http://blogs.technet.com/speschka/archive/2009/10/28/using-the-developer-dashboard-in-sharepoint-2010.aspx" target="_blank"&gt;Steve Peschka&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;דבר שני, בחור יצירתי בשם &lt;a href="http://blog.vossers.com/" target="_blank"&gt;Jaap Vossers&lt;/a&gt; העלה כבר לפני כמה חודשים &lt;a href="http://devdashvis.codeplex.com/" target="_blank"&gt;רכיב ויזואליזציה של ה- DevDb&lt;/a&gt; ויש לי תחושה שזה יהפוך לפריט חובה למפתחים&amp;nbsp; (אותו מיעוט זניח שכיום טרם מבצע בדיקות ביצועים לקוד שלו…)&lt;/p&gt;
&lt;h2&gt;לעיון נוסף&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://razi.spaces.live.com/Blog/cns!612EA30171E9AE3A!1348.entry?sa=829227687" target="_blank"&gt;Razi bin Rais&lt;/a&gt; - פירוט + צילומי מסך, כולל דוגמה ל- Feature שיפעיל/יכבה את ה- DevDb&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gvaro.spaces.live.com/blog/cns!B06529FD3FC75473!928.entry" target="_blank"&gt;Geoff Varosky&lt;/a&gt; - פירוט כולל הפעלה ע&amp;quot;י קוד, צילומי מסך והפעלת additional tracing&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;&amp;lt;&amp;lt; &lt;a href="http://blogs.microsoft.co.il/blogs/sp2010/archive/2010/03/03/dentelski-is-back-now-with-sharepoint-2010.aspx#Table"&gt;חזרה לטבלת החידושים ב- SharePoint 2010&lt;/a&gt;&lt;/h4&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=540609" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/sp2010/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://beta.blogs.microsoft.co.il/blogs/sp2010/archive/tags/DEV/default.aspx">DEV</category><category domain="http://beta.blogs.microsoft.co.il/blogs/sp2010/archive/tags/_E405D905EA05D505D705_/default.aspx">פיתוח</category></item><item><title>Command-Query Responsibility Segregation Slides</title><link>http://beta.blogs.microsoft.co.il/blogs/noam/archive/2010/03/10/command-query-responsibility-segregation-slides.aspx</link><pubDate>Wed, 10 Mar 2010 17:29:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:540751</guid><dc:creator>Noam</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;You can download the slides of the great lecture of &lt;a href="http://www.udidahan.com/"&gt;Udi Dahan&lt;/a&gt; on last Sunday at WDC (Web Developers Community) from here :&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;iframe style="padding-bottom:0px;background-color:#fcfcfc;padding-left:0px;width:98px;padding-right:0px;height:115px;padding-top:0px;" src="http://cid-08ff556fe76ab904.skydrive.live.com/embedicon.aspx/CQRS" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As usual, it was a pleasure to see you there, hope to see you again next month (I’ll have another post about it soon enough…)&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=540751" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/noam/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://beta.blogs.microsoft.co.il/blogs/noam/archive/tags/WDC/default.aspx">WDC</category><category domain="http://beta.blogs.microsoft.co.il/blogs/noam/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Rx - for beginners (part 8): Combine Latest expression</title><link>http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/2010/03/10/rx-for-beginners-part-8-combine-latest-expression.aspx</link><pubDate>Wed, 10 Mar 2010 16:32:27 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:540685</guid><dc:creator>bnaya</dc:creator><slash:comments>2</slash:comments><description>&lt;h2&gt;&lt;strong&gt;Rx&lt;/strong&gt; - for beginners (part 8): &lt;strong&gt;Combine Latest&lt;/strong&gt; expression&lt;/h2&gt;  &lt;p&gt;&lt;img style="margin:0px 10px 0px 0px;display:inline;" title="Rx, IObservable,IObserver" alt="Rx, IObservable,IObserver" align="left" src="http://blogs.microsoft.co.il/blogs/bnaya/1266073365_kghostview_6B15105E.jpg" width="57" height="57" /&gt;&lt;/p&gt;  &lt;p&gt;this post is the 8th in a series of posts about the new &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;Reactive Framework&lt;/a&gt;&lt;/strong&gt; (&lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;Rx&lt;/a&gt;&lt;/strong&gt;).&lt;/p&gt;  &lt;p&gt;the series TOC can found &lt;a href="http://cid-9bf7c1a515d76a9a.skydrive.live.com/browse.aspx/Code%20Samples/Rx/Rx%20for%20beginners/Part%207?uc=1&amp;amp;isFromRichUpload=1"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;in this post we will focus on the &lt;strong&gt;Combine Latest&lt;/strong&gt; expression.&lt;/p&gt;  &lt;p&gt;the code for this post can be download from &lt;a href="http://cid-9bf7c1a515d76a9a.skydrive.live.com/browse.aspx/Code%20Samples/Rx/Rx%20for%20beginners/Part%208?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;h6&gt;&lt;/h6&gt;  &lt;h5&gt;What does it do?&lt;/h5&gt;  &lt;p&gt;like the &lt;strong&gt;zip&lt;/strong&gt; expression the &lt;strong&gt;Combine Latest&lt;/strong&gt; expression is used to synchronize&lt;/p&gt;  &lt;p&gt;2 &lt;strong&gt;IObservable&lt;/strong&gt; streams into single &lt;strong&gt;IObservable&lt;/strong&gt; stream.&lt;/p&gt;  &lt;p&gt;unlike the &lt;strong&gt;zip&lt;/strong&gt; expression the &lt;strong&gt;Combine Latest&lt;/strong&gt; doesn&amp;#39;t using queue,&lt;/p&gt;  &lt;p&gt;as it name suggest it only remember the latest value of each stream.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;What is the combination strategy?&lt;/h5&gt;  &lt;p&gt;the strategy used by the &lt;strong&gt;Combine Latest&lt;/strong&gt; is to observe both stream, and each time &lt;/p&gt;  &lt;p&gt;it new value &lt;strong&gt;observed&lt;/strong&gt; on either of the stream it &lt;strong&gt;combine&lt;/strong&gt; it with the &lt;strong&gt;latest&lt;/strong&gt; value observed on the other stream.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;the&lt;strong&gt; marble diagrams&lt;/strong&gt; of &lt;strong&gt;Combine Latest&lt;/strong&gt; expression will look as follow:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/image_313D0278.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Rx, IObservable,IObserver" border="0" alt="Rx, IObservable,IObserver" src="http://blogs.microsoft.co.il/blogs/bnaya/image_thumb_1CA78D2D.png" width="494" height="237" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;we can see that when the &lt;strong&gt;y stream&lt;/strong&gt; observed the&lt;strong&gt; b &lt;/strong&gt;value, the &lt;strong&gt;result stream &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;combine&lt;/strong&gt; it with the &lt;strong&gt;latest&lt;/strong&gt; value observed on &lt;strong&gt;x stream&lt;/strong&gt; (3) and latter the same value&lt;/p&gt;  &lt;p&gt;will be &lt;strong&gt;combine&lt;/strong&gt; into the result stream when the &lt;strong&gt;x stream&lt;/strong&gt; will &lt;strong&gt;observed&lt;/strong&gt; the &lt;strong&gt;4&lt;/strong&gt; value.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h6&gt;When does it halt?&lt;/h6&gt;  &lt;p&gt;the &lt;strong&gt;Combine Latest&lt;/strong&gt; processing will come to end either when one of the stream &lt;/p&gt;  &lt;p&gt;will &lt;strong&gt;complete&lt;/strong&gt; or &lt;strong&gt;throw exception&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/image_4FE1718F.png"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;h5&gt;Code sample&lt;/h5&gt;  &lt;p&gt;the code for this post can be download from &lt;a href="http://cid-9bf7c1a515d76a9a.skydrive.live.com/browse.aspx/Code%20Samples/Rx/Rx%20for%20beginners/Part%208?uc=1&amp;amp;isFromRichUpload=1"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h6&gt;Helper method for creating interval stream:&lt;/h6&gt;  &lt;p&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:feb7f54a-b717-485a-a649-98375d70e36b" 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;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IObservable&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;&amp;gt; CreateObservable(&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; prefix,&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; stopAt, &lt;span style="color:#0000ff;"&gt;double&lt;/span&gt; secondsInterval)&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;var&lt;/span&gt; inteval = &lt;span style="color:#2b91af;"&gt;TimeSpan&lt;/span&gt;.FromSeconds(secondsInterval);&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; eventStream = &lt;span style="color:#2b91af;"&gt;Observable&lt;/span&gt;.Interval(inteval).&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;TakeWhile(value =&amp;gt; value &amp;lt; stopAt).&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;Select(value =&amp;gt; prefix + value.ToString());&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;return&lt;/span&gt; eventStream;&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;the method &lt;strong&gt;parameters&lt;/strong&gt; include (&lt;strong&gt;line 2&lt;/strong&gt;):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;prefix&lt;/strong&gt;: just so we can &lt;strong&gt;distinguish values&lt;/strong&gt; that was created by one stream from       &lt;br /&gt;values created on the other (see &lt;strong&gt;line 7&lt;/strong&gt;). &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;stop&lt;/strong&gt; &lt;strong&gt;at&lt;/strong&gt;: define how many &lt;strong&gt;values&lt;/strong&gt; will be produce by the stream &lt;strong&gt;before complete&lt;/strong&gt; (see &lt;strong&gt;line 6&lt;/strong&gt;). &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;seconds&lt;/strong&gt; &lt;strong&gt;interval&lt;/strong&gt;: define the &lt;strong&gt;frequency&lt;/strong&gt; that the stream produce values (see&lt;strong&gt; lines 4,5&lt;/strong&gt;) &lt;/li&gt; &lt;/ul&gt;  &lt;h6&gt;The main method is looking as follow:&lt;/h6&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:e7ac6662-2b8f-4321-a46c-a7f6e687c91c" 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 2em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args)&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;var&lt;/span&gt; xs = CreateObservable(&lt;span style="color:#a31515;"&gt;&amp;quot;X&amp;quot;&lt;/span&gt;,15, 0.5);&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; ys = CreateObservable(&lt;span style="color:#a31515;"&gt;&amp;quot;Y&amp;quot;&lt;/span&gt;,2, 2);&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;var&lt;/span&gt; combineLatestStream = xs.CombineLatest(ys, (x,y) =&amp;gt; x + &lt;span style="color:#a31515;"&gt;&amp;quot; : &amp;quot;&lt;/span&gt; + y);&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;combineLatestStream.Subscribe(value =&amp;gt; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(value),() =&amp;gt; &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Completed&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:#2b91af;"&gt;Console&lt;/span&gt;.ReadKey();&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;strong&gt;line 3&lt;/strong&gt;, create stream which will produce &lt;strong&gt;15 values&lt;/strong&gt; before completion at &lt;strong&gt;frequency&lt;/strong&gt; of&lt;strong&gt; 0.5&lt;/strong&gt; seconds.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 4&lt;/strong&gt;, create stream which will produce &lt;strong&gt;2&lt;/strong&gt; &lt;strong&gt;values&lt;/strong&gt; before completion at &lt;strong&gt;frequency&lt;/strong&gt; of&lt;strong&gt; 2 &lt;/strong&gt;seconds.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 6&lt;/strong&gt;, is c&lt;strong&gt;ombine &lt;/strong&gt;both streams, the &lt;strong&gt;Lamda&lt;/strong&gt; is using to &lt;strong&gt;concatenate &lt;/strong&gt;both stream&amp;#39;s values.&lt;/p&gt;  &lt;p&gt;The result will look as follow:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/image_0624C8D9.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="Rx, IObservable,IObserver" border="0" alt="Rx, IObservable,IObserver" src="http://blogs.microsoft.co.il/blogs/bnaya/image_thumb_0EC52165.png" width="173" height="215" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h5&gt;Summary&lt;/h5&gt;  &lt;p&gt;&lt;strong&gt;Combine Latest&lt;/strong&gt; expression can be used to synchronize 2 streams,&lt;/p&gt;  &lt;p&gt;while the output stream will get notified when ever either of the stream produce new value.&amp;#160; &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:616979b9-7d5b-468d-aa6f-85f23932b3d3" class="wlWriterSmartContent"&gt;תגים של Technorati:‏ &lt;a href="http://technorati.com/tags/Rx" rel="tag"&gt;Rx&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IObservable" rel="tag"&gt;IObservable&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IObserver" rel="tag"&gt;IObserver&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%2f10%2frx-for-beginners-part-8-combine-latest-expression.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%2f10%2frx-for-beginners-part-8-combine-latest-expression.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://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=540685" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/DEV/default.aspx">DEV</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/Beginner/default.aspx">Beginner</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/CLR+4/default.aspx">CLR 4</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/.net/default.aspx">.net</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/Rx/default.aspx">Rx</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/IObserver/default.aspx">IObserver</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/Reactive+Extensions/default.aspx">Reactive Extensions</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/Parallel/default.aspx">Parallel</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/IObservable/default.aspx">IObservable</category></item><item><title>לא הכל שחור לבן אבל הכל System Center</title><link>http://beta.blogs.microsoft.co.il/blogs/shayamar/archive/2010/03/10/system-center.aspx</link><pubDate>Wed, 10 Mar 2010 07:44:29 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:540215</guid><dc:creator>shayamar</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;אין לי אלא לומר &lt;a href="http://www.microsoft.com/systemcenter/en/us/default.aspx"&gt;System Center&lt;/a&gt; היא חבילת מוצרים מקיפה לכל מה שרק אפשר צריך וכדאי שיהיה לאיש הסיסטם בארגז הכלים שלו .&lt;/p&gt;  &lt;p&gt;יש לציין שלאחר שמיקרוסופט שילבה את שני המוצרים המשלימים של Opalis ו &lt;a href="http://www.microsoft.com/systemcenter/en/us/service-manager.aspx"&gt;Service Manager&lt;/a&gt; ולמעשה חבילת &lt;a href="http://www.microsoft.com/systemcenter/en/us/default.aspx"&gt;System Center&lt;/a&gt; הפכה להיות חבילה של 6 מוצרים :&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/systemcenter/configurationmanager/en/us/default.aspx"&gt;SCCM&lt;/a&gt; –&lt;a href="http://www.microsoft.com/systemcenter/configurationmanager/en/us/default.aspx"&gt;System Center Configuraion Manager&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/systemcenter/operationsmanager/en/us/"&gt;SCOM – System Center Operation Manager&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/systemcenter/virtualmachinemanager/en/us/default.aspx"&gt;SCVMM-System Center Virtual Machine Manager&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/systemcenter/dataprotectionmanager/en/us/default.aspx"&gt;SCDPM- System Center Data Protection Manager&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/systemcenter/en/us/service-manager.aspx"&gt;Service Manager&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://opalis.com/microsoft.asp"&gt;Opalis&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;למעשה ניתן לבצע הכל , טוב כמובן שצריך לדעת איך&amp;#160; …&lt;/p&gt;  &lt;p&gt;תחילה שכדאי לציין שישנם חלופות טוב תמיד ישנם חלופות למשל בהפצות ה Configuration Manager שהוא היורש של ה SMS ניתן להפיץ מערכת הפעלה בשיטת הפצה Zero Touch (אפס נגיעה ) מה שניתן גם לבצע על ידי שרת WDS (מובנה בחלונות 2008 ) עם ערכת Deployment Toolkit אך שוב התהליך מורכב בהרבה , כל מי שחווה תהליך הפצה אוטמטיבי עם SCCM מגלה שחיי ה סיסטם לעולם לא יכלו להיות קלים יותר או לפחות ברורים יותר שלא לדבר על תהליך של הפצות דרך הרשת מה שהיה מצריך עבודה קשה מנשוא כולל הרמת שרת PXE ושימוש בכל מיני כלי צד שלישי כגון ghostcast וחבריו שחלילה אין אני מזלזל בהם אך עדיין קובץ image גוסטי הוא לא גמיש ובצקי כמו ה WIM שכבר הזכרתי בפוסטים הקודמים שלי . &lt;/p&gt;  &lt;p&gt;אם ניגע בעוד נקודה היא למה אני צריך SCVMM כשיש לי HYPER-V מובנה בשרת 2008 בתוך מערכת ההפעלה , התשובה כח ניהול !!! ,אתה יכול לנהל עם הכלי המובנה אבל שתתקין SCVMM תגלה שניתן לייצר Templates למשל או לנהל את ההתקנות של המכונות הוירטואליות שלך כמו שרק חלמת . &lt;/p&gt;  &lt;p&gt;ב SCOM (שרת המוניטור ) אין מה לומר יש הרבה מתחרים כגון nagios מי שמכיר מעולם הלינוקס מערכת מדהימה לכשעצמה אך עדיין כדי להרכיב בה סט של תגובות במקרה ש קורה משהו מול מערכת הפעלה מיקרוסופטית המשימה הופכת להיות משימת 007 במקרה הטוב , כך שלדוגמא כדי לנטר איזה שירות בתוך המערכת תצטרך להזיע בכתיבת סקריפטים ב BASH ועוד כל מיני קבצי קונפיגורציה ..אנשי לינוקס יגידו לך שעדיף ככה כי אז אתה יודע מה אתה עושה יכול להיות אבל אני לפעמים מעדיף להתקין agent על השרת ובכמה קליקים לקבוע מה אני רוצה לנטר ואז לקבוע חוקים שבמידה ויקרה משהו אוכל להגיב , כך למשל ניתן לבצע סינכרון באמצעות PRO TIPS .&lt;/p&gt;  &lt;p&gt;על מה עוד נשאר לדבר .. ,אה כן DPM האמת שרק בימים אלה אני מטמיע אותו מדובר במערכת גיבוי שמסתנכרנת באופן מלא מול כל השרתים הפיזיים והוירטואליים שלך ומסוגלת לתת מענה לשרתי ה SQL , SHAREPOINT&amp;#160; ועוד .. מדיניות הגיבוי עובדת און ליין באמצעות איך לא שירות VSS Volume Shadow Copy שכולנו מכירים . מדובר במערכת שמאפשרת לך לנהל מדיניות גיבויים ברמה הגבוהה ביותר ,אני יודע מה רובכם חושבים זהו תם עידן BackupEXEC ו חבריו האמת שתלוי אתם יודעים מה תנסו ותראו בעצמכם , ובכלל גם ב תוכנת ה BACKUP החדשה שקיימת ב 2008 ניתן לגבות לקובץ vHD של מוכנה וירטואלית ועלות איתה מסביבה וירטואלית או פיסית . &lt;/p&gt;  &lt;p&gt;טוב אני מקווה שלא עשיתי בלאגן אבל בהמשך אפרסם פוסט נפרד על כל אחד מהמוצרים ,&lt;/p&gt;  &lt;p&gt;אשמח לתגובות או בקשות בנושא .&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=540215" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/shayamar/archive/tags/ITPRO/default.aspx">ITPRO</category></item><item><title>Generic DB or Who needs DB?</title><link>http://beta.blogs.microsoft.co.il/blogs/mcs/archive/2010/03/10/generic-db-or-who-needs-db.aspx</link><pubDate>Wed, 10 Mar 2010 06:32:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:533948</guid><dc:creator>memil</dc:creator><slash:comments>3</slash:comments><description>&lt;div dir="rtl"&gt;&lt;/div&gt;  &lt;p&gt;בחודשים האחרונים הזדמן לי להיפגש עם מספר לקוחות אשר החליטו לממש מה שמכונה כיום “בסיס נתונים גנרי” או “טבלאות גנריות”. מדובר בתכנון בסיס הנתונים כך שהטבלאות בו אינן מוגדרות היטב עבור ישויות המערכת, אלא מכילות Meta-Data על הנתונים עצמם. &lt;/p&gt;  &lt;p&gt;בסיס נתונים כזה יכיל בדרך כלל טבלה בשם Entities או Entities_Types, אשר מכילה את הגדרת הישויות השונות, טבלה בשם Entity_Fields המכילה הגדרות של השדות השונים בכל ישות, וטבלה בשם Entity_Data, המכילה אוסף שדות, בדרך כלל מסוג String, המייצגים את נתוני הישויות עצמן. בנוסף נמצא בבסיס נתונים כזה בדרך כלל גם טבלה בשם Entity_Links המכילה את הקשרים בין הישויות השונות.&lt;/p&gt;  &lt;p&gt;המוטיבציה לתכנון בסיס נתונים בצורה כזו היא פשוטה מאוד: באמצעות תכנון זה ניתן, לכאורה, ליצור סוגי ישויות חדשים בצורה קלה ופשוטה. כל שנדרש הינו להוסיף רשומה חדשה בטבלת סוגי הישויות, להגדיר את השדות החדשים בטבלת השדות והופ! יש לנו ישות חדשה והחיים יפים.&lt;/p&gt;  &lt;p&gt;אז זהו שלא.&lt;/p&gt;  &lt;p&gt;יש מספר בעיות עקרוניות מאוד עם התכנון הזה, וכדאי מאוד לתת עליהן את הדעת:&lt;/p&gt;  &lt;p&gt;1. לא ניתן להגדיר אינדקסים בצורה זו. מכיוון שבסיס הנתונים הינו גנרי לחלוטין, לא ניתן להגדיר אינדקס על שדה שהשליפה ממנו היא חשובה במיוחד, משום שאין שדות מוגדרים.&lt;/p&gt;  &lt;p&gt;2. אין דרך לאכוף, ברמת בסיס הנתונים, את סוגי הנתונים הנשמרים. כל הנתונים מאוחסנים כ- String, ומבחינת בסיס הנתונים אין משמעות ל- Meta Data המוגדר.&lt;/p&gt;  &lt;p&gt;3. לא ניתן לעשות שימוש בכלי DB מתקדמים יותר כגון Partitioning, משום שכל הנתונים נשמרים בטבלה אחת.&lt;/p&gt;  &lt;p&gt;4. לא ניתן לעשות שימוש ב- Foreign Keys ו- Constraints, וממילא ה- Data Integrity, שהוא ליבו של בסיס הנתונים המודרני, נפגע קשות.&lt;/p&gt;  &lt;p&gt;5. מבנה בסיס הנתונים אינו ברור למי שלא תכנן אותו. התחזוקה לטווח ארוך תהיה בעייתית מאוד, ועקומת הלימוד שלו ארוכה.&lt;/p&gt;  &lt;p&gt;6. כלי ORM מודרניים כדוגמת Entity Framework, LINQ 2 SQL, NHibernate לא יודעים להתמודד בצורה טבעית עם בסיס נתונים שמתוכנן כך.&lt;/p&gt;  &lt;p&gt;ואחרון חביב – המוטיבציה העיקרית לבניית בסיס נתונים בצורה זו היא, כאמור, היכולת להוסיף מהר סוגי ישויות חדשים, אולם הנסיון מראה שבדרך כלל עיקר הזמן בהוספת ישויות חדשות מתבזבז על סוגיות אפיוניות, התאמות ב- UI ושינויים ב- BL. אותן 3 שעות שבהן יבנה ה- DBA את הטבלאות החדשות אינן משמעותיות.&lt;/p&gt;  &lt;p&gt;למעשה, משמעות העיצוב הנ”ל הינה ויתור מלא על יכולות ה- DB, ובניה של DB חליפי על גביו. ואם זה המצב – לא חבל להוציא כסף על בסיס נתונים מודרני? יש לנו File System מצוין שאפשר להשתמש בו! אמנם אין לו מפתחות, אינדקסים, בדיקות תקינות וכו’ – אבל מי צריך אותם?! אנחנו כבר נבנה את בסיס הנתונים שלנו לבד!&lt;/p&gt;  &lt;p&gt;ואתם יודעים מה? אל תאמינו לי. אני מזמין אתכם לראות מה יש ל- Tom Kyte, Oracle VP להגיד בנושא. הוא אולי מתחרה של מיקרוסופט, אבל יש דברים שבהם הקונצנזוס חוצה גבולות וחברות. הקישור להלן מפנה למצגת שהוא העביר לפני כשנה בשם Oracle Database Worst Practices. שימו לב מה יש לו להגיד בשקפים 16-22. (גם השאר מעניין…)&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.ukocn.com/forums/database-dbms/dbms-technical-network/tom-kyte-oracle-database-worst-practices" href="http://www.ukocn.com/forums/database-dbms/dbms-technical-network/tom-kyte-oracle-database-worst-practices"&gt;http://www.ukocn.com/forums/database-dbms/dbms-technical-network/tom-kyte-oracle-database-worst-practices&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;אז לסיכום – אם כבר החלטתם לעשות שימוש בבסיס נתונים (ורוב הסיכויים שכך החלטתם…) עשו בו שימוש כמו בבסיס נתונים, ולא כמו ב- File System. אל תבנו טבלאות Meta Data – לבסיס הנתונים כבר יש כאלה משל עצמו, הוא לא צריך עוד. &lt;/p&gt;  &lt;p&gt;זכרו – לא תמיד הפתרון הפשוט ביותר הוא המוטעה…&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=533948" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/mcs/archive/tags/MCS/default.aspx">MCS</category><category domain="http://beta.blogs.microsoft.co.il/blogs/mcs/archive/tags/ADO.NET+Entity+Framework/default.aspx">ADO.NET Entity Framework</category><category domain="http://beta.blogs.microsoft.co.il/blogs/mcs/archive/tags/SQL/default.aspx">SQL</category><category domain="http://beta.blogs.microsoft.co.il/blogs/mcs/archive/tags/Architect/default.aspx">Architect</category><category domain="http://beta.blogs.microsoft.co.il/blogs/mcs/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://beta.blogs.microsoft.co.il/blogs/mcs/archive/tags/DEV/default.aspx">DEV</category></item><item><title>Couple of Good Quotes</title><link>http://beta.blogs.microsoft.co.il/blogs/ariel/archive/2010/03/09/couple-of-good-quotes.aspx</link><pubDate>Tue, 09 Mar 2010 21:36:09 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:539567</guid><dc:creator>Ariel</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I’ve read a couple of things that got me smiling. I am a bit tipsy, so smiling may be the manifestation of a chemical imbalance or just a nervous tick.&lt;/p&gt;  &lt;p&gt;Karl Seguin’s &lt;a href="http://codebetter.com/blogs/karlseguin/archive/2010/03/09/the-8th-phase.aspx"&gt;post&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;Ultimately, the most important thing is that you have automated tests which aren&amp;#39;t a nightmare to setup, maintain or run. Integration tests have more dependency and thus are more fragile, but can be an efficient way to verify correctness.&lt;/p&gt;  &lt;p&gt;Ayende’s &lt;a href="http://ayende.com/Blog/archive/2010/03/09/cut-the-abstractions-by-putting-test-hooks.aspx"&gt;post&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;TDD fanatic corner: I don’t really care about testable code, I care about &lt;em&gt;tested&lt;/em&gt; code. If I have a regression suite, that is just what i need.&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=539567" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/ariel/archive/tags/IHateTagging/default.aspx">IHateTagging</category><category domain="http://beta.blogs.microsoft.co.il/blogs/ariel/archive/tags/dev/default.aspx">dev</category><category domain="http://beta.blogs.microsoft.co.il/blogs/ariel/archive/tags/Tests/default.aspx">Tests</category></item><item><title>TFS API Part 24 – Get All Fields From TFS</title><link>http://beta.blogs.microsoft.co.il/blogs/shair/archive/2010/03/09/tfs-api-part-24-get-all-fields-from-tfs.aspx</link><pubDate>Tue, 09 Mar 2010 21:06:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:539532</guid><dc:creator>shair</dc:creator><slash:comments>0</slash:comments><description>&lt;h1&gt;TFS API Part 24 – Get All Fields From TFS&lt;/h1&gt;  &lt;p&gt;I got an email regarding previous post (&lt;a href="http://blogs.microsoft.co.il/blogs/shair/archive/2009/01/19/tfs-api-part-6-workitemstore-get-fields-from-workitemtype.aspx"&gt;TFS API Part 6: WorkItemStore - Get Fields From WorkItemType&lt;/a&gt;) &lt;strong&gt;&lt;u&gt;how to get Fields without regard to Work Item Type?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This is very easy using Team System API.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shair/image_3F84755C.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/shair/image_thumb_74CD87C1.png" width="599" height="346" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/539531/download.aspx"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Step 1: Create Project and Add Reference&lt;/h2&gt;  &lt;p&gt;Create an WPF/WinForm application and add the following references:   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Microsoft.TeamFoundation.WorkItemTracking.Client.dll    &lt;br /&gt;&lt;font size="1"&gt;(C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.WorkItemTracking.Client.dll)     &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Microsoft.TeamFoundation.Client.dll    &lt;br /&gt;&lt;font size="1"&gt;(C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.Client.dll)&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;Step 2: Connect to Team Foundation Server&lt;/h2&gt;  &lt;p&gt;To perform this action all you need to do is implement WorkItemStore object.&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:13pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:#2b91af;"&gt;TeamProjectPicker&lt;/span&gt; tpp = &lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TeamProjectPicker&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;TeamProjectPickerMode&lt;/span&gt;.NoProject, &lt;span style="color:blue;"&gt;false&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; tpp.ShowDialog();&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (tpp.SelectedTeamProjectCollection != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;TfsTeamProjectCollection&lt;/span&gt; tfs = tpp.SelectedTeamProjectCollection;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#2b91af;"&gt;WorkItemStore&lt;/span&gt; store = (&lt;span style="color:#2b91af;"&gt;WorkItemStore&lt;/span&gt;)tfs.GetService(&lt;span style="color:blue;"&gt;typeof&lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;WorkItemStore&lt;/span&gt;));&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:green;"&gt;//Store object contains all fields, no just for spesific work item type&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AddFields(store.FieldDefinitions);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt; &lt;/div&gt;  &lt;h2&gt;Step 3: Get Fields from Server&lt;/h2&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:13pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;void&lt;/span&gt; AddFields(&lt;span style="color:#2b91af;"&gt;FieldDefinitionCollection&lt;/span&gt; fields)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#2b91af;"&gt;FieldDefinition&lt;/span&gt; field &lt;span style="color:blue;"&gt;in&lt;/span&gt; fields)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; listBox1.Items.Add(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;FieldItem&lt;/span&gt;(field));&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="font-family:consolas;background:white;color:black;font-size:13pt;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;FieldItem&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;{&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;FieldType&lt;/span&gt; FieldType { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt; ID { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; Name { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; ReferenceName { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; HelpText { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;ReportingAttributes&lt;/span&gt; ReportingAttributes { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;FieldUsages&lt;/span&gt; FieldUsages { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;bool&lt;/span&gt; IsEditable { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;AllowedValuesCollection&lt;/span&gt; AllowedValuesCollection { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;set&lt;/span&gt;; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; FieldItem(&lt;span style="color:#2b91af;"&gt;FieldDefinition&lt;/span&gt; field)&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ID = field.Id;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Name = field.Name;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.FieldType = field.FieldType;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ReferenceName = field.ReferenceName;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ReportingAttributes = field.ReportingAttributes;&lt;span style="color:green;"&gt;//TFS 2010&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.FieldUsages = field.Usage; &lt;span style="color:green;"&gt;//TFS 2010&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsEditable = field.IsEditable;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;this&lt;/span&gt;.AllowedValuesCollection = field.AllowedValues;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;override&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; ToString()&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;{0} ({1})&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Name, &lt;span style="color:blue;"&gt;this&lt;/span&gt;.ReferenceName);&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p style="margin:0px;"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/files/folders/539531/download.aspx"&gt;Download Demo Project&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=539532" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/.NET/default.aspx">.NET</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/Team+System/default.aspx">Team System</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/TFS/default.aspx">TFS</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+Administration/default.aspx">TFS Administration</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/WorkItem+Tracking/default.aspx">WorkItem Tracking</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/Work+Items/default.aspx">Work Items</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/TECH/default.aspx">TECH</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/DEV/default.aspx">DEV</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+API/default.aspx">TFS API</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/Team+System+2010/default.aspx">Team System 2010</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/TFS+2010/default.aspx">TFS 2010</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4+Beta+2/default.aspx">.NET 4 Beta 2</category><category domain="http://beta.blogs.microsoft.co.il/blogs/shair/archive/tags/.NET+4+RC/default.aspx">.NET 4 RC</category></item><item><title>Calling WCF secured service from Java</title><link>http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/2010/03/09/calling-wcf-secured-service-from-java.aspx</link><pubDate>Tue, 09 Mar 2010 20:40:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:534938</guid><dc:creator>bnaya</dc:creator><slash:comments>2</slash:comments><description>&lt;h2&gt;Calling &lt;strong&gt;WCF&lt;/strong&gt; secured service from &lt;strong&gt;Java&lt;/strong&gt;&lt;/h2&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.microsoft.co.il/blogs/bnaya/1267819196_competitors_711A4350.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;margin-left:0px;border-left-width:0px;margin-right:0px;" title="1267819196_competitors" border="0" alt="1267819196_competitors" align="left" src="http://blogs.microsoft.co.il/blogs/bnaya/1267819196_competitors_thumb_6554D651.jpg" width="86" height="86" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;recently I was working on exposing &lt;strong&gt;secured&lt;/strong&gt; &lt;strong&gt;WCF&lt;/strong&gt; service &lt;/p&gt;  &lt;p&gt;to &lt;strong&gt;Java&lt;/strong&gt; consumers.&lt;/p&gt;  &lt;p&gt;I was responsible for the &lt;strong&gt;.NET&lt;/strong&gt; side and a java expert named &lt;strong&gt;Tsvika&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;responsible for the &lt;strong&gt;Java&lt;/strong&gt; side.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;enabling &lt;strong&gt;secured conversation&lt;/strong&gt; between &lt;strong&gt;Java&lt;/strong&gt; and&lt;strong&gt; .NET&lt;/strong&gt; using &lt;strong&gt;WCF&lt;/strong&gt; is not a trivial task,&lt;/p&gt;  &lt;p&gt;and it does needed some additional steps.&lt;/p&gt;  &lt;p&gt;you should have &lt;strong&gt;certificate&lt;/strong&gt; install, and having the &lt;strong&gt;binding&lt;/strong&gt; and &lt;strong&gt;behaviors&lt;/strong&gt; configured &lt;/p&gt;  &lt;p&gt;in a way that the&lt;strong&gt; Java proxy&lt;/strong&gt; can manage.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Certificates&lt;/h5&gt;  &lt;p&gt;the first step needed is having a valid &lt;strong&gt;certificate&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;the &lt;strong&gt;certificate&lt;/strong&gt; should be installed into the &lt;strong&gt;service&amp;#39;s hosting machine&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;you can learn more on how to handle the &lt;strong&gt;certificates&lt;/strong&gt; in &lt;a href="http://www.thatindigogirl.com/CategoryView,category,Code.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Service configuration&lt;/h5&gt;  &lt;h6&gt;Binding&lt;/h6&gt;  &lt;p&gt;the secure &lt;strong&gt;binding&lt;/strong&gt; should look 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:9a9dc47d-551b-4abe-ad48-5ee6839fd82b" 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;wsHttpBinding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;binding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;UsernameAndPassword&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;security&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;mode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Message&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;message&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;clientCredentialType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;UserName&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;negotiateServiceCredential&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;establishSecurityContext&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;false&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;algorithmSuite&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Basic128&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;/&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:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;security&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;binding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;wsHttpBinding&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;&lt;strong&gt;line 3&lt;/strong&gt;, the &lt;strong&gt;binding mode&lt;/strong&gt; should be &lt;strong&gt;Message&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 4&lt;/strong&gt;, the &lt;strong&gt;client certificate type&lt;/strong&gt; should be &lt;strong&gt;UserName&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 5&lt;/strong&gt;, the&lt;strong&gt; negotiation service credentials&lt;/strong&gt; must switch &lt;strong&gt;off&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;line 6&lt;/strong&gt;, the &lt;strong&gt;establish security context&lt;/strong&gt; should also turn &lt;strong&gt;off&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h6&gt;Behaviors&lt;/h6&gt;  &lt;p&gt;use the following &lt;strong&gt;behaviors&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:9a73bacb-cb36-45f6-8267-468094d44ae4" 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;serviceBehaviors&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;behavior&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Bnaya.Samples.UsernameAndPassword&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;serviceMetadata&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;httpGetEnabled&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;policyVersion&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Default&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&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:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;serviceCredentials&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;serviceCertificate&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;findValue&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;RPKey&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;storeLocation&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;LocalMachine&lt;/span&gt;&amp;quot;&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;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;storeName&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;TrustedPeople&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;x509FindType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;FindBySubjectName&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;userNameAuthentication&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;userNamePasswordValidationMode&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Custom&lt;/span&gt;&amp;quot;&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;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;customUserNamePasswordValidatorType&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Bnaya.Samples.MyUserNameValidator, WcfSecureed&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;serviceCredentials&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;behavior&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;serviceBehaviors&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;&lt;strong&gt;lines 5-6&lt;/strong&gt;, define which &lt;strong&gt;certificate&lt;/strong&gt; should use for the service (RPKey is the name of the certificate).&lt;/p&gt;  &lt;p&gt;in case of &lt;strong&gt;service hosting&lt;/strong&gt; it is more reasonable to install the &lt;strong&gt;certificate&lt;/strong&gt; on the &lt;strong&gt;machine&lt;/strong&gt; level (instead of the user level) .&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;lines 7-8&lt;/strong&gt;, define the &lt;strong&gt;authentication handler &lt;/strong&gt;(as you can see in the following snippet).&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:4dd62133-2602-419d-906c-737c54e6d133" 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 2em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;sealed&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;MyUserNameValidator&lt;/span&gt; : &lt;span style="color:#2b91af;"&gt;UserNamePasswordValidator&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:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Validate(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; userName, &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; password)&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;if&lt;/span&gt; (userName != &lt;span style="color:#a31515;"&gt;&amp;quot;admin&amp;quot;&lt;/span&gt; || password !=&lt;span style="color:#a31515;"&gt;&amp;quot;admin&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;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;throw&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SecurityException&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;Access denied.&amp;quot;&lt;/span&gt;);&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;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt; the &lt;strong&gt;validate&lt;/strong&gt; method is where your authentication code goes.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h6&gt;End point&lt;/h6&gt;  &lt;p&gt;nothing is special about the definition of the service section&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:6b39083f-b39a-44f4-997e-c74c05a1d857" 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;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;service&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Bnaya.Samples.Service1&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;behaviorConfiguration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Bnaya.Samples.UsernameAndPassword&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;host&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;baseAddresses&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&lt;span style="color:#0000ff;"&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;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;baseAddress&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://localhost:8731/Service1/&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;baseAddresses&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;host&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;endpoint&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;address&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;binding&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;wsHttpBinding&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;contract&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Bnaya.Samples.IService1&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;bindingConfiguration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;UsernameAndPassword&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;identity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;dns&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;localhost&lt;/span&gt;&amp;quot;&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;identity&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/li&gt; &lt;li style="background:#f3f3f3;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;endpoint&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;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;service&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;&lt;strong&gt;small tip&lt;/strong&gt;: replace the &lt;strong&gt;localhost&lt;/strong&gt; with the correct &lt;strong&gt;IP&lt;/strong&gt; so when the &lt;strong&gt;Java&lt;/strong&gt; proxy is generated, &lt;/p&gt;  &lt;p&gt;the endpoint will be correct.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Java&lt;/h5&gt;  &lt;p&gt;&lt;strong&gt;java&lt;/strong&gt; has several libraries that can invoke &lt;strong&gt;WCF&lt;/strong&gt;, unfortunately not all of them&lt;/p&gt;  &lt;p&gt;has good implementation for the &lt;strong&gt;WCF secured conversation&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;the library that do working fine with secured conversation is &lt;em&gt;&lt;a href="http://java.sun.com/webservices/" target="_blank"&gt;&lt;strong&gt;Sun: Metro Web Services&lt;/strong&gt;&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;and more precisely you should use &lt;a href="http://java.sun.com/webservices/reference/tutorials/wsit/doc/" target="_blank"&gt;&lt;strong&gt;WSIT&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;do not waste your time&lt;/strong&gt; on &lt;a href="http://ws.apache.org/axis2/modules/rampart/1_0/security-module.html"&gt;&lt;strong&gt;Axis2&lt;/strong&gt;&lt;/a&gt; /&lt;strong&gt; &lt;/strong&gt;&lt;a href="http://ws.apache.org/axis2/modules/rampart/1_0/security-module.html" target="_blank"&gt;&lt;strong&gt;Rampart&lt;/strong&gt;&lt;/a&gt; it is only half backed in compare to the Sun library.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h5&gt;Summary&lt;/h5&gt;  &lt;p&gt;this task is not travel, but with the right library and java expert like Yaakov, &lt;/p&gt;  &lt;p&gt;it is certainly feasible. &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:b7a92650-3c74-4888-92bd-86db5cd3694a" class="wlWriterSmartContent"&gt;תגים של Technorati:‏ &lt;a href="http://technorati.com/tags/WCF" rel="tag"&gt;WCF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Java" rel="tag"&gt;Java&lt;/a&gt;&lt;/div&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://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=534938" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/WCF/default.aspx">WCF</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/SELA/default.aspx">SELA</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/expert/default.aspx">expert</category><category domain="http://beta.blogs.microsoft.co.il/blogs/bnaya/archive/tags/.net/default.aspx">.net</category></item><item><title>SharePoint Developers Group Meeting 2 is Canceled</title><link>http://beta.blogs.microsoft.co.il/blogs/itaysk/archive/2010/03/09/sharepoint-developers-group-meeting-2-is-canceled.aspx</link><pubDate>Tue, 09 Mar 2010 16:12:43 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:539230</guid><dc:creator>Itay Shakury</dc:creator><slash:comments>1</slash:comments><description>&lt;p style="text-align:right;direction:rtl;"&gt;פגישה מס’ 2 של קבוצת מפתחי SharePoint התבטלה לצערי, עקב בעיה ברישום.&lt;/p&gt;  &lt;p style="text-align:right;direction:rtl;"&gt;אלו שנרשמו אמורים לקבל אימייל על הביטול, וגם טלפון אם הזנתם מספר ברישום.&lt;/p&gt;  &lt;p style="text-align:right;direction:rtl;"&gt;מצטערים על אי הנוחות, המפגש הבא (25.4) מתקיים כרגיל.&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=539230" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/itaysk/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://beta.blogs.microsoft.co.il/blogs/itaysk/archive/tags/Hebrew/default.aspx">Hebrew</category><category domain="http://beta.blogs.microsoft.co.il/blogs/itaysk/archive/tags/DEV/default.aspx">DEV</category></item><item><title>C# Activate Previous Application Instance</title><link>http://beta.blogs.microsoft.co.il/blogs/asafshelly/archive/2010/03/09/c-activate-previous-application-instance.aspx</link><pubDate>Tue, 09 Mar 2010 15:50:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:539215</guid><dc:creator>AsafShelly</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Continuing the following post and as an answer to Jasper:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/asafshelly/archive/2010/03/02/c-close-previous-application-instance.aspx"&gt;http://blogs.microsoft.co.il/blogs/asafshelly/archive/2010/03/02/c-close-previous-application-instance.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The following code will make sure that only one instance is running by exiting if an instance is already running, and activating that instance.&lt;/p&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;[&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;DllImport&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;user32.dll&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;)]&lt;br /&gt;&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;extern&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;bool&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;SetForegroundWindow&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;IntPtr&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;hWnd&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;);&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;bool&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;ActivateApplicationAlreadyRunning&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;()&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;proc&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Process&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;GetCurrentProcess&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;ProcessName&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;;&lt;br /&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;&amp;nbsp;&amp;nbsp; Process&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;[] &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;processes&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Process&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;GetProcessesByName&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;proc&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;);&lt;br /&gt;&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;&amp;nbsp;&amp;nbsp; if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;processes&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;Length&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#148ac2" size="2"&gt;&lt;font color="#148ac2" size="2"&gt;2&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;);&lt;br /&gt;&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;&amp;nbsp;&amp;nbsp; foreach&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Process&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;process&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;in&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;processes&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;process&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;Id&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;!=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Process&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;GetCurrentProcess&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;Id&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SetForegroundWindow&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;process&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;MainWindowHandle&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;);&lt;br /&gt;&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;&amp;nbsp;&amp;nbsp; return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier" size="2"&gt;;&lt;br /&gt;}&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="courier new,courier" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;font size="2"&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;[&lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font face="courier new,courier" color="#2b91af" size="2"&gt;STAThread&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;]&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;void&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;Main&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;()&lt;br /&gt;{&lt;br /&gt;&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;&amp;nbsp;&amp;nbsp; if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;ActivateApplicationAlreadyRunning&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;()) &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;.....&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=539215" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/asafshelly/archive/tags/DEV/default.aspx">DEV</category><category domain="http://beta.blogs.microsoft.co.il/blogs/asafshelly/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>Verify Installation of a custom device using C#</title><link>http://beta.blogs.microsoft.co.il/blogs/asafshelly/archive/2010/03/09/verify-installation-of-a-custom-device-using-c.aspx</link><pubDate>Tue, 09 Mar 2010 15:24:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:539185</guid><dc:creator>AsafShelly</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;Using my WinUSB C# component, I also needed to automatically install the driver if it is not already installed. The INF file defines a new device class by its GUID. This means that the class does not exist on the machine if the device is not installed.&lt;/p&gt;
&lt;p&gt;Here is the code:&lt;/p&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;font face="courier new,courier"&gt;[&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;DllImport&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;setupapi.dll&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;SetLastError&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;true&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;CharSet&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;CharSet&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;Auto&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;)]&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;internal&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;extern&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;bool&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;SetupDiGetClassDescription&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;ref&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Guid&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;ClassGuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;,&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;StringBuilder&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;classDescription&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Int32&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;ClassDescriptionSize&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;ref&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;UInt32&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;RequiredSize&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font face="courier new,courier"&gt;&lt;font size="2"&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;bool&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;IsDeviceClassInstalled&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;deviceClassGuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;)&lt;br /&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;{&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;&amp;nbsp;&amp;nbsp; return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;IsDeviceClassInstalled&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Guid&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;deviceClassGuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;)));&lt;br /&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; 
&lt;p&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;public&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;static&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;bool&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;IsDeviceClassInstalled&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;Guid&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;deviceClassGuid&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;)&lt;br /&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;{&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;&amp;nbsp;&amp;nbsp; StringBuilder&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;deviceClassDescription&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;StringBuilder&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#148ac2" size="2"&gt;&lt;font color="#148ac2" size="2"&gt;256&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;);&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#2b91af" size="2"&gt;&lt;font color="#2b91af" size="2"&gt;&amp;nbsp;&amp;nbsp; UInt32&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;retLength&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;=&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#148ac2" size="2"&gt;&lt;font color="#148ac2" size="2"&gt;0&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;&amp;nbsp;&amp;nbsp; SetupDiGetClassDescription&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;ref&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;deviceClassGuid&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;deviceClassDescription&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;deviceClassDescription&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;Capacity&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;ref&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;retLength&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;);&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;&lt;font color="#1c2bae" size="2"&gt;&lt;font color="#1c2bae" size="2"&gt;&amp;nbsp;&amp;nbsp; return&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;deviceClassDescription&lt;/font&gt;&lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font color="#3d3027" size="2"&gt;&lt;font color="#3d3027" size="2"&gt;Length&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0044e1" size="2"&gt;&lt;font color="#0044e1" size="2"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#148ac2" size="2"&gt;&lt;font color="#148ac2" size="2"&gt;0&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="courier new,courier"&gt;);&lt;br /&gt;&lt;/font&gt;&lt;font face="courier new,courier"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/asafshelly/archive/2009/12/29/winusb-net-component.aspx"&gt;http://blogs.microsoft.co.il/blogs/asafshelly/archive/2009/12/29/winusb-net-component.aspx&lt;/a&gt;&lt;/p&gt;&lt;/font&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=539185" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/asafshelly/archive/tags/http_3A002F002F00_AsyncOp.com/default.aspx">http://AsyncOp.com</category><category domain="http://beta.blogs.microsoft.co.il/blogs/asafshelly/archive/tags/DEV/default.aspx">DEV</category><category domain="http://beta.blogs.microsoft.co.il/blogs/asafshelly/archive/tags/Embedded/default.aspx">Embedded</category><category domain="http://beta.blogs.microsoft.co.il/blogs/asafshelly/archive/tags/WDK/default.aspx">WDK</category></item><item><title>שיתוף קבצים ותיקיות בין מערכות Windows 7 ו – Windows XP</title><link>http://beta.blogs.microsoft.co.il/blogs/support/archive/2010/03/09/Sharing-Files-Windows-XP-7.aspx</link><pubDate>Tue, 09 Mar 2010 13:52:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:539085</guid><dc:creator>Ariel Bar</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;שלום לכולם, אני ליאור, תומך טכני עם התמחות בעדכונים וזיקה לשיתוף.&lt;/p&gt;  &lt;p&gt;התקנתם Windows 7 על מחשב אחד בבית? מזל טוב!&lt;/p&gt;  &lt;p&gt;עדיין יש לכם Windows XP על מחשב אחר בבית? תענוג!&lt;/p&gt;  &lt;p&gt;רוצים לשתף קבצים בין המחשבים? הגעתם למקום הנכון...&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font size="4"&gt;&lt;strong&gt;הגדרת רשת&lt;/strong&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;קודם כל, על מנת לשתף קבצים בין המחשבים, עלינו לדאוג כי הם נמצאים באותה קבוצת עבודה &lt;/p&gt;  &lt;p&gt;(Workgroup) ועם שמות מחשבים שונים. איך עושים את זה??&lt;/p&gt;  &lt;p&gt;אז ככה, ב-Windows 7, יש להקליק על כפתור &lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image0024_1A44A6F5.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image002[4]" border="0" alt="clip_image002[4]" src="http://blogs.microsoft.co.il/blogs/support/clip_image0024_thumb_32D44445.jpg" width="34" height="25" /&gt;&lt;/a&gt;&amp;#160; ולאחר מכן על המילה &amp;quot;מחשב&amp;quot; (Computer) יש ללחוץ קליק ימני ולבחור ב&amp;quot;מאפיינים&amp;quot; (Properties).&lt;/p&gt;  &lt;p&gt;במסך שיפתח, יש לבחור בכפתור &amp;quot;שנה הגדרות&amp;quot; (Change Settings).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_047ABE98.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="Computer Properties" border="0" alt="Computer Properties" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_5AD6CD97.png" width="537" height="323" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;ובחלון שיפתח יש להקליק על &amp;quot;שנה&amp;quot; (Change)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_074FD7B1.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="Computer Name" border="0" alt="Computer Name" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_1E2EA92D.png" width="536" height="396" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;בחלון החדש, יש לשים לב ל&amp;quot;שם המחשב&amp;quot; (Computer Name) (חשוב למאוחר יותר בתהליך) ולהזין את שם קבוצת העבודה (Workgroup)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_1F631C3F.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_7C52AACE.png" width="285" height="340" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;כאשר סיימנו יש להקליק אישור ולסגור את כל החלונות.&lt;/p&gt;  &lt;p&gt;במחשב השני, עם שעליו מותקן Windows XP נבצע את אותו התהליך.&lt;/p&gt;  &lt;p&gt;נלחץ קליק ימני על &amp;quot;מחשב שלי&amp;quot; ונכנס ל&amp;quot;מאפיינים&amp;quot; ותחת לשונית &amp;quot;שם מחשב&amp;quot; נקליק על &amp;quot;שינוי&amp;quot;&lt;/p&gt;  &lt;p&gt;בחלונית שתפתח יש לוודא כי שם המחשב שונה מהשם במחשב הראשון, וכי קבוצת העבודה (Workgroup) זהה לזו שרשומה במחשב עם מערכת חלונות 7.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_189FECEF.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_60412A3C.png" width="522" height="335" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;לאחר שנקליק על אישור נקבל הודעה כי המחשב צורף בהצלחה לקבוצת העבודה.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_1797159E.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_081403CF.png" width="365" height="150" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;ברכותיי, כעת שני המחשבים נמצאים על אותה הרשת וכל מה שנותר לעשות הוא להגדיר כמה הגדרות שיתוף.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font size="4"&gt;&lt;strong&gt;הגדרות שיתוף&lt;/strong&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;בWindows 7, נכנס ללוח הבקרה, ונבחר &amp;quot;רשת ואינטרנט&amp;quot; ולאחר מכן ב&amp;quot;מרכז הרשת והשיתוף&amp;quot;.&lt;/p&gt;  &lt;p&gt;בחלון שיפתח, נבחר ב&amp;quot;שנה הגדרות רשת מתקדמות&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_2CC51B46.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_754EE44A.png" width="474" height="314" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;בחלון שיפתח, נקליק על החץ לצד השורה &amp;quot;בית או עבודה&amp;quot;.&lt;/p&gt;  &lt;p&gt;תחת האופציה של &amp;quot;גילוי רשת&amp;quot;, נבחר באופציה של &amp;quot;הפעל גילוי רשת&amp;quot;.&lt;/p&gt;  &lt;p&gt;תחת &amp;quot;שיתוף קבצים ומדפסות&amp;quot; נבחר ב&amp;quot;הפעל שיתוף קבצים ומדפסות&amp;quot;.&lt;/p&gt;  &lt;p&gt;תחת &amp;quot;שיתוף תיקיות ציבוריות&amp;quot; נבחר ב&amp;quot;הפעל שיתוף כדי שכל מי שיש לו גישה לרשת יוכל לקרוא ולכתוב קבצים בתיקיות הציבוריות&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_7114E6B8.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_5487CF0B.png" width="516" height="421" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;תחת אפשרות של &amp;quot;שיתוף המוגן באמצעות סיסמא&amp;quot; נבחר ב&amp;quot;בטל שיתוף המוגן באמצעות סיסמא&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_1AF49947.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_29036277.png" width="508" height="175" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;כעת נפעיל מחדש את שני המחשבים, ואת הנתב (ראוטר).&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;font size="4"&gt;&lt;strong&gt;הגדרות אבטחה&lt;/strong&gt;&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;עכשיו, במידה ואין לנו סיסמא למשתמש על שני המחשבים, יש ליצור אחת.&lt;/p&gt;  &lt;p&gt;*שימו לב, חלק זה הינו אופציונאלי , ובחלק מהמקרים ניתן לדלג עליו ולעבור לשלב הבא.&lt;/p&gt;  &lt;p&gt;בWindows 7 נכנס ללוח הבקרה ונבחר בחשבונות משתמשים.&lt;/p&gt;  &lt;p&gt;בחלון שיפתח נבחר באפשרות של &amp;quot;צור סיסמא עבור החשבון&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_3A934D42.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_38469EB9.png" width="514" height="200" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;בחלון שיפתח יש להזין שם משתמש וסיסמא (כמו &amp;quot;ליאור&amp;quot;) (ניתן גם להזין רמז לסיסמא כמו &amp;quot;חתיך, מצחיק, יפה, כשרוני וכדומה...&amp;quot;)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_47B98ABB.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_1ECE75B2.png" width="496" height="266" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;כנ&amp;quot;ל גם במחשב עם הXP.&lt;/p&gt;  &lt;p&gt;נכנס ללוח הבקרה ונבחר בחשבונות משתמשים, נבחר ב&amp;quot;שנה חשבון&amp;quot;, נבחר בחשבון הרלוונטי, ונקליק על &amp;quot;צור סיסמא&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_7B51D14C.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_10EC09EA.png" width="523" height="232" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;ונזין סיסמא למשתמש.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_5407624A.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_03C1B872.png" width="516" height="356" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;כעת נכנס ל&amp;quot;מחשב&amp;quot; בWindows 7 ונקליק קליק ימני על הכונן שברצוננו לשתף,נבחר ב&amp;quot;מאפיינים&amp;quot; ונבחר בלשונית &amp;quot;אבטחה&amp;quot; (Security).&lt;/p&gt;  &lt;p&gt;בחלון שיפתח נקליק על &amp;quot;ערוך&amp;quot; (Edit) ואז &amp;quot;הוסף&amp;quot; (Add}.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_18EFBE1A.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_48D9C401.png" width="553" height="373" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;בחלון שיפתח, נקליק “Everyone” ונבחר ב&amp;quot;בדוק שמות&amp;quot; ונאשר.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/image_24E0C6DA.png"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/support/image_thumb_2112FC3D.png" width="519" height="293" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;נאשר ונסגור את החלון.&lt;/p&gt;  &lt;p&gt;עדיין תחת לשונית &amp;quot;אבטחה&amp;quot; נסמן את השורה “Everyone” ונוסיף סימון תחת &amp;quot;שליטה מלאה&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image0028_3F4D8D66.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image002[8]" border="0" alt="clip_image002[8]" src="http://blogs.microsoft.co.il/blogs/support/clip_image0028_thumb_1C3D1BF6.jpg" width="316" height="386" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;נאשר ונסגור את החלון.&lt;/p&gt;  &lt;p&gt;נקליק שוב קליק ימני על הכונן שברצוננו לשתף, ונבחר בלשונית &amp;quot;שיתוף&amp;quot;, ונבחר ב&amp;quot;אפשרויות שיתוף מתקדמות&amp;quot;.&lt;/p&gt;  &lt;p&gt;בחלון שיפתח, נסמן וי בשורה העליונה &amp;quot;שתף תיקיה זו&amp;quot; ונבחר ב&amp;quot;הרשאות&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image004_1F225ADC.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.microsoft.co.il/blogs/support/clip_image004_thumb_700FF937.jpg" width="499" height="344" /&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;בחלון שיפתח, נבחר ב&amp;quot;הוסף&amp;quot; נזין פנימה &amp;quot;Everyone&amp;quot; ונקליק על &amp;quot;בדוק שמות&amp;quot;.&lt;/p&gt;  &lt;p&gt;נאשר ונסגור את החלון.&lt;/p&gt;  &lt;p&gt;נוסיף סימון ב&amp;quot;שליטה מלאה&amp;quot;, נאשר ונסגור את החלון.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image006_6CAE618F.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.microsoft.co.il/blogs/support/clip_image006_thumb_7C01C39E.jpg" width="521" height="286" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;במחשב עם הWindows XP נכנס ל&amp;quot;מחשב שלי&amp;quot; ונבחר בסרגל העליון בכלים ו&amp;quot;אפשרויות תיקיה&amp;quot;&lt;/p&gt;  &lt;p&gt;נעבור ללשונית תצוגה ונוריד את הסימון מהשורה &amp;quot;השתמש בשיתוף קבצים פשוט (מומלץ)&amp;quot;&lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image008_4B1F0C33.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.microsoft.co.il/blogs/support/clip_image008_thumb_13A8D538.jpg" width="330" height="398" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;נאשר ונסגור את החלון.&lt;/p&gt;  &lt;p&gt;כעת נקליק קליק ימני על הכונן שברצוננו לשתף בWindows XP ונבחר בלשונית &amp;quot;אבטחה&amp;quot;.&lt;/p&gt;  &lt;p&gt;שוב (כמו בWindows 7) נקליק על &amp;quot;הוספה&amp;quot; ואז נזין “everyone” ו&amp;quot;בדוק שמות&amp;quot;.&lt;/p&gt;  &lt;p&gt;נאשר ונסגור את החלון.&lt;/p&gt;  &lt;p&gt;נוסיף סימון וי תחת &amp;quot;שליטה מלאה&amp;quot;. נאשר ונסגור את החלון.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image010_68A0C165.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image010" border="0" alt="clip_image010" src="http://blogs.microsoft.co.il/blogs/support/clip_image010_thumb_6B19CD56.jpg" width="490" height="288" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;שוב נקליק קליק ימני על הכונן אותו אנחנו רוצים לשתף ואת אותו התהליך נעשה גם תחת לשונית &amp;quot;שיתוף&amp;quot;.&lt;/p&gt;  &lt;p&gt;נבחר ב&amp;quot;שתף תיקיה זו&amp;quot;, נקליק על &amp;quot;הרשאות&amp;quot;, בחלון שיפתח נבחר ב&amp;quot;הוספה&amp;quot; נזין פנימה “Everyone” ונסמן וי תחת &amp;quot;שליטה מלאה&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image012_556F6EEC.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image012" border="0" alt="clip_image012" src="http://blogs.microsoft.co.il/blogs/support/clip_image012_thumb_17B26163.jpg" width="532" height="361" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;נאשר ונסגור את החלון.&lt;/p&gt;  &lt;p&gt;נפעיל מחדש את שני המחשבים ואת הראוטר. &lt;/p&gt;  &lt;p&gt;&lt;u&gt;שיתוף שוטף&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;כעת ניתן לגשת ממחשב למחשב בצורה שוטפת.&lt;/p&gt;  &lt;p&gt;נכנס ל&amp;quot;מחשב&amp;quot; בWindows 7 ונבחר ב&amp;quot;רשת&amp;quot; (Network) בפינת המסך.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image014_1E35BB26.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image014" border="0" alt="clip_image014" src="http://blogs.microsoft.co.il/blogs/support/clip_image014_thumb_5A9E0A03.jpg" width="528" height="425" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;נבחר במחשב הרלוונטי, ונוכל לשחק עם הקבצים כאוות נפשנו.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/support/clip_image016_7E0A889B.jpg"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="clip_image016" border="0" alt="clip_image016" src="http://blogs.microsoft.co.il/blogs/support/clip_image016_thumb_5AFA172B.jpg" width="532" height="429" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;מה-XP ניתן יהיה לגשת למחשב עם הWindows 7 דרך &amp;quot;מיקומי הרשת שלי&amp;quot; (My network places).&lt;/p&gt;  &lt;p&gt;וזהו! יש לכם רשת עבודה בין שני המחשבים וניתן לשתף, לערוך, לשנות ולמחוק קבצים בין המחשבים (על הכוננים/תיקיות המשותפים כמובן).&lt;/p&gt;  &lt;p&gt;עד הפעם הבאה,&lt;/p&gt;  &lt;p&gt;ליאור (המשתף) תשבי.&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=539085" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/Windows/default.aspx">Windows</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/Windows+XP/default.aspx">Windows XP</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/ITPro/default.aspx">ITPro</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/_D705DC05D505E005D505EA05_+7/default.aspx">חלונות 7</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/_D705DC05D505E005D505EA05_/default.aspx">חלונות</category><category domain="http://beta.blogs.microsoft.co.il/blogs/support/archive/tags/_E805E905EA05_/default.aspx">רשת</category></item><item><title>QuickTip: How do you check Internet connectivity?</title><link>http://beta.blogs.microsoft.co.il/blogs/scriptfanatic/archive/2010/03/09/quicktip-how-do-you-check-internet-connectivity.aspx</link><pubDate>Tue, 09 Mar 2010 10:59:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:538902</guid><dc:creator>ScriptFanatic</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/scriptfanatic/inet_1D5D731A.png"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;MARGIN:0px 10px 0px 0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="" border="0" alt="" align="left" src="http://blogs.microsoft.co.il/blogs/scriptfanatic/inet_thumb_1C850D30.png" width="60" height="58" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;With the following PowerShell one-liner you can check if the machine you’re working on has internet connectivity. The result is a Boolean value. If TRUE, the local machine is connected to the internet; if FALSE, it is not.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Minimum supported client&lt;/strong&gt;: Windows Vista &lt;/p&gt;
&lt;p&gt;[Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]&amp;#39;{DCB00C01-570F-4A9B-8D69-199FDBA5723B}&amp;#39;)).IsConnectedToInternet&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=538902" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/scriptfanatic/archive/tags/PowerShell/default.aspx">PowerShell</category><category domain="http://beta.blogs.microsoft.co.il/blogs/scriptfanatic/archive/tags/ITPRO/default.aspx">ITPRO</category><category domain="http://beta.blogs.microsoft.co.il/blogs/scriptfanatic/archive/tags/QuickTip/default.aspx">QuickTip</category></item><item><title>סדנת הכשרה מעשית בכלי הבדיקות  Team System 2010</title><link>http://beta.blogs.microsoft.co.il/blogs/solidity/archive/2010/03/09/team-system-2010.aspx</link><pubDate>Tue, 09 Mar 2010 02:06:36 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:538603</guid><dc:creator>Sarit Tamir</dc:creator><slash:comments>0</slash:comments><description>&lt;p dir="ltr" align="right"&gt;בשבועות האחרונים אנחנו מקבלים יותר ויותר פניות של לקוחות שמבקשים לקבל ידע והתנסות ב&lt;/p&gt;  &lt;p dir="ltr" align="right"&gt;Test and Lab Management.&lt;/p&gt;  &lt;p dir="ltr" align="right"&gt;החלטנו להרים את הכפפה&amp;#160; ולהרים סדנא מרוכזת של יום אחד שתאפשר התנסות מעשית בכל הנושאים המפורטים&lt;/p&gt;  &lt;p dir="ltr" align="right"&gt;הסדנא תערך ב8 לאפריל ויעביר אותה ערן רוסו. אפשר לקבל עוד פרטים בלינק הבא:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://teamsysteme4d.weebly.com/"&gt;http://teamsysteme4d.weebly.com/&lt;/a&gt;&lt;/p&gt;  &lt;p dir="ltr" align="right"&gt;&amp;#160;&lt;/p&gt;  &lt;p dir="ltr" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/solidity/Team_system_MTLM_Workshop_46234340.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="Team_system_MTLM_Workshop" border="0" alt="Team_system_MTLM_Workshop" src="http://blogs.microsoft.co.il/blogs/solidity/Team_system_MTLM_Workshop_thumb_513CA7BD.jpg" width="542" height="408" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://beta.blogs.microsoft.co.il/aggbug.aspx?PostID=538603" width="1" height="1"&gt;</description><category domain="http://beta.blogs.microsoft.co.il/blogs/solidity/archive/tags/TFS/default.aspx">TFS</category><category domain="http://beta.blogs.microsoft.co.il/blogs/solidity/archive/tags/TECH/default.aspx">TECH</category><category domain="http://beta.blogs.microsoft.co.il/blogs/solidity/archive/tags/ALM/default.aspx">ALM</category><category domain="http://beta.blogs.microsoft.co.il/blogs/solidity/archive/tags/MTLM/default.aspx">MTLM</category><category domain="http://beta.blogs.microsoft.co.il/blogs/solidity/archive/tags/Team+System+Testing/default.aspx">Team System Testing</category></item></channel></rss>