<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>שלמה גולדברג (הרב דוטנט)</title><link>http://blogs.microsoft.co.il/blogs/shlomo/</link><description>מרצה בסלע ויועץ בעולם ה - net.</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>html lists -&gt; back to basic</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/02/07/html-lists-gt-back-to-basic.aspx</link><pubDate>Tue, 07 Feb 2012 18:48:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1008986</guid><dc:creator>Shlomo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=1008986</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/02/07/html-lists-gt-back-to-basic.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;הפוסט הזה מיועד למתחילים בעולם ה - html, בפוסט זה נכיר את הסוגים השונים של רשימות בעולם ה - html.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בהרבה מקרים אנו רוצים להציג למשתמש רשימות של מידע,&amp;nbsp;ואנחנו רוצים שזה יאורגן בצורה מסודרת מבלי שנרצה לעבוד קשה מדי כדי לבצע זאת, רשימות יכולות להיות רשימה של פיצ&amp;#39;רים שנתמוך בהם, מסמך משפטי המכיל סעיפים ותתי סעיפים, ואפילו תפריטים ותתי תפריטים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כדי לעשות זאת יש לנו כמה סוגים של רשימות.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;Unorderd&amp;nbsp;List - מייצר רשימה לא ממוספרת, אלא משתמשת בסימנים (בולטים) כדי להגדיר את כל הרשימה.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;Orderd List - מייצר רשימה ממוספרת&amp;nbsp;המסומנת בעזרת מספרים או אותיות.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;Definition List - מייצר רשימה בה לכל&amp;nbsp;שורה יש שני ערכים (כותרת ותוכן).&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;div dir="rtl" align="right"&gt;שני הראשונים מכילים תגיות מסוג List Item, לעומת האחרון המכיל תגיות מסוג Definition Description ו - Definition Term.&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;div dir="rtl" align="right"&gt;דוגמא. נניח שנרצה רשימה המכילה שפות, נכתוב:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Courier New;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;אנגלית&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;עברית&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;רוסית&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;11&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;יידיש&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;12&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="left"&gt;&lt;img border="0" alt="ul" src="http://blogs.microsoft.co.il/photos/shlomo/images/1008796/original.aspx" width="84" height="85" /&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;במידה ונרצה תתי תפריטים נוכל בכל li להגדיר עוד ul פנימי, לדוגמא:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Courier New;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;קובץ&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;הדפסה&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;שמירה&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;פתיחה&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;עריכה&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;העתק&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;הדבק&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;כלים&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;עזרה&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;אודות&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;מרכז העזרה&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;המרכז העולמי&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;בלוגים&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ul&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&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;div dir="ltr" align="left"&gt;&lt;img border="0" alt="ul 2" src="http://blogs.microsoft.co.il/photos/shlomo/images/1008797/original.aspx" width="201" height="288" /&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לתג ul יש מאפיין בשם type המאפשר לנו להחליט על סוג הבולט שיוצג. הוא יכול לקבל את הערכים: circle, disc, square (או לפי התקנים ב - css במאפיין list-style-type).&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;div dir="rtl" align="right"&gt;הסוג השני הוא Orderd List, המאפשר לייצר רשימות ממוספרות, לדוגמא:&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;ol&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;סעיף שמדבר על רשימות&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;סעיף שמדבר על רשימות&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;סעיף שמדבר על רשימות&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;ol&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;תת סעיף על רשימות&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;תת סעיף על רשימות&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;ol&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;סעיף שמדבר על רשימות&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;li&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;ol&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&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;div dir="ltr" align="left"&gt;&lt;img border="0" alt="ol" src="http://blogs.microsoft.co.il/photos/shlomo/images/1008942/original.aspx" width="243" height="154" /&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;באותה צורה כמו ב - ul ניתן לקנן ol בתוך li, וכמובן אפשר בתוך li להכניס ul ולקנן כל מה שנרצה.&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;div dir="rtl" align="right"&gt;סוג נוסף של רשימה הוא Definition List, המאפשר לנו להגדיר רשימות שיש לכל תוכן כותרת., למשל:&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;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dl&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dt&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;כותרת אחד&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dt&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dd&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט הראשון&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט הראשון&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט הראשון&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dd&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dt&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;כותרת שנייה&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dt&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dd&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט השני&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט השני&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט השני&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dd&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dt&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;כותרת שלישית&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dt&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dd&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט השלישית&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט השלישית&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; התוכן של האלמנט השלישית&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dd&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;dl&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&lt;img border="0" alt="dl" src="http://blogs.microsoft.co.il/photos/shlomo/images/1008945/original.aspx" width="234" height="247" /&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;div dir="rtl" align="right"&gt;כמובן שניתן לעצב רשימה כזאת לבד עם אלמנטים אחרים, אבל האלמנט מאפשר לנו לעשות זאת יותר בקלות.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כשנרצה להשתמש בהם עבור תפריטים, בדרך כלל זה ישולב עם קוד JS המסתיר ומציג את האלמנטים במעבר עכבר וכד&amp;#39;. (אולי אדגים בפוסט הבא)&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1008986" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html/default.aspx">html</category></item><item><title>פורום חדש למפתחי עולם האינטרנט</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/29/1001600.aspx</link><pubDate>Sun, 29 Jan 2012 21:11:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1001600</guid><dc:creator>Shlomo</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=1001600</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/29/1001600.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&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://social.msdn.microsoft.com/Forums/he-IL/webdevhe/threads"&gt;Web Development&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;/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;div dir="rtl" align="right"&gt;עידו ושלמה.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1001600" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category></item><item><title>HTML5 - Table of Content</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/25/html5-table-of-content.aspx</link><pubDate>Wed, 25 Jan 2012 08:58:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:997637</guid><dc:creator>Shlomo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=997637</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/25/html5-table-of-content.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;כתבתי די הרבה על נושאים שונים של HTML5, וחשבתי לרכז את כולם.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשונה ממדריכים אחרים שכתבתי, הפוסט הזה אינו מרוכז לפי סדר מסויים, אלא מגוון רחב של פיצ&amp;#39;רים שהסביבה נותנת.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;אני מחלק את זה לשינויים ב - HTML, תוספות של CSS ופונקציונליות חדשה ב - JS - כמובן שישנם חידושים שחופפים ואפשר היה להצמיד אותם גם ל - CSS וגם ל - JS, אך מיקמתי אותם היכן שנראה לי יותר מתאים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;חשוב לשים לב שבחלק מהפוסטים יש כותרת של What new in IE8 וכדומה, אל דאגה - כאן שמתי אך ורק פוסטים של HTML5, כלומר שינויים של IE שמוגדרים מהתקן.&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;div dir="rtl" align="right"&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/01/html5-html-review.aspx"&gt;HTML5 - HTML Review&lt;/a&gt;&amp;nbsp;- הסיבות למה כדאי לעבור ומה זה בכלל HTML5.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/10/html5-new-elements.aspx"&gt;New Elements&lt;/a&gt;&amp;nbsp;- הכרת האלמנטים החדשים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/16/html5-canvas.aspx"&gt;Canvas&lt;/a&gt;&amp;nbsp;- הכרת האלמנט שמאפשר לצייר על גבי המסך.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/08/26/what-is-new-in-ie9-generic-element.aspx"&gt;Generic elements&lt;/a&gt;&amp;nbsp;- אלמנטים חדשים שהמפתחים ממציאים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/08/25/what-is-new-in-ie9-audio-element.aspx"&gt;Audio&lt;/a&gt;&amp;nbsp;- הכרת האלמנט המאפשר לנגן.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/08/24/what-is-new-in-ie9-video-element.aspx"&gt;Video&lt;/a&gt;&amp;nbsp;- הכרת האלמנט המאפשר להציג וידיאו&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;JS&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/04/html5-the-modernizr.aspx"&gt;The Modernizr&lt;/a&gt;&amp;nbsp;- הכרת הספרייה המאפשרת לבדוק אלו תכונות נתמכות בדפדפן שרץ.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/05/23/webworker-html5.aspx"&gt;Worker&lt;/a&gt;&amp;nbsp;- הכרת הדרך לעבודה אסינכרונית ב - JS.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/04/13/html5-geolocation.aspx"&gt;Goelocation&lt;/a&gt;&amp;nbsp;- כיצד לכתוב אפליקציות מבוססי מיקום.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/11/17/drag-div-using-html5.aspx"&gt;Drag &amp;amp; Drop&lt;/a&gt;&amp;nbsp; - כיצד לגרור אלמנטים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/11/08/what-is-new-in-ie9-html5-selection-apis.aspx"&gt;Selected text&lt;/a&gt;&amp;nbsp;- כיצד נדע איזה טקסט המשתמש סימן.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/08/29/what-is-new-in-ie9-overlapping-tags.aspx"&gt;Overlapping tags&lt;/a&gt;&amp;nbsp; - הצורה בה ה - JS יתייחס לאלמנטים שמקוננים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/05/27/cross-document-messaging-cdm-in-ie8.aspx"&gt;Cross-Document messaging&lt;/a&gt;&amp;nbsp; - הדרך לתקשר בין חלונות פתוחים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/06/03/dom-ie8.aspx"&gt;querySelector&lt;/a&gt;&amp;nbsp;- כיצד נוכל לקבל את כל האלמנטים העומדים בתנאים מסויימים (כמו jQuery)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/06/03/xjax-ie8-xdomainrequest.aspx"&gt;XDomain Request&lt;/a&gt;&amp;nbsp;- כיצד אפשר להפעיל AJAX מול דומיין אחר.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/05/16/connectivity-enhancements-in-ie8.aspx"&gt;online - offline&lt;/a&gt;&amp;nbsp;- קבלת האירועים והמידע האם יש רשת או לא.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/05/13/xmlhttprequest-enhancements-in-internet-explorer-8.aspx"&gt;XML Http Request&lt;/a&gt;&amp;nbsp;- שיפורים במנגנון AJAX&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/04/16/ie8-dom-storage.aspx"&gt;Dom Storage&lt;/a&gt;&amp;nbsp; - התחליף המעולה ל - Cookie&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/04/11/text-shadow-css3.aspx"&gt;text-shadow&lt;/a&gt;&amp;nbsp;- הגדרת צל לטקסט&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/04/10/background-css3.aspx"&gt;background&lt;/a&gt;&amp;nbsp;- השינויים בהגדרת רקע.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/08/22/what-is-new-in-ie9-media-queries.aspx"&gt;Media queries&lt;/a&gt;&amp;nbsp;- כיצד לדעת מהי הסביבה בה אנחנו רצים (סלולר, מחשב, רזולוציה וכו&amp;#39;)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/08/20/what-is-new-in-ie9-color-property-transparent.aspx"&gt;Color&lt;/a&gt;&amp;nbsp;- שינויים בצבעים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/08/19/what-is-new-in-ie9-opacity.aspx"&gt;Opacity&lt;/a&gt;&amp;nbsp;- האפשרות לשקיפות.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/08/17/what-is-new-in-ie9-border-radius.aspx"&gt;border&lt;/a&gt;&amp;nbsp;- היכולת לעגל פינות.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/06/06/generated-content-in-ie8.aspx"&gt;Content&lt;/a&gt;&amp;nbsp;- כתיבה של טקסט בעזרת CSS&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/06/06/outline-in-ie8.aspx"&gt;outline&lt;/a&gt;&amp;nbsp;- עטיפת border לאלמנטים בלי לתפוס מקום פיזית.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/06/06/foucs-in-ie8.aspx"&gt;focus selector&lt;/a&gt;&amp;nbsp;- הכרת ה - selector שמשפיע על האלמנט שכרגע בפוקוס.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/11/02/what-is-new-in-ie9-xml-namespace.aspx"&gt;Namespace&lt;/a&gt;&amp;nbsp;- הכרת הדרך להגדיר שמות מרחב ב - CSS.&lt;/div&gt;&lt;/blockquote&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;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=997637" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html/default.aspx">html</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html5/default.aspx">html5</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/ie9/default.aspx">ie9</category></item><item><title>X-UA-Compatible meta tag</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/24/x-ua-compatible-meta-tag.aspx</link><pubDate>Tue, 24 Jan 2012 00:32:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:995916</guid><dc:creator>Shlomo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=995916</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/24/x-ua-compatible-meta-tag.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;מהימים בהם התחלנו לקבל גרסאות חדשות של IE - קבלנו את היכולת להריץ את IE כאילו בגרסאות ישנות יותר וזאת&amp;nbsp;בעזרת כלי הפיתוח של IE&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לחיצה על F12 - ושינוי ה - Document Mode.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;ברור מאיליו שזה כלי נהדר&amp;nbsp;למפתחים שיכולים לראות כיצד האתר ייראה בגרסאות שונות של IE (מעניין שאין יכולת כזאת בדפדפנים המתחרים).&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;div dir="rtl" align="right"&gt;מה שלא כל המפתחים יודעים הוא - שניתן &amp;quot;להכריח&amp;quot; את הדפדפן להציג את האתר ב - Document Mode שנבחר, נרצה לעשות זאת למשל אם אין לנו תקציב לדאוג שהאתר יראה כמו שצריך ב - IE9 ואנחנו רוצים להשאר בגרסה 8 של הדפדפן.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כל מה שצריך לעשות הוא להוסיף את תגית ה - meta הבאה:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;meta&lt;/span&gt; &lt;span style="COLOR:red;"&gt;http-equiv&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;X-UA-Compatible&amp;quot;&lt;/span&gt; &lt;span style="COLOR:red;"&gt;content&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;IE=8&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כשניתן לכתוב את הגרסאות השונות של IE או לחילופין לכתוב &lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;meta&lt;/span&gt; &lt;span style="COLOR:red;"&gt;http-equiv&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;X-UA-Compatible&amp;quot;&lt;/span&gt; &lt;span style="COLOR:red;"&gt;content&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;IE=EmulateIE7&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;ובמקרה הזה הוא גם מתחשב במה שהוגדר ב - doctype (&lt;a href="http://msdn.microsoft.com/en-us/library/ie/cc288325(v=vs.85).aspx"&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;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נקודה חשובה, התגית הזו (ככל תגיות meta) צריכה לשבת בתוך ה - head. אבל אסור שיופיע תגית script או style לפניה - ה - meta חייב להיות ראשון אחרי תגית ה - title.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;הסיבה לא ברורה לי - אבל אני יכול לנחש שרינדור הסקריפטים והעיצוב תלוים בתגית הזו, ולכן לאחר שהדפדפן קרא את העיצוב או את הסקריפט אין ביכולתו לשנות את ה - Document Mode&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;div dir="rtl" align="right"&gt;&amp;nbsp;במאמר המוסגר.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;plug-in מעניין שראיתי הוא &lt;a href="http://www.chromium.org/developers/how-tos/chrome-frame-getting-started/chrome-frame-faq"&gt;Google Crome Frame&lt;/a&gt;, לא בדקתי אותו אבל הוא מבטיח שגם אם מותקן IE6 הדפים ירונדרו במנוע של Chrome ויוצגו בכל האלמנטים ש - Chrome תומך.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;במקרה זה יש לכתוב&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;meta&lt;/span&gt; &lt;span style="COLOR:red;"&gt;http-equiv&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;X-UA-Compatible&amp;quot;&lt;/span&gt; &lt;span style="COLOR:red;"&gt;content&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;chrome=1&amp;quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=995916" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/Internet+Explorer/default.aspx">Internet Explorer</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/IE8/default.aspx">IE8</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/iE/default.aspx">iE</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/internet+Explorer+8/default.aspx">internet Explorer 8</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/meta/default.aspx">meta</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/ie9/default.aspx">ie9</category></item><item><title>center elements in html</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/17/center-elements-in-html.aspx</link><pubDate>Tue, 17 Jan 2012 18:05:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:990692</guid><dc:creator>Shlomo</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=990692</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/17/center-elements-in-html.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;כיצד למרכז אלמנטים בעזרת css.&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;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;אז ככה.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בעבר היה דרך (עובד גם היום רק שיצא מהתקן) לכתוב כך:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;center&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .....&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;center&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כל מה שיופיע בתוך התגיות ימורכז, הסיבה שזה יצא מהתקן היא מכיוון שאנחנו אמורים לכתוב ב - html את התוכן ולא את העיצוב.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;מה שצריך לעשות זה כך:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:maroon;"&gt;.center&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;margin-left&lt;/span&gt;: &lt;span style="COLOR:blue;"&gt;auto&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;margin-right&lt;/span&gt;: &lt;span style="COLOR:blue;"&gt;auto&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;text-align&lt;/span&gt;: &lt;span style="COLOR:blue;"&gt;center&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;אלמנט שיקבל את ה - class המתאים (center) ימורכז - כמובן שהוא צריך שיוגדר לו width כלשהו שקטן מגודל ה - container שלו.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כל זה יעבוד רק אם לא הגדרתם הגדרה מיוחדת ל - position, אחרת (למשל fixed, absolute) צריך לעשות טריק אחר.&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:maroon;"&gt;#msg&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;position&lt;/span&gt;: &lt;span style="COLOR:blue;"&gt;fixed&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;left&lt;/span&gt;:&lt;span style="COLOR:blue;"&gt;50%&lt;/span&gt;; &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;margin-left&lt;/span&gt;:&lt;span style="COLOR:blue;"&gt;-225px&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;width&lt;/span&gt;: &lt;span style="COLOR:blue;"&gt;450px&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;הערך של margin-left צריך להיות חצי מהערך של width כך שבכל מקרה האלמנט ימורכז לאמצע המסך.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=990692" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html/default.aspx">html</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/CSS/default.aspx">CSS</category></item><item><title>HTML5 - Canvas</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/16/html5-canvas.aspx</link><pubDate>Mon, 16 Jan 2012 06:11:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:989279</guid><dc:creator>Shlomo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=989279</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/16/html5-canvas.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;בהמשך לפוסטים על &lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html5/default.aspx"&gt;HTML5&lt;/a&gt;, הפעם נדבר על Canavs.&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&lt;strong&gt;הקדמה:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/01/html5-html-review.aspx"&gt;בפוסט הראשון תיארתי &lt;/a&gt;מהו HTML5, וטענתי שזה לא הגרפיקות והאנימציות - אלא ה - API החדש, אבל כמובן שאי אפשר להתעלם מהיכולות של הגרפיקה, ולכן בפרק זה נכיר את הדרך כיצד לצייר ב - HTML5.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כמובן שאי אפשר במסגרת פוסט זה להכיר את היכולות המלאות, (וזה גם דורש המון מטמטיקה), ואני די בטוח שיהיו (או שיש) עטיפות שונות ליכולות ה - Canvas כדי להקל את הכתיבה, ולא לכתוב כל כך קרוב לברזלים, ובכל זאת נרצה לראות את הבסיס ואיך משתמשים בזה.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&lt;strong&gt;Canvas:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;ה - Canvas הוא בד ציור המאפשר לנו לצייר עליו מה שנרצה ב - javascript, הוא מכיל את כל היכולות הבסיסיות של ציור כמו ריבוע עיגול קו וכדו&amp;#39;, הוא מאפשר לנו להפעיל טרנספורמציות עליו כמו סיבוב, שכפול של אלמנטים, והוא מאפשר להגדיר שקיפות וגרדיאנטים של רקעים וכן הלאה.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;מנגנון ה - Canvas הוא בזיכרון, כלומר - לאחר שציירנו ריבוע לא ניתן לשנות את צבע הקו - אפשר רק למחוק אותו (על ידי ציור ריבוע לבן מעליו) ולצייר מחדש.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נקודה נוספת, ה - Canvas מצייר פיקסלים, שינוי ברזולוציה של המסך יעוות את הציור כמו כל תמונה פיקסלית.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&lt;strong&gt;דוגמאות לשימוש ב - Canvas: &lt;/strong&gt;(הדוגמאות יעבדו כמובן רק בדפדפנים תומכי Canvas)&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://ie.microsoft.com/testdrive/Graphics/CanvasPinball/Default.html" target="_blank"&gt;משחק Pinball&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://ie.microsoft.com/testdrive/Graphics/DeepZoom/Default.html" target="_blank"&gt;Canvas Zoom&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://www.xiconeditor.com/"&gt;יוצר קבצי ico&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://labs.hyperandroid.com/html5-tiler-3d" target="_blank"&gt;יצירת תמונה באנימציה&lt;/a&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;a href="http://www.canvasdemos.com/"&gt;מלא דוגמאות נוספות&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&lt;strong&gt;איך מתחילים:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;בקוד ה - HTML נוסיף אלמנט Canvas&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;" dir="ltr" align="left"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;canvas&lt;/span&gt; &lt;span style="COLOR:red;"&gt;id&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;can1&amp;quot;&lt;/span&gt; &lt;span style="COLOR:red;"&gt;width&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;400&amp;quot;&lt;/span&gt; &lt;span style="COLOR:red;"&gt;height&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;400&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;canvas&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;בקוד ה - js נקבל את האלמנט, נבקש את ה - Context המאפשר לצייר עליו.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;" dir="ltr" align="left"&gt;
&lt;p style="MARGIN:0px;"&gt;onload = &lt;span style="COLOR:blue;"&gt;function&lt;/span&gt; () {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; canvas = document.getElementById(&lt;span style="COLOR:maroon;"&gt;&amp;#39;can1&amp;#39;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; ctx = canvas.getContext(&lt;span style="COLOR:maroon;"&gt;&amp;#39;2d&amp;#39;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;לאחר קבלת ה - context ניתן להתחיל להשתמש בפונקציות שלו כדי לצייר.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; x = 0, y = 0, width = 100, height = 100;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.fillRect(x, y, width, height);&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;נקבל ריבוע שחור בפינה הימנית עליונה של ה - Canvas בגודל 100 על 100.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;במידה ונוסיף את השורה הבאה (לפני קריאת ל - fillRect)&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.fillStyle = &lt;span style="COLOR:maroon;"&gt;&amp;#39;rgb(200,200,200)&amp;#39;&lt;/span&gt;;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;נקבל את הריבוע בצבע אפור.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;כפי שהסברתי למעלה פוסט זה אינו המדריך לפונקציות ה - Canvas, ולכן אני לא אתאר ואפרט כאן את הפונקציות והמאפיינים שקיימים, אבל אני כן אראה עוד כמה דוגמאות פשוטות ומורכבות.&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;div dir="rtl" align="right"&gt;הקוד הבא יצייר מין צורה של ענן.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#006400;"&gt;// begin custom shape&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.beginPath(); &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.moveTo(170, 80);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.bezierCurveTo(130, 100, 130, 150, 230, 150);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.bezierCurveTo(250, 180, 320, 180, 340, 150);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.bezierCurveTo(420, 150, 420, 120, 390, 100);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.bezierCurveTo(430, 40, 370, 30, 340, 50);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.bezierCurveTo(320, 5, 250, 20, 250, 50);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.bezierCurveTo(200, 5, 150, 20, 170, 80);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.closePath();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#006400;"&gt;// complete custom shape&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.lineWidth = 5;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.strokeStyle = &lt;span style="COLOR:maroon;"&gt;&amp;quot;#0000ff&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.stroke();&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&lt;img border="0" alt="Canavs - HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/989271/original.aspx" width="321" height="183" /&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;כעת אם נוסיף (לפני השורה של lineWidth) את השורות הבאות:&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; grd = ctx.createRadialGradient(238, 50, 10, 238, 50, 200);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;grd.addColorStop(0, &lt;span style="COLOR:maroon;"&gt;&amp;quot;#7944FF&amp;quot;&lt;/span&gt;); &lt;span style="COLOR:#006400;"&gt;// light blue&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;grd.addColorStop(0.5, &lt;span style="COLOR:maroon;"&gt;&amp;quot;#FF8928&amp;quot;&lt;/span&gt;); &lt;span style="COLOR:#006400;"&gt;// light blue&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;grd.addColorStop(1, &lt;span style="COLOR:maroon;"&gt;&amp;quot;#42FFCC&amp;quot;&lt;/span&gt;); &lt;span style="COLOR:#006400;"&gt;// dark blue&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.fillStyle = grd;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;ctx.fill();&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;נקבל:&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&lt;img border="0" alt="Canvas - HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/989273/original.aspx" width="332" height="190" /&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;ואם ממש נתפרע ונכתוב את הקוד הבא:&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;setInterval(&lt;span style="COLOR:blue;"&gt;function&lt;/span&gt; () {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; grd = ctx.createRadialGradient(Math.floor((Math.random() * 255)),&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Math.floor((Math.random() * 255)),&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Math.floor((Math.random() * 255)),&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Math.floor((Math.random() * 255)),&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Math.floor((Math.random() * 255)),&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Math.floor((Math.random() * 255)));&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; grd.addColorStop(0, &lt;span style="COLOR:maroon;"&gt;&amp;quot;#7944FF&amp;quot;&lt;/span&gt;); &lt;span style="COLOR:#006400;"&gt;// light blue&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; grd.addColorStop(0.5, &lt;span style="COLOR:maroon;"&gt;&amp;quot;#FF8928&amp;quot;&lt;/span&gt;); &lt;span style="COLOR:#006400;"&gt;// light blue&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; grd.addColorStop(1, &lt;span style="COLOR:maroon;"&gt;&amp;quot;#42FFCC&amp;quot;&lt;/span&gt;); &lt;span style="COLOR:#006400;"&gt;// dark blue&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ctx.fillStyle = grd;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ctx.fill();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}, 200);&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;נקבל אנימציה מעניינת של צורות שונות של הרקע (במידה וניתן ערכים אקראיים לצבע - נקבל גם צבעים שונים)&lt;/div&gt;&lt;/blockquote&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&lt;strong&gt;סיכום:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;Canvas הוא אחד היכולות החזקות של HTML5, הוא מאפשר לייצר גרפיקות בצורה שלא הכרנו קודם, כמובן שזה דורש ידע כיצד לצייר - אך בהינתן הידע (או הכלים שיידעו עבורנו) נוכל לעשות הרבה דברים שלא יכולנו לעשות קודם רק בעזרת פלאש או סילברלייט.&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=989279" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html/default.aspx">html</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html5/default.aspx">html5</category></item><item><title>HTML5 - New Elements</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/10/html5-new-elements.aspx</link><pubDate>Tue, 10 Jan 2012 08:39:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:984088</guid><dc:creator>Shlomo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=984088</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/10/html5-new-elements.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2" face="Courier New"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;כפי שהבטחתי &lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/04/html5-the-modernizr.aspx"&gt;בפוסט הקודם&lt;/a&gt;&amp;nbsp;אני אדבר הפעם על אלמנטים חדשים ב - HTML5.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&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;div dir="rtl" align="right"&gt;כשאנחנו מנסים לחלק לוגית את האלמנטים החדשים, אנחנו רואים את הסוגים הבאים:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="right"&gt;אלמנטים לוגיים - כלומר אלמנטים שאין להם כמעט משמעות מבחינת הפונקציונליות שלהם - אלא הם משמשים אותנו לחלוקה הגיונית יותר של האלמנטים בעמוד.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;אלמנטים אמיתיים - אלמנטים המכילים פונקציונליות חדשה לחלוטין.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;מאפיינים חדשים - אלמנטים קיימים שקבלו מאפיינים חדשים המאפשרים פונקציונליות חדשה.&lt;/div&gt;&lt;/li&gt;&lt;/ul&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;div dir="rtl" align="right"&gt;&lt;strong&gt;אלמנטים לוגיים.&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;עד היום כשאנחנו מעמדים את עמודי ה - html אנחנו משתמשים או ב - divs או ב - tables, אין משמעות לוגית וסמנטית לאלמנטים בהקשר לתוכן שלהם, מה שמקשה את הקריאה וההבנה של התוכן למפתחים ולרובטים החוקרים את התוכן, בעזרת האלמנטים החדשים נוכל לצקת משמעות לעטיפה של התגים בהתאם לתוכן שנמצא בפנים - חשוב לזכור אין כמעט משמעות פונקציונלית בשימוש באותם אלמנטים.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;דוגמא לאלמנטים החדשים.&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="right"&gt;Article - המקבילה הכי דומה ל - div, אלמנט המכיל תוכן מסויים.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;Footer - מידע כמו זכויות יוצרים, מידע משפטי וכן הלאה.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;Header - מידע בכותרת העמוד.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;Nav - לינקים וניווט.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;Section - עוטף כמה Article (דומה ל - div שעוטף div)&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;Aside - מכיל מידע ליד (על)&amp;nbsp;Article &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;Figure - תמונה המסבירה תוכן של מאמר.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;Dialog - אלמנטים כמו צ&amp;#39;אט וכדומה.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;dt - מידע של משתתף אחד בדיאלוג.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="right"&gt;dd - מידע של משתתף שני בדיאלוג.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&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;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;שימוש באלמנטים הללו מאפשר להסתכל על האלמנטים מבלי לקרוא את התוכן שלהם ולהבין במה מדובר - לדוגמא כשרואים אלמנט מסוג nav מבינים שמדובר בניווט של העמוד, וכן הלאה.&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;אלמנטים אמיתיים.&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;יש הרבה אלמנטים חדשים, נראה דוגמאות לחלק מהם.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;Mark&lt;/strong&gt; - מאפשר לסמן מידע חשוב בתוך טקסט, לדוגמא:&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;&lt;pre style="MARGIN:0px;"&gt;My Name Is: &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;mark&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;Shlomo&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;mark&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;ייתן את התוצאה הבאה&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="ltr" align="left"&gt;&lt;img border="0" alt="mark - html5" src="http://blogs.microsoft.co.il/photos/shlomo/images/983985/original.aspx" width="157" height="35" /&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;Progress&lt;/strong&gt; - מאפשר לנו להשתמש ב - Progress bar אמיתי של מערכת ההפעלה כדי להציג התקדמות כלשהי למשתמש.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;progress&lt;/span&gt; &lt;span style="COLOR:red;"&gt;max&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;30&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;progress&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&lt;img border="0" alt="Progress HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/983995/original.aspx" width="177" height="38" /&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;Details, Summary&lt;/strong&gt; - מאפשר לנו להסתיר תוכן ולהציג בעזרת משהו שדומה ל - Expander&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;details&lt;/span&gt; &lt;span style="COLOR:red;"&gt;open&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;open&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;summary&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;The title of the details&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;summary&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;p&lt;/span&gt; &lt;span style="COLOR:red;"&gt;style&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="COLOR:red;"&gt;padding-left&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;:20px&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Content Content Content Content &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Content Content Content Content &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Content Content Content Content &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Content Content Content Content &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;br&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;p&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;details&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&lt;img border="0" alt="Details, Summary - HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/983998/original.aspx" width="248" height="129" /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;אלו דוגמאות לאלמנטים חדשים המאפשרים לנו לעשות דברים חדשים שחלקם לא יכולנו לעשות ועבור חלקם היינו צריכים לעבוד קשה, (כמובן שיש עוד אלמנטים שלא תיארתי כאן.)&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&lt;strong&gt;מאפיינים חדשים.&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;לכל מיני אלנטים קיימים נוספו מאפיינים חדשים המאפשרים יכולות חדשות, לדומא לאלמנט input עבור המאפיין type נוספו היכולות הבאות:&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;Range&lt;/strong&gt;&amp;nbsp; - מאפשר לקבוע תחום.&lt;/div&gt;&lt;/blockquote&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;div dir="ltr" align="left"&gt;&lt;img border="0" alt="Range - HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/984004/original.aspx" width="136" height="31" /&gt;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;דוגמא נחמדה לשימוש תהיה לקשר בן ה - Range לבין ה - Progress&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;progress&lt;/span&gt; &lt;span style="COLOR:red;"&gt;max&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;30&amp;quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;id&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;prog&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;progress&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;input&lt;/span&gt; &lt;span style="COLOR:red;"&gt;type&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;range&amp;quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;min&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;0&amp;quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;max&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;30&amp;quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:red;"&gt;onchange&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;document.getElementById(&amp;#39;prog&amp;#39;).value=this.value&amp;quot;&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;Email&lt;/strong&gt; המאפשר לקבוע שבתיבת טקסט מסויימת יצטרכו להכניס Email, יחד עם מאפיין חדש בשם &lt;strong&gt;requierd&lt;/strong&gt; המגדיר שבזמן submit חייב להיות שם ערך.&lt;/div&gt;&lt;/blockquote&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;
&lt;p dir="ltr" align="left"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#800000" size="2" face="Consolas"&gt;&lt;font color="#800000" size="2" face="Consolas"&gt;&lt;font color="#800000" size="2" face="Consolas"&gt;input&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;type&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;=&amp;quot;email&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;&lt;font color="#ff0000" size="2" face="Consolas"&gt;required&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;=&amp;quot;required&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2" face="Consolas"&gt;&lt;font size="2" face="Consolas"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;/&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p dir="ltr" align="left"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;&lt;img border="0" alt="email requierd - HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/984073/original.aspx" width="200" height="91" /&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;חשוב לשים לב שלא צריך לכתוב קוד javascript כדי לקבל את ההודעות על מה שחסר (או על התוכן שהוא מייל לא תקין).&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;יש עוד רבים כמו &lt;strong&gt;color&lt;/strong&gt;, &lt;strong&gt;time&lt;/strong&gt; שמאפשרים יכולות חדשות שבעבר היינו צריכים לעבוד קשה בשביל להשיג אותם (time נותן לוח שנה)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;יש גם מאפיין בשם &lt;strong&gt;placeholder&lt;/strong&gt; המאפשר להגדיר טקסט בצבע אפור כטקסט התחלתי לפני שהמשתמש התחיל לכתוב&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;input&lt;/span&gt; &lt;span style="COLOR:red;"&gt;type&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span style="COLOR:red;"&gt;placeholder&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;הקלד שם&amp;quot;&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&lt;img border="0" alt="plceholder - HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/984075/original.aspx" width="171" height="36" /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;(נלקח מהקורס של &lt;a href="http://sela.co.il/syl/syllabus.aspx?CourseCode=html5&amp;amp;CategoryID=165" target="_blank"&gt;מכללת סלע על HTML5&lt;/a&gt;)&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="ltr" align="left"&gt;&lt;img border="0" alt="inputs - HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/984077/original.aspx" width="240" height="332" /&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;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;אחד מהאלמנטים החדשים מאפשר לנו לעשות autocomplete מבלי תוספות רק לדאוג למידע)&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;input&lt;/span&gt; &lt;span style="COLOR:red;"&gt;type&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span style="COLOR:red;"&gt;list&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;list1&amp;quot;&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;datalist&lt;/span&gt; &lt;span style="COLOR:red;"&gt;id&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;list1&amp;quot;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;שלמה גולדברג&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;שלום כץ&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;נועם כפיר&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;מנחם הולידר&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;חיים בריקמן&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;יוסי גולדברג&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt; &lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;quot;שמוליק סגל&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;option&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:maroon;"&gt;datalist&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&lt;img border="0" alt="datalist - HTML5" src="http://blogs.microsoft.co.il/photos/shlomo/images/984083/original.aspx" width="167" height="121" /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כמובן שיש עוד הרבה ולא אפרט כאן, חשוב לראות ולהבין שהיכולות של HTML5 מקילות עלינו את החיים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נקודה חשובה נוספת, לא כל הפיצ&amp;#39;רים שתארתי כאן נתמכים בכל הדפדפנים (כל פיצ&amp;#39;ר ודפדפנו) - אבל הדרך לא ארוכה עד שכולם יתמכו בהכול.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=984088" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html/default.aspx">html</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html5/default.aspx">html5</category></item><item><title>HTML5 - The Modernizr </title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/04/html5-the-modernizr.aspx</link><pubDate>Wed, 04 Jan 2012 08:34:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:978632</guid><dc:creator>Shlomo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=978632</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/04/html5-the-modernizr.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;בדיקת תמיכת פיצ&amp;#39;ר בדפדפן:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;כפי שהבטחתי &lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/01/html5-html-review.aspx"&gt;בפוסט הקודם&lt;/a&gt;&amp;nbsp;אני אדבר היום איך כותבים ב - HTML5 עם מינימום נזק לדפדפנים שאינם תומכים ב - HTML5.&lt;/div&gt;&lt;/blockquote&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;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;כשנרצה להשתמש בפיצ&amp;#39;רים שונים של HTML5 נרצה לוודא האם הדפדפן תומך בזה - לדוגמא לפני שימוש ב - &lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/04/16/ie8-dom-storage.aspx"&gt;localStorage&lt;/a&gt; וכדו&amp;#39;.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כדי לוודא זאת נוכל להוריד ספריית JS חביבה בשם &lt;a href="http://www.modernizr.com/"&gt;Modernizr&lt;/a&gt;. ולכתוב:&lt;/div&gt;&lt;/blockquote&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;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;&lt;pre style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;if&lt;/span&gt;(Modernizr.localstorage)&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;{&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;וכך נוכל לבדוק כל פיצ&amp;#39;ר שנרצה להשתמש איתו ב - JS בבטחה.&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;אוטומציה לתהליך:&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;כמובן שנעדיף מנגנון יותר אוטומטי שיטען קבצי סקריפט שונים במידה&amp;nbsp;והדפדפן תומך (או לא) בפיצ&amp;#39;ר מסויים.&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://yepnopejs.com/"&gt;yepnope&lt;/a&gt;&amp;nbsp;ואז נוכל לכתוב קוד כזה:&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;&lt;pre style="MARGIN:0px;"&gt;Modernizr.load({&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; test: Modernizr.localstorage,&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; yep: &lt;span style="COLOR:maroon;"&gt;&amp;#39;workWithStorage.js&amp;#39;&lt;/span&gt;,&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; nope: &lt;span style="COLOR:maroon;"&gt;&amp;#39;workWithcookie.js&amp;#39;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="MARGIN:0px;"&gt;});&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;וכך יירד קובץ ה - JS (או ה - CSS) המתאים לפי הפיצ&amp;#39;רים שהדפדפן תומך.&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&lt;strong&gt;תמיכה ב - CSS:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;נוסף על כך ספריית ה - Modernizr מוסיפה css classes ל - html לפי התכונות הנתמכות, כך שאם הדפדפן שלנו לא תומך ב - border-raduis קובץ ה - html יקבל את class בשם&amp;nbsp;no-borderradius. &lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לדוגמאות והרחבה בנושא &lt;a href="http://blogs.microsoft.co.il/blogs/bursteg/archive/2011/07/25/html5-modernizr.aspx"&gt;בבלוג של גיא בורשטיין.&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;ספריות עזר לתמיכה באלמנטים שונים:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;יש הרבה ספריות עזר כדי לקבל יכולות HTML5 בדפדפנים ישנים.(&lt;a href="https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills"&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;נניח שתרצו להשתמש בתג progress של HTML5 ואתם נמצאים בדפדפן שאינו תומך, תוכלו &lt;a href="https://github.com/LeaVerou/HTML5-Progress-polyfill"&gt;להוריד מכאן&lt;/a&gt;&amp;nbsp;css ו - js שיהפכו כל אלמנט progress לתמונה שתחקה את ההתנהגות של progress.&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;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לסיכום - ניתן כבר היום להתחיל לכתוב עם HTML5, נוכל להחליט שאנחנו תומכים רק בדפדפנים מתקדמים (שזו החלטה לגיטימית - בעיקר אם אנחנו כותבים אפליקציות לסביבות סגורות) או שנחליט שאנחנו רוצים לתמוך בכולם ובמקרה זה נצטרך להשתמש בספריות חיצונית כדי לקבל תמיכה אחורה לדפדפנים שונים.&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=978632" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html/default.aspx">html</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html5/default.aspx">html5</category></item><item><title>מפגש פורום תפוז </title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/02/976855.aspx</link><pubDate>Mon, 02 Jan 2012 18:17:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:976855</guid><dc:creator>Shlomo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=976855</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/02/976855.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;כמידי תקופה אנחנו (&lt;a href="http://www.tapuz.co.il/Forums2008/ForumPage.aspx?ForumId=831&amp;amp;r=1" target="_blank"&gt;חברי פורום תפוז&lt;/a&gt;) מארגנים מפגש טכנולוגי.&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;המפגש הבא יערך ב - 24 לינואר&amp;nbsp;יום שלישי.&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;מכללת סלע מארחת כמידי פעם את המפגש - הכתובת: ברוך הירש 14 בני ברק (מול קניון אילון - חניה חופשית)&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;בתוכנית:&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;17:30 - 18:00 התכנסות.&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;18:00 - 18:50 הרצאה ראשונה של עידו פלטו על Fiddler.&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;18:50 - 19:00 הפסקה.&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;19:00 - 19:50 הרצאה של גדי מאיר על אחד מהנושאים החביבים עליו (כנראה על הכנת &amp;quot;היישום שלך לסביבת הייצור&amp;quot; או על &amp;quot;למידה מהנחיות של מייקרוסופט לגבי כתיבת קוד נכון&amp;quot;)&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;20:00 - 20:50 הרצאה של רון קליין על שינוי קוד - מפרוצדורלי ל OOP. או על מבוא ל MSMQ ודוגמה מהחיים.&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;ניתן להרשם ב - LinkedIn.&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&lt;a href="http://tapuz-net-2012-a.eventbrite.com/"&gt;http://tapuz-net-2012-a.eventbrite.com/&lt;/a&gt;&lt;/div&gt;
&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;" dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=976855" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/OFFTOPIC/default.aspx">OFFTOPIC</category></item><item><title>HTML5 - HTML Review</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/01/html5-html-review.aspx</link><pubDate>Sun, 01 Jan 2012 18:44:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:975871</guid><dc:creator>Shlomo</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=975871</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2012/01/01/html5-html-review.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;הקדמה:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;מאז ש&lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html5/default.aspx"&gt;כתבתי על כל מיני פיצ&amp;#39;רים&lt;/a&gt; ב - HTML5, דברים התווספו והשתנו בתקן ובדפדפנים, אני מתכוון להמשיך לכתוב על פיצ&amp;#39;רים שונים ומשונים של התקן, אך לפני הכול קצת היסטוריה ולמה בכלל אנחנו רוצים לעבוד עם HTML5.&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&lt;strong&gt;היסטוריה:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;HTML - Hyper Text Markup Language, נולד בשנת 1991 על ידי Tim Berners-Lee, כדרך להעברת טקסט סטטי תמונות ולינקים לדפים סטטים אחרים על גבי הרשת (באותה שנה גם יצא תקן ה -&amp;nbsp;HTTP לאויר העולם).&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשנת&amp;nbsp;1994-1995 העולם התקדם לתקן HTML2 שהכיל פיצ&amp;#39;רים חשובים כמו טבלאות העלאת קבצים וכד&amp;#39;.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשנת 1996 קבלנו את המושגים CSS1 ו - JavaScript שקידם את יכולות ה - HTML מסתם מידע סטטי לדף עם מידע דינמי (לפתע היה מקצוע בשם &amp;quot;מתכנת Web&amp;quot;).&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשנת 1997 התקדם התקן ל - HTML4 (לכמה חודשים היה HTML3.2) עם יכולות ה - Frames ואחרים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשנת 1998 - התקדם ה - CSS לגרסה 2, עם פיצ&amp;#39;רים חדשים לעיצוב.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשנת 2000 - השתנה התקן ל - XHTML וגרם למפתחי ה - HTML לכתוב קוד יותר מוקשח ותקני.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשנת 2002 התחילו מלחמות הדת כיצד נכון וראוי לעמד את דפי ה - HTML (בעזרת div/table).&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשנת 2005 נכנס לתקן המושג &lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/10/27/the-complete-guide-of-asp-net-ajax.aspx"&gt;AJAX&lt;/a&gt;&amp;nbsp;(ב - IE זה היה קיים משנת 2002 כ - ActiveX)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;ובשנת 2009 התחילו לדבר על HTML5 (למעשה W3C התחיל את תקן XHTML2 וקבוצת WHATWG התחילו את תקן Web Forms and Web Application, ולאחר מכן הם התאחדו לכדי תקן HTML5)&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;div dir="rtl" align="right"&gt;כמובן שרשימה זו חלקית ואינה מלאה וישנם כל מיני גרסאות ביניים, אבל בגדול זה מה שעברנו עם ה - HTML.&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;div dir="rtl" align="right"&gt;חשוב לשים לב שמשנת 1991 עד 1997 עברנו ארבע גרסאות, ומאז ועד היום אנחנו תקועים באותה גרסה, (XHTML אינו נחשב לשינוי גרסה מכיוון שזה רק מדבר על הקשחת הקוד) כשבפועל העולם מתקדם והתקן שבהחלט התאים אז כבר אינו מתאים היום, בעבר כתבו דפי מידע (ויקיפדיה) היום מצפים מאיתנו לכתוב אפליקציות (פייסבוק), מה שגורם לנו לעשות כל מיני דברים מוזרים ולכתוב הרבה קוד שבכל סביבה אחרת זה טריוויאלי לחלוטין.&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&lt;strong&gt;&amp;nbsp;HTML5:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;מה הם הסיבות שבעטיים נרצה לעבור ל - HTML5.&lt;/div&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כמובן הסיבה הראשונה שהזכרתי למעלה, שהתקן הנוכחי אינו מתאים לאתרים מודרניים ואינו מכיל מספיק פיצ&amp;#39;רים לכתיבה נוחה.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;עימוד האתר בעזרת Divs או Tables אינו נכון לוגית, מכיוון שאין שום משמעות לאלמנטים (div, tr) בהקשר של התוכן שהוא מכיל, אנו מצפים להשתמש בתגים בעלי משמעות לתוכן שהם מכילים (nav עבור תוכן שמכיל לינקים וכדו&amp;#39;)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;הצורך לכתוב קוד שונה עבור כל דפדפן - בעוד שמבחינתנו הדפדפן הוא האמצעי (אירוח האפליקציה) ולא המטרה.&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&lt;strong&gt;התקן:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;חשוב לזכור - לפי השמועות התקן ייסגר בשנת 2022 (אלפיים עשרים ושנים) וזה עוד ה ר ב ה זמן - דברים משתנים וישתנו ככל שיעבור הזמן, לא כל הדפדפנים תומכים בכל התכונות, ולא כולם מממשים אותם בצורה זהה בשלב זה. אבל אם אפשר לכתוב כבר עכשיו בדברים שכבר סגורים וכנראה לא ישתנו - כדאי לעשות זאת ולא להשאר מאחור.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;יש פתרונות מעניינים לבעיות התאימות - ואני אספר אליהם בפרק הבא.&lt;/div&gt;&lt;/blockquote&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;div dir="rtl" align="right"&gt;&lt;strong&gt;מה זה בכלל HTML5:&lt;/strong&gt;&lt;/div&gt;
&lt;blockquote&gt;
&lt;div dir="rtl" align="right"&gt;מתי שהוא כשהתחילו לדבר על HTML5, הראו את הגרפיקות המשחקים והאנימציות המדהימות שאפשר לעשות בעזרת HTML5.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;זהו לא HTML5, זה באזז.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;הסיבה שבעיני הקהל הרחב מה שמתקשר ל - HTML5 אלו הדברים שתיארתי, מכיוון שכשצריך להציג HTML5 צריך להראות דברים שמושכים את העין וכמובן משחקים ואנימציות זה דבר מדהים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&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;HTML5, התשובה היא: HTML + CSS3 + JavaScript API, &lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;HTML&lt;/strong&gt; - קיבל הרבה אלמנטים חדשים - כמו סוגים חדשים של Input, לדוגמא (range, mail, color), הוא קבל את היכולת להגדיר required על כל input בלי צורך לכתוב javascript שיעשה את הבדיקה, ועוד.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;CSS3&lt;/strong&gt; - מאפשר מאפיינים חדשים כמו border-raduis, css selctors.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&lt;strong&gt;JavaScript API&lt;/strong&gt; - מאפשר יכולות של הרצה מקבילית של קוד, זניחת הכתיבה המעצבנת של Cookies, כתיבה לבסיס נתונים בצד הלקוח, ועוד.&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;div dir="rtl" align="right"&gt;זהו בעיני HTML5, הכתיבה הקלה יותר, מרובת הפיצ&amp;#39;רים שחוסכים זמן ועבודה, זהו ה - HTML5 האמיתי שכל כך מרגש אותי ואני מחכה לו בקוצר רוח.&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;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בפוסט הבא אני אציג ואספר כיצד כותבים קוד HTML5 מבלי לפגוע בדפדפנים שאינם תומכים ב - HTML5 (או לפחות ננסה לעשות את המקסימום)&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=975871" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/Web/default.aspx">Web</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html/default.aspx">html</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/html5/default.aspx">html5</category></item><item><title>הרצת כמה WorkerRole בפרוייקט azure אחד</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/28/workerrole-azure.aspx</link><pubDate>Wed, 28 Dec 2011 12:47:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:971670</guid><dc:creator>Shlomo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=971670</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/28/workerrole-azure.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;בהמשך &lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/25/webrole-azure.aspx"&gt;לפוסט&lt;/a&gt; שהסביר כיצד להריץ כמה Web Roles במחשב אחד, נראה כעת כיצד להריץ כמה Worker Roles במחשב אחד.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בשונה מ - Web Roles שכדי להריץ אותם ממחשב אחד צריך רק לעשות שינויים בקובץ הקונפיג, ב - Worker Role זה כבר דורש שינוי קוד.&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://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/running-multiple-threads-on-windows.html"&gt;שנכתב כאן&lt;/a&gt;&amp;nbsp;(כדאי לקרוא את ההסברים שם) - את דוגמת הקוד וה - framework&amp;nbsp;שלהם אפשר &lt;a href="http://berryintl-download.s3.amazonaws.com/Public/ThreadedRole.zip"&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;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כדי להשתמש בקוד שלהם צריך לייצר WorkerRole שיורש ממחלקה בשם ThreadedRoleEntryPoint (מחלקה שהם כתבו)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כל WorkerRole צריך לרשת מ - WorkerEntryPoint. ולא מ - RoleEntryPoint&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;div dir="rtl" align="right"&gt;וכעת ניתן לכתוב את הקוד הבא ב - WorkerRole (שאמור להכיל את שאר ה&amp;nbsp;- Roles)&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&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;WorkerRole&lt;/span&gt; : &lt;span style="COLOR:#2b91af;"&gt;ThreadedRoleEntryPoint&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;bool&lt;/span&gt; OnStart()&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;WorkerEntryPoint&lt;/span&gt;&amp;gt; workers = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;WorkerEntryPoint&lt;/span&gt;&amp;gt;();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; workers.Add(&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;RaderWorkerRole&lt;/span&gt;());&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; workers.Add(&lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;LogWorker&lt;/span&gt;());&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;base&lt;/span&gt;.OnStart(workers.ToArray());&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&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;div dir="rtl" align="right"&gt;וזהו. (שוב - מומלץ לקרוא את הפוסט המקורי ולהבין איך זה עובד מאחורי הקלעים - זה לא מסובך)&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=971670" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/azure/default.aspx">azure</category></item><item><title>הרצת כמה WebRole בפרוייקט azure אחד</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/25/webrole-azure.aspx</link><pubDate>Sun, 25 Dec 2011 06:48:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:968327</guid><dc:creator>Shlomo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=968327</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/25/webrole-azure.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;הרבה פעמים יש לנו כמה פרוייקטים שאמורים להתארח על IIS,&amp;nbsp;בסביבה רגילה נארח את כולם על אותו IIS בשרת אחד, ב - azure העניינים קצת יותר מסובכים, היות שכברירת מחדל כל web role אמור לרוץ על מחשב משלו - מה שכמובן הרבה פעמים מיותר ועולה כסף.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;יש כמה פתרונות לזה - אני אדגים כאן&amp;nbsp;פיתרון בעזרת הגדרה של Virtual Application.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;Virtual Application הוא בעצם Application רגיל שאנחנו מכירים ב - IIS - מה שמיוחד זה כיצד להגדיר אותו שירוץ כמו שצריך ב - azure.&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;div dir="rtl" align="right"&gt;ראשית נכנס לקובץ ServiceDefinition.csdef, נמחק את הגדרות ה - WebRoles שאנחנו לא מעוניינים שיעלו כמחשב נפרד.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לאחר מכן תחת Site (לפני הגדרת ה - Bindings)&amp;nbsp;בהגדרה של הפרוייקט שאנחנו מתעדים להעלות אותו כמחשב נכתוב את הקוד הבא:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;VirtualApplication&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;a10&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;physicalDirectory&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;c:\........&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;VirtualApplication&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כמובן שה - physicalDirectory צריך להכיל את המיקום המדוייק בו נמצא הפרוייקט, המאפיין name מכיל את ה - alias דרכו יגלשו לאתר.&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;div dir="rtl" align="right"&gt;כמה נקודות שצריך לזכור, היות שה - Site עצמו מפנה לאיזשהוא אפליקציה (מה שמוגדר במאפיין Name של ה - WebRole) זה אומר שההגדרות הקונפיג של פרוייקט ה&amp;quot;אבא&amp;quot; מחלחלים לכל ה - Virtual Applications וצריך להזהר משכפולים (כמו למשל עם אותו ConnectionString יהיה מוגדר בשניהם, יגרום להתרסקות ה - Virtual Application).&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;עוד דוגמא לבעייה&amp;nbsp;- כיום azure לא תומך ב - MVC3, אם ברצונכם בכל זאת לעבוד איתו, צריך להגדיר על רשימת ה - dll&amp;#39;s הבאים Copy Local עם הערך true.&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;div dir="ltr" align="left"&gt;Microsoft.Web.Infrastructure &lt;br /&gt;System.Web.Helpers &lt;br /&gt;System.Web.Mvc &lt;br /&gt;System.Web.Razor &lt;br /&gt;System.Web.WebPages &lt;br /&gt;System.Web.WebPages.Deployment &lt;br /&gt;System.Web.WebPages.Razor&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;במידה ופרוייקט ה&amp;quot;אבא&amp;quot; יהיה MVC3 - כל שאר ה - Virtal Applications יצטרכו להכיל את כל אותם dll&amp;#39;s אע&amp;quot;פ שהם כלל לא ישתמשו בהם (לדוגמא wcf service).&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;פתרון טוב לבעיות אלו, יהיה להגדיר את פרוייקט ה&amp;quot;אבא&amp;quot; כפרוייקט ריק שאין בו כלום, ולהגדיר את כל שאר הפרוייקטים כ - Virtual Applications.&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;div dir="rtl" align="right"&gt;פתרון אחר הוא להגדיר כמה Sites, אבל על זה אכתוב בהזדמנות אחרת.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=968327" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/mvc/default.aspx">mvc</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/azure/default.aspx">azure</category></item><item><title>קריאת הערכים מתוך קבצי קונפיג בפרוייקט שיכול לרוץ בענן</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/19/961882.aspx</link><pubDate>Mon, 19 Dec 2011 08:20:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:961882</guid><dc:creator>Shlomo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=961882</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/19/961882.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;כשאנחנו מפתחים אפליקציות web אנחנו משתמשים בקובץ הקונפיג כדי להגדיר את ה - Connection String והגדרות שונות ב - App Settings, במעבר ל - azure הדברים מסתבכים קצת יותר, ניתן עדיין להגדיר את כל ההגדרות בקובץ ה - web.config, אבל זה אומר שבכל שינוי נצטרך לעשות Upload מחדש למערכת - מה שכמובן לא מומלץ.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;האופציה האחרת היא להשתמש בקבצי הקונפיג של azure.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;ניתן כמובן להשתמש עם חלון המאפיינים של הפרוייקט (תחת תיקיית ה - Roles, לחיצה כפולה על ה - Role המתאים) - אבל כדי להבין מה עושים תמיד עדיף בהתחלה לכתוב לבד.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בפרוייקט ה - azure שלכם ניתן לפתוח את הקובץ ServiceDefinition.csdef, בתוך ה - Role המתאים ניתן לכתוב את המקטע הבא:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ConfigurationSettings&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;Setting&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;DBConnectionString&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ConfigurationSettings&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&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;div dir="rtl" align="right"&gt;כעת נעבור לקבצים ServiceConfiguration.Local.cscfg, ServiceConfiguration.Cloud.cscfg אשר הם מכילים את הערכים עצמם.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;קובץ Local מכיל את ההגדרות כשהמערכת רצה עם האימולטור, וקובץ ה - Cloud מכיל את ההגדרות כשהמערכת תהיה בענן.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נכתוב את הקוד המתאים לפי הסביבה&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ConfigurationSettings&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;Setting&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;DBConnectionString&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;CONNECTION_STRING&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;ConfigurationSettings&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כעת בקוד כשנרצה לקרוא את הערך נוכל לכתוב משהו כזה:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; connStr = &lt;span style="COLOR:#2b91af;"&gt;RoleEnvironment&lt;/span&gt;.GetConfigurationSettingValue(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;DBConnectionString&amp;quot;&lt;/span&gt;);&lt;/p&gt;&lt;/div&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;div dir="rtl" align="right"&gt;כדי להגדיר בנוחות בלי צורך לכתוב xml, ניתן לפתוח את ה - Role המתאים, לבחור בטאב Settings ולהוסיף כל הגדרה שתרצו, כדי להגדיר את הערכים צריך לבחור בקומבו (בחלק העליון של המסך) עבור איזה סביבה רוצים להגדיר את הערכים.&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;div dir="rtl" align="right"&gt;הבעייה עם הקוד הזה - שהוא מכריח אותנו להריץ לוקלית את האפליקציה עם האימולטור, לפעמים נרצה להריץ אותו תחת IIS כמו שהכרנו בעבר, מה שיגרום להתרסקות האפליקצייה בזמן ניסיון לקריאה מה - RoleEnvironment.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כדי לפתור זאת - כתב ידידי היקר &lt;strong&gt;חיים בריקמן&lt;/strong&gt; את הקוד הבא:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:11pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;class&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;ConfigFetcher&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;bool&lt;/span&gt; isRunningOnCloud = &lt;span style="COLOR:blue;"&gt;false&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; ConfigFetcher()&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; isRunningOnCloud = &lt;span style="COLOR:#2b91af;"&gt;RoleEnvironment&lt;/span&gt;.IsAvailable || &lt;span style="COLOR:#2b91af;"&gt;RoleEnvironment&lt;/span&gt;.IsEmulated;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; Fetch(&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; name)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; val;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (isRunningOnCloud)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; val = FromAzure(name);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;else&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; val = FromConfig(name);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; val;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; FromAzure(&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; name)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;try&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; connStr = &lt;span style="COLOR:#2b91af;"&gt;RoleEnvironment&lt;/span&gt;.GetConfigurationSettingValue(name);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; connStr;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;catch&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; FromConfig(name);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; FromConfig(&lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; name)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; connStr = &lt;span style="COLOR:#2b91af;"&gt;ConfigurationManager&lt;/span&gt;.ConnectionStrings[name];&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (connStr != &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; connStr.ConnectionString;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; setting = &lt;span style="COLOR:#2b91af;"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[name];&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (setting != &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; setting;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;throw&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;ConfigurationErrorsException&lt;/span&gt;(name);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&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;div dir="rtl" align="right"&gt;כעת בכל מקום באפליקציה שצריך ערך מתוך הקונפיג נשתמש במחלקה זו כדי להביא את הנתונים לפי הסביבה המתאימה&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=961882" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/config/default.aspx">config</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/azure/default.aspx">azure</category></item><item><title>ניהול בסיסי של תהליך כניסה והרשאות לאתר</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/15/957883.aspx</link><pubDate>Thu, 15 Dec 2011 07:37:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:957883</guid><dc:creator>Shlomo</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=957883</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/15/957883.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;ניהול משתמשים והרשאות הוא אף פעם לא מהדברים הקלים, בפוסט זה נראה כיצד נשתמש במנגנון הבסיסי של asp.net כדי לוודא שאי אפשר להגיע לשום דף לפני שעברו תהליך login בהצלחה, בנוסף נראה כיצד אנחנו &amp;quot;אומרים&amp;quot; לשרת שהמשתמש עבר לוגין.&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;div dir="rtl" align="right"&gt;הדבר הראשון שנרצה לעשות זה להגדיר שהמשתמש לא יכול לגלוש לשום מקום לפני תהליך login, כדי לעשות זאת נכתוב בקובץ הקונפיג תחת system.web את המקטע הבא:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;authorization&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;deny&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;users&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;?&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;authorization&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;המשמעות של authorization היא הרשאות, במקטע זה אפשר להגדיר חוקים שונים למי מותר להכנס ולמי אסור, ההגדרה הבסיסית ביותר היא כפי שהגדרנו למעלה.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&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;div dir="rtl" align="right"&gt;כמובן שחייבים להגדיר לאפליקצייה מי מנהל את תהליך הלוגין ובאיזה דף אפשר לעשות זאת, את ההגדות הללו נכתוב במקטע הבא:&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;authentication&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;mode&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;Forms&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;forms&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;loginUrl&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;login.aspx&lt;/span&gt;&amp;quot;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;defaultUrl&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;main.aspx&lt;/span&gt;&amp;quot;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;myLoginCookieName&lt;/span&gt;&amp;quot;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;timeout&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;10080&lt;/span&gt;&amp;quot;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;slidingExpiration&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;forms&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;authentication&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נעבור על המאפיינים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לא נכנס לעומק על המשמעות של המאפיין mode, רק אספר שבמידה והוא הוגדר כ - forms זה אומר שהאפליקציה שלנו אחראית על המשתמשים והיא מנהלת את תהליך הלוגין.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;בתוך התגית forms המאפיין loginUrl מכיל את הכתובת לדף שבו מבצעים את תהליך הלוגין, חייבים להגדיר לו זאת מכיוון שהגדרנו במקטע הקודם שאסור לגלוש לאתר במידה והמשתמש אנונימי, ולכן ההגדרה של loginUrl מאפשרת עמוד אחד שאליו ניתן לגלוש. (זה הפרמטר היחיד שחובה להגדיר)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;המאפיין defaultUrl מגדיר את הדף שאליו המשתמש יועבר לאחר תהליך הלוגין.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;המאפיין name מגדיר את שם העוגייה שתשמור את המידע שאומר שהמשתמש עבר login בהצלחה (מומלץ לשנות את שם העוגייה - ברירת המחדל היא .ASPXAUTH)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;המאפיין timeout קובע כמה זמן העוגייה תישמר (ברירת המחדל היא 30 דקות, בדוגמא זה הוגדר כשבוע) - חשוב להבין שההגדרה בקונפיג היא לא ההגדרה של &amp;quot;זכור אותי&amp;quot;, בברירת מחדל העוגיה נשמרת בזיכרון של הדפדפן ולא בקבצים, מה שאומר שכל דפדפן חדש שיפתח יצטרך לוגין בפני עצמו, בהמשך נראה כיצד להגדיר &amp;quot;זכור אותי&amp;quot;.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;המאפיין slidingExpiration מגדיר האם הזמן שהוגדר לעוגייה היא אבסולוטית (כלומר 30 דקות מהרגע הראשון) או מהכניסה האחרונה של המשתמש (כלומר בכל PostBack הזמן מתחיל להספר מחדש).&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;div dir="rtl" align="right"&gt;כעת נכתוב את דף login.aspx, נניח שיש לכם שני תיבות טקסט ולחצן. נכתוב את הקוד הבא:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;protected&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Login_Click(&lt;span style="COLOR:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="COLOR:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (LoginValidate(txtName.Text, txtPassword.Text))&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;FormsAuthentication&lt;/span&gt;.RedirectFromLoginPage(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;); &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&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;div dir="rtl" align="right"&gt;כמובן שהפונקציה LoginValidate היא פונקציה שנצטרך לממש כך שתבדוק האם שם המשתמש והסיסמא חוקיים, במידה וכן, נשתמש בפונקציה שמעבירה את המשתמש לדף שהוגדר כ - defaultUrl, הערך true מגדיר את &amp;quot;זכור אותי&amp;quot; כך שבפעם הבאה שהמשתמש יגלוש לאתר הוא לא יצטרך לעבור login, במידה ותרצו שבכל פעם שהוא נכנס לאפליקציה הוא יעבור תהליך login, הגדירו ערך זה כ - false.&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;div dir="rtl" align="right"&gt;במידה ואתם רוצים להחליט לאיזה דף לגלוש, תוכלו לכתוב את הקוד הבא:&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;protected&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; Login_Click(&lt;span style="COLOR:blue;"&gt;object&lt;/span&gt; sender, &lt;span style="COLOR:#2b91af;"&gt;EventArgs&lt;/span&gt; e)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (LoginValidate(txtName.Text, txtPassword.Text))&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;FormsAuthentication&lt;/span&gt;.SetAuthCookie(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;name&amp;quot;&lt;/span&gt;, &lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;); &lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:green;"&gt;// redirect...&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&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;div dir="rtl" align="right"&gt;פוסט זה הינו הבסיס לתהליך login, ולא דברתי כאן&amp;nbsp;על מנגנון ה - Membership של asp.net - אולי בפוסט ארחיב ארחיב עליו.&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=957883" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/Asp.Net/default.aspx">Asp.Net</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/authentication/default.aspx">authentication</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/authorization/default.aspx">authorization</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/_EA05E405D505D605_/default.aspx">תפוז</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/asp+net/default.aspx">asp net</category></item><item><title>log4net and azure</title><link>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/11/log4net-and-azure.aspx</link><pubDate>Sun, 11 Dec 2011 08:03:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:953952</guid><dc:creator>Shlomo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.microsoft.co.il/blogs/shlomo/rsscomments.aspx?PostID=953952</wfw:commentRss><comments>http://blogs.microsoft.co.il/blogs/shlomo/archive/2011/12/11/log4net-and-azure.aspx#comments</comments><description>&lt;div style="FONT-FAMILY:arial;FONT-SIZE:16px;"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div dir="rtl" align="right"&gt;בדרך כלל אני משתמש בתשתית&amp;nbsp;log4net&amp;nbsp;כדי לשמור לוגים, אני אוהב לשמור אותם אותם לקבצים ואני משתמש ב - RollingFileAppender.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;כמובן שכשעובדים&amp;nbsp;עם windows azure אי אפשר לעבוד בצורה כזו, מכיוון שכדי לקרוא את הלוגים נצטרך להכנס למכונה ב - remote וגרוע מכך בדרך כלל יש יותר ממכונה אחת - מה שאומר שהלוגים נשמרים על מכונות שונות, וכמובן אחר restart שלהם לא יהיה זכר ללוגים.&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;div dir="rtl" align="right"&gt;לכאורה הפיתרון הפשוט הוא לשמור אותם לבסיס נתונים או ל - storage, הבעייה עם בסיס נתונים שהתימחור שלו הוא לפי גודל - ולוגים יכולים לתפוס הרבה מקום, מצד שני עבור storage משלמים לפי מספר טרנזקציות - ואם כותבים הרבה ללוג זה יכול לצאת הרבה כסף.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לכן חשבתי על הפיתרון הבא: &lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;1. נכתוב את הלוג לבסיס נתונים.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;2. פעם ביום נעביר את המידע משם ל - storage, כך נוודא שבסיס הנתונים לא גודל ולא כותבים ל&amp;nbsp;- storage יותר מפעם ביום, &lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;3. כדי לא להעמיס יותר מידי על בסיס הנתונים, נשמור את הלוגים לזיכרון, ובתהליך נפרד אחת לדקה נעביר את כל הלוגים לבסיס הנתונים.&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;div dir="rtl" align="right"&gt;את הפיתרון והקוד המלא (הדוגמא בבלוג לא מכילה את הקוד המלא)&amp;nbsp;&lt;a href="http://blogs.microsoft.co.il/files/folders/953948/download.aspx"&gt;ניתן להוריד כאן&lt;/a&gt;.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;(הדוגמא מכילה גם קוד sql ליצירת בסיס נתונים, לא לשכוח לשנות בקונפיגים את ההפנייה לבסיס הנתונים)&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;div dir="rtl" align="right"&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;div dir="rtl" align="right"&gt;ראשית נבנה בסיס נתונים שנראה כך:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&lt;img border="0" alt="log object" src="http://blogs.microsoft.co.il/photos/shlomo/images/953921/original.aspx" width="163" height="251" /&gt;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נייצר פרוייקט אשר נקרא לו Logging, הוא יהיה הפרוייקט היחידי אשר יחזיק reference ל - log4net.dll, שאר הפרוייקטים רק יצטרכו לכתוב בקונפיג את הגדרות ה - logging.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;(בדוגמא השימוש הוא בעזרת entity framework 4.0)&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;אחרי שתייבאו את בסיס הנתונים למודל, נרצה לכתוב קוד שיודע להמיר בין אובייקט של log4net לבין אובייקט Log של המודל, נכתוב את הקוד הבא&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;partial&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;class&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;Log&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;{0} about {1} on {2} at {3}\r\n{4}\r\n{5}\r\n\r\n&amp;quot;&lt;/span&gt;,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Level,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Project,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Instance,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Date,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Message,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;this&lt;/span&gt;.Exception);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;implicit&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;operator&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;Log&lt;/span&gt;(&lt;span style="COLOR:#2b91af;"&gt;LoggingEvent&lt;/span&gt; le)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;Log&lt;/span&gt;()&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Date = le.TimeStamp,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Exception =&amp;nbsp; le.GetExceptionString(),&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Message = le.MessageObject != &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt; ? le.MessageObject.ToString() : &lt;span style="COLOR:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Instance = 0,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Level = le.Level.Name,&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Project = AssemblyName&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; _name;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; AssemblyName&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (_name == &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; _name = &lt;span style="COLOR:#2b91af;"&gt;Assembly&lt;/span&gt;.GetExecutingAssembly().GetName().Name;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; _name;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נשתמש במנגנון partial calss כדי להוסיף יכולות למודל שלנו.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נדרוס את מתודת&amp;nbsp;ToString כדי לקבל מחרוזת &amp;quot;אנושית&amp;quot; עבור כל שגיאה,&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;לאחר מכן נשתמש במנגון &lt;a href="http://blogs.microsoft.co.il/blogs/shlomo/archive/2010/04/06/operator-overload-part-2-explicit-implicit.aspx"&gt;implicit casting&lt;/a&gt;&amp;nbsp;כדי להמיר בין אובייקט של LoggingEvent (ששיך ל - log4net) לבין אובייקט Log (ששיך למודל).&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;div dir="rtl" align="right"&gt;כעת נוסיף מחלקה בשם Logger שיהיו לה שני תפקידים, ראשית - היא תעשה עטיפה לכל הפונקציות של log4net, כדי שניתן יהיה לכתוב ללוג (לא מופיע בדוגמא רק בקוד להורדה),&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;שנית - היא תחזיק timer אשר בכל פעימה תיקח את כל הנתונים מהזיכרון (כזכור אנחנו משתמשים ב - log4net ושומרים את המידע בזיכרון) ותשפוך אותם לבסיס הנתונים,&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;הקוד יראה כך:&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;class&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;Logger&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;internal&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;readonly&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;ILog&lt;/span&gt; _log;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;Timer&lt;/span&gt; _timer;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;public&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; Period&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;get&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;int&lt;/span&gt; period;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;if&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;int&lt;/span&gt;.TryParse(&lt;span style="COLOR:#2b91af;"&gt;ConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="COLOR:#a31515;"&gt;&amp;quot;LogPeriod&amp;quot;&lt;/span&gt;], &lt;span style="COLOR:blue;"&gt;out&lt;/span&gt; period))&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; period;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; 60000;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; Logger()&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;XmlConfigurator&lt;/span&gt;.Configure();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; _log = &lt;span style="COLOR:#2b91af;"&gt;LogManager&lt;/span&gt;.GetLogger(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; _timer = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;Timer&lt;/span&gt;(TimerCallback, &lt;span style="COLOR:blue;"&gt;null&lt;/span&gt;, 0, Period);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;object&lt;/span&gt; lookObject = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;object&lt;/span&gt;();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;static&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;void&lt;/span&gt; TimerCallback(&lt;span style="COLOR:blue;"&gt;object&lt;/span&gt; state)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;try&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;lock&lt;/span&gt; (lookObject)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;using&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;LogEntities&lt;/span&gt; context = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;LogEntities&lt;/span&gt;(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Logger&amp;quot;&lt;/span&gt;))&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;MemoryAppender&lt;/span&gt; ap = (&lt;span style="COLOR:#2b91af;"&gt;MemoryAppender&lt;/span&gt;)&lt;span style="COLOR:#2b91af;"&gt;LogManager&lt;/span&gt;.GetLoggerRepository().GetAppenders()[0];&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; logs = ap.GetEvents();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ap.Clear();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; item &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; logs)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; context.Logs.AddObject(item);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; context.SaveChanges();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;catch&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;Exception&lt;/span&gt; ex)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&lt;/span&gt;&lt;/p&gt;} 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&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;div dir="rtl" align="right"&gt;ב - static ctor נאתחל את הלוג כפי שיוגדר בקבצי הקונפיגורציה (נראה בהמשך).&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;המאפיין Period יאותחל כברירת מחדל על דקה - או בהגדרה בקונפיג. (מגדיר כל כמה זמן לאסוף את הנתונים מהזיכרון ולשמור בבסיס הנתונים).&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;וכמובן הפוקנציה של ה - timer, אוספת את הנתונים מה - Logger ושומרת אותם לבסיס הנתונים, (כל אובייקט מתוך GetEvents יהיה מסוג LoggingEvent, ובקריאה ל - AddObject הוא עובר המרה אוטומטית לאובייקט מסוג Log בעזרת הפונקציה מהמחלקה הקודמת שמשתמשת ב - Implicit casting.&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;div dir="rtl" align="right"&gt;כל מי שירצה לכתוב ללוג, יוסיף reference לפרוייקט זה, ויוכל לקרוא לפונקציות הכתיבה בלוג, הדבר היחיד שצריך לעשות זה להוסיף בקבצי הקונפיגורציה את הקוד הבא:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;configSections&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;section&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;log4net&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;type&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;log4net.Config.Log4NetConfigurationSectionHandler, log4net&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;configSections&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;log4net&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;appender&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;name&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;MemoryAppender&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;type&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;log4net.Appender.MemoryAppender&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;appender&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;root&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;level&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;value&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;DEBUG&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;appender-ref&lt;/span&gt;&lt;span style="COLOR:blue;"&gt; &lt;/span&gt;&lt;span style="COLOR:red;"&gt;ref&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt;MemoryAppender&lt;/span&gt;&amp;quot;&lt;span style="COLOR:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;root&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;log4net&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&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;div dir="rtl" align="right"&gt;הדבר האחרון שנשאר - הוא לוודא שפעם ביום נעביר את הלוגים מבסיס הנתונים ל - storage.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נייצר פרוייקט מסוג worker role ונכתוב את הקוד הבא:&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="ltr" align="left"&gt;
&lt;div style="FONT-FAMILY:Consolas;BACKGROUND:white;COLOR:black;FONT-SIZE:10pt;"&gt;
&lt;p style="MARGIN:0px;"&gt;&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;void&lt;/span&gt; Run()&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;while&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;true&lt;/span&gt;)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; InitBlob();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;Thread&lt;/span&gt;.Sleep(86400000);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;using&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;LogEntities&lt;/span&gt; context = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;LogEntities&lt;/span&gt;(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Logger&amp;quot;&lt;/span&gt;))&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; list = context.Logs.ToList();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt; str = &lt;span style="COLOR:#a31515;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:blue;"&gt;var&lt;/span&gt; item &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; list)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; str += (item.ToString());&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; context.Logs.DeleteObject(item);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;CloudBlob&lt;/span&gt; blob = _blobContainer.GetBlobReference(&lt;span style="COLOR:#2b91af;"&gt;DateTime&lt;/span&gt;.Now.ToString(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;dd-MM-yyyy HH-mm&amp;quot;&lt;/span&gt;));&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; blob.UploadText(str);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; context.SaveChanges();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;הפונקציה InitBlob מאתחלת את המשתנים שמגדירים את הגישה ל - blob, לאחר מכן ניתן לתהליך לנוח כיום עבודה.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;נאסוף את כל הנתונים מבסיס הנתונים, נשמור אותם ל - storage עם שם שמכיל את התאריך, ובא לציון גואל.&lt;/div&gt;
&lt;div dir="rtl" align="right"&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=953952" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/EF/default.aspx">EF</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/azure/default.aspx">azure</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/log/default.aspx">log</category><category domain="http://blogs.microsoft.co.il/blogs/shlomo/archive/tags/log4net/default.aspx">log4net</category></item></channel></rss>
