<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
      <title>Office System Israeli Bloggers</title>
      <description>Pipes Output</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=ZJxcjW7I3BG_KqDxl7okhQ</link>
      <atom:link rel="next" href="http://pipes.yahoo.com/pipes/pipe.run?_id=ZJxcjW7I3BG_KqDxl7okhQ&amp;_render=rss&amp;page=2"/>
      <pubDate>Thu, 01 Oct 2015 21:33:55 +0000</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>ניהול פרויקטים- מה חשוב באמת?</title>
         <link>http://blogs.microsoft.co.il/efrat/2015/07/18/%d7%a0%d7%99%d7%94%d7%95%d7%9c-%d7%a4%d7%a8%d7%95%d7%99%d7%a7%d7%98%d7%99%d7%9d-%d7%9e%d7%94-%d7%97%d7%a9%d7%95%d7%91-%d7%91%d7%90%d7%9e%d7%aa/</link>
         <description>בבית ספר למנהלי פרויקטים תמיד לימדו אותנו שמודדים פרויקט מוצלח אם הוא עמד בלו&amp;#34;ז ובתקציב. ישנם גם פרויקטים שהסתיימו בלו&amp;#34;ז ועמדו בתקציב ואם שואלים את הלקוח אם הפרויקט היה מוצלח, לא תמיד נקבל תשובה חד משמעית, ולעיתים אף מגמגמת&amp;#8230; עמידה בלו&amp;#34;ז, עמידה בתקציב ושמירה מוגדרת של תיחום הפרויקט- אלה הן מטרות משנה שיובילו למטרה העיקרית [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/efrat/?p=1736746</guid>
         <pubDate>Sat, 18 Jul 2015 10:27:17 +0000</pubDate>
         <content:encoded><![CDATA[<p style="text-align:right;">בבית ספר למנהלי פרויקטים תמיד לימדו אותנו שמודדים פרויקט מוצלח אם הוא עמד בלו&quot;ז ובתקציב.</p>
<p style="text-align:right;">ישנם גם פרויקטים שהסתיימו בלו&quot;ז ועמדו בתקציב ואם שואלים את הלקוח אם הפרויקט היה מוצלח, לא תמיד נקבל תשובה חד משמעית, ולעיתים אף מגמגמת&#8230;</p>
<p style="text-align:right;">עמידה בלו&quot;ז, עמידה בתקציב ושמירה מוגדרת של תיחום הפרויקט- אלה הן מטרות משנה שיובילו למטרה העיקרית של השבחת הערך לארגון, אם כי לא המטרות העיקריות של הפרויקט.</p>
<p style="text-align:right;">לכן יש להכניס ממד נוסף בבחינה של פרויקטים, במדידתם ואף לשלב זאת בשיטת הניהול והיא: &quot;השבחת הערך הארגוני שהפרויקט מספק לארגון&quot;, לדוגמא: הגדלת תפוקה,  קיצור זמני תגובה,  מדידה ובקרה, הגדלת הרווח וכדומה.</p>
<p style="text-align:right;">תפיסה זו מובילה להתמודדויות אחרות ממה שאנו מכירים:</p>
<ol>
<li style="text-align:right;">יש לבחון כל פרויקט עפ&quot;י השבחת הערך שלו לארגון יחד עם קלות הביצוע.</li>
<li style="text-align:right;">יש למכן תהליך שוטף עבור פרויקטים בביצוע על מנת לבחון את תרומתם להשבחת הערך לארגון, ובפרויקטים שנמצאו כי הערך לארגון אינו משמעותי, יש לקבל החלטה אמיצה ולהפסיק את הפרויקט במהלכו.</li>
<li style="text-align:right;">על פרויקטים שמסתיימים והופכים למערכות המופעלות בשוטף, יש לוודא שהן ממשיכות לספק ערך ארגוני לאורך כל חיי מחזור המערכת, אחרת יש לבחון נחיצותה לארגון.</li>
</ol>
<p>כתהליך תומך בניהול הפרויקט יש לכלול שיטה של ניהול הידע, ולהתייחס לכך כחלק ממשאבי הפרויקט.</p>
<p>אם לא ננהל משאב זה, הידע לא יישמר, לא יישאר ולא נוכל לעשות בו שימוש מושכל בשום שלב בפרויקט וגם לא לאחר סיום הפרויקט בשלב התחזוקה במחזור חיי המערכת.</p>
<p>אני מכירה פרויקטים גדולים מאוד שהבינו זאת רק בשלבים המאוחרים של הפרויקט ואז היה מאוחר מדי להחזיר את הגלגל לאחור ולשחזר את הידע, כי זה כבר לא אותו הדבר: הידע כבר לא שם, בכל אופן לא כמו שהיינו רוצים לשמר אותו.</p>
<p>לכן, יש להכניס את שיטת ניהול הידע כחלק בשיטת ניהול הפרויקט, כחלק משיטות העבודה של הפרויקט.</p>]]></content:encoded>
      </item>
      <item>
         <title>Strangest error using power shell to connect to SharePoint online</title>
         <link>http://kwizcom.blogspot.com/2015/05/strangest-error-using-power-shell-to.html</link>
         <description>My simple power shell script which I used to create large lists stopped working, reporting the following strange error: &quot;The Application ID (AppID) for which the service ticket is requested does not exist on the system.&quot;  After struggling with what appears to be a mess of people reporting it on different forums and blogs, even offering vudu solutions on how working from home would cause this issue, and running to the office might resolve it - I almost gave up.  Until I noticed my login user name had a typo in it.  Correcting it resolved the issue - so I guess this error message is actually a login user name / password are wrong...  The error comes as soon as you try to create client context or pull any information.  Not saying there couldn't be any other causes for this issue, just be sure to triple check you provided the correct login information...  my code:  $User = &quot;user@domain.com&quot; $SiteURL = &quot;https://sometenant.sharepoint.com&quot; $Password = Read-Host -Prompt &quot;Please enter your password&quot; -AsSecureString $Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password) $Context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL) $Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($User,$Password) $Context.Credentials = $Creds  ...   Good luck!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-3427377496886239869</guid>
         <pubDate>Mon, 11 May 2015 17:28:00 +0000</pubDate>
      </item>
      <item>
         <title>App part does not show custom properties</title>
         <link>http://kwizcom.blogspot.com/2015/03/app-part-does-not-show-custom-properties.html</link>
         <description>&lt;p&gt;Something very strange was happening on my dev sites on SharePoint online.&lt;/p&gt; &lt;p&gt;Suddenly, my app parts “lost” all their custom properties and when ever I would go to add/edit an app part to my pages I would only see the built in app part properties groups: appearance, layout and advanced:&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh6.ggpht.com/--6aj3Youwx0/VRBZ7fM4wwI/AAAAAAAAAk8/_nTqaHHYukc/s1600-h/image%25255B6%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;float:none;margin-left:auto;border-left:0px;display:block;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/-p7tQX23fJ74/VRBZ7yu_7ZI/AAAAAAAAAlA/GIyWBcTQJQQ/image_thumb%25255B4%25255D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;379&quot;&gt;&lt;/a&gt;For some reason, on my other non-dev tenants it always worked perfectly, this issue was only with my dev environments.&lt;/p&gt; &lt;p&gt;After reporting this to Microsoft, I got the following KB article back as a possible solution:&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;https://support.office.com/en-us/article/Turn-scripting-capabilities-on-and-off-1f2c515f-5d7e-448a-9fd7-835da935584f?ui=en-US&amp;amp;rs=en-US&amp;amp;ad=US&quot; target=&quot;_blank&quot; href=&quot;https://support.office.com/en-us/article/Turn-scripting-capabilities-on-and-off-1f2c515f-5d7e-448a-9fd7-835da935584f?ui=en-US&amp;amp;rs=en-US&amp;amp;ad=US&quot;&gt;https://support.office.com/en-us/article/Turn-scripting-capabilities-on-and-off-1f2c515f-5d7e-448a-9fd7-835da935584f?ui=en-US&amp;amp;rs=en-US&amp;amp;ad=US&lt;/a&gt;&lt;/p&gt; &lt;p&gt;It suggested a new feature that was introduced a while ago and turned on by default to everyone could be the cause for this issue. &lt;/p&gt; &lt;p&gt;It suggested to allow custom scripts on my site pages, and that should do the trick. Now, there is a note in that settings page saying it might take up to 24 hours for this change to take place after you visit the settings page, so did it work?&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh6.ggpht.com/-I7-OW97NmU8/VRBZ8VJoPWI/AAAAAAAAAlI/kKPS5DKqf-0/s1600-h/image%25255B12%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;float:none;margin-left:auto;border-left:0px;display:block;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/-VdapOKndT6o/VRBZ8lc3YxI/AAAAAAAAAlQ/ic32_PcvCGI/image_thumb%25255B8%25255D.png?imgmax=800&quot; width=&quot;644&quot; height=&quot;67&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I did confirm this issue happens with all app parts that have custom properties, I have tested few other app parts from the store and they all exhibited the same behavior on my dev sites.&lt;/p&gt; &lt;p&gt;I guess I will test it tomorrow and have to update you… fingers crossed…&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-4286528171081411440</guid>
         <pubDate>Mon, 23 Mar 2015 18:22:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh3.ggpht.com/-p7tQX23fJ74/VRBZ7yu_7ZI/AAAAAAAAAlA/GIyWBcTQJQQ/s72-c/image_thumb%25255B4%25255D.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Building .NET client tools for SharePoint online</title>
         <link>http://kwizcom.blogspot.com/2015/02/building-net-client-tools-for.html</link>
         <description>Hi guys,&lt;br /&gt;Here is my presentation from today's webcast.&lt;br /&gt;&lt;br /&gt;If you wish to see the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://kwizcomevents.webex.com/kwizcomevents/lsr.php?RCID=447bf23886fc67184c114313abe5df5b&quot;&gt;webcast recording click here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;div style=&quot;margin-bottom:5px;&quot;&gt;&lt;strong&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.slideshare.net/shaibs/building-net-client-tools-for-share-point-online&quot; title=&quot;Building .NET client tools for SharePoint online&quot;&gt;Building .NET client tools for SharePoint online&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.slideshare.net/shaibs&quot;&gt;Shai Petel&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;&lt;br /&gt;Thanks for joining me, please feel free to comment on this post if you have questions about this topic.&lt;br /&gt;For more resources, please visit the last page of the presentation for additional links.&lt;br /&gt;&lt;br /&gt;Shai.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-9158561453602000096</guid>
         <pubDate>Thu, 19 Feb 2015 17:14:00 +0000</pubDate>
      </item>
      <item>
         <title>Speaking Engagements 2015</title>
         <link>http://kwizcom.blogspot.com/2015/02/speaking-engagements-2015.html</link>
         <description>&lt;br /&gt;Just FYI, my speaking engagements for 2015 are posted here, If you are around – come see me! &lt;br /&gt;&lt;br /&gt;If you were in one of my sessions, you can find links to the session code and presentation below.&lt;br /&gt;&lt;br /&gt;Also – if you have any comments on my session – feel free to post it here!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;February 19&lt;/strong&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://kwizcomevents.webex.com/mw0401lsp12/mywebex/default.do?nomenu=true&amp;amp;siteurl=kwizcomevents&amp;amp;service=6&amp;amp;rnd=0.1247182877272246&amp;amp;main_url=https%3A%2F%2Fkwizcomevents.webex.com%2Fec0701lsp12%2Feventcenter%2Fevent%2FeventAction.do%3FtheAction%3Ddetail%26confViewID%3D1750991444%26%26EMK%3D4832534b00000002fbab020b86844470643c2ddc313f6ea1f5e2b2046590c39598ec915825e33859%26%26%26siteurl%3Dkwizcomevents&quot;&gt;Online webcast&lt;/a&gt; - &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://kwizcom.blogspot.ca/2015/02/building-net-client-tools-for.html&quot;&gt;Building .NET Client Tools for SharePoint Online&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;March 19 – &lt;/strong&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.meetup.com/vSharePoint/events/220590441/&quot;&gt;Victoria SPUG&lt;/a&gt; - &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://kwizcom.blogspot.ca/2013/05/one-solution-to-rule-them-all.html&quot;&gt;The future of full trust solutions: Migration &amp;amp; Upgrade&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;June 6&lt;/b&gt; - &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.spsevents.org/city/Calgary/Calgary2015&quot;&gt;SPS Calgary&lt;/a&gt; - (2 topics) &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://kwizcom.blogspot.ca/2013/05/one-solution-to-rule-them-all.html&quot;&gt;The future of full trust solutions: Migration &amp;amp; Upgrade&lt;/a&gt;&amp;nbsp;; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.slideshare.net/shaibs/building-real-o365-sharepoint-apps&quot;&gt;How I built my first commercial SharePoint hosted app&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;June 17 - &lt;/b&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.spbizconf.com/&quot;&gt;SPBiz&lt;/a&gt;&amp;nbsp;online conference -&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://kwizcom.blogspot.ca/2015/02/building-net-client-tools-for.html&quot;&gt;Building .NET Client Tools for SharePoint Online&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;June 18&lt;/strong&gt;&amp;nbsp;– &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.meetup.com/HamiltonSPUG/&quot;&gt;Hamilton SPUG&lt;/a&gt; - &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://kwizcom.blogspot.ca/2015/02/building-net-client-tools-for.html&quot;&gt;Building .NET Client Tools for SharePoint Online&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;July 25&lt;/b&gt; - &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.spsevents.org/city/nyc/nyc2015&quot;&gt;SPS NYC&lt;/a&gt; - TBD&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-24859498272467858</guid>
         <pubDate>Tue, 17 Feb 2015 18:54:00 +0000</pubDate>
      </item>
      <item>
         <title>IE8 can’t handle split by regex</title>
         <link>http://kwizcom.blogspot.com/2015/02/ie8-cant-handle-split-by-regex.html</link>
         <description>&lt;p&gt;FYI, this is a very strange bug I just stumbled upon in IE8, even other IE versions running in IE8 mode (which means – anyone using IE with SharePoint 2010)…&lt;/p&gt; &lt;p&gt;It appears while IE8 can handle a simple string split by character, such as “a,b,c,d”.split(“,”) – it is having a really hard time working with a regular expression split.&lt;/p&gt; &lt;p&gt;It is supposed to be supported, it is working on any other browser including IE9+…&lt;/p&gt; &lt;p&gt;Here is what I have, splitting a string by matching tokens inside [ ]:&lt;/p&gt; &lt;p&gt;var arr = str.split(/&amp;#92;[(.*?)&amp;#92;]/);&lt;/p&gt; &lt;p&gt;All browsers will return all text before, inside and after the matches.&lt;/p&gt; &lt;p&gt;IE8, it appears, is the only one out of the bunch not returning the text inside the token.&lt;/p&gt; &lt;p&gt;BTW, if you ask me – IE8 is the only browser who is actually doing what I asked – which is to split by the match, while I would say all other browsers are in the wrong – splitting by the matches themselves in the regex… but if all browsers do one thing and IE8 does another, it just makes it impossible to rely and use this API.&lt;/p&gt; &lt;p&gt;Well, off to find another solution.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-1919401638711577592</guid>
         <pubDate>Thu, 12 Feb 2015 16:04:00 +0000</pubDate>
      </item>
      <item>
         <title>Strange user login name in  SharePoint when using Claims?</title>
         <link>http://kwizcom.blogspot.com/2015/01/strange-user-login-name-in-sharepoint.html</link>
         <description>&lt;p&gt;Hey, if you are like me and use claims to login to your SharePoint, you probably noticed the user names went nuts.&lt;/p&gt; &lt;p&gt;Having a user name like &lt;strong&gt;domain&amp;#92;user&lt;/strong&gt; will now return something more like &lt;strong&gt;i:0#.w|domain&amp;#92;user&lt;/strong&gt; if you are lucky, but I’ve seen stranger formats as well…&lt;/p&gt; &lt;p&gt;Now, say a user sends you a login name (domain&amp;#92;user) and you need to get this value and set it to the assigned to of a task, or set permissions for this user – you will quickly find out you cannot get an SPUser object from this standard login name.&lt;/p&gt; &lt;p&gt;Also, when you want to send the login name to another system or work with it in your code – you might want to get just the domain&amp;#92;user part, without the claims decorations.&lt;/p&gt; &lt;p&gt;True, the claims login formats are documented and you can hope to parse the format yourself to extract the user login from it, but I recently found a hidden (to me at least) gem in SharePoint API that can help with this task.&lt;/p&gt; &lt;p&gt;First, start using this namespace: Microsoft.SharePoint.Administration.Claims;&lt;/p&gt; &lt;p&gt;Now, you can work with SPClaimProviderManager object to check if a string is a claims encoded user name, and convert it to a standard user name, and the other way around.&lt;/p&gt; &lt;p&gt;I’ve created this simple utility class for me to use in my code for now, here is a code sample explaining how to use this object:&lt;/p&gt; &lt;div id=&quot;codeSnippetWrapper&quot;&gt; &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;class&lt;/span&gt; ClaimsHelper&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; ClaimsToLogin(&lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; login)&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    {&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;try&lt;/span&gt;{&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;            &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt;(SPClaimProviderManager.IsEncodedClaim(login))&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;                &lt;span style=&quot;color:#0000ff;&quot;&gt;return&lt;/span&gt; SPClaimProviderManager.Local.ConvertClaimToIdentifier(login);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        }&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;catch&lt;/span&gt;{&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;            &lt;span style=&quot;color:#008000;&quot;&gt;//log error, return the origina value we got&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        }&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;return&lt;/span&gt; login;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    }&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; LoginToClaims(&lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; login)&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    {&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        {&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;            &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (!SPClaimProviderManager.IsEncodedClaim(login))&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;                &lt;span style=&quot;color:#0000ff;&quot;&gt;return&lt;/span&gt; SPClaimProviderManager.Local.ConvertIdentifierToClaim(login, SPIdentifierTypes.WindowsSamAccountName).ToEncodedString();&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        }&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;catch&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        {&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;            &lt;span style=&quot;color:#008000;&quot;&gt;//log error, return the origina value we got&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        }&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;return&lt;/span&gt; login;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    }&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;(Code is for example purposes only, use at own risk, feel free to change the names of the helpers)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Notice I’m expecting to get a windows login user name (SPIdentifierTypes.WindowsSamAccountName) but you can change this to support your own authentication.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Good luck, hope this help.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-1492767613732994358</guid>
         <pubDate>Mon, 26 Jan 2015 16:59:00 +0000</pubDate>
      </item>
      <item>
         <title>Proudly Canadian?</title>
         <link>http://kwizcom.blogspot.com/2015/01/proudly-canadian.html</link>
         <description>Great! So am I.&lt;br /&gt;So, visit our site and get your choice of a free SharePoint product:&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.kwizcom.com/special-offers/canadieneh/&quot; title=&quot;http://www.kwizcom.com/special-offers/canadieneh/&quot;&gt;http://www.kwizcom.com/special-offers/canadieneh/&lt;/a&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.kwizcom.com/special-offers/canadieneh/&quot;&gt;&lt;img alt=&quot;Canadian_campaign_800_320&quot; border=&quot;0&quot; src=&quot;http://lh3.ggpht.com/-PdBRe5cH05w/VL6R9kx2MDI/AAAAAAAAAkM/aFAmHyMHSAU/Canadian_campaign_800_320%25255B8%25255D.jpg?imgmax=800&quot; height=&quot;256&quot; style=&quot;border:0px currentColor;display:block;float:none;margin-left:auto;margin-right:auto;&quot; title=&quot;Canadian_campaign_800_320&quot; width=&quot;640&quot;/&gt;&lt;/a&gt; &lt;br /&gt;My personal favorites you should be looking at:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Data View Plus – since it is the Swiss army knife of all SharePoint viewers out there!&lt;/li&gt;&lt;li&gt;List inline editor – I use it all the time, this one saves me literally hours of data entry or updating bugs every single day.&lt;/li&gt;&lt;li&gt;Forms w/Custom actions – need I say more?? If you don’t know what its all about, check out this quick video &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.kwizcom.com/sharepoint-add-ons/sharepoint-list-custom-actions/overview/&quot; title=&quot;http://www.kwizcom.com/sharepoint-add-ons/sharepoint-list-custom-actions/overview/&quot;&gt;http://www.kwizcom.com/sharepoint-add-ons/sharepoint-list-custom-actions/overview/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Wiki Plus – Company procedures? Publish articles? Want to be able to use *real* wiki language with quick TOC?&lt;/li&gt;&lt;/ol&gt;Wow – it was hard coming up with just 4, anyway – one is yours to keep for free. Sound off in the comments for questions or feedback (guys, no support questions here please – for that visit &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://support.kwizcom.com/Default.aspx&quot; title=&quot;http://support.kwizcom.com/Default.aspx&quot;&gt;http://support.kwizcom.com/Default.aspx&lt;/a&gt; or &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://forum.kwizcom.com/Default.aspx&quot; title=&quot;http://forum.kwizcom.com/Default.aspx&quot;&gt;http://forum.kwizcom.com/Default.aspx&lt;/a&gt; as I can’t really help you in the comments)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-3545665017420935019</guid>
         <pubDate>Tue, 20 Jan 2015 17:35:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh3.ggpht.com/-PdBRe5cH05w/VL6R9kx2MDI/AAAAAAAAAkM/aFAmHyMHSAU/s72-c/Canadian_campaign_800_320%25255B8%25255D.jpg?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>SharePoint designer 2010: “the business data connectivity metadata store is currently unavailable”</title>
         <link>http://kwizcom.blogspot.com/2014/12/sharepoint-designer-2010-business-data.html</link>
         <description>&lt;p&gt;This was driving me crazy the other day… I tried everything, reconfiguring the services, installing updates I didn't need, uninstalling SharePoint Designer and installing it again, 32 bit, 64 bit, what ever you want.&lt;/p&gt; &lt;p&gt;Every time i opened SharePoint designer and tried to add an external content type, I got this error:&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gwb.blob.core.windows.net/ferdous/Windows-Live-Writer/The-Business-Data-Connectivity-Metadata-_E910/image_6.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;float:none;margin-left:auto;display:block;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://gwb.blob.core.windows.net/ferdous/Windows-Live-Writer/The-Business-Data-Connectivity-Metadata-_E910/image_thumb_2.png&quot; width=&quot;407&quot; height=&quot;108&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Then I realized I was doing 2 things that might be the issue:&lt;/p&gt; &lt;p&gt;1. I was running 64 bit of SharePoint designer&lt;/p&gt; &lt;p&gt;2. I was running on my SharePoint Server itself, in a dev machine on CloudShare&lt;/p&gt; &lt;p&gt;So, I went ahead and installed SharePoint designer 32 bit on my client machine – and what do you know, it was working.&lt;/p&gt; &lt;p&gt;Now, the question is what was the problem – running on the server, or running the 64 bit version?&lt;/p&gt; &lt;p&gt;So, I uninstalled the 64 bit version and installed the 32 bit version just out of curiosity…&lt;/p&gt; &lt;p&gt;And what do you know? Same error message… It appears that this is not working when running on the server itself.&lt;/p&gt; &lt;p&gt;It might be specific to my configuration – but if you run into this error, try installing the designer on a different client machine.&lt;/p&gt; &lt;p&gt;Good luck!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-2373609609267746751</guid>
         <pubDate>Tue, 16 Dec 2014 14:39:00 +0000</pubDate>
      </item>
      <item>
         <title>Cannot start user profile synchronization service</title>
         <link>http://kwizcom.blogspot.com/2014/11/cannot-start-user-profile.html</link>
         <description>&lt;p&gt;I searched a lot on this issue online… for some reason it was set to the wrong user, I don’t know why or how, and I couldn’t stat this service.&lt;/p&gt; &lt;p&gt;Going to start the service – I could not change the account name, which was grayed out, and didn’t have the password for it – so I couldn’t start the service.&lt;/p&gt; &lt;p&gt;A LOT of internet searches and I didn’t find one post saying why the account id is grayed out, or how to change it.&lt;/p&gt; &lt;p&gt;So, I finally figured it out.&lt;/p&gt; &lt;p&gt;You have to go to central administration, select security on the left navigation and go to “configure service accounts”.&lt;/p&gt; &lt;p&gt;Here, you can select from a drop down any service you want (in my case, the user profile sync) and (finally!) here you can change it to use any other account, and add this account to the managed accounts in the farm.&lt;/p&gt; &lt;p&gt;Simple task, but very hard to find.&lt;/p&gt; &lt;p&gt;Not so intuitive, if you ask me.&lt;/p&gt; &lt;p&gt;Here is how this form looks like:&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh5.ggpht.com/-Ve1T1l_GaF0/VG_OQt2jrRI/AAAAAAAAAjg/1r9DpX6kWo4/s1600-h/image%25255B7%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;float:none;margin-left:auto;border-left:0px;display:block;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/-vDZd0pl1yKM/VG_ORH8fZsI/AAAAAAAAAjk/iEAuHYnxtJY/image_thumb%25255B5%25255D.png?imgmax=800&quot; width=&quot;640&quot; height=&quot;284&quot;&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-5392095977484928028</guid>
         <pubDate>Fri, 21 Nov 2014 23:44:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh3.ggpht.com/-vDZd0pl1yKM/VG_ORH8fZsI/AAAAAAAAAjk/iEAuHYnxtJY/s72-c/image_thumb%25255B5%25255D.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Get the zodiac sign for a date in JavaScript</title>
         <link>http://kwizcom.blogspot.com/2014/11/get-zodiac-sign-for-date-in-javascript.html</link>
         <description>&lt;p&gt;Just like the title says,&lt;/p&gt; &lt;p&gt;I was building a new layout for our data view plus web part that shows upcoming birthdays from a SharePoint list.&lt;/p&gt; &lt;p&gt;I wanted to show the zodiac sign for each person, using HTML codes you can render the signs but the hard part was to figure out the correct sign for each date.&lt;/p&gt; &lt;p&gt;Here is the end result:&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh5.ggpht.com/-_tFNaGrJZIk/VGJm2PWOHsI/AAAAAAAAAjI/aRaaVLclm_I/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;float:none;margin-left:auto;border-left:0px;display:block;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-eerEhrHhI40/VGJm5Eyi0-I/AAAAAAAAAjQ/y5lz9N25Ks8/image_thumb%25255B3%25255D.png?imgmax=800&quot; width=&quot;351&quot; height=&quot;263&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You can get this layout and the javascript free from our web site (should be posted soon), but here is what I did in a nutshell (stay with me, its not short):&lt;/p&gt; &lt;p&gt;1. I created an object that has all the start dates for each sign, with the HTML sign for it and its name (for tooltip):&lt;/p&gt; &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:'Courier New', courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;background-color:#f4f4f4;&quot;&gt; &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; zodiacSigns = {&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    120: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9809&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Capricorn'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    218: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9810&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Aquarius'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    320: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9811&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Pisces'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    420: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9800&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Aries'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    521: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9801&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Taurus'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    621: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9802&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Gemini'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    722: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9803&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Cancer'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    823: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9804&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Leo'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    923: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9805&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Virgo'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    1023: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9806&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Libra'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    1122: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9807&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Scorpius'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    1222: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9808&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Sagittarius'&lt;/span&gt;},&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    1231: {html: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;amp;#9809&quot;&lt;/span&gt;,text: &lt;span style=&quot;color:#006080;&quot;&gt;'Capricorn'&lt;/span&gt;}&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;};&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;2. Now, for each date I have I build a number from the month+day, next I loop through all elements of zodiacSigns until I get a value greater than the current date – which means the one before was the correct sign. Then I build the html span with that info:&lt;/p&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:'Courier New', courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;background-color:#f4f4f4;&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; zodiacValue = parseInt(monthStr + dayStr, 10);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; currentZodiacSign = &lt;span style=&quot;color:#0000ff;&quot;&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;for&lt;/span&gt; (&lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; z &lt;span style=&quot;color:#0000ff;&quot;&gt;in&lt;/span&gt; zodiacSigns) {&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;try&lt;/span&gt; {&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (currentZodiacSign == &lt;span style=&quot;color:#0000ff;&quot;&gt;null&lt;/span&gt;) currentZodiacSign = zodiacSigns[z];&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (zodiacValue &amp;gt; parseInt(z,10))&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;            currentZodiacSign = zodiacSigns[z];&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;break&lt;/span&gt;;&lt;span style=&quot;color:#008000;&quot;&gt;//passed the date - the last one was the right sign. stop looping.&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    }&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;catch&lt;/span&gt; (e) {&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    }&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;}&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; zodiacPart = &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&quot;&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (currentZodiacSign != &lt;span style=&quot;color:#0000ff;&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    zodiacPart = &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;span class='ZodiacSign' title='&quot;&lt;/span&gt; + currentZodiacSign.text + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;'&amp;gt;&quot;&lt;/span&gt; + currentZodiacSign.html + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;/span&amp;gt;&quot;&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;A lot of work, but I like the result.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-5406649924075710519</guid>
         <pubDate>Tue, 11 Nov 2014 19:43:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh5.ggpht.com/-eerEhrHhI40/VGJm5Eyi0-I/AAAAAAAAAjQ/y5lz9N25Ks8/s72-c/image_thumb%25255B3%25255D.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>עידן ה- ME, אבל איפה פה מנהלים ידע?</title>
         <link>http://blogs.microsoft.co.il/efrat/2014/11/04/%d7%a2%d7%99%d7%93%d7%9f-%d7%94-%d7%90%d7%91%d7%9c-%d7%90%d7%99%d7%a4%d7%94-%d7%a4%d7%94-%d7%9e%d7%a0%d7%94%d7%9c%d7%99%d7%9d-%d7%99%d7%93%d7%a2/</link>
         <description>מכירים סלפי? מי לא! הסלפי הוא רק אחד התוצרים של עידן לא סוציאלי –חברתי שקם היום. האדם במרכז וסביבו השאר: המשפחה, החברים, העבודה, התחביבים וכו'. כלי הרשתות החבריות לאט לאט הביאו לתפיסה חדשה (ולא בטוח שזו הייתה הכוונה) של ME. אולי כוונתם הייתה לשפר את הקשרים החברתיים אבל במקום זה הם גרמו לכך שכל אחד [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/efrat/?p=1736738</guid>
         <pubDate>Tue, 04 Nov 2014 17:50:03 +0000</pubDate>
         <content:encoded><![CDATA[<p><span style="color:#000000;font-size:medium;">מכירים סלפי? מי לא!</span></p>
<p><span style="color:#000000;font-size:medium;">הסלפי הוא רק אחד התוצרים של עידן לא סוציאלי –חברתי שקם היום.</span></p>
<p><span style="color:#000000;font-size:medium;">האדם במרכז וסביבו השאר: המשפחה, החברים, העבודה, התחביבים וכו'.</span></p>
<p><span style="font-size:medium;"><span style="color:#000000;">כלי הרשתות החבריות לאט לאט הביאו לתפיסה חדשה (ולא בטוח שזו הייתה הכוונה) של <span style="font-family:Calibri;">ME</span>.</span></span></p>
<p><span style="color:#000000;font-size:medium;">אולי כוונתם הייתה לשפר את הקשרים החברתיים אבל במקום זה הם גרמו לכך שכל אחד שם את העצמו במרכז ואת השאר סביבו.</span></p>
<p><span style="font-size:medium;"><span style="color:#000000;">משניתנה במה ל- <span style="font-family:Calibri;">ME</span>, הוא עסוק ב&quot;לטפח&quot; סביבו את השאר על מנת להעצים את ה- <span style="font-family:Calibri;">ME</span>:</span></span></p>
<p><span style="color:#000000;font-size:medium;">כך שהוא רוצה להראות שיש לו הרבה חברים, שהוא עובד בעבודה ראויה, מבוסס עם משפחה לצידו ותחביביו משלימים את התמונה לאושר האידיאלי.</span></p>
<p><span style="color:#000000;font-size:medium;">האם באמת ניתן ללמוד על אושרו האמיתי של אדם בצפייה בפרופיל שלו? חשבו על זה, אבל לא על זה רציתי לכתוב.</span></p>
<p><span style="font-size:medium;"><span style="color:#000000;">אנחנו נמצאים בעידן ה- <span style="font-family:Calibri;">ME</span>, על זה אין ויכוח.</span></span></p>
<p><span style="font-size:medium;"><span style="color:#000000;">אבל עידן ה- <span style="font-family:Calibri;">ME</span>, לא רק בא לידי ביטוי בחיינו הפרטיים, אלא גולש גם למקומות העבודה.</span></span></p>
<p><span style="color:#000000;font-size:medium;">אם פעם יכולנו לשכנע עובדים לשתף ידע באמצעות סיסמאות של &quot;ידע הוא נכס ארגוני וצריך לשתף ידע כי זה לטובת הארגון&#8230;&quot; היום זה לא ישכנע אף עובד בארגון לשתף ידע.</span></p>
<p><span style="color:#000000;font-size:medium;">לארגונים, שמעוניינים לשתף ולשמר ידע, זהו בהחלט אתגר לא פשוט להתמודד עימו.</span></p>
<p><span style="font-size:medium;"><span style="color:#000000;">כי עכשיו יש להתמודד עם האתגר שעונה על השאלה: &quot;<b>איך זה יעזור לי בעבודה שלי?</b></span></span><span style="color:#000000;font-size:medium;">&quot; ולא &quot;איך זה יועיל לארגון?&quot;.</span></p>
<p><b><span style="color:#000000;font-size:medium;">עידן הסלפי!</span></b></p>
<p><span style="color:#000000;font-size:medium;">שלכם</span></p>
<p><span style="color:#000000;font-size:medium;">אפרת קרמר</span></p>]]></content:encoded>
      </item>
      <item>
         <title>The power of data view plus web part</title>
         <link>http://kwizcom.blogspot.com/2014/10/the-power-of-data-view-plus-web-part.html</link>
         <description>Hey guys, thank you for joining me today on my web cast.&lt;br /&gt;Here is the presentation from today’s web cast, if you missed it &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://kwizcomevents.webex.com/kwizcomevents/lsr.php?RCID=8efc4e3223a3621928fe2c691e61dcd9&quot;&gt;you can view the recording here.&lt;/a&gt;&lt;br /&gt;  &lt;br /&gt;&lt;div style=&quot;margin-bottom:5px;&quot;&gt;&lt;strong&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.slideshare.net/shaibs/data-view-plus-web-part&quot; title=&quot;The power of data view plus web part&quot;&gt;The power of data view plus web part&lt;/a&gt; &lt;/strong&gt;from &lt;strong&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.slideshare.net/shaibs&quot;&gt;Shai Petel&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;This presentation talks about KWizCom's data view plus web part, which is an enhanced, more simple and more versatile version of the data view web part. This product does not require SharePoint designer to use, or messing around with XSLT. Simple create, use and reuse templates using simple html, css and javascript, and share with others.&lt;br /&gt;Here are a few samples of what you can do with this amazing web part:&lt;br /&gt;&lt;h4&gt;&lt;/h4&gt;&lt;h5&gt;Image slideshow:&lt;/h5&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh3.ggpht.com/-N_YUFetx-cE/VFJnO0DBQUI/AAAAAAAAAhs/0idyDnDatg4/s1600-h/image%25255B8%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;http://lh4.ggpht.com/-ss32LTBdDyc/VFJnPfy0l7I/AAAAAAAAAhw/nfvPsq462aw/image_thumb%25255B6%25255D.png?imgmax=800&quot; height=&quot;353&quot; style=&quot;border-bottom-width:0px;border-left-width:0px;border-right-width:0px;border-top-width:0px;display:block;float:none;margin-left:auto;margin-right:auto;&quot; title=&quot;image&quot; width=&quot;640&quot;/&gt;&lt;/a&gt; &lt;br /&gt;&lt;h5&gt;Blog:&lt;/h5&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh6.ggpht.com/-RipLiAYWHRc/VFJnP2ugBSI/AAAAAAAAAh4/_Te8ck6rCtc/s1600-h/image%25255B14%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/-eiY6Fct2L6s/VFJnQPmunHI/AAAAAAAAAiA/o_zw9Ty7gpc/image_thumb%25255B10%25255D.png?imgmax=800&quot; height=&quot;416&quot; style=&quot;border-bottom-width:0px;border-left-width:0px;border-right-width:0px;border-top-width:0px;display:block;float:none;margin-left:auto;margin-right:auto;&quot; title=&quot;image&quot; width=&quot;450&quot;/&gt;&lt;/a&gt; &lt;br /&gt;&lt;h5&gt;Few tasks samples:&lt;/h5&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh6.ggpht.com/-NYGuJnxlSKQ/VFJnQt3hHlI/AAAAAAAAAiI/OKCASxndSy4/s1600-h/image%25255B20%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/-Qb4Lv02xjuI/VFJnQ9bHfmI/AAAAAAAAAiQ/RC_OP6I2XPk/image_thumb%25255B14%25255D.png?imgmax=800&quot; height=&quot;194&quot; style=&quot;border-bottom-width:0px;border-left-width:0px;border-right-width:0px;border-top-width:0px;display:block;float:none;margin-left:auto;margin-right:auto;&quot; title=&quot;image&quot; width=&quot;356&quot;/&gt;&lt;/a&gt; &lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh5.ggpht.com/-JIVU-hN1WBo/VFJnRZ-J07I/AAAAAAAAAiY/jqyUyu-o-VI/s1600-h/image%25255B31%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;http://lh3.ggpht.com/-VceEZUNFk64/VFJnR9E1KMI/AAAAAAAAAig/LdT9tDmqrn4/image_thumb%25255B23%25255D.png?imgmax=800&quot; height=&quot;187&quot; style=&quot;border-bottom-width:0px;border-left-width:0px;border-right-width:0px;border-top-width:0px;display:block;float:none;margin-left:auto;margin-right:auto;&quot; title=&quot;image&quot; width=&quot;640&quot;/&gt;&lt;/a&gt; &lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh5.ggpht.com/-XuJYi9H3NBA/VFJnSPGahNI/AAAAAAAAAio/MHsV-5MWYBM/s1600-h/image%25255B37%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/-D3v2IHq_d8s/VFJnSthIPtI/AAAAAAAAAiw/BGvgpfmpxBQ/image_thumb%25255B27%25255D.png?imgmax=800&quot; height=&quot;301&quot; style=&quot;border-bottom-width:0px;border-left-width:0px;border-right-width:0px;border-top-width:0px;display:block;float:none;margin-left:auto;margin-right:auto;&quot; title=&quot;image&quot; width=&quot;716&quot;/&gt;&lt;/a&gt; &lt;br /&gt;Let me know what you think&lt;br /&gt;&lt;br /&gt;A link to the product page:&amp;nbsp;http://www.kwizcom.com/sharepoint-add-ons/data-view-plus/overview/&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-4955350045416269003</guid>
         <pubDate>Thu, 30 Oct 2014 16:27:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh4.ggpht.com/-ss32LTBdDyc/VFJnPfy0l7I/AAAAAAAAAhw/nfvPsq462aw/s72-c/image_thumb%25255B6%25255D.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Disk cleanup crashes on SharePoint 2013 server</title>
         <link>http://kwizcom.blogspot.com/2014/10/disk-cleanup-crashes-on-sharepoint-2013.html</link>
         <description>This is a wired one…&lt;br /&gt;I have 2 SP2013 servers, I installed the desktop experience feature to get the disk cleanup utility to clean up some disk space.&lt;br /&gt;It runs perfectly on all my servers except one. On that one it crashed as soon as I tried opening it and gave me this error message:&lt;br /&gt;“Disk Space Cleanup Manager has stopped working”&lt;br /&gt;“a problem caused the program to stop working correctly”&lt;br /&gt;The internet had nothing helpful to say, except one fixit tool that applied only to windows xp.&lt;br /&gt;Opened the windows application logs and got this interesting error:&lt;br /&gt;-------------------&lt;br /&gt;Faulting application name: cleanmgr.exe, version: 6.1.7600.16385, time stamp: 0x4a5bc995&lt;br /&gt;Faulting module name: mso.dll, version: 15.0.4659.1001, time stamp: 0x5423c9a5&lt;br /&gt;Exception code: 0xc0000005&lt;br /&gt;Fault offset: 0x00000000002e45b9&lt;br /&gt;Faulting process id: 0x18a8&lt;br /&gt;Faulting application start time: 0x01cfefb40cac6155&lt;br /&gt;Faulting application path: C:&amp;#92;Windows&amp;#92;system32&amp;#92;cleanmgr.exe&lt;br /&gt;Faulting module path: C:&amp;#92;Program Files&amp;#92;Common Files&amp;#92;Microsoft Shared&amp;#92;Office15&amp;#92;mso.dll&lt;br /&gt;Report Id: 4a772d57-5ba7-11e4-9aa1-00505630df35 -------------&lt;br /&gt; Hm… I looked for this file under Office15 and it wasn’t on any of the other servers. Infact, that folder was almost empty in the other servers, but on this server it had many files.&lt;br /&gt; Now, I don’t have office installed on the server, so I hit start, types “office” and the only thing I found was SharePoint Designer was installed on this machine.&lt;br /&gt; It became my immediate suspect. You know how after you install any office product, you have that first time welcome wizard when you launch it? So, I suspected this application was never launched and the wizard never run.&lt;br /&gt; I launched it, clicked next through the wizard and tried disk cleanup utility again – and this time it run as expected.&lt;br /&gt; I thought this one was worth sharing…&lt;br /&gt;  &lt;br /&gt;Updates from comments I got suggests many other Microsoft applications needs to be launched at least once after installation or they can cause the disk cleanup to crash. Mainly:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Outlook&lt;/li&gt;&lt;li&gt;Word, Excel and/or PowerPoint (you only need to launch one)&lt;/li&gt;&lt;li&gt;SQL client tools&lt;/li&gt;&lt;li&gt;Visual Studio&lt;/li&gt;&lt;/ul&gt;Leave a comment if you had this issue caused by other application, I'll update this post&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-8316992374493407005</guid>
         <pubDate>Fri, 24 Oct 2014 18:08:00 +0000</pubDate>
      </item>
      <item>
         <title>properties.AfterProperties[“Title”] always null in document libraries</title>
         <link>http://kwizcom.blogspot.com/2014/09/propertiesafterpropertiestitle-always.html</link>
         <description>&lt;p&gt;Like the title says,&lt;/p&gt; &lt;p&gt;If you are writing an event handler for document libraries / lists, properties.AfterProperties is usually a good way for you to get the new values that the user modified.&lt;/p&gt; &lt;p&gt;Now, we all know the fact that in lists you have to use internal name and in libraries you have to use display name, right?&lt;/p&gt; &lt;p&gt;So, it appears it is not the only trick up their sleeve…&lt;/p&gt; &lt;p&gt;If you ever tried getting the title or name columns in a document library you will quickly notice AfterProperties and BeforeProperties will always return null.&lt;/p&gt; &lt;p&gt;Now, I came across this technet discussion: &lt;a rel=&quot;nofollow&quot; title=&quot;http://social.technet.microsoft.com/Forums/sharepoint/en-US/ef6e1b63-c821-4c6c-b05f-0b1e32ebf073/beforeproperties-and-afterproperties-returns-null-value-in-itemupdating-itemupdated-event?forum=sharepointdevelopmentprevious&quot; target=&quot;_blank&quot; href=&quot;http://social.technet.microsoft.com/Forums/sharepoint/en-US/ef6e1b63-c821-4c6c-b05f-0b1e32ebf073/beforeproperties-and-afterproperties-returns-null-value-in-itemupdating-itemupdated-event?forum=sharepointdevelopmentprevious&quot;&gt;http://social.technet.microsoft.com/Forums/sharepoint/en-US/ef6e1b63-c821-4c6c-b05f-0b1e32ebf073/beforeproperties-and-afterproperties-returns-null-value-in-itemupdating-itemupdated-event?forum=sharepointdevelopmentprevious&lt;/a&gt;&lt;/p&gt; &lt;p&gt;And at the very bottom, there is an answer by Helm Ifort that I found very interesting.&lt;/p&gt; &lt;p&gt;It appears the title column value is available in AfterProperties, only you have to use the “vti_title” name for it! (STS 2001 anyone?)&lt;/p&gt; &lt;p&gt;In my book, this is a bug, and an undocumented one at the very least… I hope someone fixes it soon, but for now it is one of those things seasoned SharePoint sharks need to remember.&lt;/p&gt; &lt;p&gt;Hope this helps&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-2737513816010655451</guid>
         <pubDate>Wed, 17 Sep 2014 18:04:00 +0000</pubDate>
      </item>
      <item>
         <title>Using minimal.master in SharePoint breaks AJAX</title>
         <link>http://kwizcom.blogspot.com/2014/08/using-minimalmaster-in-sharepoint.html</link>
         <description>&lt;p&gt;Funny story, I just spent the better part of a day trying to figure out why our products do not work properly on a customer’s custom master page.&lt;/p&gt; &lt;p&gt;He was using SharePoint 2013, and using the new feature that allows you to upload an HTML file template and have SharePoint convert it to a master page automatically.&lt;/p&gt; &lt;p&gt;Then I tried some of the out of the box sample master pages: Oslo.master, Seattle.master and a minimal.master that I created using the design manager under site look &amp;amp; feel:&lt;br&gt;&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh4.ggpht.com/-Bnhi1gl_va8/U-EquV_xSsI/AAAAAAAAAhA/4tB5ZSWNCzk/s1600-h/image%25255B19%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width:0px;border-right-width:0px;border-bottom-width:0px;float:none;margin-left:auto;display:block;border-top-width:0px;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/-rfOBGELfvP4/U-EqvRswpAI/AAAAAAAAAhE/NhuD0sYRFVQ/image_thumb%25255B15%25255D.png?imgmax=800&quot; width=&quot;673&quot; height=&quot;221&quot;&gt;&lt;/a&gt; &lt;br&gt;Click “Edit master pages” on the left navigation bar:&lt;br&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh3.ggpht.com/-ve1In70zmbY/U-Eqv_vCj-I/AAAAAAAAAhQ/wrjekVo0cco/s1600-h/image%25255B20%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width:0px;border-right-width:0px;border-bottom-width:0px;float:none;margin-left:auto;display:block;border-top-width:0px;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh4.ggpht.com/-oNGZrLR-9g8/U-EqwsrwLEI/AAAAAAAAAhY/PFpPFgmoY7M/image_thumb%25255B16%25255D.png?imgmax=800&quot; width=&quot;685&quot; height=&quot;373&quot;&gt;&lt;/a&gt;&lt;br&gt;…and click “Create a minimal master page” above the list.&lt;/p&gt; &lt;p&gt;See, all master pages that I tried worked perfectly, except the minimal.master I created and the master page from my customer.&lt;/p&gt; &lt;p&gt;After a long comparing, trial and error I came up with this simple solution, there are just a few things to change to make AJAX work on these pages:&lt;/p&gt; &lt;p&gt;1. You need to remove the SPWebPartManager from the head. This control must be inside the ASP.Net form tag in order to work properly:&lt;/p&gt; &lt;div id=&quot;codeSnippetWrapper&quot;&gt; &lt;div id=&quot;codeSnippet&quot; style=&quot;overflow:visible;font-size:8pt;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;overflow:visible;font-size:8pt;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:green;&quot;&gt;&amp;lt;!--SPM:&amp;lt;SharePoint:AjaxDelta id=&quot;DeltaSPWebPartManager&quot; runat=&quot;server&quot;&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;overflow:visible;font-size:8pt;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:green;&quot;&gt;&amp;lt;!--SPM:&amp;lt;WebPartPages:SPWebPartManager runat=&quot;server&quot;/&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;overflow:visible;font-size:8pt;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:green;&quot;&gt;&amp;lt;!--SPM:&amp;lt;/SharePoint:AjaxDelta&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;2. Next, you must add the SPWebPart manager along the the missing script manager control as first children of the body:&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;overflow:visible;font-size:8pt;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;overflow:visible;font-size:8pt;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:green;&quot;&gt;&amp;lt;!--SPM:&amp;lt;WebPartPages:SPWebPartManager runat=&quot;Server&quot;/&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;overflow:visible;font-size:8pt;width:100%;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;padding-left:0px;margin:0em;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:green;&quot;&gt;&amp;lt;!--SPM:&amp;lt;asp:ScriptManager id=&quot;ScriptManager&quot; runat=&quot;server&quot; EnablePageMethods=&quot;false&quot; EnablePartialRendering=&quot;true&quot; EnableScriptGlobalization=&quot;false&quot; EnableScriptLocalization=&quot;true&quot;/&amp;gt;--&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;And that’s it, now my ajax updates were working correctly and there was much rejoicing. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;I can’t say there won’t be any other issues with these master pages in the future, that’s why I recommend you don’t start with minimal.master, but instead, use the default, Oslo or Seattle – these look much more stable and work right out of the box without the need to tweak them first.&lt;br&gt;&lt;br&gt;Good luck!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-1219919471446434079</guid>
         <pubDate>Tue, 05 Aug 2014 19:02:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh3.ggpht.com/-rfOBGELfvP4/U-EqvRswpAI/AAAAAAAAAhE/NhuD0sYRFVQ/s72-c/image_thumb%25255B15%25255D.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Why I say Data View Plus web part is the best we ever made #1</title>
         <link>http://kwizcom.blogspot.com/2014/06/why-i-say-data-view-plus-web-part-is.html</link>
         <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;KWizCom Data View Plus web part is a simple web part that was built with the designer in mind.&lt;/p&gt; &lt;p&gt;It connects to various data sources, lists, list views, enterprise aggregation feature (more source coming), and does something rather simple.&lt;/p&gt; &lt;p&gt;Unlike the SharePoint data view web part that forces you to work with XSL to transform you data into HTML, the Data View Plus takes a different approach, one that I personally think is much more natural for developers and designers alike.&lt;/p&gt; &lt;p&gt;It works with a list of templates, each template has a simple header, footer and body HTML.&lt;/p&gt; &lt;p&gt;You can simply write the HTML you wish to have at the header and footer of the web part, and the body part will be rendered once for each item in the source.&lt;/p&gt; &lt;p&gt;So, how do you get the values from your data into the HTML? Using simple tokens.&lt;/p&gt; &lt;p&gt;{Item:Title:Value} will render the title field value of the item, you can use this token for any field on the current item.&lt;/p&gt; &lt;p&gt;The list of tokens is long, yet very simple to understand. You can find it in the admin guide of the web part on page 23: &lt;a rel=&quot;nofollow&quot; title=&quot;Download KWizCom Data View Plus administration guide&quot; target=&quot;_blank&quot; href=&quot;http://catalog.kwizcom.com/sites/pc/Product%20Documentation/SharePoint%20Data%20View%20Plus%20Web%20Part%20Admin%20Guide.pdf&quot;&gt;Download KWizCom Data View Plus administration guide&lt;/a&gt;&lt;/p&gt; &lt;p&gt;So, why do I say it is the best we ever made? Since using it, it took me an hour to make an upcoming birthday’s web part.&lt;/p&gt; &lt;p&gt;I build a new data view plus template called: “Upcoming birthdays”, connected it to my birthdays list and here is the result:&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh4.ggpht.com/-8fbowAyFG-c/U6Rr3pfVTxI/AAAAAAAAAgg/qDnsebTf6c0/s1600-h/image%25255B8%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width:0px;border-right-width:0px;border-bottom-width:0px;margin-left:0px;display:inline;border-top-width:0px;margin-right:0px;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-usjCq-gUMpo/U6Rr4c7L8CI/AAAAAAAAAgo/gX55Wunp2Ao/image_thumb%25255B6%25255D.png?imgmax=800&quot; width=&quot;193&quot; align=&quot;right&quot; height=&quot;334&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Have you ever asked yourself “how do I show upcoming birthdays in SharePoint?” – now you got the answer! Here is a step by step guide on how I did it:&lt;/p&gt; &lt;h3&gt;Step 1: Create birthdays list&lt;/h3&gt; &lt;p&gt;Create a custom list, use the title to type the person’s name.&lt;/p&gt; &lt;p&gt;Add a choice field called “Month” with options 01, 02…12&lt;/p&gt; &lt;p&gt;Add a choice field called “Day” with options 01, 02… 31&lt;/p&gt; &lt;p&gt;Fill in some birthdays in the list.&lt;/p&gt; &lt;h3&gt;Step 2: Install Data View Plus web part&lt;/h3&gt; &lt;p&gt;If you haven’t done so already, download and install KWizCom data view plus web part: &lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;http://www.kwizcom.com/sharepoint-add-ons/data-view-plus/download/&quot; target=&quot;_blank&quot; href=&quot;http://www.kwizcom.com/sharepoint-add-ons/data-view-plus/download/&quot;&gt;http://www.kwizcom.com/sharepoint-add-ons/data-view-plus/download/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Enable the site collection feature and it will create the default template list for you&lt;/p&gt; &lt;h3&gt;Step 3: Build the birthdays list template&lt;/h3&gt; &lt;p&gt;Visit the “KWizCom Data View Plus Display Layouts” list at your site collection (Not there? Go back to step 2.)&lt;/p&gt; &lt;p&gt;Create a new item in the list with the following data:&lt;/p&gt; &lt;p&gt;(for easy copy, I’ve put this here: &lt;a rel=&quot;nofollow&quot; title=&quot;http://pastebin.com/ErgixJWv&quot; target=&quot;_blank&quot; href=&quot;http://pastebin.com/ErgixJWv&quot;&gt;http://pastebin.com/ErgixJWv&lt;/a&gt;)&lt;/p&gt; &lt;p&gt;1. Title:&lt;/p&gt; &lt;p&gt;Upcoming Birthdays&lt;/p&gt; &lt;p&gt;2. Description: &lt;/p&gt; &lt;p&gt;This shows a simple grouped list with the next 10 weeks of birthdays coming up. &lt;br&gt;It splits them into groups: Today, tomorrow, this week, or upcoming.  &lt;p&gt;3. EmptyView: (this is the html that will be rendered if no items were found in the source)  &lt;p&gt;&amp;lt;div&amp;gt;There are no upcoming birthdays.&amp;lt;/div&amp;gt;  &lt;p&gt;4. Header: (We will use script to transform our data into a birthday list, so the script will go in the header)&lt;/p&gt; &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:'Courier New', courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;background-color:#f4f4f4;&quot;&gt; &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color:#606060;&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color:#606060;&quot;&gt;   1:&lt;/span&gt;  &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color:#606060;&quot;&gt;   2:&lt;/span&gt; KWizCom.DVPWP.Instances[&lt;span style=&quot;color:#006080;&quot;&gt;'_WPQ_'&lt;/span&gt;].Load = &lt;span style=&quot;color:#0000ff;&quot;&gt;function&lt;/span&gt;() &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color:#606060;&quot;&gt;   3:&lt;/span&gt; { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color:#606060;&quot;&gt;   4:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; numOfWeeksToShow = 10; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum5&quot; style=&quot;color:#606060;&quot;&gt;   5:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; monthNames = { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum6&quot; style=&quot;color:#606060;&quot;&gt;   6:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;01&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Jan&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum7&quot; style=&quot;color:#606060;&quot;&gt;   7:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;02&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Feb&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum8&quot; style=&quot;color:#606060;&quot;&gt;   8:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;03&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Mar&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum9&quot; style=&quot;color:#606060;&quot;&gt;   9:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;04&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Apr&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum10&quot; style=&quot;color:#606060;&quot;&gt;  10:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;05&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;May&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum11&quot; style=&quot;color:#606060;&quot;&gt;  11:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;06&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Jun&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum12&quot; style=&quot;color:#606060;&quot;&gt;  12:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;07&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Jul&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum13&quot; style=&quot;color:#606060;&quot;&gt;  13:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;08&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Aug&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum14&quot; style=&quot;color:#606060;&quot;&gt;  14:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;09&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Sep&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum15&quot; style=&quot;color:#606060;&quot;&gt;  15:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;010&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Oct&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum16&quot; style=&quot;color:#606060;&quot;&gt;  16:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;011&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Nov&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum17&quot; style=&quot;color:#606060;&quot;&gt;  17:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;012&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Dec&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum18&quot; style=&quot;color:#606060;&quot;&gt;  18:&lt;/span&gt;             } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum19&quot; style=&quot;color:#606060;&quot;&gt;  19:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; groupNames = { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum20&quot; style=&quot;color:#606060;&quot;&gt;  20:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;today&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Today&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum21&quot; style=&quot;color:#606060;&quot;&gt;  21:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;tomorrow&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Tomorrow&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum22&quot; style=&quot;color:#606060;&quot;&gt;  22:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;thisweek&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;This week&quot;&lt;/span&gt;, &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum23&quot; style=&quot;color:#606060;&quot;&gt;  23:&lt;/span&gt;                 &lt;span style=&quot;color:#006080;&quot;&gt;&quot;upcoming&quot;&lt;/span&gt;: &lt;span style=&quot;color:#006080;&quot;&gt;&quot;Upcoming&quot;&lt;/span&gt; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum24&quot; style=&quot;color:#606060;&quot;&gt;  24:&lt;/span&gt;             } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum25&quot; style=&quot;color:#606060;&quot;&gt;  25:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum26&quot; style=&quot;color:#606060;&quot;&gt;  26:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; make2DigitString = &lt;span style=&quot;color:#0000ff;&quot;&gt;function&lt;/span&gt; (n) { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum27&quot; style=&quot;color:#606060;&quot;&gt;  27:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;return&lt;/span&gt; n &amp;lt; 10 ? &lt;span style=&quot;color:#006080;&quot;&gt;&quot;0&quot;&lt;/span&gt; + n : &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&quot;&lt;/span&gt; + n; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum28&quot; style=&quot;color:#606060;&quot;&gt;  28:&lt;/span&gt;             } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum29&quot; style=&quot;color:#606060;&quot;&gt;  29:&lt;/span&gt;              &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum30&quot; style=&quot;color:#606060;&quot;&gt;  30:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; now = &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; Date(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum31&quot; style=&quot;color:#606060;&quot;&gt;  31:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; tomorrow = &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; Date(now.getTime() + 24 * 60 * 60 * 1000); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum32&quot; style=&quot;color:#606060;&quot;&gt;  32:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; nextWeek = &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; Date(now.getTime() + 7 * 24 * 60 * 60 * 1000); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum33&quot; style=&quot;color:#606060;&quot;&gt;  33:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; endDate = &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; Date(now.getTime() + numOfWeeksToShow * 7 * 24 * 60 * 60 * 1000); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum34&quot; style=&quot;color:#606060;&quot;&gt;  34:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; $list = $kw(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;#_WPQ_Birthdays&quot;&lt;/span&gt;); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum35&quot; style=&quot;color:#606060;&quot;&gt;  35:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; $placeholder = $kw(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;#_WPQ_BirthdaysPlaceHolder&quot;&lt;/span&gt;); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum36&quot; style=&quot;color:#606060;&quot;&gt;  36:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; currentYear = now.getFullYear(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum37&quot; style=&quot;color:#606060;&quot;&gt;  37:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; nextYear = currentYear + 1; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum38&quot; style=&quot;color:#606060;&quot;&gt;  38:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; currentMonth = now.getMonth() + 1;&lt;span style=&quot;color:#008000;&quot;&gt;//it is zero based &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum39&quot; style=&quot;color:#606060;&quot;&gt;  39:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; currentDay = now.getDate(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum40&quot; style=&quot;color:#606060;&quot;&gt;  40:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; tomorrowMonth = tomorrow.getMonth() + 1; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum41&quot; style=&quot;color:#606060;&quot;&gt;  41:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; tomorrowDay = tomorrow.getDate(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum42&quot; style=&quot;color:#606060;&quot;&gt;  42:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; tomorrowYear = tomorrow.getFullYear(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum43&quot; style=&quot;color:#606060;&quot;&gt;  43:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; nextWeekMonth = nextWeek.getMonth() + 1; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum44&quot; style=&quot;color:#606060;&quot;&gt;  44:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; nextWeekDay = nextWeek.getDate(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum45&quot; style=&quot;color:#606060;&quot;&gt;  45:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; nextWeekYear = nextWeek.getFullYear(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum46&quot; style=&quot;color:#606060;&quot;&gt;  46:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; endMonth = endDate.getMonth() + 1; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum47&quot; style=&quot;color:#606060;&quot;&gt;  47:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; endDay = endDate.getDate(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum48&quot; style=&quot;color:#606060;&quot;&gt;  48:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; endYear = endDate.getFullYear(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum49&quot; style=&quot;color:#606060;&quot;&gt;  49:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum50&quot; style=&quot;color:#606060;&quot;&gt;  50:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; todayString = currentYear + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(currentMonth) + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(currentDay); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum51&quot; style=&quot;color:#606060;&quot;&gt;  51:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; tomorrowString = tomorrowYear + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(tomorrowMonth) + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(tomorrowDay); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum52&quot; style=&quot;color:#606060;&quot;&gt;  52:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; nextWeekString = nextWeekYear + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(nextWeekMonth) + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(nextWeekDay); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum53&quot; style=&quot;color:#606060;&quot;&gt;  53:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; endDateString = endYear + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(endMonth) + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(endDay); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum54&quot; style=&quot;color:#606060;&quot;&gt;  54:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; birthdaysList = &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; Array(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum55&quot; style=&quot;color:#606060;&quot;&gt;  55:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum56&quot; style=&quot;color:#606060;&quot;&gt;  56:&lt;/span&gt;             $list.find(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;li&quot;&lt;/span&gt;).each(&lt;span style=&quot;color:#0000ff;&quot;&gt;function&lt;/span&gt; () { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum57&quot; style=&quot;color:#606060;&quot;&gt;  57:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;try&lt;/span&gt;{ &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum58&quot; style=&quot;color:#606060;&quot;&gt;  58:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; title = $kw(&lt;span style=&quot;color:#0000ff;&quot;&gt;this&lt;/span&gt;).attr(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;data-title&quot;&lt;/span&gt;); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum59&quot; style=&quot;color:#606060;&quot;&gt;  59:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; month = parseInt($kw(&lt;span style=&quot;color:#0000ff;&quot;&gt;this&lt;/span&gt;).attr(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;data-month&quot;&lt;/span&gt;),10); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum60&quot; style=&quot;color:#606060;&quot;&gt;  60:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; day = parseInt($kw(&lt;span style=&quot;color:#0000ff;&quot;&gt;this&lt;/span&gt;).attr(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;data-day&quot;&lt;/span&gt;),10); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum61&quot; style=&quot;color:#606060;&quot;&gt;  61:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; sortableString = currentYear + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(month) + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(day); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum62&quot; style=&quot;color:#606060;&quot;&gt;  62:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (sortableString &amp;lt; todayString)&lt;span style=&quot;color:#008000;&quot;&gt;//this one passed. move it to next year &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum63&quot; style=&quot;color:#606060;&quot;&gt;  63:&lt;/span&gt;                         sortableString = nextYear + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(month) + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt; + make2DigitString(day); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum64&quot; style=&quot;color:#606060;&quot;&gt;  64:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt;( sortableString &amp;lt;= endDateString ) &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum65&quot; style=&quot;color:#606060;&quot;&gt;  65:&lt;/span&gt;                         birthdaysList[birthdaysList.length] = sortableString + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;:&quot;&lt;/span&gt; + title; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum66&quot; style=&quot;color:#606060;&quot;&gt;  66:&lt;/span&gt;                 } &lt;span style=&quot;color:#0000ff;&quot;&gt;catch&lt;/span&gt; (e) { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum67&quot; style=&quot;color:#606060;&quot;&gt;  67:&lt;/span&gt;                 } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum68&quot; style=&quot;color:#606060;&quot;&gt;  68:&lt;/span&gt;             }); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum69&quot; style=&quot;color:#606060;&quot;&gt;  69:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum70&quot; style=&quot;color:#606060;&quot;&gt;  70:&lt;/span&gt;             birthdaysList.sort();&lt;span style=&quot;color:#008000;&quot;&gt;//now we got sorted birthdays &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum71&quot; style=&quot;color:#606060;&quot;&gt;  71:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; titleMode = &lt;span style=&quot;color:#0000ff;&quot;&gt;null&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum72&quot; style=&quot;color:#606060;&quot;&gt;  72:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; html = &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum73&quot; style=&quot;color:#606060;&quot;&gt;  73:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;for&lt;/span&gt; (&lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; i = 0; i &amp;lt; birthdaysList.length; i++) { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum74&quot; style=&quot;color:#606060;&quot;&gt;  74:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; datePart = birthdaysList[i].split(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;:&quot;&lt;/span&gt;)[0]; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum75&quot; style=&quot;color:#606060;&quot;&gt;  75:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; titlePart = birthdaysList[i].split(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;:&quot;&lt;/span&gt;)[1]; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum76&quot; style=&quot;color:#606060;&quot;&gt;  76:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; dateArr = datePart.split(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;-&quot;&lt;/span&gt;); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum77&quot; style=&quot;color:#606060;&quot;&gt;  77:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; dateString = monthNames[dateArr[1]] + &lt;span style=&quot;color:#006080;&quot;&gt;&quot; &quot;&lt;/span&gt; + dateArr[2]; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum78&quot; style=&quot;color:#606060;&quot;&gt;  78:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum79&quot; style=&quot;color:#606060;&quot;&gt;  79:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;var&lt;/span&gt; newGroup = &lt;span style=&quot;color:#0000ff;&quot;&gt;false&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum80&quot; style=&quot;color:#606060;&quot;&gt;  80:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (todayString == datePart) { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum81&quot; style=&quot;color:#606060;&quot;&gt;  81:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (titleMode != &lt;span style=&quot;color:#006080;&quot;&gt;&quot;today&quot;&lt;/span&gt;)&lt;span style=&quot;color:#008000;&quot;&gt;//add title &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum82&quot; style=&quot;color:#606060;&quot;&gt;  82:&lt;/span&gt;                     { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum83&quot; style=&quot;color:#606060;&quot;&gt;  83:&lt;/span&gt;                         newGroup = &lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum84&quot; style=&quot;color:#606060;&quot;&gt;  84:&lt;/span&gt;                         titleMode = &lt;span style=&quot;color:#006080;&quot;&gt;&quot;today&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum85&quot; style=&quot;color:#606060;&quot;&gt;  85:&lt;/span&gt;                     } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum86&quot; style=&quot;color:#606060;&quot;&gt;  86:&lt;/span&gt;                 } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum87&quot; style=&quot;color:#606060;&quot;&gt;  87:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (tomorrowString == datePart) { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum88&quot; style=&quot;color:#606060;&quot;&gt;  88:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (titleMode != &lt;span style=&quot;color:#006080;&quot;&gt;&quot;tomorrow&quot;&lt;/span&gt;)&lt;span style=&quot;color:#008000;&quot;&gt;//add title &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum89&quot; style=&quot;color:#606060;&quot;&gt;  89:&lt;/span&gt;                     { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum90&quot; style=&quot;color:#606060;&quot;&gt;  90:&lt;/span&gt;                         newGroup = &lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum91&quot; style=&quot;color:#606060;&quot;&gt;  91:&lt;/span&gt;                         titleMode = &lt;span style=&quot;color:#006080;&quot;&gt;&quot;tomorrow&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum92&quot; style=&quot;color:#606060;&quot;&gt;  92:&lt;/span&gt;                     } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum93&quot; style=&quot;color:#606060;&quot;&gt;  93:&lt;/span&gt;                 } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum94&quot; style=&quot;color:#606060;&quot;&gt;  94:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (nextWeekString &amp;gt;= datePart) { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum95&quot; style=&quot;color:#606060;&quot;&gt;  95:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (titleMode != &lt;span style=&quot;color:#006080;&quot;&gt;&quot;thisweek&quot;&lt;/span&gt;)&lt;span style=&quot;color:#008000;&quot;&gt;//add title &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum96&quot; style=&quot;color:#606060;&quot;&gt;  96:&lt;/span&gt;                     { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum97&quot; style=&quot;color:#606060;&quot;&gt;  97:&lt;/span&gt;                         newGroup = &lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum98&quot; style=&quot;color:#606060;&quot;&gt;  98:&lt;/span&gt;                         titleMode = &lt;span style=&quot;color:#006080;&quot;&gt;&quot;thisweek&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum99&quot; style=&quot;color:#606060;&quot;&gt;  99:&lt;/span&gt;                     } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum100&quot; style=&quot;color:#606060;&quot;&gt; 100:&lt;/span&gt;                 } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum101&quot; style=&quot;color:#606060;&quot;&gt; 101:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum102&quot; style=&quot;color:#606060;&quot;&gt; 102:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (titleMode != &lt;span style=&quot;color:#006080;&quot;&gt;&quot;upcoming&quot;&lt;/span&gt;)&lt;span style=&quot;color:#008000;&quot;&gt;//add title &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum103&quot; style=&quot;color:#606060;&quot;&gt; 103:&lt;/span&gt;                     { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum104&quot; style=&quot;color:#606060;&quot;&gt; 104:&lt;/span&gt;                         newGroup = &lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum105&quot; style=&quot;color:#606060;&quot;&gt; 105:&lt;/span&gt;                         titleMode = &lt;span style=&quot;color:#006080;&quot;&gt;&quot;upcoming&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum106&quot; style=&quot;color:#606060;&quot;&gt; 106:&lt;/span&gt;                     } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum107&quot; style=&quot;color:#606060;&quot;&gt; 107:&lt;/span&gt;                 } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum108&quot; style=&quot;color:#606060;&quot;&gt; 108:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum109&quot; style=&quot;color:#606060;&quot;&gt; 109:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (newGroup) &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum110&quot; style=&quot;color:#606060;&quot;&gt; 110:&lt;/span&gt;                 { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum111&quot; style=&quot;color:#606060;&quot;&gt; 111:&lt;/span&gt;                     &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (html != &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&quot;&lt;/span&gt;) html += &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;/div&amp;gt;&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum112&quot; style=&quot;color:#606060;&quot;&gt; 112:&lt;/span&gt;                     html += &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;h3&amp;gt;&quot;&lt;/span&gt;+groupNames[titleMode]+&lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;/h3&amp;gt;&amp;lt;div&amp;gt;&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum113&quot; style=&quot;color:#606060;&quot;&gt; 113:&lt;/span&gt;                 } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum114&quot; style=&quot;color:#606060;&quot;&gt; 114:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum115&quot; style=&quot;color:#606060;&quot;&gt; 115:&lt;/span&gt;                 html += &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;p&amp;gt;&quot;&lt;/span&gt; + titlePart + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;span style='float:right'&amp;gt;&quot;&lt;/span&gt; + dateString + &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum116&quot; style=&quot;color:#606060;&quot;&gt; 116:&lt;/span&gt;             } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum117&quot; style=&quot;color:#606060;&quot;&gt; 117:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (html != &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&quot;&lt;/span&gt;) { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum118&quot; style=&quot;color:#606060;&quot;&gt; 118:&lt;/span&gt;                 html += &lt;span style=&quot;color:#006080;&quot;&gt;&quot;&amp;lt;/div&amp;gt;&quot;&lt;/span&gt;; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum119&quot; style=&quot;color:#606060;&quot;&gt; 119:&lt;/span&gt;                 $placeholder.append(html); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum120&quot; style=&quot;color:#606060;&quot;&gt; 120:&lt;/span&gt;                 &lt;span style=&quot;color:#008000;&quot;&gt;//$placeholder.accordion({ &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum121&quot; style=&quot;color:#606060;&quot;&gt; 121:&lt;/span&gt;                 &lt;span style=&quot;color:#008000;&quot;&gt;//    heightStyle: &quot;content&quot; &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum122&quot; style=&quot;color:#606060;&quot;&gt; 122:&lt;/span&gt;                 &lt;span style=&quot;color:#008000;&quot;&gt;//}); &lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum123&quot; style=&quot;color:#606060;&quot;&gt; 123:&lt;/span&gt;             } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum124&quot; style=&quot;color:#606060;&quot;&gt; 124:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; { &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum125&quot; style=&quot;color:#606060;&quot;&gt; 125:&lt;/span&gt;                 $kw(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;#_WPQ_NoBirthdaysPlaceHolder&quot;&lt;/span&gt;).show(); &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum126&quot; style=&quot;color:#606060;&quot;&gt; 126:&lt;/span&gt;             } &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum127&quot; style=&quot;color:#606060;&quot;&gt; 127:&lt;/span&gt; } &lt;/pre&gt;&lt;span id=&quot;lnum127&quot; style=&quot;color:#606060;&quot;&gt; 128:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color:#606060;&quot;&gt; 129:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;div&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;_WPQ_BirthdaysPlaceHolder&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color:#606060;&quot;&gt; 130:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;div&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;_WPQ_NoBirthdaysPlaceHolder&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;display:none&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;No upcoming birthdays.&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum4&quot; style=&quot;color:#606060;&quot;&gt; 131:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;ul&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;_WPQ_Birthdays&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;display:none&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;5. Body: (This will be rendered for each item)&lt;/p&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:'Courier New', courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;background-color:#f4f4f4;&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color:#606060;&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;li&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;data-title&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;{item:Title:value}&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;data-month&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;{item:Month:value}&quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;data-day&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;{item:Day:value}&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span id=&quot;lnum2&quot; style=&quot;color:#606060;&quot;&gt;   2:&lt;/span&gt; {item:Title:value} - {item:Month:value} - {item:Day:value} &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum3&quot; style=&quot;color:#606060;&quot;&gt;   3:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;li&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;6. Footer: (This will be rendered at the end)&lt;/p&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:'Courier New', courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;background-color:#f4f4f4;&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span id=&quot;lnum1&quot; style=&quot;color:#606060;&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;ul&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Notes:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In the header script, you can find at the beginning options to configure the template, like translating the text and how many weeks of birthdays to show.&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Step 4: Add the web part to your page&lt;/h3&gt;&lt;br /&gt;&lt;p&gt;Now, all you got to do is add the data view plus web part to your page, connect to the birthdays list and select the new template you just created, and you are done!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now, you see how easy it is to modify my template and brand it to what ever your customers are asking for? You got complete control over the HTML, and no need to mess with XSL.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I would love to hear your comments or thoughts, I will try to build a few more templates and share them here. If you got ideas or requests let me know!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-943048963085296760</guid>
         <pubDate>Fri, 20 Jun 2014 17:12:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh5.ggpht.com/-usjCq-gUMpo/U6Rr4c7L8CI/AAAAAAAAAgo/gX55Wunp2Ao/s72-c/image_thumb%25255B6%25255D.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Interesting HTML bug?</title>
         <link>http://kwizcom.blogspot.com/2014/05/interesting-html-bug.html</link>
         <description>&lt;p&gt;Found this very interesting in HTML.&lt;/p&gt; &lt;p&gt;When you create a table with colspans, in some situations the colspan gets ignored.&lt;/p&gt; &lt;p&gt;Check this out:&lt;/p&gt; &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:'Courier New', courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;background-color:#f4f4f4;&quot;&gt; &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;table&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;border&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;colspan&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;2&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;111111111111&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;2&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;1&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;colspan&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;2&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;222222222222&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;table&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;will produce this html:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh5.ggpht.com/-87TWVI4kaJQ/U3T_2UwPAFI/AAAAAAAAAfg/ae6244bt_rU/s1600-h/image%25255B16%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/-R2FMrXuCPek/U3T_3BL2IHI/AAAAAAAAAfk/0ri2Sj4Ybqk/image_thumb%25255B10%25255D.png?imgmax=800&quot; width=&quot;218&quot; height=&quot;65&quot;&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;While this:&lt;/p&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:'Courier New', courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;background-color:#f4f4f4;&quot;&gt;&lt;br /&gt;&lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;table&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;border&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;1&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;colspan&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;2&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;111111111111&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;2&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;1&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;        &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;colspan&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&quot;2&quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;222222222222&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;td&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;tr&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;table&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;will produce this html:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh6.ggpht.com/-jXkVDs0L44k/U3T_3uWr16I/AAAAAAAAAfs/_pBMesllIbY/s1600-h/image%25255B15%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;display:inline;&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/-z4KUV0twhTE/U3T_4XfBYhI/AAAAAAAAAf4/M_ly9XA6IyQ/image_thumb%25255B9%25255D.png?imgmax=800&quot; width=&quot;191&quot; height=&quot;74&quot;&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;You see, when i do not add the empty row with 3 blank TD, the colspan settings are ignored.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Anyone has a good explanation for this? I’m puzzled.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Play with it yourself:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;http://jsfiddle.net/RDL3s/4/&quot; target=&quot;_blank&quot; href=&quot;http://jsfiddle.net/RDL3s/4/&quot;&gt;http://jsfiddle.net/RDL3s/4/&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;http://jsfiddle.net/RDL3s/5/&quot; target=&quot;_blank&quot; href=&quot;http://jsfiddle.net/RDL3s/5/&quot;&gt;http://jsfiddle.net/RDL3s/5/&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I found this issue while working on multi column settings for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.kwizcom.com/sharepoint-add-ons/sharepoint-list-forms-extensions-feature/overview/&quot;&gt;KWizCom Forms&lt;/a&gt;, I couldn’t figure out why the form ignores my colspan only on some cases…&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh4.ggpht.com/-lRD2S_55bbM/U3T_46OgJkI/AAAAAAAAAgA/yM3Cq31UiTk/s1600-h/image%25255B13%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;float:none;margin-left:auto;border-left:0px;display:block;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-_StxBtK5so0/U3T_5uiWXwI/AAAAAAAAAgI/qo2PwNQhiVw/image_thumb%25255B7%25255D.png?imgmax=800&quot; width=&quot;489&quot; height=&quot;160&quot;&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;( sneak peak, beta will be available tomorrow – ping me if you want to see it first)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Cheers&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-8237313883674808091</guid>
         <pubDate>Thu, 15 May 2014 17:56:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh3.ggpht.com/-R2FMrXuCPek/U3T_3BL2IHI/AAAAAAAAAfk/0ri2Sj4Ybqk/s72-c/image_thumb%25255B10%25255D.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>MVP Consumer Camp</title>
         <link>http://kwizcom.blogspot.com/2014/05/mvp-consumer-camp.html</link>
         <description>&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh3.ggpht.com/-IerfPFjrX9c/U3J9csCyuiI/AAAAAAAAAek/EVDZiLa75GM/s1600-h/clip_image002%25255B6%25255D.png&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;float:none;margin-left:auto;border-left:0px;display:block;margin-right:auto;&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh5.ggpht.com/-u0TjCUmqbcM/U3J9dMAihbI/AAAAAAAAAes/ANCH3_RgARA/clip_image002_thumb%25255B3%25255D.png?imgmax=800&quot; width=&quot;593&quot; height=&quot;193&quot;&gt;&lt;/a&gt;&lt;p&gt;I wanted to let everyone know about a great event that Microsoft is organizing at the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://content.microsoftstore.com/en-ca/detail/squareone&quot;&gt;Microsoft Store at Square One Shopping Centre&lt;/a&gt; in Mississauga – the first &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032587467&amp;amp;Culture=en-CA&amp;amp;community=0&quot;&gt;Canadian MVP Consumer Camp&lt;/a&gt; on Thursday, May 29&lt;sup&gt;th&lt;/sup&gt; from 4pm to 9pm. I will try to be there with my fellow MVPs answering tech questions, showing off demos and the unique features of Microsoft devices. There will be prize draws, Q&amp;amp;A sessions, snacks and refreshments.&amp;nbsp; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://mvp.microsoft.com/en-us/default.aspx&quot;&gt;MVPs&lt;/a&gt; are recognized exceptional, independent community leaders who share their passion, technical expertise, and real-world knowledge of Microsoft products with others. We speak at events, answer questions online, and have awesome technical blogs!&amp;nbsp; I will be there with quite a few MVPs from across Canada! &lt;p&gt;For those of you who haven’t been to a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://content.microsoftstore.com/en-ca/Home.aspx&quot;&gt;Microsoft Store&lt;/a&gt; yet, they are amazing!&amp;nbsp; They have a huge selection of the latest products and gadgets with experts who can answer all of your questions.&amp;nbsp; If you can’t make the event, definitely try to drop in to a store to try the latest Xbox game, check out Windows 8.1 and its great touch features or to buy the latest and greatest Windows Phone.&amp;nbsp; The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.nokia.com/ca-en/phones/phone/lumia1020/&quot;&gt;Nokia Lumia 1020&lt;/a&gt; has an unbelievable camera by the way ;) &lt;p&gt;Do you have any questions about Surface, Windows, Office, Windows Phone or Xbox?&amp;nbsp; Do you want to learn about how to get the most out of your gadgets?&amp;nbsp; There will be an MVP there who can provide answers! Hope to see you there! &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032587467&amp;amp;Culture=en-CA&amp;amp;community=0&quot;&gt;Register here!&lt;/a&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh3.ggpht.com/-a3uCAPwilvo/U3J9dqqG-yI/AAAAAAAAAe0/6AVXF9IB-rc/s1600-h/clip_image003%25255B6%25255D.png&quot;&gt;&lt;img title=&quot;clip_image003&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;margin-left:0px;border-left:0px;display:inline;margin-right:0px;&quot; border=&quot;0&quot; alt=&quot;clip_image003&quot; src=&quot;http://lh4.ggpht.com/-LLqBTOf9Ndo/U3J9eB9p0jI/AAAAAAAAAe8/1_fxnWEwhaM/clip_image003_thumb%25255B3%25255D.png?imgmax=800&quot; width=&quot;343&quot; align=&quot;left&quot; height=&quot;71&quot;&gt;&lt;/a&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh6.ggpht.com/-Gw3VU2lc5yE/U3J9eheBNRI/AAAAAAAAAfE/npzPRUUNWms/s1600-h/clip_image005%25255B6%25255D.jpg&quot;&gt;&lt;img title=&quot;clip_image005&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;margin-left:0px;border-left:0px;display:inline;margin-right:0px;&quot; border=&quot;0&quot; alt=&quot;clip_image005&quot; src=&quot;http://lh5.ggpht.com/-0_bo9VaEy6E/U3J9fA2eFeI/AAAAAAAAAfM/yJJXyCImwY8/clip_image005_thumb%25255B3%25255D.jpg?imgmax=800&quot; width=&quot;275&quot; align=&quot;right&quot; height=&quot;66&quot;&gt;&lt;/a&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-6229971420315946024</guid>
         <pubDate>Tue, 13 May 2014 20:15:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh5.ggpht.com/-u0TjCUmqbcM/U3J9dMAihbI/AAAAAAAAAes/ANCH3_RgARA/s72-c/clip_image002_thumb%25255B3%25255D.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>New / Edit form loads but not responding for 10 seconds</title>
         <link>http://kwizcom.blogspot.com/2014/05/new-edit-form-loads-but-not-responding.html</link>
         <description>&lt;p&gt;Ok, something we have been struggling with for months and drove many of us at KWizCom a bit crazy…&lt;/p&gt; &lt;p&gt;It is hard to explain, so I’ll try my best:&lt;/p&gt; &lt;p&gt;In our internal portal, we are using SharePoint 2010.&lt;/p&gt; &lt;p&gt;In our current bug tracking list, we use a SharePoint list similar to the issue tracking, every time to click on a new item or edit item – the page loads quickly enough, but it is stuck and not responding for up to 10 seconds sometimes.&lt;/p&gt; &lt;p&gt;After 10 seconds, the page completes loading, rich texts load their toolbar, and the ribbon starts working.&lt;/p&gt; &lt;p&gt;We have over 4000 items in that list, and the problem just becomes more and more of an issue as the list grows.&lt;/p&gt; &lt;p&gt;After a lot of trial and error, I finally managed to pin point the code that makes the browser stuck:&lt;/p&gt; &lt;p&gt;It is a javascript file called “groupeditempicker.js”, and more specifically, a function called “GipInitializeGroup”.&lt;/p&gt; &lt;p&gt;After a little research, I realized this code is a part of the SharePoint out of the box multi-lookup column picker (the left-right-boxes like we call it), which was looking up items from the current list as related issues.&lt;/p&gt; &lt;p&gt;Once I converted this lookup into our Cascading Lookup with “edit on demand” flag, which was designed to work on large list lookups – the problem was solved immediately.&lt;/p&gt; &lt;p&gt;Not sure how many people out there will encounter this issue, and from them how many will find this post – bug if you did, leave me a comment! I am curious to know if it was just us.&lt;/p&gt; &lt;p&gt;Happy SharePointing,&lt;/p&gt; &lt;p&gt;Shai.&lt;/p&gt;   &lt;p&gt; Edit: A link to KWizCom cascading lookup product. This product can show multi - lookup as a grid control with paging and checkboxes, and supports a mode we call &quot;edit by request&quot; which means if you edit the item - this field will display the view mode of the current value. If you want to modify it, you have to click on the edit button to change it into edit mode. This feature is very useful for huge lookup lists that you do not modify every time. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.kwizcom.com/sharepoint-add-ons/sharepoint-cascading-lookup-plus/overview/&quot;&gt;Cascading lookup page&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-7031613259891512636</guid>
         <pubDate>Tue, 06 May 2014 21:58:00 +0000</pubDate>
      </item>
      <item>
         <title>SharePoint 2010 Deferred site collection upgrade with custom SharePoint solutions</title>
         <link>http://kwizcom.blogspot.com/2014/03/sharepoint-2010-deferred-site.html</link>
         <description>&lt;br /&gt;We have been struggling with this concept for a while, being an ISV with many customers who use our products on SharePoint 2007 and 2010 and are interested in upgrading to SharePoint 2013, but using the deferred site collection upgrade approach.&lt;br /&gt;You see, in this approach you upgrade to a SharePoint 2013 farm but still run your 2010 sites in SharePoint 2010 user interface, while allowing site owners to gradually upgrade to 2013 interface gradually.&lt;br /&gt;The problem this poses for us was simple: which version of my solution do I install on that hybrid farm?&lt;br /&gt;SharePoint 2010 solution will work on the 2010 experience sites, but will not work on those that were already upgraded to 2013 or on new sites created in 2013 experience.&lt;br /&gt;&lt;br /&gt;SharePoint 2013 solution will work on the upgraded sites or new sites, but not on sites still using the 2010 user interface.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;First try (didn't work)&lt;/h3&gt;Installing both versions seemed to be the solution, but we had a few issues with that approach:&lt;br /&gt;1. Our 2010 and 2013 WSP solutions have the same solution ID, thus cannot be installed on the same farm at the same time&lt;br /&gt;2. Both 2010 and 2013 WSP packages contain the same DLLs assemblies, and so if we retract one – it will remove the shared DLLs and break the other. So, when upgrade is done and we want to remove the 2010 package it will break the 2013 package.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Working approach&lt;/h3&gt;After working closely with the good people at Microsoft, we run some tests and come to the following procedure that would work for us (and possible for everyone in this situation):&lt;br /&gt;1. Install the 2013 solution&lt;br /&gt;2. Create a new package that adds 2010 backward compatibility (called “2010 BC”) that installs only the needed resources and use it during the deferred site collection upgrade period&lt;br /&gt;3. Once that period is over and everything was upgraded – remove the “2010 BC” package *&lt;br /&gt;&lt;br /&gt;This approach seems to be working great on our testing, but we still had the 2 issues to deal with (DLLs and solution ID) and I didn’t want to burden our R&amp;amp;D with maintaining and producing another package for every product.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Tools of trade&lt;/h3&gt;So, I am happy to share with you a new codeplex project I just released for this purpose:&lt;br /&gt;“WSP REpackage tool” found here: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://wsprp.codeplex.com/&quot; title=&quot;https://wsprp.codeplex.com/&quot;&gt;https://wsprp.codeplex.com/&lt;/a&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh6.ggpht.com/-3Oj310jICLY/UzW5VFGseJI/AAAAAAAAAd4/oKaDuuePQDE/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;http://lh5.ggpht.com/-BXjbPBrLQOU/UzW5V6HEo7I/AAAAAAAAAd8/1yJPCHXandA/image_thumb.png?imgmax=800&quot; height=&quot;166&quot; style=&quot;border-bottom:0px;border-left:0px;border-right:0px;border-top:0px;display:inline;&quot; title=&quot;image&quot; width=&quot;244&quot;/&gt;&lt;/a&gt; &lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh4.ggpht.com/-_UoPgZaP-9k/UzW5WBT2jUI/AAAAAAAAAeE/4u_kdDYhblk/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; src=&quot;http://lh6.ggpht.com/-D8bH8GI50F8/UzW5W9tV-6I/AAAAAAAAAeQ/XQONaLqTtsk/image_thumb%25255B1%25255D.png?imgmax=800&quot; height=&quot;36&quot; style=&quot;border-bottom:0px;border-left:0px;border-right:0px;border-top:0px;display:inline;&quot; title=&quot;image&quot; width=&quot;244&quot;/&gt;&lt;/a&gt; &lt;br /&gt;This tool will take your existing 2010 solution package, and repackage it as a new WSP file with a new solution ID and without the assemblies inside. This new package will be the “2010 BC” package that&amp;nbsp; you can safely install on your SharePoint 2013 farm along with the SharePoint 2013 solution to be able to support both 2013 native sites and upgraded sites that still use 2010 user interface.&lt;br /&gt;I hope this tool helps you guys support this great new upgrade experience for SharePoint, I am happy to announce KWizCom products were tested and now support the deferred site collection upgrade also using our Web Installer experience that allows you to directly download and install our products and (now) add support for 2010 BC sites with just a few clicks (tool available here: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://catalog.kwizcom.com/sites/pc/_layouts/KWizComInstaller/KWizCom%20Installer.application&quot; title=&quot;ClickOnce installer&quot;&gt;ClickOnce installer&lt;/a&gt;)&lt;br /&gt;If you have thoughts, comments please feel free to either comment here or on the discussion in the codeplex project.&lt;br /&gt;I would love to hear what you think about this tool and this upgrade approach in general.&lt;br /&gt;Shai.&lt;br /&gt;&lt;br /&gt;* Very important edit note: after discussing with Microsoft, if you retract the 2010BC solution or the 2013 solution using the central administration - even though these solutions now do not share the same solution ID and are set to different versions of SharePoint, they will remove each other's files from both SharePoint root folders (14 and 15). This is a know issue, and MS advised me that the only supported way to retract packages is by using PowerShell with the correct -CompatibilityLevel version flag.&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://technet.microsoft.com/en-us/library/ff607873(v=office.15).aspx&quot;&gt;http://technet.microsoft.com/en-us/library/ff607873(v=office.15).aspx&lt;/a&gt; So please be advised.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-2710110875129544426</guid>
         <pubDate>Fri, 28 Mar 2014 17:52:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh5.ggpht.com/-BXjbPBrLQOU/UzW5V6HEo7I/AAAAAAAAAd8/1yJPCHXandA/s72-c/image_thumb.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Speaking Engagements 2014</title>
         <link>http://kwizcom.blogspot.com/2014/03/speaking-engagements-2014.html</link>
         <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Just FYI, my speaking engagements for 2014 are posted here,&lt;/p&gt; &lt;p&gt;If you are around – come see me! &lt;br&gt;If you were in one of my sessions, you can find links to the session code and presentation below. Also – if you have any comments on my session – feel free to post it here!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;April 2&lt;/strong&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://kwizcomevents.webex.com/kwizcomevents/onstage/g.php?MTID=ed0310d36b89c24bc6e54e2d0755bad3e&quot;&gt;Online web cast&lt;/a&gt; – How I built my first commercial SharePoint hosted app (10am, eastern time)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;April 17&lt;/strong&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.meetup.com/HamiltonSPUG/events/88934772/&quot;&gt;Hamilton SharePoint User Group&lt;/a&gt; – How I built my first commercial SharePoint hosted app&lt;/p&gt; &lt;p&gt;&lt;strong&gt;May 29&lt;/strong&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://kwizcomevents.webex.com/mw0401l/mywebex/default.do?nomenu=true&amp;amp;siteurl=kwizcomevents&amp;amp;service=6&amp;amp;rnd=0.9704143937088111&amp;amp;main_url=https%3A%2F%2Fkwizcomevents.webex.com%2Fec0701l%2Feventcenter%2Fevent%2FeventAction.do%3FtheAction%3Ddetail%26confViewID%3D1749327659%26%26%26%26siteurl%3Dkwizcomevents&quot;&gt;Online web cast&lt;/a&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://kwizcom.blogspot.ca/2014/03/sharepoint-2010-deferred-site.html&quot;&gt;SharePoint 2013 Deferred Site Collection Upgrade With Full Trust Solutions Support&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;July 12&lt;/strong&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.spsevents.org/city/Toronto/Toronto2014&quot;&gt;SharePoint Saturday Toronto&lt;/a&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.slideshare.net/shaibs/kwizcom-forms&quot;&gt;KWizCom Forms&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;July 26&lt;/strong&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.spsevents.org/city/NYC/NYC2014/home&quot;&gt;SharePoint Saturday New York&lt;/a&gt; – &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.slideshare.net/shaibs/building-real-o365-sharepoint-apps&quot;&gt;How I built my first commercial SharePoint hosted app&lt;/a&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-1419473336893791939</guid>
         <pubDate>Mon, 24 Mar 2014 15:35:00 +0000</pubDate>
      </item>
      <item>
         <title>Attaching on Startup</title>
         <link>http://weblogs.asp.net:80/avnerk/attaching-on-startup</link>
         <description>Here’s a neat trick I stumbled onto that can make life a lot easier – in our development workstations, certainly, and even in a pinch on staging and testing machines:

How many times have you wished you could attach to a process immediately when it launchs? If we’re running a simple EXE, we can launch it from the debugger directly, but if we’re trying to debug a Windows Service, a scheduled task or a sub-process that is launched automatically, it isn’t that simple. We can try to press CTRL-ALT-P as quickly as possible, but that will almost always miss the very beginning. We can add a call to &lt;span style=&quot;font-family:Consolas;&quot;&gt;System.Diagnostics.Debugger.Launch()&lt;/span&gt; to our &lt;span style=&quot;font-family:Consolas;&quot;&gt;Application_Startup()&lt;/span&gt; function (or equivalent), but that’s polluting production code with debugging statements, and it isn’t really something we can send over to a staging or QA machine.

I was all set to write a tool to monitor new processes being launched and latch onto them when I discovered that there’s no need, and Windows provides me with this facility automatically!

All we need to do is create a new registry key under &lt;strong&gt;&lt;span style=&quot;font-family:Consolas;&quot;&gt;HKEY_LOCAL_MACHINE&amp;#92;Software&amp;#92;Microsoft&amp;#92;Windows NT&amp;#92;CurrentVersion&amp;#92;Image File ExecutionOptions&lt;/span&gt;&lt;/strong&gt; and name it after the EXE we want to attach to.

Under this key, we create two values: A DWORD named &lt;strong&gt;&lt;span style=&quot;font-family:Consolas;&quot;&gt;PauseOnStartup&lt;/span&gt; &lt;/strong&gt;with a value of &lt;strong&gt;&lt;span style=&quot;font-family:Consolas;&quot;&gt;1&lt;/span&gt;, &lt;/strong&gt;and a string named &lt;strong&gt;&lt;span style=&quot;font-family:Consolas;&quot;&gt;Debugger&lt;/span&gt;&lt;/strong&gt;, with a value of &lt;strong&gt;&lt;span style=&quot;font-family:Consolas;&quot;&gt;vsjitdebugger.exe&lt;/span&gt;&lt;/strong&gt;. Here’s a sample .REG file
&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8f40c3e0-1783-43ae-807e-796daf2ef264&quot; style=&quot;float:none;margin:0px;display:inline;padding:0px;&quot;&gt;
&lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;&quot;&gt;
&lt;div style=&quot;background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;&quot;&gt;Code Snippet&lt;/div&gt;
&lt;div style=&quot;background:#ddd;max-height:300px;overflow:auto;&quot;&gt;
&lt;ol style=&quot;background:#ffffff;margin:0 0 0 2em;padding:0 0 0 5px;&quot; start=&quot;1&quot;&gt;
	&lt;li&gt;Windows Registry Editor Version 5.00&lt;/li&gt;
	&lt;li style=&quot;background:#f3f3f3;&quot;&gt;&lt;/li&gt;
	&lt;li&gt;[HKEY_LOCAL_MACHINE&amp;#92;SOFTWARE&amp;#92;Microsoft&amp;#92;Windows NT&amp;#92;CurrentVersion&amp;#92;Image File Execution Options&amp;#92;&lt;strong&gt;MyApplication.exe&lt;/strong&gt;]&lt;/li&gt;
	&lt;li style=&quot;background:#f3f3f3;&quot;&gt;&quot;PauseOnStartup&quot;=dword:00000001&lt;/li&gt;
	&lt;li&gt;&quot;Debugger&quot;=&quot;vsjitdebugger.exe&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&amp;nbsp;

Now, when MyApplication.exe launches, it will automatically launch the familiar “Choose the debugger to use” dialog, and we can point it to our solution of choice.</description>
         <guid isPermaLink="false">http://weblogs.asp.net:80/avnerk/attaching-on-startup</guid>
         <pubDate>Thu, 23 Jan 2014 07:21:35 +0000</pubDate>
      </item>
      <item>
         <title>SharePoint, CCleaner and IE10 – be nice!</title>
         <link>http://kwizcom.blogspot.com/2014/01/sharepoint-ccleaner-and-ie10-be-nice.html</link>
         <description>&lt;p&gt;So, funny story…&lt;/p&gt; &lt;p&gt;During update of our SharePoint 2013 QA machine, as a routine before saving a template I run CCleaner to cleanup the disk after installing updates and what not.&lt;/p&gt; &lt;p&gt;Got a strange report from my QA: using IE10 from the server can load the site, but any menu they try to use (such as the site settings) give out this error:&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh6.ggpht.com/-w__copjuJt8/Us7fjiFFLJI/AAAAAAAAAdA/nhuh-5GuypI/s1600-h/clip_image002%25255B3%25255D.jpg&quot;&gt;&lt;img title=&quot;clip_image002&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh4.ggpht.com/-fKU75pfeFFU/Us7flK89WPI/AAAAAAAAAdI/zmGPlheRl9c/clip_image002_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;91&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;(An error has occurred with the date fetch. Please refresh the page and try again).&lt;/p&gt; &lt;p&gt;So, refreshing, closing and reopening the browser, clearing cache, even resetting IE to factory settings – nothing worked!&lt;/p&gt; &lt;p&gt;Other browsers worked just fine, as well as IE from another machine.&lt;/p&gt; &lt;p&gt;Opening JS debugger pointed me to window.localStorage that caused this error, and as I didn’t want to disable it I found that clearing the browser cache is the right solution, only I didn’t do it properly…&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh4.ggpht.com/-tWnGIGSoOm0/Us7fnGSFaHI/AAAAAAAAAdQ/78r3JRcSW1k/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top:0px;border-right:0px;border-bottom:0px;border-left:0px;display:inline;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-erqZ-jtq8xE/Us7fnnwEr6I/AAAAAAAAAdY/dwXqKt1B4iE/image_thumb.png?imgmax=800&quot; width=&quot;180&quot; height=&quot;244&quot;&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Notice the first checkbox “Preserve Favorites website data” that is checked by default?&lt;/p&gt; &lt;p&gt;Well, the SharePoint site I was working with is set as a trusted site and my guess is that clearing the cache with this setting on skipped it.&lt;/p&gt; &lt;p&gt;Once I cleared this checkbox and deleted my cache everything went back to normal.&lt;/p&gt; &lt;p&gt;Just to be sure, I run CCleaner again – sure enough the problem immediately occurred.&lt;/p&gt; &lt;p&gt;Running clear cache again – fixed it immediately.&lt;/p&gt; &lt;p&gt;So, there you have it… good luck&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-3541052576254939509</guid>
         <pubDate>Thu, 09 Jan 2014 17:42:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh4.ggpht.com/-fKU75pfeFFU/Us7flK89WPI/AAAAAAAAAdI/zmGPlheRl9c/s72-c/clip_image002_thumb.jpg?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Update certificate on SharePoint 2010</title>
         <link>http://kwizcom.blogspot.com/2014/01/update-certificate-on-sharepoint-2010.html</link>
         <description>&lt;p&gt;I recently needed to update the certificate issued by our ADFS server on our dev/QA SharePoint 2010.&lt;/p&gt; &lt;p&gt;I found few posts online with good pointers, but not one of them solved my issue, so I came to compile a list of actions I did to fix the certificate and make it work.&lt;/p&gt; &lt;p&gt;I cannot say if some steps are not needed or wrong, but this is what I did exactly on 2 environments and worked on both, step by step:&lt;/p&gt; &lt;h2&gt;On ADFS server&lt;/h2&gt; &lt;h3&gt;Run PowerShell&lt;/h3&gt; &lt;p&gt;Add-PSSnapin Microsoft.Adfs.PowerShell&lt;br&gt;set-adfsproperties -CertificateDuration 730&lt;br&gt;update-adfscertificate -CertificateType: Token-Signing -Urgent:$True&lt;br&gt;update-adfscertificate -CertificateType: Token-Decrypting -Urgent:$True &lt;/p&gt; &lt;h3&gt;Open ADFS management&lt;/h3&gt; &lt;p&gt;export both signing and decrypting certificate to .cer file &lt;br&gt;copy the cer files to your SharePoint 2010 machine &lt;p&gt;&amp;nbsp; &lt;h2&gt;On SharePoint&lt;/h2&gt; &lt;h3&gt;Windows Explorer&lt;/h3&gt; &lt;p&gt;Install both certificates in trusted root by right clicking on them –&amp;gt; install certificate. Choose location “trusted root authority” &lt;p&gt;&amp;nbsp; &lt;h3&gt;Run PowerShell&lt;/h3&gt; &lt;p&gt; (I used signing certificate in power shell):&lt;br&gt;$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2(&quot;c:&amp;#92;test&amp;#92;adfs-signing.cer&quot;)&lt;br&gt;Get-SPTrustedRootAuthority&lt;br&gt;-- copy the id at the end of the printout, replace it in the following command:&lt;br&gt;Set-SPTrustedRootAuthority -Identity &quot;[id]&quot; -Certificate $cert&lt;br&gt;Get-SPTrustedIdentityTokenIssuer&lt;br&gt;-- copy the name at the end of the printout, place it in the following command:&lt;br&gt;Set-SPTrustedIdentityTokenIssuer &quot;[Name]&quot; -ImportTrustCertificate $cert &lt;/p&gt; &lt;h3&gt;On central admin&lt;/h3&gt; &lt;p&gt;Go to security, manage trust&lt;br&gt;Update 2 certificates there (click on them, click edit, upload the new .cer files)&lt;br&gt;Delete &quot;local&quot; and recreate it in power shell:&lt;br&gt;&lt;/p&gt; &lt;h3&gt;Run PowerShell&lt;/h3&gt; &lt;p&gt;$rootCert = (Get-SPCertificateAuthority).RootCertificate &lt;br&gt;New-SPTrustedRootAuthority -Name &quot;localNew&quot; -Certificate $rootCert &lt;/p&gt; &lt;h2&gt;Complete, verify&lt;/h2&gt; &lt;p&gt;Run IISRESET – very important!&lt;/p&gt; &lt;p&gt;Pray, finger crossed, tell your wife you love her and make sure no one in the world is angry at you&lt;/p&gt; &lt;p&gt;Open browser and try to login to your HTTPs site using ADFS and if you did everything right it should work.&lt;/p&gt; &lt;p&gt;Like I said, it was working for me on our dev/QA environments, so I am not asking questions – if you have comments on something I should/could have done different, feel free to leave a comment.&lt;/p&gt; &lt;p&gt;Good luck.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-6657143658246122385</guid>
         <pubDate>Wed, 08 Jan 2014 17:29:00 +0000</pubDate>
      </item>
      <item>
         <title>Cool feature in Win 8.1 mail app</title>
         <link>http://kwizcom.blogspot.com/2013/11/cool-feature-in-win-81-mail-app.html</link>
         <description>&lt;p&gt;I noticed I don’t get notifications for incoming emails anymore after upgrading to win8.1,&lt;/p&gt; &lt;p&gt;Sometimes I do, most of the times I don’t.&lt;/p&gt; &lt;p&gt;At first I thought this was a bug, but apparently this is a new awesome feature from Microsoft.&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lh3.ggpht.com/-jywZopt2LO0/UoqWiFFg13I/AAAAAAAAAcg/ioy0mWiDUH0/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:right;padding-top:0px;padding-left:0px;border-left:0px;display:inline;padding-right:0px;&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh4.ggpht.com/-YGL2YovAaNY/UoqWjnTHwuI/AAAAAAAAAck/GNnt90BpBlg/image_thumb.png?imgmax=800&quot; width=&quot;108&quot; align=&quot;right&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The guys implemented a new feature into the mail app (not outlook, the native mail app) called “favorites”, and it is adding people you are most commonly communicating with to that list.&lt;/p&gt; &lt;p&gt;The settings by default changed to show the notification only when you get an email from someone from that group, so it does not distract you when you get emails from other people.&lt;/p&gt; &lt;p&gt;If you do want the notification to show all the time you can of course change it, for instance if you work at sales or support I guess most of your emails would not be from a selected few.&lt;/p&gt; &lt;p&gt;But for the most part, this is great in reducing the distraction involved with constantly getting email notifications on my screen. I just wish it was a bit more clear and perhaps even prompted me about this instead of just applying it for me.&lt;/p&gt; &lt;p&gt;You go to your mail app, settings, accounts and this is where you find it!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-3216853817742713389</guid>
         <pubDate>Mon, 18 Nov 2013 22:37:00 +0000</pubDate>
         <media:thumbnail height="72" url="http://lh4.ggpht.com/-YGL2YovAaNY/UoqWjnTHwuI/AAAAAAAAAck/GNnt90BpBlg/s72-c/image_thumb.png?imgmax=800" width="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>SPFieldMultiLineText.RichText = true does not update</title>
         <link>http://kwizcom.blogspot.com/2013/11/spfieldmultilinetextrichtext-true-does.html</link>
         <description>&lt;p&gt;Interesting thing happened to me today, and I guess I’ve seen it happening at least 10 times in the past but I keep forgetting what the solution was every time I see it again.&lt;/p&gt; &lt;p&gt;Say you create a multiple lines of text field in a list (Note field type of class SPFieldMultiLineText).&lt;/p&gt; &lt;p&gt;Now, you want to make sure it supports HTML but you want to do it via code.&lt;/p&gt; &lt;p&gt;The simple thing to do appears to be:&lt;/p&gt; &lt;p&gt;SPFieldMultiLineText myField = …;&lt;br&gt;myField.RichText = true;&lt;br&gt;myField.RichTextMode = FullHtml;&lt;br&gt;myField.Update();&lt;/p&gt; &lt;p&gt;Right? Wrong!&lt;/p&gt; &lt;p&gt;Run that code again, you will find that the RichText and RichTextMode properties were not modified.&lt;/p&gt; &lt;p&gt;Even calling list.Update() doesn’t help.&lt;/p&gt; &lt;p&gt;Apparently, the simple solution is to edit and set the myField.SchemaXml property directly, without calling myField.Update() after. Simple, yet annoying.&lt;/p&gt; &lt;p&gt;Here is an example of a working code:&lt;/p&gt; &lt;div id=&quot;codeSnippetWrapper&quot; style=&quot;overflow:auto;cursor:text;font-size:8pt;border-top:silver 1px solid;font-family:'Courier New', courier, monospace;border-right:silver 1px solid;width:97.5%;border-bottom:silver 1px solid;padding-bottom:4px;direction:ltr;text-align:left;padding-top:4px;padding-left:4px;margin:20px 0px 10px;border-left:silver 1px solid;line-height:12pt;padding-right:4px;max-height:200px;background-color:#f4f4f4;&quot;&gt; &lt;div id=&quot;codeSnippet&quot; style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;XDocument xSchema = XDocument.Parse(field.SchemaXml);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;var xField = xSchema.Root;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;bool&lt;/span&gt; needUpdate = &lt;span style=&quot;color:#0000ff;&quot;&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;var xRichText = xField.Attribute(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;RichText&quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (xRichText == &lt;span style=&quot;color:#0000ff;&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    needUpdate = &lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    xField.SetAttributeValue(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;RichText&quot;&lt;/span&gt;, &lt;span style=&quot;color:#006080;&quot;&gt;&quot;TRUE&quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;}&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt;(xRichText.Value != &lt;span style=&quot;color:#006080;&quot;&gt;&quot;TRUE&quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    needUpdate = &lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    xRichText.SetValue(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;TRUE&quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;}&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;var xRichTextMode = xField.Attribute(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;RichTextMode&quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (xRichTextMode == &lt;span style=&quot;color:#0000ff;&quot;&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    needUpdate = &lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    xField.SetAttributeValue(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;RichTextMode&quot;&lt;/span&gt;, &lt;span style=&quot;color:#006080;&quot;&gt;&quot;FullHtml&quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;}&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (xRichTextMode.Value != &lt;span style=&quot;color:#006080;&quot;&gt;&quot;FullHtml&quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;{&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;    needUpdate = &lt;span style=&quot;color:#0000ff;&quot;&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    xRichTextMode.SetValue(&lt;span style=&quot;color:#006080;&quot;&gt;&quot;FullHtml&quot;&lt;/span&gt;);&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;}&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;                                                                        &lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:white;&quot;&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt;( needUpdate )&lt;/pre&gt;&lt;pre style=&quot;border-top-style:none;overflow:visible;font-size:8pt;font-family:'Courier New', courier, monospace;width:100%;border-bottom-style:none;color:black;padding-bottom:0px;direction:ltr;text-align:left;padding-top:0px;border-right-style:none;padding-left:0px;margin:0em;border-left-style:none;line-height:12pt;padding-right:0px;background-color:#f4f4f4;&quot;&gt;    field.SchemaXml = xSchema.ToString();&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-6412285454122447581</guid>
         <pubDate>Fri, 08 Nov 2013 17:22:00 +0000</pubDate>
      </item>
      <item>
         <title>Using office 2013 with SharePoint 2010?</title>
         <link>http://kwizcom.blogspot.com/2013/10/using-office-2013-with-sharepoint-2010.html</link>
         <description>&lt;p&gt;You might noticed DataSheet view doesn't work.&lt;/p&gt; &lt;p&gt;you get a alert, something like:&lt;/p&gt; &lt;p&gt;The list cannot be displayed in Datasheet view for one or more of the following reasons: &lt;p&gt;- A datasheet component compatible with Microsoft SharePoint Foundation is not installed. &lt;p&gt;- Your Web browser does not support ActiveX controls. &lt;p&gt;- A component is not properly configured for 32-bit or 64-bit support. &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Now, assuming you installed 32 bit office and using 32 bit IE, you might be puzzled as to why this doesn’t work.&lt;/p&gt; &lt;p&gt;I found that if you install this component data sheet will start working:&lt;/p&gt; &lt;p&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=23734&quot; target=&quot;_blank&quot; href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=23734&quot;&gt;http://www.microsoft.com/en-us/download/details.aspx?id=23734&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I am using windows 8.1, but I am pretty sure this issue happens on all windows clients with Office 2013.&lt;/p&gt; &lt;p&gt;Enjoy!&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/KwizcomSharepointBlog&quot;&gt;RSS&lt;/a&gt;&lt;/div&gt;</description>
         <author>noreply@blogger.com (Shai Petel)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-691739770978360344.post-3892784655031441451</guid>
         <pubDate>Tue, 29 Oct 2013 14:36:00 +0000</pubDate>
      </item>
      <item>
         <title>Not-So-Lazy Static Constructors in C# 4.0</title>
         <link>http://weblogs.asp.net:80/avnerk/not-so-lazy-static-constructors-in-c-4-0</link>
         <description>&lt;p align=&quot;left&quot;&gt;A &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.hmemcpy.com/blog/&quot;&gt;coworker&lt;/a&gt; pointed me towards an &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msmvps.com/blogs/jon_skeet/archive/2010/01/26/type-initialization-changes-in-net-4-0.aspx&quot;&gt;interesting blog post&lt;/a&gt; by John Skeet about the changed behavior of static constructors in C# 4.0 (yes, I know, it’s been a few years now, but I never ran into it).&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;It seems that C# 4.0 now tries to be lazier when instantiated static fields. So if I have a side-effect free static method that doesn’t touch any members, calling it will not bother initializing the static fields. From Skeet’s post:&lt;/p&gt;  &lt;div align=&quot;left&quot;&gt;   &lt;div id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:997823d4-b488-4741-9b69-7ec9657486ae&quot; class=&quot;wlWriterEditableSmartContent&quot; style=&quot;float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;&quot;&gt; &lt;div style=&quot;background:#ddd;max-height:300px;overflow:auto;&quot;&gt; &lt;ol start=&quot;1&quot; style=&quot;background:#000000;margin:0 0 0 2.5em;padding:0 0 0 5px;white-space:nowrap;&quot;&gt; &lt;li&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#4ec9b0;&quot;&gt;Lazy&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;    &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;Log&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;();&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;Log&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;()&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;            &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#4ec9b0;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#d69d85;&quot;&gt;&amp;quot;Type initialized&amp;quot;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b5cea8;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;StaticMethod&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;()&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#4ec9b0;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#d69d85;&quot;&gt;&amp;quot;In static method&amp;quot;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;);&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;}&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p align=&quot;left&quot;&gt;Calling StaticMethod() will print “In static method”, but will &lt;em&gt;not&lt;/em&gt; print “Type Initialized”!&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;This was a bit worrying. John Skeet said it shouldn’t impact existing code, but we were not so sure. Imagine a class whose static constructor does some unmanaged initialization work (creates a Performance Counter, for instance) while the static method&amp;#160; writes to the counter. This could potentially cause a hard to find exception, since our expectation was that static constructors can be relied upon to &lt;em&gt;always &lt;/em&gt;be called first.&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;So we ran a quick test (and by “we” I most mean &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blogs.microsoft.co.il/blogs/zuker&quot;&gt;Amir&lt;/a&gt;), and it seems that this behavior isn’t as problematic as we thought. Look at this code, adding a static constructor to the class above:&lt;/p&gt;  &lt;div align=&quot;left&quot;&gt;   &lt;div id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:1c9352a8-61eb-49c8-9ad4-bad43fd7db1c&quot; class=&quot;wlWriterEditableSmartContent&quot; style=&quot;float:none;padding-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;display:inline;padding-right:0px;&quot;&gt; &lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;&quot;&gt; &lt;div style=&quot;background:#ddd;max-height:300px;overflow:auto;&quot;&gt; &lt;ol start=&quot;1&quot; style=&quot;background:#000000;margin:0 0 0 2.5em;padding:0 0 0 5px;white-space:nowrap;&quot;&gt; &lt;li&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#4ec9b0;&quot;&gt;Lazy&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;    &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b4b4b4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;Log&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;();&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;private&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;Log&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;()&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;            &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#4ec9b0;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#d69d85;&quot;&gt;&amp;quot;Type initialized&amp;quot;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b5cea8;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;;&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;Lazy&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;()&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;            &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#4ec9b0;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#d69d85;&quot;&gt;&amp;quot;In static constructor&amp;quot;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;);&lt;/span&gt;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;}&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;public&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;static&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#569cd6;&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;StaticMethod&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;()&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;{&lt;/span&gt;&lt;/li&gt; &lt;li&gt;            &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#4ec9b0;&quot;&gt;Console&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#b4b4b4;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#ffffff;&quot;&gt;WriteLine&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#d69d85;&quot;&gt;&amp;quot;In static method&amp;quot;&lt;/span&gt;&lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;);&lt;/span&gt;&lt;/li&gt; &lt;li style=&quot;background:#0c0c0c;&quot;&gt;        &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;}&lt;/span&gt;&lt;/li&gt; &lt;li&gt;    &lt;span style=&quot;background:#1e1e1e;color:#dcdcdc;&quot;&gt;}&lt;/span&gt;&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p align=&quot;left&quot;&gt;The only difference is that we have an &lt;strong&gt;explicit&lt;/strong&gt; static constructor, rather than the implicit one that initializes the field. Unlike the first test case, in this case calling StaticMethod() &lt;em&gt;did&lt;/em&gt; call the static constructor, and we could see “In static constructor” printed before “In static method”. The compiler is smart enough to see that we have an explicit constructor defined, so that means we want it to be called, and it &lt;em&gt;will &lt;/em&gt;be called. This was reassuring.&lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;But wait, there’s more! It seems that once type initialization was triggered by the presence of the explicit static constructor, it went all the way. Even the x parameter was initialized, the Log() method was called, and “Type Initialized” was printed to the console, even &lt;em&gt;before&lt;/em&gt; the static constructor. This was the behavior I was used to, where static field initializations are added to the beginning of the .cctor. &lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;To summarize, the new lazy type initialization behavior for C# 4.0 is interesting, since it allows static classes that contain only side-effect free methods (for instance, classes containing popular Extension Methods) to avoid expensive and unnecessary initializations. But it was designed smartly enough to recognize when initialization is explicitly desired, and be a bit less lazy in that case. &lt;/p&gt;  &lt;p align=&quot;left&quot;&gt;(And thanks again to Igal Tabachnik and Amir Zuker)&lt;/p&gt;</description>
         <guid isPermaLink="false">http://weblogs.asp.net:80/avnerk/not-so-lazy-static-constructors-in-c-4-0</guid>
         <pubDate>Mon, 25 Feb 2013 09:55:04 +0000</pubDate>
      </item>
      <item>
         <title>ללכוד את הידע הארגוני</title>
         <link>http://blogs.microsoft.co.il/efrat/2013/02/07/%d7%9c%d7%9c%d7%9b%d7%95%d7%93-%d7%90%d7%aa-%d7%94%d7%99%d7%93%d7%a2-%d7%94%d7%90%d7%a8%d7%92%d7%95%d7%a0%d7%99/</link>
         <description>כולנו מדברים על &amp;#34;ניהול ידע&amp;#34;, אבל תנאי מקדים לנהל את הידע בארגון הוא קודם כל להביא אותו למצב שבכלל נוכל לנהל אותו. הרי אם הידע לא יהיה נגיש לניהול, לא נוכל לנהל אותו.אז כדי להביא את הידע לידי ניהול צריך ללכוד אותו לצורה שתהיה נוחה לגשת אליו.כדי ללכוד את הידע, אין צורך לצאת לציד בליווי [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1736736</guid>
         <pubDate>Thu, 07 Feb 2013 07:54:00 +0000</pubDate>
         <content:encoded><![CDATA[<p><p><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">כולנו מדברים על &quot;ניהול ידע&quot;, אבל תנאי מקדים לנהל את הידע בארגון הוא קודם כל להביא אותו למצב שבכלל נוכל לנהל אותו. </span></p><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">הרי אם הידע לא יהיה נגיש לניהול, לא נוכל לנהל אותו.</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">אז כדי להביא את הידע לידי ניהול צריך ללכוד אותו לצורה שתהיה נוחה לגשת אליו.</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">כדי ללכוד את הידע, אין צורך לצאת לציד בליווי מלכודות, אלא ל&quot;ערוב&quot; לידע, אני אסביר:</span><br><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">ישנם כלים שונים לניהול ידע, לדוגמא: פורומים וקהילות ידע, אבל בתוך ארגון, זה בדרך כלל תלוי ב&quot;טוב ליבם&quot; של העובדים, אם ישתמשו במנגנונים אלה או שלא. </span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">תהליך שמבוסס על התנדבות העובדים, הנו תהליך ברמת סיכון גדולה של איבוד ידע יקר, איכות הידע וסופו שלא להחזיק זמן.</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">בדרך כלל תהליך שלא מוגדר לעובד כחלק מתפקידו, כמעט אינו מתבצע, או לא מתבצע כלל.</span><br />
<p><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE"></span>&nbsp;</p><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE"></span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">אז איך גורמים בכל זאת לידע הארגוני להגיע לאן שאנו רוצים?</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">הגישה שלי היא לשלב את הידע בתהליכי העבודה השוטפים של הארגון.</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">לדוגמא: אם הטמענו בארגון טופס של החזר הוצאות בגין נסיעה לחו&quot;ל עבור כנס מקצועי, נבקש באותו המעמד של עדכון הטופס ע&quot;י העובד לספר לנו איך הוא התרשם מהכנס, מהן התובנות מהכנס בהשלכה לארגון, איך הוא רואה את הידע שהוא צבר בכנס מקדם את עבודתו בארגון, ואף ניתן לאפשר לעובד להעלות חומרים מהכנס.</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">חישבו על המעמד שבו נמצא עובד שממלא טופס שבו הוא מבקש מהארגון להחזיר לו הוצאות בגין כנס.</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">במעמד זה הארגון מבקש לקבל מידע על הכנס שהארגון שלח את העובד להשתתף בו ואף מימן את השתתפותו?</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE"><br></span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">זה יהיה מאוד לא נעים לעובד שלא לשתף ידע זה, וזה גם יהיה קל לעובד, כי אין אנו דורשים מהעובד לעבוד קשה לשם כך, כי פעולה זו מתבצעת &quot;על הדרך&quot; כאשר העובד ממלא את פרטי הטופס.</span><br />
<p><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE"></span>&nbsp;</p><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE"></span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">בדוגמא ספציפית זו, הארגון הרוויח כפול: מצד אחד תועד הידע של הכנס שבו העובד השתתף ותובנותיו לגבי הידע לטובת הארגון, וכן מספק בסיס מידע של כנסים עבור עובדים אחרים מהארגון שיתעניינו לצאת לכנס מסוג זה בעצמם.</span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">ללכוד את הידע באמצעות שילובו בתהליכי העבודה השוטפים, לדעתי זו שיטה מצוינת להגיע לידע.</span><br />
<p>&nbsp;</p><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">שלכם, </span><span style="FONT-FAMILY:'Arial', 'sans-serif';FONT-SIZE:10pt;" lang="HE">אפרת</span>]]></content:encoded>
      </item>
      <item>
         <title>האם עוד צריך את VB.NET לתכנת מול אופיס?</title>
         <link>http://weblogs.asp.net:80/avnerk/vb-net</link>
         <description>&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;עברו כמה שנים מאז שעבדתי עם Visual Basic.NET, והייתי בטוח שבימינו, ב-2013, נגמרו כבר הויכוחים של “איזו שפה יותר טובה”. שתיהן שפות עם יכולות דומות, והבחירה ביניהן היא בעיקר העדפה סגנונית. אבל מידי פעם אני עדיין רואה בפורומים או ב-Stack Overflow שאלה בנוגע ליתרונות של שפה אחת על השניה, וספציפית על יכולות ה-COM Interop של VB. האם היא באמת שפה נוחה יותר?&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;strong&gt;המצב טרום .NET 4.0&lt;/strong&gt;&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;לפני .NET 4.0 (שיצאה, יש להזכיר, לפני כמעט 3 שנים), התשובה היתה “כן”, אם כי “כן” קצת דחוק. VB הגיעה מתוך עולם ה-Late Binding, ולא היה לה בעיה להעביר לרכיב רק חלק מהפרמטרים שהם צריכים, ולדאוג לשאר לברירות מחדל מאחורי הקלעים. היתרון הזה היה בולט במיוחד כשעובדים מול אובייקטים של אופיס, שמכילים מתודות שמקבלות חמישה, עשרה, ולפעמים שישה-עשר פרמטרים אופציונאליים, כשברוב המקרים אנחנו נרצה להעביר רק אחד או שניים מהם, אם בכלל. ההבדל בין C# ל-VB במקרה כזה הוא ההבדל בין הקוד הזה ב-C#:&lt;/p&gt;

&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:56acb231-3523-44d1-b047-8f9c9b0f953c&quot; style=&quot;margin:0px;display:inline;float:none;padding:0px;text-align:left;direction:ltr;&quot;&gt;
&lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;&quot;&gt;
&lt;div style=&quot;background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;&quot;&gt;Code Snippet&lt;/div&gt;
&lt;div style=&quot;background:#ddd;max-height:300px;overflow:auto;&quot;&gt;
&lt;ol style=&quot;background:#ffffff;margin:0 0 0 2em;padding:0 0 0 5px;&quot; start=&quot;1&quot;&gt;
	&lt;li&gt;myWordDocument.SaveAs(&lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; fileName, &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue,&lt;/li&gt;
	&lt;li style=&quot;background:#f3f3f3;&quot;&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue, &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue,&lt;/li&gt;
	&lt;li&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue, &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue,&lt;/li&gt;
	&lt;li style=&quot;background:#f3f3f3;&quot;&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue, &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue,&lt;/li&gt;
	&lt;li&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue, &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue,&lt;/li&gt;
	&lt;li style=&quot;background:#f3f3f3;&quot;&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue, &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue,&lt;/li&gt;
	&lt;li&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue, &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue,&lt;/li&gt;
	&lt;li style=&quot;background:#f3f3f3;&quot;&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue, &lt;span style=&quot;color:#0000ff;&quot;&gt;ref&lt;/span&gt; missingValue);&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;לבין זה ב-VB:&lt;/p&gt;

&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:f26e5b83-50e9-4035-84aa-a9892e2ad44b&quot; style=&quot;margin:0px;display:inline;float:none;padding:0px;text-align:left;direction:ltr;&quot;&gt;
&lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;&quot;&gt;
&lt;div style=&quot;background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;&quot;&gt;Code Snippet&lt;/div&gt;
&lt;div style=&quot;background:#ddd;max-height:300px;overflow:auto;&quot;&gt;
&lt;ol style=&quot;background:#ffffff;margin:0 0 0 2em;padding:0 0 0 5px;&quot; start=&quot;1&quot;&gt;
	&lt;li&gt;MyWordDocument.SaveAs(FileName: fileName)&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;שזה, אתם חייבים להודות, הבדל לא קטן.&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;אבל מצד שני, לא כל ממשק COM עובד ככה. למען האמת, בכל שנותי אני חושב שנתקלתי בסגנון כתיבה הזה רק בספריות של אופיס, ולא בשום רכיב אחר, בין אם של מיקרוסופט (כמו רכיבי DirectShow שאיתם עבדתי לאחרונה) או של חברות אחרות. ברוב המקרים, לעשות COM Interop ב-C# פשוט באותה מידה כמו ב-VB.&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;strong&gt;.NET 4.0 – גם C# זוכה ליחס&lt;/strong&gt;&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;היתרון הקטן הזה של VB נהיה גם הוא פחות רלבנטי החל מ-C# 4.0 ו-Visual Studio 2010, משתי סיבות:&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;הראשונה היא מילת הקסם שהתווספה לה לשפה, dynamic. כשאנחנו מגדירים אובייקט כדינאמי, אנחנו מוותרים על הרבה מה-static type checking שהקומפיילר עושה בשבילנו, ונותנים למנגנון ה-late binding (שסופח ל-C# באמצעות ה-DLR, ה-&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/dd233052(v=vs.100).aspx&quot;&gt;Dynamic Language Runtime&lt;/a&gt; שנבנה לתמוך בשפות דינאמיות כמו Python או Ruby) לעשות בשבילנו את העבודה ב-runtime. מכיוון שיש late binding, אפשר להתעלם מהפרמטרים המיותרים ולתת ל-DLR להבין לבד מה לחבר לאיפה. אפשר למצוא הסבר כללי על שימוש ב-dynamic &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/library/dd264736(v=vs.100).aspx&quot;&gt;במאמר הזה&lt;/a&gt;, והסבר יותר ספציפי על השימוש בו ל-COM Interop &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-us/magazine/ff714583.aspx&quot;&gt;במאמר הזה.&lt;/a&gt;&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;אבל אם אנחנו שקלנו לעבור ל-VB רק בשביל לעבוד מול רכיבי אופיס, אז C# 4.0 מאפשר לנו להקל על החיים גם בלי לצלול לעולם העכור של dynamic languages. אנחנו עדיין לא יכולים להתעלם מ-ref parameters במתודות של מחלקות, אבל אנחנו &lt;em&gt;כן&lt;/em&gt; יכולים להתעלם מהפרמטרים הללו בקריאות למתודות על interfaces. אני לא יכול להגיד שאני מבין לגמרי למה זה ככה (טרם התעמקתי) אבל זה אומר שאם מה שיש לנו ביד זה לא אובייקט DocumentClass של אופיס, אלא interface מסוג Document, אז אפשר לקרוא למתודות שעליו כמו ב-VB.&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;לנוחותינו, ספריות ה-Interop של אופיס חושפות לנו את ה-interfaces האלה, דרך property בשם InnerObject שיש על רוב האובייקטים המעניינים. (כן, זה property בשם Inner&lt;strong&gt;Object&lt;/strong&gt; שחושף את ה-Interface. אני יודע. זה מבלבל. זה מה יש). אז את הקוד שכתבנו למעלה  אפשר להחליף, ב-C# 4.0, בזה:&lt;/p&gt;

&lt;div class=&quot;wlWriterEditableSmartContent&quot; id=&quot;scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7aee4802-b649-4463-a945-6601b89de761&quot; style=&quot;margin:0px;display:inline;float:none;padding:0px;text-align:left;direction:ltr;&quot;&gt;
&lt;div style=&quot;border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;&quot;&gt;
&lt;div style=&quot;background:#000080;color:#fff;font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;padding:2px 5px;&quot;&gt;Code Snippet&lt;/div&gt;
&lt;div style=&quot;background:#ddd;max-height:300px;overflow:auto;&quot;&gt;
&lt;ol style=&quot;background:#ffffff;margin:0 0 0 2em;padding:0 0 0 5px;&quot; start=&quot;1&quot;&gt;
	&lt;li&gt;myWordDocument.InnerObject.SaveAs(FileName: fileName);&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;וזהו! אמנם לא כל אובייקט של אופיס זוכה ל-InnerObject הזה, אבל המרכזיים והגדולים (שהם גם אלה עם המתודות המפלצתיות) דווקא כן. ואם אין ברירה, נעבוד גם עם dynamic – או עם Missing.Value.&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;&lt;strong&gt;אז מתי בכל זאת VB?&lt;/strong&gt;&lt;/p&gt;
&lt;p dir=&quot;rtl&quot; align=&quot;right&quot;&gt;כל המלל לעיל לא נועד לשכנע מישהו לבחור דווקא ב-C# או דווקא לא ב-VB. שתי השפות יכולות לעשות פחות או יותר כל אחת את מה שהשניה יכולה לעשות, והבחירה בה צריכה להיות של העדפה אישית לסגנון כתיבה, לא בגלל יכולת קריטיות לכאן או לכאן. זה מה שניסיתי להעביר כאן – כמו ש-VB יישרה קו עם C# לאורך השנים בכמה פיצ’רים שהיו חסרים, כך גם C# השלימה את החסר לה בנוגע לעבודה עם אופיס. הבחירה היא, שוב, סגנונית בלבד.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://weblogs.asp.net:80/avnerk/vb-net</guid>
         <pubDate>Tue, 29 Jan 2013 20:37:17 +0000</pubDate>
      </item>
      <item>
         <title>SSIS 2012 Script Task Exception : The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine</title>
         <link>http://feedproxy.google.com/~r/AdlaiMaschiach/~3/SkSLHx2ZqrI/ssis-2012-script-task-exception-the-microsoft-ace-oledb-12-0-provider-is-not-registered-on-the-local-machine.aspx</link>
         <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Problem :&lt;/u&gt;&lt;/strong&gt;    &lt;br /&gt;    &lt;br /&gt;A 64Bit Development Machine ( Win 7 x64 , because of installed SharePoint 2010 )     &lt;br /&gt;with Visual Studio running / debugging an SSIS 2012 Project which contains a “Script Task” that tries to retrieve data from an Excel 2010 file    &lt;br /&gt;    &lt;br /&gt;While debugging the script , there is an exception &lt;/p&gt;  &lt;p&gt;&lt;font style=&quot;background-color:#cccccc;&quot;&gt;The &amp;#39;Microsoft.ACE.OLEDB.12.0&amp;#39; provider is not registered on the local machine&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;&lt;font style=&quot;background-color:#ffffff;&quot;&gt;Solution&lt;/font&gt; :&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;They say a picture is a thousand words &lt;/p&gt;  &lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blogs.microsoft.co.il/blogs/adlaim/oLE_6E6505A8.jpg&quot;&gt;&lt;img style=&quot;background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;&quot; title=&quot;oLE&quot; border=&quot;0&quot; alt=&quot;oLE&quot; src=&quot;http://blogs.microsoft.co.il/blogs/adlaim/oLE_thumb_534C369A.jpg&quot; width=&quot;504&quot; height=&quot;266&quot;/&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;In words :&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Go to the property of the project &amp;gt;&amp;gt; debugging &amp;gt;&amp;gt; Set Run64BitRunTime to &lt;strong&gt;False&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Why ?&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;In my case this is due to the fact that the installed version of Office 2010 is an 32 bit version, so the corresponding driver is an 32 bit one ( I have tried to install the 64bit driver , it doesn’t allow it self to be installed because of the version of the office is an 32Bit one )&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Notice :&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;when running the package outside of the development environment on x64 computers, make sure to use the 32Bit versions of DTExec.exe and DTExecUI.exe utilities (one way to establish whether this is the case involves verifying that they are located within the Program Files (x86)&amp;#92;Microsoft SQL Server folder structure). In addition, when scheduling to run such packages as SQL Server Agent jobs, enable Use 32 bit runtime checkbox on the Execution options tab of the New Job Step dialog box (in the job&amp;#39;s Properties dialog box of the SQL Server Management Studio interface).&lt;/p&gt;&lt;img src=&quot;http://blogs.microsoft.co.il/aggbug.aspx?PostID=1432605&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;</description>
         <guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1432605</guid>
         <pubDate>Sun, 11 Nov 2012 20:05:30 +0000</pubDate>
      </item>
      <item>
         <title>Visual Studio 2010 / SSIS 2012 [ Sql Server 2012 ] Toolbox ( “I can’t see my SSIS 2012 toolbox in VS 2010” )</title>
         <link>http://feedproxy.google.com/~r/AdlaiMaschiach/~3/n28Ded0xFEQ/visual-studio-2010-ssis-2012-sql-server-2012-toolbox-i-can-t-see-my-ssis-2012-toolbox-in-vs-2010.aspx</link>
         <description>&lt;p&gt;&lt;font size=&quot;2&quot;&gt;For some reason , you can’t develop SSIS 2012 Packages on Visual Studio 2012 , the Business Intelligence Projects of the Sql Server 2012 resides on Visual Studio 2010&lt;br /&gt;&lt;br /&gt;On the other hand I have problem updating SqlServer 2012 Stored Procedures on the Visual Studio 2010 … but that’s another story &lt;br /&gt;&lt;/font&gt;&lt;u&gt;&lt;strong&gt;&lt;br /&gt;&lt;font size=&quot;2&quot;&gt;Problem :&lt;/font&gt;&lt;/strong&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;2&quot;&gt;I can’t see my SSIS 2012 toolbox in Visual Studio 2010 &lt;br /&gt;&lt;br /&gt;lets’ show it visually – there is no SSIS toolbox , all you see is “GENERAL”&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blogs.microsoft.co.il/blogs/adlaim/SSIS_Before_3DEC0A43.jpg&quot;&gt;&lt;img style=&quot;background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;&quot; title=&quot;SSIS_Before&quot; border=&quot;0&quot; alt=&quot;SSIS_Before&quot; src=&quot;http://blogs.microsoft.co.il/blogs/adlaim/SSIS_Before_thumb_428214FD.jpg&quot; width=&quot;554&quot; height=&quot;420&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;2&quot;&gt;&lt;strong&gt;&lt;u&gt;Solution :&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;Usually when the Visual Studio Toolbox doesn’t appear correctly .. I go out and do the following :&lt;br /&gt;&lt;/font&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;font size=&quot;2&quot;&gt;Open a Visual Studio Command Prompt ( from the “Visual Studio Tool” sub-menu )&lt;br /&gt;&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font size=&quot;2&quot;&gt;And write or “devenv /resetsettings” or “devenv /ResetSkipPkgs”&lt;br /&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;font size=&quot;2&quot;&gt;( more in here &lt;/font&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;http://msdn.microsoft.com/en-US/library/ms241276(v=vs.100).aspx&quot; target=&quot;_blank&quot; href=&quot;http://msdn.microsoft.com/en-US/library/ms241276(v=vs.100).aspx&quot;&gt;&lt;font size=&quot;2&quot;&gt;http://msdn.microsoft.com/en-US/library/ms241276(v=vs.100).aspx&lt;/font&gt;&lt;/a&gt;&lt;font size=&quot;2&quot;&gt; )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The other option I’ve learned on my search for solution is that &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size=&quot;2&quot;&gt;For Visual Studio 2010 delete certain files that serve the same purpose &lt;/font&gt; &lt;blockquote&gt;&lt;pre&gt;&lt;font style=&quot;background-color:#cccccc;&quot; size=&quot;2&quot; face=&quot;Tahoma&quot;&gt;del &amp;quot;%LocalAppData%&amp;#92;Microsoft&amp;#92;VisualStudio&amp;#92;10.0&amp;#92;*.tbd&amp;quot;&lt;/font&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;pre&gt;&lt;font size=&quot;2&quot; face=&quot;Tahoma&quot;&gt;… ok , after this didn’t work , finally found it !&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;Tahoma&quot;&gt;&lt;font size=&quot;2&quot;&gt;( in this part , a picture is the best solution for “what &amp;amp; where” )&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre&gt;&lt;font face=&quot;Tahoma&quot;&gt;&lt;font size=&quot;2&quot;&gt;it seems that two buttons were added for this , just click each one of them !&lt;/font&gt;&lt;/pre&gt;&lt;/font&gt;&lt;pre&gt;&lt;font size=&quot;2&quot; face=&quot;Tahoma&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blogs.microsoft.co.il/blogs/adlaim/SSIS_After_3292D039.jpg&quot;&gt;&lt;img style=&quot;background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;&quot; title=&quot;SSIS_After&quot; border=&quot;0&quot; alt=&quot;SSIS_After&quot; src=&quot;http://blogs.microsoft.co.il/blogs/adlaim/SSIS_After_thumb_6FD38500.jpg&quot; width=&quot;554&quot; height=&quot;450&quot;/&gt;&lt;/a&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Tahoma&quot;&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Tahoma&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blogs.microsoft.co.il/blogs/adlaim/SSIS_Var_0D656000.jpg&quot;&gt;&lt;img style=&quot;background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;&quot; title=&quot;SSIS_Var&quot; border=&quot;0&quot; alt=&quot;SSIS_Var&quot; src=&quot;http://blogs.microsoft.co.il/blogs/adlaim/SSIS_Var_thumb_640E1801.jpg&quot; width=&quot;554&quot; height=&quot;240&quot;/&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Tahoma&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/font&gt;&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;&lt;img src=&quot;http://blogs.microsoft.co.il/aggbug.aspx?PostID=1424578&quot; width=&quot;1&quot; height=&quot;1&quot;&gt;</description>
         <guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1424578</guid>
         <pubDate>Thu, 08 Nov 2012 20:37:56 +0000</pubDate>
      </item>
      <item>
         <title>Posts Summary 29 October, 2012</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/10/29/posts-summary-29-october-2012/</link>
         <description>I Will Be Speaking At SharePoint 2013 Ignite Training The One Thing That Windows 8 is Missing – Guidance New Dates For SharePoint 2013 Ignite Course</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1391990</guid>
         <pubDate>Mon, 29 Oct 2012 20:26:36 +0000</pubDate>
         <content:encoded><![CDATA[<ul>
<li><a rel="nofollow" target="_blank" href="http://blog.itayasaservice.com/2012/10/13/i-will-be-speaking-at-sharepoint-2013-ignite-training/">I Will Be Speaking At SharePoint 2013 Ignite Training</a> </li>
<li><a rel="nofollow" target="_blank" href="http://blog.itayasaservice.com/2012/10/26/the-one-thing-that-windows-8-is-missing-guidance/">The One Thing That Windows 8 is Missing – Guidance</a> </li>
<li><a rel="nofollow" target="_blank" href="http://blog.itayasaservice.com/2012/10/29/new-dates-for-sharepoint-2013-ignite-course/">New Dates For SharePoint 2013 Ignite Course</a> </li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>Posts Summary – 22 September, 2012</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/09/22/posts-summary-22-september-2012/</link>
         <description>Stretched Farms are Not Supported Anymore in SharePoint 2013</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1302095</guid>
         <pubDate>Sat, 22 Sep 2012 23:59:03 +0000</pubDate>
         <content:encoded><![CDATA[<ul>
<li><a rel="nofollow" title="Permalink to Stretched Farms are Not Supported Anymore in SharePoint 2013" target="_blank" href="http://blog.itayasaservice.com/2012/09/12/stretched-farms-are-not-supported-anymore-in-sharepoint-2013/">Stretched Farms are Not Supported Anymore in SharePoint 2013</a></li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>Posts Summary – September 01, 2012</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/09/01/posts-summary-september-01-2012/</link>
         <description>Tips for Working With ListData.svc The Unique Security Scopes Per List Limit</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1256217</guid>
         <pubDate>Sat, 01 Sep 2012 13:21:40 +0000</pubDate>
         <content:encoded><![CDATA[<ul>
<li><a rel="nofollow" title="Tips for Working With ListData.svc" target="_blank" href="http://blog.itayasaservice.com/2012/08/15/tips-for-working-with-listdata-svc/">Tips for Working With ListData.svc</a></li>
<li><a rel="nofollow" title="The Unique Security Scopes Per List Limit" target="_blank" href="http://blog.itayasaservice.com/2012/09/01/the-unique-security-scopes-per-list-limit/">The Unique Security Scopes Per List Limit</a></li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>Posts Summary – August 11, 2012</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/08/11/posts-summary-august-11-2012/</link>
         <description>Public SharePoint Online Sites Are Not Available to Anonymous Users SharePoint 2013 Preview Hidden Prerequisites Organizing SharePoint Solutions in Hierarchy The Downsides of Site Based Hierarchy</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1206254</guid>
         <pubDate>Sat, 11 Aug 2012 17:18:58 +0000</pubDate>
         <content:encoded><![CDATA[<ul>
<li><a rel="nofollow" target="_blank" href="http://blog.itayasaservice.com/2012/08/01/public-sharepoint-online-sites-are-not-available-to-anonymous-users/">Public SharePoint Online Sites Are Not Available to Anonymous Users</a> </li>
<li><a rel="nofollow" target="_blank" href="http://blog.itayasaservice.com/2012/08/01/sharepoint-2013-preview-hidden-prerequisites/">SharePoint 2013 Preview Hidden Prerequisites</a> </li>
<li><a rel="nofollow" title="Permalink to Organizing SharePoint Solutions in Hierarchy" target="_blank" href="http://blog.itayasaservice.com/2012/08/09/organizing-sharepoint-solutions-in-hierarchy/">Organizing SharePoint Solutions in Hierarchy</a> </li>
<li><a rel="nofollow" target="_blank" href="http://blog.itayasaservice.com/2012/08/11/the-downside-of-site-based-hierarchy/">The Downsides of Site Based Hierarchy</a></li>
</ul>]]></content:encoded>
      </item>
      <item>
         <title>Refreshing my social presence – New blog, Twitter</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/08/01/refreshing-my-social-presence-new-blog-twitter/</link>
         <description>Hello readers, Ready for some changes? I am starting a new independent blog, which will be my primary work related blog. It is called “Itay as a Service”, and is available now under: http://blog.itayasaservice.com The old link will work as well: http://blog.itaysk.com As for this blog, I will keep posting here summaries of my new [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1182529</guid>
         <pubDate>Wed, 01 Aug 2012 17:44:41 +0000</pubDate>
         <content:encoded><![CDATA[<p>Hello readers,</p>
<p>Ready for some changes?</p>
<p>I am starting a new independent blog, which will be my primary work related blog.    <br />It is called “<strong>Itay as a Service</strong>”, and is available now under: <a rel="nofollow" target="_blank" href="http://blog.itayasaservice.com">http://blog.itayasaservice.com</a>     <br />The old link will work as well: <a rel="nofollow" target="_blank" href="http://blog.itaysk.com">http://blog.itaysk.com</a></p>
<p>As for this blog, I will keep posting here summaries of my new posts, in order for subscribed readers to stay in the loop. All the content that was written here will stay here and will not be moved.</p>
<p>Also, I am (finally) joining the twitter community with a new account specifically for my professional interests.&#160; <br /><strong>Follow me on Twitter!</strong> <a rel="nofollow" target="_blank" href="https://twitter.com/itayasaservice">@itayasaservice</a></p>
<p>Itay Shakury.</p>]]></content:encoded>
      </item>
      <item>
         <title>Remote Debugging through fire, snow or fog</title>
         <link>http://weblogs.asp.net:80/avnerk/remote-debugging-through-fire-snow-or-fog</link>
         <description>&lt;p&gt;Remote Debugging in Visual Studio is a wonderful feature, especially during the later stages of testing and deployment, and even (if all else fails) when in production, but getting it to work is rarely smooth. Everything is fine if both the computer running VS and the one running the application are in the same domain, but when they aren’t, things start to break, fast. I&lt;/p&gt;  &lt;p&gt;So for those stuck debugging remote applications in different domains, here’s a quick guide to east the pain. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;On the the remote machine, install the Visual Studio Remote Debugging package, which comes with the version of Visual Studio you’re using. &lt;/li&gt;    &lt;li&gt;On the remote machine, create a new local user account. Give it the &lt;strong&gt;exact same name and password that you use on your development machine.        &lt;br /&gt;&lt;/strong&gt;If you’re developing when logged into &lt;strong&gt;MYCORPDOMAIN&amp;#92;MyUserName&lt;/strong&gt;, with password &lt;strong&gt;MYPASS123&lt;/strong&gt;, you wil have to create a local user &lt;strong&gt;REMOTEMACHINE&amp;#92;MyUserName&lt;/strong&gt; with the same password. It doesn’t matter that the domains are different and there’s no trust relationship and so forth. Just have them be the same username and password. &lt;/li&gt;    &lt;li&gt;Give &lt;strong&gt;REMOTEMACHINE&amp;#92;MyUserName&lt;/strong&gt; permissions. Administrator permissions is the safest, though you &lt;em&gt;should&lt;/em&gt; be able to get it to work with a more restricted group, but I haven’t checked it yet. &lt;/li&gt;    &lt;li&gt;Run the application you want to debug using the &lt;strong&gt;MyUserName&lt;/strong&gt; credentials. In Windows 7, this means using &lt;strong&gt;Shift-Rightclick&lt;/strong&gt; and choosing &lt;strong&gt;Run As Different User&lt;/strong&gt;. For Vista, there’s a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://technet.microsoft.com/en-us/sysinternals/cc300361.aspx&quot;&gt;shell extension&lt;/a&gt; to enable it. &lt;/li&gt;    &lt;li&gt;Run the Remote Debugging program, again under &lt;strong&gt;MyUserName&lt;/strong&gt; credentials, same as above. The Remote Debugger will start with a new session named &lt;strong&gt;MyUserName@REMOTEMACHINE. &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Copy the remote debugging session name from the remote machine (you can copy it via the Tools –&amp;gt; Options menu). &lt;/li&gt;    &lt;li&gt;In your development machine, open Visual Studio, and go to &lt;strong&gt;Debug –&amp;gt; Attach to Process&lt;/strong&gt;. &lt;/li&gt;    &lt;li&gt;In the Attack to Process screen, paste the remote debugging session name into the &lt;strong&gt;Qualifier&lt;/strong&gt; textbox (the second one from the top). &lt;/li&gt;    &lt;li&gt;Voila! You are now debugging remotely! &lt;/li&gt; &lt;/ol&gt;</description>
         <guid isPermaLink="false">http://weblogs.asp.net:80/avnerk/remote-debugging-through-fire-snow-or-fog</guid>
         <pubDate>Thu, 19 Jul 2012 10:23:10 +0000</pubDate>
      </item>
      <item>
         <title>צילומי מסך ראשונים</title>
         <link>http://blogs.microsoft.co.il/alexlev/2012/07/17/%d7%a6%d7%99%d7%9c%d7%95%d7%9e%d7%99-%d7%9e%d7%a1%d7%9a-%d7%a8%d7%90%d7%a9%d7%95%d7%a0%d7%99%d7%9d/</link>
         <description>חברים, אתמול בלילה יצאה גרסת Review של SharePoint 2013. ניתן להתקין את הגרסה על השרת שלכם או לחילופין ליצור חשבון ב Office 365 אשר מכיל את גרסת ה Review עבור SharePoint 2013. למי שעוד לא יצא לראות את הגרסה החדשה להלן צילום מסך: &amp;#160; אני ממליץ לכולם להתקין ולהתחיל להכיר את הגרסה החדשה או לפחות [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1160163</guid>
         <pubDate>Tue, 17 Jul 2012 16:28:00 +0000</pubDate>
         <content:encoded><![CDATA[<p>חברים,</p>
<p>אתמול בלילה יצאה גרסת Review של SharePoint 2013.</p>
<p>ניתן להתקין את הגרסה על השרת שלכם או לחילופין ליצור חשבון ב Office 365 אשר מכיל את גרסת ה Review עבור SharePoint 2013.</p>
<p>למי שעוד לא יצא לראות את הגרסה החדשה להלן צילום מסך:</p>
<p><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/alexlev/HomePage_76F5E9E5.jpg"><img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="HomePage" border="0" alt="HomePage" src="http://blogs.microsoft.co.il/blogs/alexlev/HomePage_thumb_4208E4A8.jpg" width="909" height="456"/></a></p>
<p>&#160;</p>
<p>אני ממליץ לכולם להתקין ולהתחיל להכיר את הגרסה החדשה או לפחות לפתוח חשבון ניסיון בענן.</p>
<p>אם יש לכם שאלות אתם מוזמנים לשלוח לי דרך הבלוג.</p>
<p>&#160;</p>
<p>אלכס לויטין</p>]]></content:encoded>
      </item>
      <item>
         <title>SharePoint 2013 זמין להורדה</title>
         <link>http://blogs.microsoft.co.il/alexlev/2012/07/17/sharepoint-2013-%d7%96%d7%9e%d7%99%d7%9f-%d7%9c%d7%94%d7%95%d7%a8%d7%93%d7%94/</link>
         <description>Microsoft SharePoint Server 2013 Preview is available for download http://www.facebook.com/l.php?u=http%3A%2F%2Ftechnet.microsoft.com%2Fen-US%2Fevalcenter%2Fhh973397.aspx%3Fwt.mc_id%3DTEC_121_1_4&amp;#38;h=_AQHNzVmKAQFf7EXsqi5SwxKpaP4Jwmx4djBjeWfJAuJYdg&amp;#38;enc=AZME6ZzefMZaRpxT_hAf0eBuQWmi9utXmxBQT41irTvsW18iiZiN2qt9NwlkMZa4RcgcYSKY35bPEUcHKORiN8JA</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1160074</guid>
         <pubDate>Tue, 17 Jul 2012 14:46:16 +0000</pubDate>
         <content:encoded><![CDATA[<p>Microsoft SharePoint Server 2013 Preview is available for download</p>
<p><a rel="nofollow" title="http://www.facebook.com/l.php?u=http%3A%2F%2Ftechnet.microsoft.com%2Fen-US%2Fevalcenter%2Fhh973397.aspx%3Fwt.mc_id%3DTEC_121_1_4&amp;h=_AQHNzVmKAQFf7EXsqi5SwxKpaP4Jwmx4djBjeWfJAuJYdg&amp;enc=AZME6ZzefMZaRpxT_hAf0eBuQWmi9utXmxBQT41irTvsW18iiZiN2qt9NwlkMZa4RcgcYSKY35bPEUcHKORiN8JA" target="_blank" href="http://www.facebook.com/l.php?u=http%3A%2F%2Ftechnet.microsoft.com%2Fen-US%2Fevalcenter%2Fhh973397.aspx%3Fwt.mc_id%3DTEC_121_1_4&amp;h=_AQHNzVmKAQFf7EXsqi5SwxKpaP4Jwmx4djBjeWfJAuJYdg&amp;enc=AZME6ZzefMZaRpxT_hAf0eBuQWmi9utXmxBQT41irTvsW18iiZiN2qt9NwlkMZa4RcgcYSKY35bPEUcHKORiN8JA">http://www.facebook.com/l.php?u=http%3A%2F%2Ftechnet.microsoft.com%2Fen-US%2Fevalcenter%2Fhh973397.aspx%3Fwt.mc_id%3DTEC_121_1_4&amp;h=_AQHNzVmKAQFf7EXsqi5SwxKpaP4Jwmx4djBjeWfJAuJYdg&amp;enc=AZME6ZzefMZaRpxT_hAf0eBuQWmi9utXmxBQT41irTvsW18iiZiN2qt9NwlkMZa4RcgcYSKY35bPEUcHKORiN8JA</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Is Metro Interface a “Performance Driven Design”?</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/06/19/is-metro-interface-a-performance-driven-design/</link>
         <description>האם ממשק המטרו הוא רעיון גאוני לעיצוב מונחה ביצועים? כשיצא Windows Vista אני זוכר שקראתי ציטוט של מישהו ממיקרוסופט, שאמר משהו בסגנון שלמחשבים היום (אז) יש המון כוח עיבוד, (בצורת מעבדים חזקים, כרטיסי מסך משוכללים, וזכרון) והוא לא כל כך בא לידי ביטוי בשימוש יומיומי של גלישה באינטרנט ועריכת מסמכים. ולכן ניצלו את הכוח הזה [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1124565</guid>
         <pubDate>Tue, 19 Jun 2012 22:07:11 +0000</pubDate>
         <content:encoded><![CDATA[<p dir="rtl" align="right">האם ממשק המטרו הוא רעיון גאוני לעיצוב מונחה <strong>ביצועים</strong>? </p>
<p dir="rtl" align="right">כשיצא Windows Vista אני זוכר שקראתי ציטוט של מישהו ממיקרוסופט, שאמר משהו בסגנון שלמחשבים היום (אז) יש המון כוח עיבוד, (בצורת מעבדים חזקים, כרטיסי מסך משוכללים, וזכרון) והוא לא כל כך בא לידי ביטוי בשימוש יומיומי של גלישה באינטרנט ועריכת מסמכים. ולכן ניצלו את הכוח הזה ליצירת ממשק יותר יפה שנקרא Aero שגם על הדרך נותן תירוץ להשתמש בכל הכוח הזה שלרוב הוא לא מנוצל. Aero של Windows Vista וגם Windows 7 עושה שימוש בהרבה אלמנטים עיצוביים שדורשים כוח עיבוד רב כמו לדוגמא: שקיפות למחצה, אפקטים (לדוגמא, אפקט הזכוכית על חלון), צללים מאחורי חלונות, אנימציות, וכו.</p>
<p dir="rtl" align="right">הציטוט הזה היה נכון אולי לעולם של לפני 10 שנים, אבל למי שפספס, אנחנו בעיצומו (או אולי רק בתחילתו) של עידן חדש, והמגמה היא בדיוק הפוכה ממה שהציטוט מציג. המחשבים היום (אולי לא מדוייק לקרוא להם מחשבים, מדובר על טלפונים, טאבלטים וכו&#8230; נקרא להם התקנים &#8211; Devices), הם דווקא חלשים יותר ממה שהתרגלנו אליו בעבר. כלומר, אנחנו רוצים התקנים יותר ניידים ויותר קלים ויותר דקים, וזה עולה בביצועים, ולכן היום אנו דורשים מתכנה שתרוץ דווקא על התקנים חלשים יותר מבעבר. זה התחיל עם הנטבוקים, ועכשיו ממשיך עם הטאבלטים.</p>
<p dir="rtl" align="right">אני לא יודע אם זה היה רעיון גאוני מכוון של מישהו במיקרוסופט, או שזה באמת במקרה, אבל מטרו, השפה העיצובית החדשה של מיקרוספט היא בדיוק מה שעולם התכנה של מיקרוספט היה צריך כדי לבצע את המעבר הזה.</p>
<p dir="rtl" align="right"><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/itaysk/screenshot_win8prev_hero_5AA578BF.jpg"><img style="background-image:none;border-right-width:0px;margin:10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="screenshot_win8prev_hero" border="0" alt="screenshot_win8prev_hero" src="http://blogs.microsoft.co.il/blogs/itaysk/screenshot_win8prev_hero_thumb_136FACC0.jpg" width="244" height="183"/></a>    <br /><em><font size="1">מסך הפתיחה של Windows 8 (דוגמא לממשק מטרו)</font></em></p>
<p dir="rtl" align="right">ננסה לפרט את העקרונות שמגדירים את מטרו:    <br /><strong>ממשק פשוט, נקי ומינימליסטי, שימוש בטיפוגרפיה (טקסט בעיקר) כאמצעי ניווט שולט, בנוסף, הוא מתאפיין בצבעים אחידים ופשוטים, וצורות מרובעות. </strong>    <br /><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/itaysk/Windows_Phone_7.5_Start_Screen_3C2B1209.png"><img style="background-image:none;border-right-width:0px;margin:10px 10px 0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Windows_Phone_7.5_Start_Screen" border="0" alt="Windows_Phone_7.5_Start_Screen" src="http://blogs.microsoft.co.il/blogs/itaysk/Windows_Phone_7.5_Start_Screen_thumb_44EAF488.png" width="148" height="244"/></a>    <br /><em><font size="1">מסך הפתיחה של Windows Phone 7.5 (דוגמא לממשק מטרו)</font></em></p>
<p dir="rtl" align="right">אני אישית מאוד אוהב את השפה העיצובית הזאת וחושב שהיא מאוד אסתטית ויפה. אבל האם זה כל מה שעומד מאחורי המניע לשינוי הדרמטי הזה?</p>
<p dir="rtl" align="right">אם מסתכלים על המאפיינים של מטרו שתיארתי מקודם, קל לשים לב שהעקרונות מכתיבים ממשקים מאוד פשוטים, לא רק פשוטים למשתמש, אך גם פשוטים למחשב.    <br />מבחינה עיבודית, כשמכונה כמו מחשב צריכה לצייר (to Render) מסך של מטרו, זה הרבה יותר פשוט מאשר מסך כמו של Android לדוגמא, או אפילו Windows 7.    <br />עכשיו קחו את מה שאמרתי, ותוסיפו לזה את המגמה האדירה של עולם התכנה לכיוון אפליקציות מבוססות דפדפן, שגם הפכה למיינסטרים ב Windows 8, ותבינו איך הגעתי לחשוב על הקונפירציה הזו &#8211; אם אני רוצה לצייר בדפדפן באמצעות HTML&#92;JS&#92;CSS מסך של מטרו, זה הרבה הרבה הרבה יותר פשוט מלצייר לדוגמא מסך של אנדרואיד, או של מק. זו עבודה פשוטה מאוד, גם לדפדפן וגם למתכנת.</p>
<p dir="rtl" align="right"><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/itaysk/htc_rosie_1_411D29EB.jpg"><img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="htc_rosie_1" border="0" alt="htc_rosie_1" src="http://blogs.microsoft.co.il/blogs/itaysk/htc_rosie_1_thumb_5D6A6C0B.jpg" width="164" height="244"/></a>    <br /><em><font size="1">מסך הפתיחה של Android with HTC Sense (דוגמא לממשק שאינו מטרו)</font></em></p>
<p dir="rtl" align="right">בואו נסתכל העקרונות שתיארנו מקודם, ונראה איך הם עוזרים לא רק לאסתטיקה, אלא גם לביצועים:</p>
<ul dir="rtl">
<li>
<div align="right"><strong><u>ממשק פשוט, מינימליסטי, נקי</u></strong> &#8211; מבחינת המחשב זה פשוט מאוד. כמה שפחות דברים שהוא צריך לצייר למסך, הוא יעשה את זה יותר מהר. אם אנחנו אומרים שאנחנו רוצים מסכים פחות עמוסים בפקדים, זה אומר שהמסך ירוץ יותר מהר.</div>
</li>
<li>
<div align="right"><strong><u>צבעים אחידים</u></strong> &#8211; בשביל מחשב לצבוע ריבוע בצבע כחול, זה הרבה יותר קל מלצבוע אותו בצבע מדורג (Gradiant) שהופל מכתום לכחול. אם מסתכלים עם דפדפנים זה אפילו יותר בולט, כשצביעה בצבע אחיד היא פעולה טריוואלית, בעוד שצבע מדורג היא פעולה לא פשוטה בכלל. אם נתחיל להשוות לאפקטים למיניהם כמו שקיפות למחצה, או אפקט הזכוכית, כאן זה כבר הבדל עצום בביצועים, וכשמדברים על דפדפן זה גם קשה למימוש עד בלתי אפשרי (תלוי באפקט).</div>
</li>
<li>
<div align="right"><strong><u>ריבועים</u></strong> &#8211; צורות מלבניות למיניהן, הן יחידת ציוד די בסיסית למחשב. זאת לעומת צורות מורכבות יותר כמו לדוגמא, צורה של טיפה (סתם דוגמא). זה נובע מהמתמטיקה שמאחורי הצורה, אבל בשורה התחתונה, המחשב יצייר ריבועים הרבה יותר טוב מאשר טיפות, או לדוגמא ריבועים עם פינות מעוגלות (שרואים הרבה לדוגמא באייפון). אם נדבר על דפדפנים אז כאן ריבועים זה אבני היסוד של דפים. לצייר טיפה בדפדפן זו עבודה לא פשוטה בכלל וצורכת הרבה יותר משאבים מציור מלבן שפחות או יותר מסתכם בשורה אחת המייצרת Div עם Border ו Background-Color.</div>
</li>
<li>
<div align="right"><strong>טיפוגרפיה</strong> &#8211; קחו לדוגמא את ממשק הפנורמה של Windows Phone 7. הוא מורכב רובו ככולו מטקסטים בלבד. אין אייקונים או סמלים מיוחדים, או תמונות או צורות אחרות. כמעט הכל שם זה טקסט. כתיבת טקסט היא גם אחת הפעולות הבסיסיות של המחשב ושל כל תשתית UI. אין צורך בכלי ציור מתוחכמים כדי לכתוב טקסט למסך. במיוחד כשמדובר על דפדפנים שבמקור נבנו עבור המטרה היחידה של הצגת טקסט, ולכן עושים זאת בקלות רבה מאוד.</div>
</li>
<li>
<div align="right"><strong><u>ממשק ללא תמונות</u></strong> &#8211; זו אינה עיקרון ישיר של ממשק מטרו, אבל אם תשימו לב, לרוב באפליקציות מטרו אין תמונות אשר משמשות לבניית הממשק. אני לא מדבר על תמונות שהן חלק מהתוכן כמו לדוגמא תמונה של תל אביב בכתבה שמדברת על תל אביב. אני מדבר על תמונות שבונות את הממשק, כמו לדוגמא אייקונים למיניהם, תמונות רקע, חלקים מהתפריט, וכולי. לצייר תמונה על המסך זו לא עבודה קשה למחשב, אבל בטוח שיותר קשה מלצייר קו, או ריבוע. בנוסף, מעבר ליתרון בביצועים, עם תמונות קשה להתעסק. כדי שיראו טוב צריך שיהיו ברזולוציה גבוהה, וזה אומר נפח גדול. צריך לדאוג לשמור על פרופורציות. לפעמים צריך לספק כמה גדלים לאותה תמונה עבור שימושים שונים, ואי אפשר להגדיל או להקטין אותן בקלות תוך שמירה על המראה המקורי.</div>
</li>
</ul>
<p dir="rtl" align="right">בואו נראה את ההבדלים בפועל:</p>
<p dir="rtl" align="right">זהו מסך ההגדרות של אייפון. ציינתי על התמונה אלמנטים ש”מכבידים” על הממשק מבחינת ביצועים:</p>
<p dir="rtl" align="right"><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/itaysk/iPhone-settings-design_0D450DCD.jpg"><img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="iPhone settings design" border="0" alt="iPhone settings design" src="http://blogs.microsoft.co.il/blogs/itaysk/iPhone-settings-design_thumb_6883D088.jpg" width="644" height="454"/></a></p>
<p dir="rtl" align="right">לעומת ממשק ההגדרות של Windows Phone:</p>
<p dir="rtl" align="right"><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/itaysk/ScreenDump_2011-16-31-10-16-01-3160-PM_793B5569.jpg"><img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="ScreenDump_2011-16-31-10-16-01-3160-PM" border="0" alt="ScreenDump_2011-16-31-10-16-01-3160-PM" src="http://blogs.microsoft.co.il/blogs/itaysk/ScreenDump_2011-16-31-10-16-01-3160-PM_thumb_1E95230B.jpg" width="292" height="484"/></a></p>
<p dir="rtl" align="right">זו לא תחרות מי יותר יפה. רק שימו לב להבדלים מנקודת מבט תכנותית.</p>
<p dir="rtl" align="right">דוגמא נוספת: </p>
<p dir="rtl" align="right">שולחן העבודה של Windows Vista:    <br /><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/itaysk/Vista-design_70C75A45.jpg"><img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Vista design" border="0" alt="Vista design" src="http://blogs.microsoft.co.il/blogs/itaysk/Vista-design_thumb_0B63D092.jpg" width="644" height="395"/></a></p>
<p dir="rtl" align="right">(האמת שיש כאן המון אפקטים קטנים, אבל רק הדגשתי את הבולטים מביניהם.)</p>
<p dir="rtl" align="right">לעומת שולחן העבודה של Windows 8:</p>
<p dir="rtl" align="right"><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/itaysk/8270_Desktop-theme_0459AA86_132BC334.png"><img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="8270_Desktop-theme_0459AA86" border="0" alt="8270_Desktop-theme_0459AA86" src="http://blogs.microsoft.co.il/blogs/itaysk/8270_Desktop-theme_0459AA86_thumb_3004C23C.png" width="644" height="404"/></a></p>
<p dir="rtl" align="right">הנה ציטוט <a rel="nofollow" target="_blank" href="http://blogs.msdn.com/b/b8/archive/2012/05/18/creating-the-windows-8-user-experience.aspx">מהבלוג של צוות הפיתוח של וינדוס 8</a>, שמראה מה השתנה בעיצוב:</p>
<p align="left">“To complete the story, we updated the appearance of most common controls, such as buttons, check boxes, sliders, and the Ribbon. We squared off the rounded edges, cleaned away gradients, and flattened the control backgrounds”</p>
<p dir="rtl" align="right">הדוגמאות האלו נועדו להמחיש את הנקודה שלי &#8211; שממשקי מטרו הם פשוטים יותר לתצוגה על ידי המחשב, ולכן באופן טבעי יציגו ביצועים טובים יותר מעיצובים “עמוסים” אחרים.</p>
<p dir="rtl" align="right">&#160;</p>
<p dir="rtl" align="right">פעם הראיתי לחבר שלי כמה מהיר הממשק של Windows Phone 7, והוא ענה בזלזול &quot;בטח שיהיה יותר מהיר, יש לך רק 2 צבעים במסך וכמה ריבועים וטקסט&quot;. צודק, אולי כאן טמון הסוד?</p>]]></content:encoded>
      </item>
      <item>
         <title>Silicon Valley Opportunities</title>
         <link>http://blogs.microsoft.co.il/yuvalk/2012/06/05/silicon-valley-opportunities/</link>
         <description>Hey Folks, If any of you have a permit to work in the U.S, the following might interest you. I have a friend who owns an IT staffing agency in California and he is constantly looking for Developers, Engineers and IT people who would like to work for young start-up companies over there (mainly in [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1112552</guid>
         <pubDate>Tue, 05 Jun 2012 12:01:52 +0000</pubDate>
         <content:encoded><![CDATA[<p>Hey Folks,</p>
<p>If any of you have a permit to work in the U.S, the following might interest you.    <br />I have a friend who owns an <a rel="nofollow" target="_blank" href="http://www.matchrelevant.com">IT staffing agency</a> in California and he is constantly looking for     <br />Developers, Engineers and IT people who would like to work for young start-up companies     <br />over there (mainly in Silicon Valley). If you're interested, let me know and I can pass on your CV. </p>
<p>Cheers,</p>
<p>Yuval </p>]]></content:encoded>
      </item>
      <item>
         <title>Presenting at SharePoint User Group Tomorrow</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/05/27/presenting-at-sharepoint-user-group-tomorrow/</link>
         <description>תזכורת: מחר (28/05/2012) בשעה 17:30 יתקיים מפגש של SharePoint User Group. אני אעביר הרצאה על Claims Based Authentication in SharePoint 2010. המפגש אינו כרוך בתשלום, אך מצריך הרשמה מראש בקישור: http://spug-28-may-eorg.eventbrite.com הערה: למי שהיה בהרצאה שלי בכנס SharePoint Extreme האחרון, מדובר על אותה הרצאה.</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1104475</guid>
         <pubDate>Sun, 27 May 2012 10:10:15 +0000</pubDate>
         <content:encoded><![CDATA[<p dir="rtl" align="right">תזכורת: מחר (28/05/2012) בשעה 17:30 יתקיים מפגש של SharePoint User Group. אני אעביר הרצאה על Claims Based Authentication in SharePoint 2010.    <br />המפגש אינו כרוך בתשלום, אך מצריך הרשמה מראש בקישור:     <br /><a rel="nofollow" target="_blank" href="http://spug-28-may-eorg.eventbrite.com">http://spug-28-may-eorg.eventbrite.com</a> </p>
<p dir="rtl" align="right">הערה: למי שהיה בהרצאה שלי בכנס SharePoint Extreme האחרון, מדובר על אותה הרצאה.</p>]]></content:encoded>
      </item>
      <item>
         <title>BDC -&amp;gt; BCS?</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/05/15/bdc-gt-bcs/</link>
         <description>MOSS 2007 had a feature called Business Data Catalog. When SharePoint 2010 came out, this feature was introduced as Business Connectivity Services. The common belief is that BCS is the new version of BDC, and that in the new version the name was changed from BDC to BCS. According to this, there is no reason [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1092403</guid>
         <pubDate>Tue, 15 May 2012 15:40:17 +0000</pubDate>
         <content:encoded><![CDATA[<p>MOSS 2007 had a feature called Business Data Catalog. When SharePoint 2010 came out, this feature was introduced as Business Connectivity Services.</p>
<p>The common belief is that BCS is the new version of BDC, and that in the new version the name was changed from BDC to BCS. According to this, there is no reason to use the term BDC in the context of SharePoint 2010.    <br />This is not exactly correct.     <br />BDC was and still the infrastructure that allows SharePoint to connect to other systems. It has the concept of metadata and descriptors, and is still present in 2010 under the name “Business Data Connectivity”. BCS is based on BDC and is what makes all the advanced connectivity scenarios possible (such as integration with Office, ECT,…).</p>
<p>In the bottom-line, the terms BDC and BCS is used interchangeably, so you should too. But you don’t have to be angry if you see BDC in the same sentence with SharePoint 2010 <img src="http://blogs.microsoft.co.il/itaysk/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/></p>
<p>Here are some supporting quotes from MSDN:</p>
<p><em>“Business Data Connectivity (BDC) service is the new version of the Business Data </em><em>Catalog that was provided in Microsoft Office SharePoint Server 2007”      <br /></em><a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ee556407.aspx">http://msdn.microsoft.com/en-us/library/ee556407.aspx</a></p>
<p><em>“Business Data Connectivity (BDC) service succeeds the Business Data Catalog that was provided in Microsoft Office SharePoint Server 2007”</em>     <br /><a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ee558876.aspx">http://msdn.microsoft.com/en-us/library/ee558876.aspx</a></p>
<p><em>“BDC is the foundation of Business Connectivity Services”      <br /></em><a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ee559650.aspx">http://msdn.microsoft.com/en-us/library/ee559650.aspx</a></p>
<p><em>“Business Data Connectivity (BDC) service in Microsoft Business Connectivity Services (BCS) is the underlying framework in the Microsoft SharePoint Foundation 2010 platform on which Business Connectivity Services is built”</em>     <br /><a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ee557963.aspx">http://msdn.microsoft.com/en-us/library/ee557963.aspx</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Xml Serialize Interface Typed Members</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/04/30/xml-serialize-interface-typed-members/</link>
         <description>If you try to serialize a class that has a public member of an interface type to xml file using the regular .net XmlSerializer, you will get an error: “Cannot serialize member {m} of type {t} because it is an interface.” ({m} and {t} are placeholders). In this post I suggest a workaround to this [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1078708</guid>
         <pubDate>Mon, 30 Apr 2012 10:48:30 +0000</pubDate>
         <content:encoded><![CDATA[<p>If you try to serialize a class that has a public member of an interface type to xml file using the regular .net <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx">XmlSerializer</a>, you will get an error: “Cannot serialize member {m} of type {t} because it is an interface.” ({m} and {t} are placeholders).     <br />In this post I suggest a workaround to this issue.</p>
<p>Consider the following scenario:</p>
<p>You have an object model like this:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper">
<div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet">
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> Car</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> Model { get; set; }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Year { get; set; }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">public</span> IEngine Engine { get; set; }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum6">   6:</span> }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum7">   7:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum8">   8:</span> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">interface</span> IEngine</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum9">   9:</span> {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum10">  10:</span>     <span style="color:#0000ff;">void</span> Work();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum11">  11:</span> }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum12">  12:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum13">  13:</span> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> ElectricEngine : IEngine</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum14">  14:</span> {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum15">  15:</span>     <span style="color:#0000ff;">int</span> batteryPrecentageLeft;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum16">  16:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> BatteryPrecentageLeft</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum17">  17:</span>     {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum18">  18:</span>         get { <span style="color:#0000ff;">return</span> <span style="color:#0000ff;">this</span>.batteryPrecentageLeft; }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum19">  19:</span>         set { <span style="color:#0000ff;">this</span>.batteryPrecentageLeft = <span style="color:#0000ff;">value</span>; }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum20">  20:</span>     }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum21">  21:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum22">  22:</span>     <span style="color:#0000ff;">void</span> IEngine.Work() { }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum23">  23:</span> }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum24">  24:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum25">  25:</span> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> InternalCombustionEngine : IEngine</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum26">  26:</span> {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum27">  27:</span>     <span style="color:#0000ff;">int</span> gasLitersLeft;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum28">  28:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> GasLitersLeft</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum29">  29:</span>     {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum30">  30:</span>         get { <span style="color:#0000ff;">return</span> <span style="color:#0000ff;">this</span>.gasLitersLeft; }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum31">  31:</span>         set { <span style="color:#0000ff;">this</span>.gasLitersLeft = <span style="color:#0000ff;">value</span>; }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum32">  32:</span>     }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum33">  33:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum34">  34:</span>     <span style="color:#0000ff;">void</span> IEngine.Work() { }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum35">  35:</span> }</pre>
<p></div>
</div>
<p>And you use it like so:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper">
<div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet">
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum1">   1:</span> Car myCar = <span style="color:#0000ff;">new</span> Car();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum2">   2:</span> myCar.Model = <span style="color:#006080;">&quot;Ford Focus&quot;</span>;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum3">   3:</span> myCar.Year = 2011;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum4">   4:</span> myCar.Engine = <span style="color:#0000ff;">new</span> ElectricEngine() { BatteryPrecentageLeft = 70 };</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum5">   5:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum6">   6:</span> myCar.Engine.Work();</pre>
<p></div>
</div>
<p>If you would try to serialize <em>myCar</em> using the regular XmlSerializer, you will get the error above.</p>
<p>There are many reasons why you shouldn’t want to serialize an interface typed member. I will not dive into this debate right now. I assume that you have considered this before, and are just looking for a workaround.</p>
<p>So first lets understand what we are trying to achieve.<br />
  <br />In the example above, I expect the serialized output of <em>myCar</em> to be something like this:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper">
<div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet">
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Car</span> <span style="color:#ff0000;">xmlns:xsi</span><span style="color:#0000ff;">=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span> <span style="color:#ff0000;">xmlns:xsd</span><span style="color:#0000ff;">=&quot;http://www.w3.org/2001/XMLSchema&quot;</span><span style="color:#0000ff;">&gt;</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum2">   2:</span>   <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Model</span><span style="color:#0000ff;">&gt;</span>Ford Focus<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Model</span><span style="color:#0000ff;">&gt;</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum3">   3:</span>   <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Year</span><span style="color:#0000ff;">&gt;</span>2011<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Year</span><span style="color:#0000ff;">&gt;</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum4">   4:</span>   <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Engine</span><span style="color:#0000ff;">&gt;</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">ElectricEngine</span> <span style="color:#ff0000;">FullAssemblyQualifiedTypeName</span><span style="color:#0000ff;">=&quot;Common.ElectricEngine, Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&quot;</span><span style="color:#0000ff;">&gt;</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum6">   6:</span>       <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">BatteryPrecentageLeft</span><span style="color:#0000ff;">&gt;</span>70<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">BatteryPrecentageLeft</span><span style="color:#0000ff;">&gt;</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum7">   7:</span>     <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">ElectricEngine</span><span style="color:#0000ff;">&gt;</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum8">   8:</span>   <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Engine</span><span style="color:#0000ff;">&gt;</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum9">   9:</span> <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">Car</span><span style="color:#0000ff;">&gt;</span></pre>
<p></div>
</div>
<p>I have <a rel="nofollow" target="_blank" href="http://stackoverflow.com/questions/10252207/how-to-serialize-interface-typed-member">asked a question</a> on StackOverflow, and <a rel="nofollow" target="_blank" href="http://stackoverflow.com/users/214222/jens-granlund">Jens Granlund</a> has pointed me in the right direction. </p>
<p>The workaround that I have implemented consists of the following steps:</p>
<ol>
<li>Mark all interface typed members with the <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlignoreattribute.aspx"><em>XmlIgnoreAttribute</em></a>, that tells the XmlSerializer to not serialize those members. </li>
<li>Now serialize the class to produce an output similar to the one above, but without the problematic members. </li>
<li>For-each member marked with the attribute, get it’s current value, and that value’s type. That can only be done in runtime. </li>
<li>Use that type to create a standard XmlSerializer, and use that serializer to serialize that value. </li>
<li>Inject those serialized values to the parent class’s serialized xml. </li>
<li>In order to allow regular use of the <em>XmlIgnoreAttribute</em>, implement a new attribute that act like it. </li>
<li>During deserialization perform the same process in reverse. </li>
</ol>
<p>I have followed that basic recipe to create my own <em>“RuntimeXmlSerializer”</em>. You use it the same way you would use the standard XmlSerializer.</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper">
<div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet">
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> RuntimeXmlSerializerAttribute : XmlIgnoreAttribute { }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum2">   2:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum3">   3:</span> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> RuntimeXmlSerializer</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum4">   4:</span> {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">private</span> Type m_type;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum6">   6:</span>     <span style="color:#0000ff;">private</span> XmlSerializer m_regularXmlSerializer;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum7">   7:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum8">   8:</span>     <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">const</span> <span style="color:#0000ff;">string</span> k_FullClassNameAttributeName = <span style="color:#006080;">&quot;FullAssemblyQualifiedTypeName&quot;</span>;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum9">   9:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum10">  10:</span>     <span style="color:#0000ff;">public</span> RuntimeXmlSerializer(Type i_subjectType)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum11">  11:</span>     {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum12">  12:</span>         <span style="color:#0000ff;">this</span>.m_type = i_subjectType;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum13">  13:</span>         <span style="color:#0000ff;">this</span>.m_regularXmlSerializer = <span style="color:#0000ff;">new</span> XmlSerializer(<span style="color:#0000ff;">this</span>.m_type);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum14">  14:</span>     }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum15">  15:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum16">  16:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> Serialize(<span style="color:#0000ff;">object</span> i_objectToSerialize, Stream i_streamToSerializeTo)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum17">  17:</span>     {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum18">  18:</span>         StringWriter sw = <span style="color:#0000ff;">new</span> StringWriter();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum19">  19:</span>         <span style="color:#0000ff;">this</span>.m_regularXmlSerializer.Serialize(sw, i_objectToSerialize);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum20">  20:</span>         XDocument objectXml = XDocument.Parse(sw.ToString());</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum21">  21:</span>         sw.Dispose();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum22">  22:</span>         SerializeExtra(i_objectToSerialize,objectXml);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum23">  23:</span>         <span style="color:#0000ff;">string</span> res = objectXml.ToString();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum24">  24:</span>         <span style="color:#0000ff;">byte</span>[] bytesToWrite = Encoding.UTF8.GetBytes(res);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum25">  25:</span>         i_streamToSerializeTo.Write(bytesToWrite, 0, bytesToWrite.Length);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum26">  26:</span>     }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum27">  27:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum28">  28:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">object</span> Deserialize(Stream i_streamToSerializeFrom)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum29">  29:</span>     {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum30">  30:</span>         <span style="color:#0000ff;">string</span> xmlContents = <span style="color:#0000ff;">new</span> StreamReader(i_streamToSerializeFrom).ReadToEnd();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum31">  31:</span>         StringReader sr;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum32">  32:</span>         sr = <span style="color:#0000ff;">new</span> StringReader(xmlContents);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum33">  33:</span>         <span style="color:#0000ff;">object</span> res = <span style="color:#0000ff;">this</span>.m_regularXmlSerializer.Deserialize(sr);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum34">  34:</span>         sr.Dispose();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum35">  35:</span>         sr = <span style="color:#0000ff;">new</span> StringReader(xmlContents);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum36">  36:</span>         XDocument doc = XDocument.Load(sr);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum37">  37:</span>         sr.Dispose();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum38">  38:</span>         deserializeExtra(res, doc);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum39">  39:</span>         <span style="color:#0000ff;">return</span> res;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum40">  40:</span>     }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum41">  41:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum42">  42:</span>     <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> deserializeExtra(<span style="color:#0000ff;">object</span> i_desirializedObject, XDocument i_xmlToDeserializeFrom)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum43">  43:</span>     {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum44">  44:</span>         IEnumerable propertiesToDeserialize = i_desirializedObject.GetType()</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum45">  45:</span>             .GetProperties().Where(p =&gt; p.GetCustomAttributes(<span style="color:#0000ff;">true</span>)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum46">  46:</span>                 .FirstOrDefault(a =&gt; a.GetType() ==</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum47">  47:</span>                     <span style="color:#0000ff;">typeof</span>(RuntimeXmlSerializerAttribute)) != <span style="color:#0000ff;">null</span>);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum48">  48:</span>         <span style="color:#0000ff;">foreach</span> (PropertyInfo prop <span style="color:#0000ff;">in</span> propertiesToDeserialize)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum49">  49:</span>         {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum50">  50:</span>             XElement propertyXml = i_xmlToDeserializeFrom.Descendants().FirstOrDefault(e =&gt;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum51">  51:</span>                 e.Name == prop.Name);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum52">  52:</span>             <span style="color:#0000ff;">if</span> (propertyXml == <span style="color:#0000ff;">null</span>) <span style="color:#0000ff;">continue</span>;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum53">  53:</span>             XElement propertyValueXml = propertyXml.Descendants().FirstOrDefault();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum54">  54:</span>             Type type = Type.GetType(propertyValueXml.Attribute(k_FullClassNameAttributeName).Value.ToString());</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum55">  55:</span>             XmlSerializer srl = <span style="color:#0000ff;">new</span> XmlSerializer(type);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum56">  56:</span>             <span style="color:#0000ff;">object</span> deserializedObject = srl.Deserialize(propertyValueXml.CreateReader());</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum57">  57:</span>             prop.SetValue(i_desirializedObject, deserializedObject, <span style="color:#0000ff;">null</span>);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum58">  58:</span>         }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum59">  59:</span>     }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum60">  60:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum61">  61:</span>     <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> SerializeExtra(<span style="color:#0000ff;">object</span> objectToSerialize, XDocument xmlToSerializeTo)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum62">  62:</span>     {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum63">  63:</span>         IEnumerable propertiesToSerialize =</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum64">  64:</span>             objectToSerialize.GetType().GetProperties().Where(p =&gt;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum65">  65:</span>                 p.GetCustomAttributes(<span style="color:#0000ff;">true</span>).FirstOrDefault(a =&gt;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum66">  66:</span>                     a.GetType() == <span style="color:#0000ff;">typeof</span>(RuntimeXmlSerializerAttribute)) != <span style="color:#0000ff;">null</span>);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum67">  67:</span>         <span style="color:#0000ff;">foreach</span> (PropertyInfo prop <span style="color:#0000ff;">in</span> propertiesToSerialize)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum68">  68:</span>         {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum69">  69:</span>             XElement serializedProperty = <span style="color:#0000ff;">new</span> XElement(prop.Name);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum70">  70:</span>             serializedProperty.AddFirst(serializeObjectAtRuntime(prop.GetValue(objectToSerialize, <span style="color:#0000ff;">null</span>)));</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum71">  71:</span>             xmlToSerializeTo.Descendants().First().Add(serializedProperty); <span style="color:#008000;">//TODO</span></pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum72">  72:</span>         }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum73">  73:</span>     }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum74">  74:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum75">  75:</span>     <span style="color:#0000ff;">private</span> XElement serializeObjectAtRuntime(<span style="color:#0000ff;">object</span> i_objectToSerialize)</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum76">  76:</span>     {</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum77">  77:</span>         Type t = i_objectToSerialize.GetType();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum78">  78:</span>         XmlSerializer srl = <span style="color:#0000ff;">new</span> XmlSerializer(t);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum79">  79:</span>         StringWriter sw = <span style="color:#0000ff;">new</span> StringWriter();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum80">  80:</span>         srl.Serialize(sw, i_objectToSerialize);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum81">  81:</span>         XElement res = XElement.Parse(sw.ToString());</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum82">  82:</span>         sw.Dispose();</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum83">  83:</span>         XAttribute fullClassNameAttribute = <span style="color:#0000ff;">new</span> XAttribute(k_FullClassNameAttributeName, t.AssemblyQualifiedName);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum84">  84:</span>         res.Add(fullClassNameAttribute);</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum85">  85:</span>&#160; </pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum86">  86:</span>         <span style="color:#0000ff;">return</span> res;</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum87">  87:</span>     }</pre>
<p></p>
<pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"><span style="color:#606060;" id="lnum88">  88:</span> }</pre>
<p></div>
</div>
<p>Notice that this solution doesn’t handle situations in which the interface typed member is not a direct descendent of the type being serialized. In example if <em>Car</em> has a member of type <em>List&lt;IWheel&gt;</em> or if <em>Car</em> has a member of type <em>Dashboard</em> which has a member f type <em>IGauge, </em>than serialization will fail. </p>
<p>This can be solved by recursively performing the “Runtime” serialization on all members, until we reach a primitive member which we can serialize using the regular serializer.</p>
<p>You can find the Visual Studio project in this link:<br />
  <br /><a rel="nofollow" title="http://blogs.microsoft.co.il/files/folders/1078707/download.aspx" target="_blank" href="http://blogs.microsoft.co.il/files/folders/1078707/download.aspx">http://blogs.microsoft.co.il/files/folders/1078707/download.aspx</a></p>]]></content:encoded>
      </item>
      <item>
         <title>Enterprise Wiki site template vs. Wiki Library template</title>
         <link>http://blogs.microsoft.co.il/itaysk/2012/04/15/enterprise-wiki-site-template-vs-wiki-library-template/</link>
         <description>We all know wikis and how they work. It's a quick way to create inter-connected items of unstructured data. SharePoint 2010 Introduces two wiki solutions that appear similar on first sight, but are actually different. In this post I will cover technical differences between the two. First is the &amp;#34;Enterprise Wiki&amp;#34; site template. It's a [&amp;#8230;]</description>
         <guid isPermaLink="false">http://blogs.microsoft.co.il/?p=1065594</guid>
         <pubDate>Sun, 15 Apr 2012 20:00:52 +0000</pubDate>
         <content:encoded><![CDATA[<p><a rel="nofollow" target="_blank" href="http://blogs.microsoft.co.il/blogs/itaysk/Wiki-Linking-1_0B4F1AC8.png"><img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top:0px;border-right:0px;padding-top:0px;" title="Wiki-Linking-1" border="0" alt="Wiki-Linking-1" align="right" src="http://blogs.microsoft.co.il/blogs/itaysk/Wiki-Linking-1_thumb_1E8FD167.png" width="349" height="225"/></a>We all know wikis and how they work. It's a quick way to create inter-connected items of unstructured data.    <br />SharePoint 2010 Introduces two wiki solutions that appear similar on first sight, but are actually different. In this post I will cover technical differences between the two.</p>
<p>First is the &quot;<strong>Enterprise Wiki</strong>&quot; site template. It's a template that can be used to create site collections, or sub-sites. The Enterprise Wiki site template creates a site that is dedicated to wiki content. The main component in the site is the &quot;Pages&quot; Library. We will explorer it later.</p>
<p>Second is the &quot;Wiki Page Library&quot; list template. This Wiki Library can host wiki pages. It can be created in any kind of site.    <br />As a matter of fact, this Wiki Library list template is used as the default pages library in the &quot;Team Site&quot; site template.</p>
<p>According to <a rel="nofollow" target="_blank" href="http://msdn.microsoft.com/en-us/library/ee721051.aspx">this article on MSDN</a>, here is a short comparison between the two:</p>
<table border="1" cellspacing="0" cellpadding="2" width="400">
<tbody>
<tr>
<td valign="top" width="200">
<p>If you want to:</p>
</td>
<td valign="top" width="200">
<p>Use this site template:</p>
</td>
</tr>
<tr>
<td valign="top" width="200">
<p>Encourage one-to-many communication</p>
</td>
<td valign="top" width="200">
<p>Team Site</p>
</td>
</tr>
<tr>
<td valign="top" width="200">
<p>Encourage many-to-many communication</p>
</td>
<td valign="top" width="200">
<p>Enterprise Wiki</p>
</td>
</tr>
<tr>
<td valign="top" width="200">
<p>Offer a structured exchange of information</p>
</td>
<td valign="top" width="200">
<p>Team Site</p>
</td>
</tr>
<tr>
<td valign="top" width="200">
<p>Enable a collaborative exchange of information</p>
</td>
<td valign="top" width="200">
<p>Enterprise Wiki</p>
</td>
</tr>
<tr>
<td valign="top" width="200">
<p>Insert images or files in a pages</p>
</td>
<td valign="top" width="200">
<p>Team Site or Enterprise Wiki</p>
</td>
</tr>
<tr>
<td valign="top" width="200">
<p>Mark pages for easier reference by tagging them with enterprise keywords</p>
</td>
<td valign="top" width="200">
<p>Enterprise Wiki</p>
</td>
</tr>
</tbody>
</table>
<p>These are nice guidelines, but what is the real difference of each?   <br />I am now going to go through the detailed process that I took for investigating the case. You can skip to the end if you want the summary.</p>
<p><u><strong>Wiki Page Library</strong></u></p>
<p>The template is part of the feature called &quot;WebPageLibrary&quot;. In this feature, you can find the list definition at: &quot;14&#92;TEMPLATES&#92;FEATURES&#92;WebPageLibrary&#92;ListTemlpates&#92;WebPageLibrary.xml&quot;.   <br />If you look at it, you'll notice that the list template id is 119, and BaseType=&quot;1&quot;, which means it is a regular document library.</p>
<p>If we take a look at the schema.xml file at &quot;14&#92;TEMPLATES&#92;FEATURES&#92;WebPageLibrary&#92;WebPageLib&#92;schema.xml&quot;, we will see that the template associates a content type with ID 0x010108 to the library. This content type is called &quot;WikiDocument&quot;, and is defined in: &quot;14&#92;TEMPLATES&#92;FEATURES&#92;ctypes&#92;ctypeswss.xml&quot;. It inherits from the base &quot;Document&quot; content type, does 2 things: Add the &quot;WikiField&quot;, and remove the &quot;Title&quot; field.    <br />The &quot;WikiField&quot; field is what holds the content of the page.</p>
<p><strong><u>Enterpries Wiki</u></strong></p>
<p>This is an entierly different beast. First of all, it's a site definition. You will find the &quot;Enterprise Wiki&quot; site definition at 14&#92;TEMPLATE&#92;1033&#92;XML&#92;webtempsps.xml. Let's take a closer look at it.   <br />The site definition onet.xml file is at: 14&#92;TEMPLATE&#92;SiteTemplates&#92;ENTERWIKI&#92;XML&#92;onet.xml. In here, we can see that this is actually a publishing site (publishing features, such as &quot;Publishing 22A9EF51-737B-4ff2-9346-694633FE4416&quot; are activated).</p>
<p>In addition to the standatd pablishing features, there's an additional feature with id &quot;76D688AD-C16E-4cec-9B71-7B7F0D79B9CD&quot;. This is the EnterpriseWiki feature, you can find it's source at: 14&#92;TEMPALTE&#92;FEATURES&#92;EnterpriseWiki.</p>
<p>If you take a look at EnterpriseWikiContentTypeBinding.xml, you will see that the feature takes the default pages library that is created with the publishing infrastructure, and binds to it 2 content types. One is the standard Redirect Page content type, and the other is the Enterprise Wiki content type.    <br />The Enterprise Wiki content type is defined at: 14&#92;TEMPALTE&#92;FEATURES&#92;EnterpriseWikiContentTypes, and defines the following fields: ModifiedBy, PublishingPageContent, Rating, RatingCount.</p>
<p>If we take a look at the page layout at: 14&#92;TEMPALTE&#92;FEATURES&#92;EnterpriseWikiLayouts&#92;PageLayouts&#92;EnterpriseWiki.aspx, we will see that the field that holds the content of the page is &quot;PublishingPageContent&quot;. This field is just like the &quot;WikiField&quot; field that we discussed earlier.</p>
<p><strong><u>Rendering</u></strong></p>
<p>Handling wiki style markup is integrated into SharePoint foundation. From what I have found, it seems that the translation from wiki syntax to html is done in the field level (not UI control). The class &quot;SPFieldMultilineText&quot; has a property called &quot;WikiLinking&quot; (boolean), that toggles the feature on or off.    <br />For publishing pages, the &quot;HtmlField&quot; inherits indirectly from SPFieldMultilineText, so it supports this too.</p>
<p>You can use this feature with regular publishing pages as well (not nessicarely wiki page layouts).   <br />If you look at the source of a publishing page you will see a line similar to this: document.getElementById('ctl00_PlaceHolderMain_PageContent_RichHtmlField_displayContent').WikiLinking = 'on';    <br />This controls whether or not the wiki syntax translation is active.</p>
<p><strong><u>Summary</u></strong></p>
<p>SharePoint has different 2 solutions for wiki style editing:</p>
<p>1. Wiki Library &#8211; a web pages library that uses the &quot;Wiki Document&quot; content type. This content type has a field called &quot;WikiField&quot; to hold the wiki content.</p>
<p>2. Enterprise Wiki &#8211; a site definition that is based on the publishing infrustructure. As such, it is based on the built in &quot;Pages&quot; library. It uses a content type called &quot;Enterprise Wiki&quot;, in which the field &quot;PublishingPageContent&quot; is used to hold wiki content.</p>
<p>This knowledge can be helpful if you are developing solutions that are usign the wiki features programmatically.</p>
<p>&#160;</p>
<p>&#8211; My name is Itay Shakury, and I'm a SharePoint consultant &#8211;</p>]]></content:encoded>
      </item>
      <item>
         <title>ArcGIS–Getting the Legend Labels out</title>
         <link>http://weblogs.asp.net:80/avnerk/arcgis-getting-the-legend-labels-out</link>
         <description>&lt;p&gt;Working with ESRI’s ArcGIS package, especially the WPF API, can be confusing. There’s the REST API, the SOAP APIs, and the WPF classes themselves, which expose some web service calls and information, but not everything. With all that, it can be hard to find specific features between the different options. Some functionality is handed to you on a silver platter, while some is maddeningly hard to implement.&lt;/p&gt;  &lt;p&gt;Today, for instance, I was working on adding a Legend control to my map-based WPF application, to explain the different symbols that can appear on the map.&lt;/p&gt;  &lt;p&gt;This is how the legend looks on ESRI’s own map-editing tools:&lt;/p&gt;  &lt;p&gt;&lt;img src=&quot;http://forums.arcgis.com/attachment.php?attachmentid=12895&amp;amp;d=1332335980&quot; width=&quot;363&quot; height=&quot;199&quot;/&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;but this is how it looks when I used the Legend control, supplied out of the box by ESRI:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img src=&quot;http://forums.arcgis.com/attachment.php?attachmentid=12894&amp;amp;d=1332333784&quot;/&gt;&lt;/p&gt;  &lt;p&gt;Very pretty, but unfortunately missing the option to display the name of the fields that make up the symbology.&lt;/p&gt;  &lt;p&gt;Luckily, the WPF controls have a lot of templating/extensibility points, to allow you to specify the layout of each field:&lt;/p&gt;  &lt;div style=&quot;border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;&quot; id=&quot;codeSnippetWrapper&quot;&gt;   &lt;div style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot; id=&quot;codeSnippet&quot;&gt;     &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;esri:Legend&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt;     &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;esri:Legend.MapLayerTemplate&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt;         &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;DataTemplate&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt;              &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;TextBlock&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&amp;quot;{Binding Layer.ID}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt;         &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;DataTemplate&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt; &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt;     &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;esri:Legend.MapLayerTemplate&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;esri:Legend&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;but that only replicates the same built in behavior. I could now add any additional fields I liked, but unfortunately, I couldn’t find them as part of the Layer, GraphicsLayer or FeatureLayer definitions. This is the part where ESRI’s lack of organization is noticeable, since I can see this data easily when accessing the ArcGis Server’s web-interface, but I had no idea how to find it as part of the built-in class. Is it a part of Layer? Of LayerInfo? Of the LayerDefinition class that exists only in the SOAP service?&lt;/p&gt;

&lt;p&gt;As it turns out, neither. Since these fields are used by the symbol renderer to determine which symbol to draw, they’re actually a part of the layer’s Renderer. Since I already had a MyFeatureLayer class derived from FeatureLayer that added extra functionality, I could just add this property to it:&lt;/p&gt;

&lt;div style=&quot;border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;div style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot; id=&quot;codeSnippet&quot;&gt;
    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; LegendFields&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt;     get&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt;         &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (&lt;span style=&quot;color:#0000ff;&quot;&gt;this&lt;/span&gt;.Renderer &lt;span style=&quot;color:#0000ff;&quot;&gt;is&lt;/span&gt; UniqueValueRenderer)&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;return&lt;/span&gt; (&lt;span style=&quot;color:#0000ff;&quot;&gt;this&lt;/span&gt;.Renderer &lt;span style=&quot;color:#0000ff;&quot;&gt;as&lt;/span&gt; UniqueValueRenderer).Field;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum9&quot;&gt;   9:&lt;/span&gt;         &lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;if&lt;/span&gt; (&lt;span style=&quot;color:#0000ff;&quot;&gt;this&lt;/span&gt;.Renderer &lt;span style=&quot;color:#0000ff;&quot;&gt;is&lt;/span&gt; UniqueValueMultipleFieldsRenderer)&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum10&quot;&gt;  10:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum11&quot;&gt;  11:&lt;/span&gt;             var renderer = &lt;span style=&quot;color:#0000ff;&quot;&gt;this&lt;/span&gt;.Renderer &lt;span style=&quot;color:#0000ff;&quot;&gt;as&lt;/span&gt; UniqueValueMultipleFieldsRenderer;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum12&quot;&gt;  12:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt;.Join(renderer.FieldDelimiter, renderer.Fields);&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum13&quot;&gt;  13:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum14&quot;&gt;  14:&lt;/span&gt;         &lt;span style=&quot;color:#0000ff;&quot;&gt;else&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum15&quot;&gt;  15:&lt;/span&gt; }&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;For my scenario, all of my layers used symbology derived from a single field or, as in the examples above, from several of them. The renderer even kindly supplied me with the comma to separate the fields with. Now it was a simple matter to get the Legend control in line – assuming that it was bound to a collection of MyFeatureLayer:&lt;/p&gt;

&lt;div style=&quot;border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;div style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot; id=&quot;codeSnippet&quot;&gt;
    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;esri:Legend&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt;     &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;esri:Legend.MapLayerTemplate&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt;         &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;DataTemplate&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;StackPanel&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;TextBlock&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&amp;quot;{Binding Layer.ID}&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt;                 &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;TextBlock&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Text&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&amp;quot;{Binding Layer.LegendFields}&amp;quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;Margin&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&amp;quot;10,0,0,0&amp;quot;&lt;/span&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;TextStyle&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;=&amp;quot;Italic&amp;quot;&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt;             &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;StackPanel&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt;         &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;DataTemplate&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum9&quot;&gt;   9:&lt;/span&gt;     &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;esri:Legend.MapLayerTemplate&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style=&quot;border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;&quot;&gt;&lt;span style=&quot;color:#606060;&quot; id=&quot;lnum10&quot;&gt;  10:&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color:#800000;&quot;&gt;esri:Legend&lt;/span&gt;&lt;span style=&quot;color:#0000ff;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;and get the look I wanted – the list of fields below the layer name, indented.&lt;/p&gt;</description>
         <guid isPermaLink="false">http://weblogs.asp.net:80/avnerk/arcgis-getting-the-legend-labels-out</guid>
         <pubDate>Tue, 27 Mar 2012 08:18:19 +0000</pubDate>
      </item>
      <item>
         <title>The Case of the Unexpected Expected Exception</title>
         <link>http://weblogs.asp.net:80/avnerk/the-case-of-the-unexpected-expected-exception</link>
         <description>&lt;p&gt;“NUnit is being problematic again”, they told me when I came to visit the project. “When running unattended it’s not catching assertions properly and the test is coming up green, but when stepping through in the debugger, it works fine.”. It’s nice, when getting a passing test is acknowledged as a bad thing, at least when you don’t expect it to be. In this case, though, the fault wasn’t really with NUnit.&lt;/p&gt;  &lt;pre&gt;&lt;pre style=&quot;background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,;font-size:12px;&quot;&gt;  1: [Test]
&lt;/pre&gt;&lt;pre style=&quot;background-color:#ffffff;margin:0em;width:100%;font-family:consolas,;font-size:12px;&quot;&gt;  2: [ExpectedException]
&lt;/pre&gt;&lt;pre style=&quot;background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,;font-size:12px;&quot;&gt;  3: &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;void&lt;/span&gt; DoTheTest()
&lt;/pre&gt;&lt;pre style=&quot;background-color:#ffffff;margin:0em;width:100%;font-family:consolas,;font-size:12px;&quot;&gt;  4: {
&lt;/pre&gt;&lt;pre style=&quot;background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,;font-size:12px;&quot;&gt;  5:     _myComponent.RunMethod();
&lt;/pre&gt;&lt;pre style=&quot;background-color:#ffffff;margin:0em;width:100%;font-family:consolas,;font-size:12px;&quot;&gt;  6:     Assert.IsFalse(_myComponent.EverythingIsFine);
&lt;/pre&gt;&lt;pre style=&quot;background-color:#fbfbfb;margin:0em;width:100%;font-family:consolas,;font-size:12px;&quot;&gt;  7: }&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;“It’s simple. Either the method throws an exception, or at the very least – the EverythingIsFine property won’t be set to “True”, so the assert will catch the problem. But in their case, no exception was thrown and Everything wasn’t Fine,&amp;#160; but the Assert call wasn’t raising a red flag – unless they stepped through, in which case it did. What’s going on?&lt;/p&gt;

&lt;p&gt;The basic problem is that to many developers, NUnit is a kind of magic. You write a self-contained little bit of code, the [Test] method, but you don’t call it yourself, you don’t get a feel for the whole execution flow. The result – developers don’t exercise the same sort of judgement they do on their own application code.&lt;/p&gt;

&lt;p&gt;The root of the problem here is that the [ExpectedException] attribute told NUnit to pass the test if an exception is thrown. NUnit’s Assertion utilities, however, use exceptions as the mechanism for failing tests – when an assertion is hit, it raises an exception – it can be an AssertionException. For various mock frameworks, it can be an ExpectationException. It doesn’t matter – it’s these exceptions that make the test fail, and not some behind-the-scenes magic. Because the test had an open-ended [ExpectedException] attribute, these exceptions were caught, fulfilling the condition, and NUnit was happy. &lt;/p&gt;

&lt;p&gt;What can we do to avoid this?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Be explicit. Don’t try to catch ALL exceptions with [ExpectedException]. If you’re expecting an exception, you’re probably expecting a &lt;em&gt;specific&lt;/em&gt; exception. Specify it. &lt;/li&gt;

  &lt;li&gt;Be aware of how your tools work. If NUnit works by throwing an exception, don’t wrap it with a try/catch. Your tests are C# code too, as is the plumbing to enable it. It plays by the same rules. &lt;/li&gt;
&lt;/ul&gt;</description>
         <guid isPermaLink="false">http://weblogs.asp.net:80/avnerk/the-case-of-the-unexpected-expected-exception</guid>
         <pubDate>Thu, 01 Mar 2012 19:20:00 +0000</pubDate>
      </item>
      <item>
         <title>Open Source Vigilantes?</title>
         <link>http://weblogs.asp.net:80/avnerk/open-source-vigilantes</link>
         <description>&amp;lt;Placeholder for StackOverflow Weekday counter&amp;gt;</description>
         <guid isPermaLink="false">http://weblogs.asp.net:80/avnerk/open-source-vigilantes</guid>
         <pubDate>Sun, 26 Feb 2012 10:37:20 +0000</pubDate>
      </item>
   </channel>
</rss>
<!-- fe5.yql.bf1.yahoo.com compressed/chunked Thu Oct  1 21:33:46 UTC 2015 -->
