<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>bitVector</title><description>SharePoint 2010, Visual Studio 2010, .NET Framework, ASP.NET, Design Pattern, Agile, SCRUM, eXtreme Programming, TDD</description><managingEditor>noreply@blogger.com (Unknown)</managingEditor><pubDate>Mon, 12 May 2025 23:09:03 +0200</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">240</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://salvatoredifaziosharepoint.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>Salvatore Di Fazio's blog. SharePoint, Asp.Net solutions, patterns, and much more</itunes:subtitle><itunes:category text="Technology"/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><item><title>Deploy files on Azure Blob Storage, for a SharePoint Online project, in a repeatable process</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/10/deploy-files-on-azure-blob-storage-for.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 8 Oct 2013 14:58:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-6389121558362867572</guid><description>&lt;div style="color: #666666; font-family: 'Source Sans Pro', Arial, Helvetica, sans-serif; font-size: 18px; line-height: 28px; margin-bottom: 1.6em;"&gt;
&lt;strong&gt;Note 1 - thanks to Gist you need to see the post's page to have a look at the code&lt;/strong&gt;&lt;/div&gt;
&lt;div style="color: #666666; font-family: 'Source Sans Pro', Arial, Helvetica, sans-serif; font-size: 18px; line-height: 28px; margin-bottom: 1.6em;"&gt;
&lt;span data-mce-style="line-height: 1.6;" style="line-height: 1.6;"&gt;When we work in a project we try to create an automatic deploy process closest to the 100% of the process itself; but we also know that is not possible to cover the entire&amp;nbsp;100% because we have some manual steps, these usually are around 15% and 30% of all the automatic process. So lets call this process: semi-automatic deploy process.&lt;/span&gt;&lt;/div&gt;
&lt;div style="color: #666666; font-family: 'Source Sans Pro', Arial, Helvetica, sans-serif; font-size: 18px; line-height: 28px; margin-bottom: 1.6em;"&gt;
That perception can grow if we are working on SharePoint Online and we need to deploy some assets on Azure, because new issues are put in the middle of the process.....&lt;/div&gt;
&lt;div style="color: #666666; font-family: 'Source Sans Pro', Arial, Helvetica, sans-serif; font-size: 18px; line-height: 28px; margin-bottom: 1.6em;"&gt;
full article:&amp;nbsp;&lt;a href="http://salvatoredifaziosharepoint.wordpress.com/2013/10/08/deploy-files-on-azure-blob-storage-for-a-sharepoint-online-project/"&gt;http://salvatoredifaziosharepoint.wordpress.com/2013/10/08/deploy-files-on-azure-blob-storage-for-a-sharepoint-online-project/&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #666666; font-family: 'Source Sans Pro', Arial, Helvetica, sans-serif; font-size: 18px; line-height: 28px; margin-bottom: 1.6em;"&gt;
just remember to change this subscription with the new blog's address&lt;/div&gt;
</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to retrieve the SPGroup Description</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/08/how-to-retrieve-spgroup-description.html</link><category>SharePoint</category><category>Tips and Tricks</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 12 Aug 2013 14:00:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-7485091384079592720</guid><description>&lt;p&gt;In this days I worked on a timer job that sync the groups from a site collection to another.&lt;br&gt;For the first time on my life, copy the description of the group to another was a software requirement.&lt;/p&gt; &lt;p&gt;My expectation was copy the description from the property &lt;strong&gt;Description&lt;/strong&gt; of the &lt;strong&gt;SPGroup&lt;/strong&gt; class:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-82YF1WZJOZ4/UgYbJAyvvAI/AAAAAAAAMmQ/XD1oaGuYE7k/s1600-h/10-08-2013%25252010-29-57%25255B3%25255D.png"&gt;&lt;img title="10-08-2013 10-29-57" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="10-08-2013 10-29-57" src="http://lh4.ggpht.com/-vdJqgMyxdQY/UgYbJlxvb3I/AAAAAAAAMmY/KCqiyDq-5qE/10-08-2013%25252010-29-57_thumb%25255B1%25255D.png?imgmax=800" width="457" height="184"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-VCGcajEDMeo/UgYbJz4plUI/AAAAAAAAMmg/IJ5nSOhF9Tk/s1600-h/10-08-2013%25252011-18-18%25255B3%25255D.png"&gt;&lt;img title="10-08-2013 11-18-18" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="10-08-2013 11-18-18" src="http://lh3.ggpht.com/-0_fUZlRUsuA/UgYbKWZHxaI/AAAAAAAAMmo/2vzRmK2jWKA/10-08-2013%25252011-18-18_thumb%25255B1%25255D.png?imgmax=800" width="461" height="378"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;and set the description of the new group by the same property after that I created it. But if you use it the description that is not show on the group page:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-t5N_fKjUXO8/UgYbK6_-AZI/AAAAAAAAMmw/9lhJf6kdYyU/s1600-h/10-08-2013%25252011-22-27%25255B3%25255D.png"&gt;&lt;img title="10-08-2013 11-22-27" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="10-08-2013 11-22-27" src="http://lh6.ggpht.com/-PzvrKnrYMtY/UgYbLVbGiLI/AAAAAAAAMm4/lxgeq25YNAU/10-08-2013%25252011-22-27_thumb%25255B1%25255D.png?imgmax=800" width="940" height="151"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;to do that we should work with the property &lt;strong&gt;SiteUserInfoList &lt;/strong&gt;of &lt;strong&gt;SPWeb&lt;/strong&gt; class:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;var &lt;/span&gt;g = syncWeb.SPWeb.SiteGroups [ &lt;span style="color: #a31515"&gt;"Group Name" &lt;/span&gt;];&lt;br /&gt;&lt;span style="color: blue"&gt;var &lt;/span&gt;text = ( &lt;span style="color: #2b91af"&gt;SPFieldMultiLineText &lt;/span&gt;)syncWeb.SPWeb.SiteUserInfoList.Fields [ &lt;span style="color: #2b91af"&gt;SPBuiltInFieldId&lt;/span&gt;.Notes ];&lt;br /&gt;&lt;span style="color: #2b91af"&gt;SPListItem &lt;/span&gt;groupItem = syncWeb.SPWeb.SiteUserInfoList.GetItemById ( g.ID );&lt;br /&gt;map.Description = text.GetFieldValueAsText ( groupItem [ text.InternalName ] );&lt;br /&gt;&lt;br&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;into &lt;strong&gt;map.Description&lt;/strong&gt; we will have the html for the &lt;strong&gt;About me&lt;/strong&gt; column, but we can use it when we need have to create a new group as:&lt;/p&gt;&lt;pre class="code"&gt;SPWeb.SiteGroups.Add ( group.Name, adm, adm,&lt;br /&gt;                   &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format ( &lt;span style="color: #a31515"&gt;"&lt;/span&gt;&lt;span style="color: #3cb371"&gt;{0} {1}&lt;/span&gt;&lt;span style="color: #a31515"&gt;"&lt;/span&gt;, group.Description, &lt;span style="color: #2b91af"&gt;Constants&lt;/span&gt;.GROUP_SYNC_DESC ) );&lt;br /&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br&gt;enjoy  </description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh4.ggpht.com/-vdJqgMyxdQY/UgYbJlxvb3I/AAAAAAAAMmY/KCqiyDq-5qE/s72-c/10-08-2013%25252010-29-57_thumb%25255B1%25255D.png?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>My London SUGUK event’s slides and code examples (18 July 2013)</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/07/my-london-suguk-events-slides-and-code.html</link><category>Community</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 22 Jul 2013 15:41:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-5116750274567254656</guid><description>Hi guys,&lt;br /&gt;
at this link: &lt;a href="http://www.slideshare.net/Salvodif/java-script-for-the-c-developer"&gt;http://www.slideshare.net/Salvodif/java-script-for-the-c-developer&lt;/a&gt;&lt;br /&gt;you can find the slides from my SUGUK session. For the code examples please take a look here: &lt;a href="https://github.com/Salvodif/suguk18july"&gt;https://github.com/Salvodif/suguk18july&lt;/a&gt;&lt;br /&gt;
enjoy,&lt;br /&gt;.S</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SPWeb and the adventure with the property bag</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/07/spweb-and-adventure-with-property-bag.html</link><category>SharePoint</category><category>Tips and Tricks</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 17 Jul 2013 14:00:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-5589579176204628769</guid><description>Sometimes working with SharePoint it feels like you had 10 &lt;strong&gt;&lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/J%C3%A4gerbomb"&gt;Jägerbomb&lt;/a&gt;s&lt;/em&gt;&lt;/strong&gt; in a row last night.&lt;br&gt;Chronologically speaking the last funny thing was about the &lt;strong&gt;SPWeb&lt;/strong&gt; &lt;strong&gt;Property Bag.&lt;/strong&gt;&lt;br&gt;First of all in &lt;strong&gt;SPWeb&lt;/strong&gt; object we can find:&lt;br&gt;&lt;pre class="csharpcode"&gt;&lt;a href="http://lh6.ggpht.com/-SzpMLJrxPX0/UeV4mppCV5I/AAAAAAAAMik/Y1Vzf0jMNL8/s1600-h/properties%25255B3%25255D.png"&gt;&lt;img title="properties" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="properties" src="http://lh5.ggpht.com/-12jbf22e9Uk/UeV4nKeHWaI/AAAAAAAAMis/cdZz781h0Bs/properties_thumb%25255B1%25255D.png?imgmax=800" width="871" height="53"&gt;&lt;/a&gt; &lt;/pre&gt;&lt;br&gt;and&lt;br&gt;&lt;pre class="csharpcode"&gt;&lt;a href="http://lh5.ggpht.com/-xiRbOEu2bzo/UeV4nuXJUjI/AAAAAAAAMiw/fJ94hFKN7-8/s1600-h/allproperties%25255B3%25255D.png"&gt;&lt;img title="allproperties" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="allproperties" src="http://lh5.ggpht.com/-7RKcuEZNFkM/UeV4n_lsjvI/AAAAAAAAMi8/EvRQXio2vmk/allproperties_thumb%25255B1%25255D.png?imgmax=800" width="809" height="55"&gt;&lt;/a&gt; &lt;/pre&gt;&lt;br&gt;According to MSDN the &lt;strong&gt;Properties&lt;/strong&gt; property:&lt;br&gt;This property returns only a subset of the metadata for a website. &lt;strong&gt;To get all the metadata, use the &lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.allproperties.aspx"&gt;&lt;strong&gt;AllProperties&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; property.&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;&lt;br&gt;&lt;/strong&gt;Basically this property is still there for backward compatibility, so now it’s better to use the &lt;strong&gt;AllProperties&lt;/strong&gt; property.&lt;br&gt;That’s ok but let me talk about an issue that I got. If you are working with the property bag and you want to remove a key/value from it an easy and normal way seem to be:&lt;br&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;( web.AllProperties.ContainsKey ( property.Key.ToString ( ) ) )&lt;br&gt;{&lt;br&gt;    web.AllProperties.Remove ( property.Key.ToString ( ) );&lt;br&gt;}&lt;br&gt;web.Update ( );&lt;/pre&gt;&lt;br&gt;but that way doesn’t work and neither does setting the value to &lt;span style="color: blue"&gt;&lt;strong&gt;null&lt;/strong&gt;&lt;/span&gt; before calling the Remove method (as many suggest around the web)&lt;strong&gt;.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;The only useful way that I've found is to do this:&lt;br&gt;&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;( web.AllProperties.ContainsKey ( property.Key.ToString ( ) ) )&lt;br&gt;{&lt;br&gt;    web.DeleteProperty ( property.Key.ToString ( ) );&lt;br&gt;}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br&gt;From MSDN: This method deletes a property from the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.allproperties.aspx"&gt;AllProperties&lt;/a&gt; property that is a key/value pair.&lt;br&gt;&lt;br&gt;Taking a look inside the &lt;strong&gt;Microsoft.Sharepoint.dll&lt;/strong&gt; about the &lt;font color="#0000ff"&gt;&lt;strong&gt;DeleteProperty&lt;/strong&gt;&lt;/font&gt; method seems it calls the &lt;strong&gt;&lt;font color="#0000ff"&gt;Remove&lt;/font&gt;&lt;/strong&gt; method of the HashTable as I wrote above:&lt;br&gt;&lt;a href="http://lh5.ggpht.com/-L0a4yNYkaq0/UeZ4LQGlIPI/AAAAAAAAMjM/k10PSVM7zg8/s1600-h/reflector_delete_property%25255B3%25255D.png"&gt;&lt;img title="reflector_delete_property" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="reflector_delete_property" src="http://lh6.ggpht.com/-oSV8Xq3pXIU/UeZ4Lh2JSrI/AAAAAAAAMjU/Q4lA8Au6HjY/reflector_delete_property_thumb%25255B1%25255D.png?imgmax=800" width="494" height="78"&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;and that is what is inside that method:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;a href="http://lh4.ggpht.com/-dBMdExhtb8I/UeZ4MOeZbWI/AAAAAAAAMjc/49QAlSMLnOU/s1600-h/inside%252520the%252520delete%252520method%25255B3%25255D.png"&gt;&lt;img title="inside the delete method" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="inside the delete method" src="http://lh6.ggpht.com/-SSn9Xvp3hxs/UeZ4MhsVFyI/AAAAAAAAMjk/-W1l8WnV-sk/inside%252520the%252520delete%252520method_thumb%25255B1%25255D.png?imgmax=800" width="518" height="617"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Maybe a little bit more scouting would make the idea clearer.&lt;br&gt;enjoy&lt;br&gt;.S &lt;br /&gt;  </description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh5.ggpht.com/-12jbf22e9Uk/UeV4nKeHWaI/AAAAAAAAMis/cdZz781h0Bs/s72-c/properties_thumb%25255B1%25255D.png?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Print Properties of an Object</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/07/print-properties-of-object.html</link><category>PowerShell</category><category>SharePoint</category><category>Tips and Tricks</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 10 Jul 2013 14:00:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-1994516232309588288</guid><description>This is a note for me just in case to forget how to print all the properties of an object in powershell.&lt;br /&gt;
Let think about this, you wanna print all the properties in a &lt;strong&gt;SPWeb&lt;/strong&gt; property bag. To do that you can write a script like this:&lt;br /&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;$site = &lt;span style="color: blue;"&gt;Get-SPSite&lt;/span&gt; -&lt;span style="color: blue;"&gt;Identity&lt;/span&gt; https://mySPSite
$site.RootWeb.AllProperties | % {$_ | &lt;span style="color: blue;"&gt;Format-Table&lt;/span&gt; | &lt;span style="color: blue;"&gt;Out-String&lt;/span&gt;)}&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
If you want can show the Properties Table as a List just changing the &lt;span style="color: blue;"&gt;&lt;strong&gt;Format-Table&lt;/strong&gt;&lt;/span&gt; command with &lt;span style="color: blue;"&gt;&lt;strong&gt;Format-List &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
see ya!</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>First SUGUK session: JavaScript for the C# Developer</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/07/first-suguk-session-javascript-for-c.html</link><category>Community</category><category>Javascript</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 2 Jul 2013 14:00:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-591825900552944976</guid><description>&lt;p&gt;I’m happy to invite you at my first SUGUK session about JavaScript.&lt;/p&gt; &lt;p&gt;During this session I’ll focus about why JavaScript is so important for the SharePoint developer and how we can write more efficient and maintainable script code with a few simple rules.&lt;/p&gt;  </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Is it just fancy 2? (JavaScript Patterns)</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/05/is-it-just-fancy-2-javascript-patterns.html</link><category>Javascript</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 23 May 2013 12:48:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-5133086954106915557</guid><description>In my last articles I forgot to share a nice post of&amp;nbsp;Sahil Malik where he shows us the problems that you can have when you use global variable in JavaScript:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blah.winsmarts.com/2013-5-SharePoint_2013_-_JavaScript_-and-amp;_jQuery_big_booboo_to_watch_out_for.aspx"&gt;http://blah.winsmarts.com/2013-5-SharePoint_2013_-_JavaScript_-and-amp;_jQuery_big_booboo_to_watch_out_for.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The example is very nice because you can see how many problem you can have just with the &lt;b&gt;$&lt;/b&gt;&amp;nbsp;global variable when you use JQuery in SharePoint.&lt;br /&gt;
&lt;br /&gt;
Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern, Pattern</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Is it just fancy?</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/05/is-it-just-fancy.html</link><category>Javascript</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 22 May 2013 13:55:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-7817218814789614773</guid><description>&lt;p&gt;On the 18th of May I held a session about JavaScript Patterns during the first SharePoint Saturday in Milan. I felt that the session was great but you know what the speakers think is always wrong.&lt;br&gt;When I got feedback I realized that the topic of the session was ok but the attendees didn’t understand why they should write good JavaScript code.&lt;/p&gt; &lt;p&gt;That don’t really surprise me because I had some discussions about the same topic but with C# instead of JavaScript.&lt;br&gt;Indeed when you talk with a lazy C# dev he/she can understand why they should use polymorphism instead of having 10 unrelated classes with maybe&lt;br&gt;3 copies of the same function!?&lt;/p&gt; &lt;p&gt;Why!???!?!&lt;/p&gt; &lt;p&gt;And if in C# the mess is remedied by the language itself, because it needs namespaces and classes, in JavaScript you are totally without control.&lt;/p&gt; &lt;p&gt;If you are a SharePoint dev and you don’t like JavaScript I’m sorry for you because the future of SP is JavaScript and &lt;a href="http://en.wikipedia.org/wiki/JavaScript"&gt;JavaScript&lt;/a&gt; is the presence of the web since 1994.&lt;br&gt;So maybe it’s time for you to change your job because you unable to write code for the Web and for the &lt;strong&gt;SP2013 Apps&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Microsoft is pushing JavaScript and Azure technology so we have to learn about it if you are not yet!!!!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;What about JS is very useful for the future of devs?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;IMHO you have to learn 3 JS patterns from scratch:&lt;/p&gt; &lt;p&gt;- Closure&lt;br&gt;- Class&lt;br&gt;- Module&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Let me provide some examples:&lt;/p&gt; &lt;p&gt;1 - You need a business function. Usually you write code inside a page/app/web part:&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: black"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;function &lt;/span&gt;&lt;span style="background: white; color: #008b8b"&gt;MyBusinessFunc&lt;/span&gt;&lt;span style="background: white; color: black"&gt;() {&lt;br /&gt;            &lt;/span&gt;&lt;span style="background: white; color: purple"&gt;a &lt;/span&gt;&lt;span style="background: white; color: black"&gt;= 5;&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;span style="background: white; color: purple"&gt;a &lt;/span&gt;&lt;span style="background: white; color: black"&gt;+= 5;&lt;br /&gt;            &lt;br /&gt;            &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// do job&lt;br /&gt;        &lt;/span&gt;&lt;span style="background: white; color: black"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;and then you need the same function in another page/app/web part.&lt;br&gt;What do you do? &lt;strong&gt;&lt;u&gt;Copy&amp;amp;Paste&lt;/u&gt;&lt;/strong&gt; in the second page, off course!&lt;br&gt;But what is the problem in doing it in this way?&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;1 – if your business logic changes you have to change it in 2 or more scripts&lt;br&gt;2 – the function has a GLOBAL scope attached on the global ‘&lt;span style="background: white; color: purple"&gt;&lt;strong&gt;window&lt;/strong&gt;&lt;/span&gt;’ object&lt;br&gt;3 – the variable &lt;span style="background: white; color: purple"&gt;‘a’ &lt;/span&gt;has a GLOBAL scope&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;What solution can I apply?&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One of the most important patterns that you have in JavaScript the&lt;strong&gt; Module Pattern&lt;/strong&gt;.&lt;br&gt;The implementation of this pattern is easy. For example if we want our business function wrapped with this pattern we could write: &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="background: white; color: blue"&gt;var &lt;/span&gt;&lt;span style="background: white; color: purple"&gt;SDF &lt;/span&gt;&lt;span style="background: white; color: black"&gt;= &lt;/span&gt;&lt;span style="background: white; color: purple"&gt;SDF &lt;/span&gt;&lt;span style="background: white; color: black"&gt;|| {};&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background: white; color: purple"&gt;SDF&lt;/span&gt;&lt;span style="background: white; color: black"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple"&gt;Utils &lt;/span&gt;&lt;span style="background: white; color: black"&gt;= {&lt;br /&gt;    &lt;/span&gt;&lt;span style="background: white; color: #008b8b"&gt;MyBusinessFunc&lt;/span&gt;&lt;span style="background: white; color: black"&gt;: &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black"&gt;() {&lt;br /&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black"&gt;a;&lt;br /&gt;&lt;br /&gt;        a = 5;&lt;br /&gt;&lt;br /&gt;        a += 5;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;span style="background: white; color: green"&gt;// do job&lt;br /&gt;    &lt;/span&gt;&lt;span style="background: white; color: black"&gt;}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;the first line says &lt;em&gt;“if the global variable SDF doesn’t exist then create it otherwise use it”&lt;/em&gt;.&lt;br&gt;Then we extend our object with the property &lt;span style="background: white; color: purple"&gt;&lt;strong&gt;Utils&lt;/strong&gt; &lt;/span&gt;where inside we have the method &lt;span style="background: white; color: #008b8b"&gt;&lt;strong&gt;MyBusinessFunc&lt;/strong&gt;&lt;/span&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Differences?&lt;br&gt;This is what our ‘&lt;span style="background: white; color: purple"&gt;&lt;strong&gt;window&lt;/strong&gt;&lt;/span&gt;’ object looks like without a Module Patten:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-kXdhutDxQvY/UZyyDUmiHdI/AAAAAAAAMbI/jhIrOnChx3g/s1600-h/22-05-2013%25252012-25-14%25255B2%25255D.png"&gt;&lt;img title="22-05-2013 12-25-14" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="22-05-2013 12-25-14" src="http://lh6.ggpht.com/-nLfyOtmAuKY/UZyyETeMq4I/AAAAAAAAMbQ/W6R7214jcZM/22-05-2013%25252012-25-14_thumb.png?imgmax=800" width="240" height="165"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;and this is with the Module Pattern&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-KCMbeIFHhmY/UZyyFKR_TMI/AAAAAAAAMbY/58yJcczPqRk/s1600-h/22-05-2013%25252012-27-09%25255B3%25255D.png"&gt;&lt;img title="22-05-2013 12-27-09" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="22-05-2013 12-27-09" src="http://lh6.ggpht.com/-1-C7jYmoPhQ/UZyyFm_DqXI/AAAAAAAAMbg/pVj8sdspym4/22-05-2013%25252012-27-09_thumb%25255B1%25255D.png?imgmax=800" width="322" height="186"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;and what if we need to keep some logics separated?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-GltwLkoAof8/UZyyGc6Gu5I/AAAAAAAAMbo/WVKeuKT6HVw/s1600-h/22-05-2013%25252012-27-31%25255B9%25255D.png"&gt;&lt;img title="22-05-2013 12-27-31" style="border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; display: inline; border-top-width: 0px" border="0" alt="22-05-2013 12-27-31" src="http://lh6.ggpht.com/-ephp1Mbba1U/UZyyGwI6jWI/AAAAAAAAMbw/jazZL3-03DA/22-05-2013%25252012-27-31_thumb%25255B7%25255D.png?imgmax=800" width="425" height="95"&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;If we keep in mind to define our variable with the keyword &lt;span style="background: white; color: blue"&gt;&lt;strong&gt;var&lt;/strong&gt; &lt;/span&gt;and we use the Module Pattern our JavaScript code can became: &lt;strong&gt;tidy, reusable, and maintainable.&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you don’t want start from scratch you can use these files: &lt;a title="http://sdrv.ms/ZcWODQ" href="http://sdrv.ms/ZcWODQ"&gt;http://sdrv.ms/ZcWODQ&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;enjoy &lt;/p&gt;  </description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh6.ggpht.com/-nLfyOtmAuKY/UZyyETeMq4I/AAAAAAAAMbQ/W6R7214jcZM/s72-c/22-05-2013%25252012-25-14_thumb.png?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SharePoint Saturday Slides and Examples</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/05/sharepoint-saturday-slides-and-examples_20.html</link><category>Community</category><category>Javascript</category><category>Patterns</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 20 May 2013 12:45:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-8161657955552692568</guid><description>&lt;p&gt;Hi guys, &lt;p&gt;Following you can find my slides and links to the JS Examples: &lt;p&gt;Slides: &lt;a href="http://www.slideshare.net/Salvodif/sharepoint-saturday-18-may-2013"&gt;http://www.slideshare.net/Salvodif/sharepoint-saturday-18-may-2013&lt;/a&gt; &lt;p&gt;1. Comparision: &lt;a href="http://jsfiddle.net/Salvodif/d46LM/"&gt;http://jsfiddle.net/Salvodif/d46LM/&lt;/a&gt;&lt;br&gt;2. Prototype: &lt;a href="http://jsfiddle.net/Salvodif/ZqFUq/"&gt;http://jsfiddle.net/Salvodif/ZqFUq/&lt;/a&gt;&lt;br&gt;3. Clouse Pattern: &lt;a href="http://jsfiddle.net/Salvodif/xKL93/"&gt;http://jsfiddle.net/Salvodif/xKL93/&lt;/a&gt;&lt;br&gt;4. Class Pattern: &lt;a href="http://jsfiddle.net/Salvodif/me8pp/5"&gt;http://jsfiddle.net/Salvodif/me8pp/&lt;br&gt;5&lt;/a&gt;. Module Pattern: &lt;a href="http://jsfiddle.net/Salvodif/qGBHS/"&gt;http://jsfiddle.net/Salvodif/qGBHS/&lt;/a&gt;&lt;br&gt;6. Chain Pattern: &lt;a href="http://jsfiddle.net/Salvodif/V5KsY/"&gt;http://jsfiddle.net/Salvodif/V5KsY/&lt;/a&gt;&lt;br&gt;7. Decorator Pattern: &lt;a href="http://jsfiddle.net/Salvodif/uFLNC/"&gt;http://jsfiddle.net/Salvodif/uFLNC/&lt;/a&gt; &lt;p&gt;Enjoy :)&lt;/p&gt;  </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SharePoint Saturday has landed in Italy</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/05/sharepoint-saturday-has-landed-in-italy.html</link><category>Community</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 7 May 2013 16:50:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-3261486500995782714</guid><description>&lt;p&gt;Hi all,&lt;/p&gt; &lt;p&gt;Finally in Italy we’ve got SharePoint Saturday thanks to &lt;a href="https://twitter.com/marcorizzi"&gt;Marco Rizzi&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;SharePoint Saturday is a free event on SharePoint of course and for the first edition I’m going to present a session on &lt;strong&gt;JavaScript Patterns&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;So this is the agenda: &lt;a href="http://spsevents.org/worldwide/Milan/Pages/Agenda.aspx"&gt;http://spsevents.org/worldwide/Milan/Pages/Agenda.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;These are the speakers: &lt;a href="http://spsevents.org/worldwide/Milan/Pages/Speakers.aspx"&gt;http://spsevents.org/worldwide/Milan/Pages/Speakers.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This is the Facebook page: &lt;a href="https://www.facebook.com/SharepointSaturdayItaly"&gt;https://www.facebook.com/SharepointSaturdayItaly&lt;/a&gt;&lt;/p&gt; &lt;p&gt;And if you want to book a ticket you can do so from this link: &lt;a href="http://spsitaly-efbevent.eventbrite.it/"&gt;http://spsitaly-efbevent.eventbrite.it/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I’ll see you there!!!&lt;/p&gt;  </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to debug a content for knockout</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/04/how-to-debug-content-for-knockout.html</link><category>Javascript</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 18 Apr 2013 14:00:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-1721129674828205895</guid><description>&lt;p&gt;One of the most boring thing a developer have to do is debugging and it’s very painful when there are thousand of JavaScript library on your page. And if you are an user of Knockoutjs you could have problem to binding the data on your View.&lt;/p&gt; &lt;p&gt;A good way to see your object on your page, to understand if the data is correct and what could be the error, is print the object is a piece of HTML.&lt;/p&gt; &lt;p&gt;So in deeply it is not hard to understand, following is a piece of my view:&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt;&lt;pre id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; 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; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;    Debug: &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;input&lt;/span&gt; &lt;span style="color: #ff0000"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="checkbox"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;data-bind&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="checked: debug"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;label&lt;/span&gt; &lt;span style="color: #ff0000"&gt;data-bind&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="text: debugMsg"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;label&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;table&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;thead&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;tr&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Name&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Color&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Product models&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;List Price&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Qty&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #008000"&gt;&amp;lt;!-- ko if: $root.debug --&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;th&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;           &lt;span style="color: #008000"&gt;&amp;lt;!-- /ko --&amp;gt;&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;tr&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;   &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;thead&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: #008000"&gt;&amp;lt;!-- ..... --&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color: #008000"&gt;&amp;lt;!-- ko if: $root.debug --&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;pre&lt;/span&gt; &lt;span style="color: #ff0000"&gt;data-bind&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="text: ko.toJSON($data, null, 2)"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;pre&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color: #008000"&gt;&amp;lt;!-- /ko --&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The label is not useful but I keep it just for DEMO purpose. To bind this two variables you need something like this:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;pre id="codeSnippet" style="border-top-style: none; overflow: visible; font-size: 8pt; border-left-style: none; font-family: 'Courier New', courier, monospace; 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; line-height: 12pt; padding-right: 0px; width: 100%; background-color: #f4f4f4"&gt;self.debug = ko.observable(&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;);&lt;br&gt;self.debugMsg = ko.computed(&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; () {&lt;br&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; self.debug() === &lt;span style="color: #0000ff"&gt;true&lt;/span&gt; ? &lt;span style="color: #006080"&gt;"We are in == DEBUG MODE =="&lt;/span&gt; : &lt;span style="color: #006080"&gt;""&lt;/span&gt;;&lt;br&gt;});&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;that’s it&lt;br&gt;&lt;/div&gt;  </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Sharepoint 2013 – How to share contents between Apps</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/03/sharepoint-2013-how-to-share-contents.html</link><category>Architecture</category><category>Azure</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 27 Mar 2013 14:30:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-912614704840223526</guid><description>Usually, in the previous versions of SharePoint, if you had to deploy 2 or more web parts to one or more servers you had to deploy the shared content to a shared container like the &lt;i&gt;_layouts&lt;/i&gt; directory for each server. The same goes for 2 or more SharePoint Applications.  &lt;br /&gt;
Let me draw an example:  &lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-sX9yxkaIg2c/UVHb8q5ghKI/AAAAAAAAMU8/gQkXDXucFXA/s1600-h/Image%25255B9%25255D.jpg"&gt;&lt;img alt="Image" border="0" height="281" src="http://lh3.ggpht.com/-VrQNSMbt2io/UVHb9pXn8bI/AAAAAAAAMVA/kuqVKyjlTao/Image_thumb%25255B6%25255D.jpg?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="Image" width="644" /&gt;&lt;/a&gt;  &lt;br /&gt;
Due to the new SharePoint 2013 model, if you have the same problem as before, you cannot deploy the contents in the &lt;i&gt;_layouts&lt;/i&gt; directory if you want to release a 100% compliant Office 365 app.  &lt;br /&gt;
So, for example, if I developed 4 apps in my DEV environment and I used a mixed solution like deploying a Farm WSP with all my shared contents in the &lt;i&gt;_layouts&lt;/i&gt; directory these coming to be unusable on SharePoint online.  &lt;br /&gt;
The best options to share your contents are to adopt one of the following two:  &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;SharePoint Web Application  &lt;/li&gt;
&lt;li&gt;Azure&lt;ul&gt;
&lt;li&gt;ASP.NET Web Application  &lt;/li&gt;
&lt;li&gt;Blob storage  &lt;ul&gt;
&lt;li&gt;CDN&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
So if you start to use one of those options you'll start to implement an architecture like this:&lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-TvfCkFbORjE/UVHb-SD7aeI/AAAAAAAAMVM/Pm3DUGijWyA/s1600-h/Image%2525281%252529%25255B4%25255D.jpg"&gt;&lt;img alt="Image(1)" border="0" height="483" src="http://lh3.ggpht.com/-lSs5ARMyyl4/UVHb_TscycI/AAAAAAAAMVU/MSRA3TC5HvU/Image%2525281%252529_thumb%25255B1%25255D.jpg?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="Image(1)" width="644" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #0b5394; font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="color: #0b5394; font-size: x-large;"&gt;SharePoint Web Application&lt;/span&gt;&lt;br /&gt;
The idea behind is something that comes from the old versions of SharePoint. You could deploy a web application and have it in an assets library, anonymously accessible if you need, where the web parts or the apps can access to download them.&lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-jLzZfr6lswo/UVHcASWn2SI/AAAAAAAAMVc/1FGN6oTgaiU/s1600-h/shared%252520by%252520webapp%25255B3%25255D.jpg"&gt;&lt;img alt="shared by webapp" border="0" height="183" src="http://lh6.ggpht.com/-OqWHmQg4vU8/UVHcBbxblLI/AAAAAAAAMVg/MfYr7jsz1ls/shared%252520by%252520webapp_thumb.jpg?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="shared by webapp" width="244" /&gt;&lt;/a&gt;  &lt;br /&gt;
This solution is restricted because the boundary is the SharePoint farm where the SharePoint Web Application lives.  &lt;br /&gt;
If you have an app installed outside your farm (and it should be the usually), you have to configure your farm to give the access from outside. That makes it hard to maintain, and also unsafe for your LAN.  &lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style="color: #0b5394; font-size: x-large;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2&gt;
&lt;span style="color: #0b5394; font-size: x-large;"&gt;&lt;strong&gt;Azure&lt;/strong&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;b&gt;&lt;span style="color: #0b5394; font-size: large;"&gt;ASP.NET Web Application&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
I picked up this idea from &lt;a href="http://www.sharepointnutsandbolts.com/"&gt;Chris O'Brien&lt;/a&gt;. He uses this solution as his choice.  &lt;br /&gt;
The easy idea is to use a public web project on azure. So you should have a web site published on Azure:  &lt;br /&gt;
&lt;a href="http://lh5.ggpht.com/-8wRF3ooq4tY/UVHcCNuzjzI/AAAAAAAAMVs/DKGZVJikCxA/s1600-h/25-03-2013%25252016-37-37%25255B4%25255D.jpg"&gt;&lt;img alt="25-03-2013 16-37-37" border="0" height="82" src="http://lh3.ggpht.com/-BPYdz9YNops/UVHcDOlRdRI/AAAAAAAAMVw/-4QeDY7jnio/25-03-2013%25252016-37-37_thumb%25255B1%25255D.jpg?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="25-03-2013 16-37-37" width="644" /&gt;&lt;/a&gt;  &lt;br /&gt;
and through VS 2012 you can deploy your assets:  &lt;br /&gt;
&lt;a href="http://lh5.ggpht.com/-apHBQoRfpUs/UVHcD_FMSvI/AAAAAAAAMV8/GXuUmrft3sQ/s1600-h/vs2012_wwb_azura%25255B3%25255D.jpg"&gt;&lt;img alt="vs2012_wwb_azura" border="0" height="162" src="http://lh4.ggpht.com/-tCkYomXm-AI/UVHcEmn0GUI/AAAAAAAAMWA/Odf3rAFGJww/vs2012_wwb_azura_thumb.jpg?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="vs2012_wwb_azura" width="181" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style="font-size: large;"&gt;&lt;br /&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #0b5394; font-size: large;"&gt;Blob storage and CDN&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;Windows Azure Blob is a service for storing large amounts of unstructured data that can be accessed from anywhere in the world via HTTP or HTTPS.&lt;/i&gt;For more information about the blob storage you can read the following link: &lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage-v17/The"&gt;http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage-v17/&lt;br /&gt;The&lt;/a&gt; CDN is an option of the blob storage and that is a global solution for delivering high-bandwidth content by caching blobs and static content: &lt;a href="http://www.windowsazure.com/en-us/develop/net/common-tasks/cdn/To"&gt;http://www.windowsazure.com/en-us/develop/net/common-tasks/cdn/&lt;br /&gt;To&lt;/a&gt; upload the files on your blob storage you can develop your own client or you can use something that exists already, like this: &lt;a href="http://azurestorageexplorer.codeplex.com/"&gt;http://azurestorageexplorer.codeplex.com/&lt;/a&gt;  &lt;br /&gt;
You just have to create a blob container on your Azure, for this example I created the &lt;i&gt;images&lt;/i&gt; container:  &lt;br /&gt;
this is my blob service with the CDN option enabled:  &lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-hegpovnYZdo/UVHcFBRw2HI/AAAAAAAAMWM/tFA6414L8_I/s1600-h/azure%252520blob%252520storage%25255B4%25255D.jpg"&gt;&lt;img alt="azure blob storage" border="0" height="244" src="http://lh5.ggpht.com/-xSOM1uMeab8/UVHcGKHzaTI/AAAAAAAAMWQ/rleV9_prFHA/azure%252520blob%252520storage_thumb%25255B1%25255D.jpg?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="azure blob storage" width="469" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and this is my &lt;i&gt;images&lt;/i&gt; container:  &lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-vOBApmH57Iw/UVHcHFvuz6I/AAAAAAAAMWc/ql6XcwlIc1g/s1600-h/azure%252520container%25255B10%25255D.jpg"&gt;&lt;img alt="azure container" border="0" height="183" src="http://lh5.ggpht.com/-zq0WVP7Ft3w/UVHcH4TMacI/AAAAAAAAMWk/yM0GbkGlVQQ/azure%252520container_thumb%25255B7%25255D.jpg?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="azure container" width="747" /&gt;&lt;/a&gt;  &lt;br /&gt;
cool eh!? :)  &lt;br /&gt;
Ok now that your Share Content Environment is ready you can refer to it with code.  &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #0b5394; font-size: large;"&gt;Some considerations&lt;/span&gt;&lt;/b&gt; &lt;br /&gt;
Sharing contents between apps shouldn't be usual but could be if you have to develop more than one app for a client project (same logos, same css, shared javascript!). &lt;br /&gt;
IMHO these are the best solutions you could implement. &lt;br /&gt;
If you have some other ideas, please let me know ;)</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh3.ggpht.com/-VrQNSMbt2io/UVHb9pXn8bI/AAAAAAAAMVA/kuqVKyjlTao/s72-c/Image_thumb%25255B6%25255D.jpg?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Blog mirroring</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/03/blog-mirroring.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 19 Mar 2013 12:05:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-851021777355867929</guid><description>&lt;p&gt;Due to some problems with blogger I’m going to create a mirror of this blog on Wordpress.&lt;/p&gt; &lt;p&gt;The link is that: &lt;a title="http://salvatoredifazio.wordpress.com/" href="http://salvatoredifazio.wordpress.com/"&gt;http://salvatoredifazio.wordpress.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Maybe in the future I will keep only the wordpress one.&lt;/p&gt; &lt;p&gt;Thx &lt;/p&gt;  </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>The KIT of the good consultant</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/03/the-kit-of-good-consultant.html</link><category>OT</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 14 Mar 2013 14:00:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-4277821716104298265</guid><description>&lt;p&gt;Following you can read the list of the things you need to be a good consultant:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;multiple adapter  &lt;li&gt;External Data Storage, capacity tend to infinity  &lt;li&gt;High Speed External modem &lt;li&gt;mouse and mouse pad &lt;li&gt;USB HUB &lt;li&gt;bicycle &lt;li&gt;tonne of patience &lt;li&gt;stain remover &lt;li&gt;a stone &lt;li&gt;digestive &lt;li&gt;pajamas&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;;)&lt;/p&gt;  </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SharePoint 2013 meet Knockoutjs</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/02/sharepoint-2013-meet-knockoutjs.html</link><category>ASP.NET</category><category>Javascript</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 5 Feb 2013 14:00:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-2596364391612759691</guid><description>&lt;span style="color: #e69138; font-size: large;"&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
In these days I have been starting to write some application with Knockoutjs to understand how much I can use it on my SharePoint projects. With the new model of the SharePoint’s app, use Knockoutjs in an app, is quite similar to use it in a MVC project.&lt;br /&gt;
For this post I made a immersive full page app with the following SharePoint item:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;App for SharePoint 2013 hosted in my SharePoint  &lt;/li&gt;
&lt;li&gt;One Content Type  &lt;/li&gt;
&lt;li&gt;One list that use the content type of above, with some static demo data&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style="color: #e69138;"&gt;&lt;b&gt;A quick introduction to the app catalog, app model and publish an app&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&amp;lt;&amp;lt;In its most basic form, an app for SharePoint is a web application that is registered with SharePoint using an &lt;i&gt;app manifest&lt;/i&gt;. An app manifest is an XML file that declares the basic properties of the app along with where the app will run and what to do when the app is started.&amp;gt;&amp;gt; (&lt;a href="http://msdn.microsoft.com/en-us/library/fp179930.aspx"&gt;msdn&lt;/a&gt; par: What is an app for SharePoint?).&lt;br /&gt;
You have 3 options for hosting your apps in SharePoint:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNj_QeaJZjsAZP9NRmqhdSJn84odFzY1q-0snkiumdyNb8m2pH8uZMOqgPuZJ_MVcL7W-Uns1FHzM2spU39d45NDR0FQueOGFGW44oGBv7xBDWIsRoNoh73snlOsGa6nnX_PMiPVvlz7E/s1600/IC599129.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Options for hosting apps for SharePoint" border="0" height="391" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNj_QeaJZjsAZP9NRmqhdSJn84odFzY1q-0snkiumdyNb8m2pH8uZMOqgPuZJ_MVcL7W-Uns1FHzM2spU39d45NDR0FQueOGFGW44oGBv7xBDWIsRoNoh73snlOsGa6nnX_PMiPVvlz7E/s400/IC599129.png" title="Options for hosting apps for SharePoint" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Those can be combined.&lt;br /&gt;
When you use the &lt;b&gt;SharePoint-hosted &amp;amp; autohosted&lt;/b&gt; options you don't need to register your app and everything is included in the .app paclage.&lt;br /&gt;
&lt;br /&gt;
Once the app pkg has been published, it is available for users to install. In my case (SharePoint-hosted) the pkg contains all the resources required to deploy the app during the installation process.&lt;br /&gt;
You publish the app by uploading it to a special type of site known as an &lt;i&gt;app catalog site&lt;/i&gt;. This is the option to use when you want to make the app available to a specific on-premises farm.&lt;br /&gt;
This site con a special type of document library that is used to upload and store app package files.&lt;br /&gt;
This is mine:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtcVdlPHOw56Plv0jwDAmr2h7GLN3SUlvUW2AwMPauRbHdT2ALTaa_cPAIZv5unUYIf6c2qZgTf3gdkZZ-Y2XvpKoxCPgzHsEI56847Q7E2lve2I89s0jdGPogmwydgY0wadmYcsPV068/s1600/1-31-2013+12-11-04+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="App catalog web site" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtcVdlPHOw56Plv0jwDAmr2h7GLN3SUlvUW2AwMPauRbHdT2ALTaa_cPAIZv5unUYIf6c2qZgTf3gdkZZ-Y2XvpKoxCPgzHsEI56847Q7E2lve2I89s0jdGPogmwydgY0wadmYcsPV068/s1600/1-31-2013+12-11-04+PM.png" title="App catalog web site" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
When you start to dev an app you have to decide which APIs to use. This choice is based on the kind of app tat you create, as a best practice use client APIs. But, not all server-side functionality is available from client APIs.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_pudZs_EY1wyRxFMayngIR9nk_j9m7p-I_052C9N88oqrh5oQcU7Tut1HRp6nHu_zF0E7dRQrAxUbJXQAlSYZD6bHj5xCTRQHrGLqa5ssG9Cv45aqlqrSv0rqcIL9cy_lbv_YXpHa6eY/s1600/IC592190.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_pudZs_EY1wyRxFMayngIR9nk_j9m7p-I_052C9N88oqrh5oQcU7Tut1HRp6nHu_zF0E7dRQrAxUbJXQAlSYZD6bHj5xCTRQHrGLqa5ssG9Cv45aqlqrSv0rqcIL9cy_lbv_YXpHa6eY/s400/IC592190.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
As you can see the Server OM APIs are related only with PowerShell and Timers job.&lt;br /&gt;
The new app model doesn't support running server-side code within the SharePoint host environment, so we cannot use the server-side API in apps, but we can use the client-side API.&lt;br /&gt;
&lt;br /&gt;
For this example I used a &lt;b&gt;App for SharePoint 2013&lt;/b&gt;:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv7rnTKYSjFbKNr5l8Ccjef7ShxssAkF3H1UrXSmqT8qYPWsEjRTfzjRXUqXgYXzFYiLjrrg72JbcH4QQrnFVtGhQByp9JbGuH_HJsAiNiGzdu8IerRpv7k1s_uUF53BtFoxT6ofjd-Lo/s1600/1-31-2013+2-52-46+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv7rnTKYSjFbKNr5l8Ccjef7ShxssAkF3H1UrXSmqT8qYPWsEjRTfzjRXUqXgYXzFYiLjrrg72JbcH4QQrnFVtGhQByp9JbGuH_HJsAiNiGzdu8IerRpv7k1s_uUF53BtFoxT6ofjd-Lo/s400/1-31-2013+2-52-46+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
SharePoint-hosted:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJkBLWoyjSM_fZZYffoT6BTam0SA8tRzn1J3N4QwbvF3SOJ91EnUrgP2g3MVyXPUU73lyXPUEWCikwraKj_wHhjEgu6rwox8g8HnMSCInWm8-iDobOElZNpA1SEcvGDwS1nE64kn7aiOQ/s1600/1-31-2013+2-59-41+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJkBLWoyjSM_fZZYffoT6BTam0SA8tRzn1J3N4QwbvF3SOJ91EnUrgP2g3MVyXPUU73lyXPUEWCikwraKj_wHhjEgu6rwox8g8HnMSCInWm8-iDobOElZNpA1SEcvGDwS1nE64kn7aiOQ/s1600/1-31-2013+2-59-41+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
When you want publish your app you should only "deploy" it:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi3TL3vIS_YuSWC2KVVihGbzNnCDTNy_MnkoGXqoBQkwo6f6LvtsjEL9c6qBErSv4j_vXQN2G3Wtj3laDwrJwnAtQ8aYGPNEH2OCNZLIcs-eQxqtwZQXHf1d7IBNktYW_wI9DC0RDzCzs/s1600/1-31-2013+12-51-58+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi3TL3vIS_YuSWC2KVVihGbzNnCDTNy_MnkoGXqoBQkwo6f6LvtsjEL9c6qBErSv4j_vXQN2G3Wtj3laDwrJwnAtQ8aYGPNEH2OCNZLIcs-eQxqtwZQXHf1d7IBNktYW_wI9DC0RDzCzs/s1600/1-31-2013+12-51-58+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: red;"&gt;Pay attention, in the URL property of your project. It is the URL of the site to use for debugging! I have: &lt;a href="https://dev.content.code/"&gt;https://dev.content.code/&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
Maybe this image can help you to understand:&lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-Q2edTAJViss/UQvk0RYV7iI/AAAAAAAAMRM/9gbxjdpJWVY/s1600-h/21201393136AM4.png"&gt;&lt;img alt="SharePoint component isolation" border="0" height="220" src="http://lh4.ggpht.com/-n3GLAJHaiTo/UQvk1PXgqqI/AAAAAAAAMRU/-VUJiJB3DXU/21201393136AM_thumb2.png?imgmax=800" style="border-width: 0px; display: inline;" title="SharePoint component isolation" width="644" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b style="color: #e69138;"&gt;My App&lt;/b&gt;&lt;br /&gt;
Very quickly following is the ingredients of my app.&lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-va4yjaRB8p8/UQj8KQboXBI/AAAAAAAAMPg/O4ZL3_5yXz4/s1600-h/129201351943PM3.png"&gt;&lt;img alt="project schema" border="0" height="521" src="http://lh3.ggpht.com/-8HIRcCmOsXc/UQj8LT2NVXI/AAAAAAAAMPo/glkJUyZ5arE/129201351943PM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="project schema" width="250" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
As you can see I have:&lt;br /&gt;
&lt;br /&gt;
this new content type that I use to save my information&lt;br /&gt;
&lt;a href="http://lh6.ggpht.com/-cl0F5EikQRI/UQj8GZBAqGI/AAAAAAAAMPA/iwNsN-p3OdM/s1600-h/129201351610PM3.png"&gt;&lt;img alt="my video content type" border="0" height="177" src="http://lh5.ggpht.com/-kwaDRyvXS20/UQj8Hb6Pc0I/AAAAAAAAMPE/istN2yCCyy4/129201351610PM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="my video content type" width="627" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
a list that use my content type&lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-hI6wbiSjz2c/UQj8IRN-oHI/AAAAAAAAMPQ/beqPPie49OE/s1600-h/129201351748PM3.png"&gt;&lt;img alt="video list instance" border="0" height="463" src="http://lh3.ggpht.com/-wHbZe-dBJGg/UQj8JQOllWI/AAAAAAAAMPY/S4QMUukjX8E/129201351748PM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="video list instance" width="628" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
To have the App ready to go, I had inserted data in my list instance before the deploy:&lt;br /&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;xml &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;version&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;1.0&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;encoding&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;utf-8&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;?&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Elements &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;ListInstance &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;VideoInfoList&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;OnQuickLaunch&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;TRUE&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;TemplateType&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;10000&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Url&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Lists/VideoInfoList&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Description&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;My List Instance&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Data&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Rows&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;The Shawshank Redemption&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1994-12-30T21:00:00Z&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;5&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;The Godfather&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1972-12-30T21:00:00Z&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;5&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Pulp Fiction&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1994-12-30T21:00:00Z&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;4&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;The Dark Knight&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;2008-12-30T21:00:00Z&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;4&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Star Wars: Episode V - The Empire Strikes Back&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1980-12-30T21:00:00Z&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;4&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Matrix&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1999-12-30T21:00:00Z&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;4&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Jurassic Park&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1993-12-30T21:00:00Z&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;3&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;A Fistful of Dollars&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;1964-12-30T21:00:00Z&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;3&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Field&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Row&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Rows&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Data&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;ListInstance&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Elements&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;
To use Knockoutjs you should add it in your project. You should use NuGet version: &lt;a href="http://nuget.org/packages/knockoutjs" target="_blank"&gt;http://nuget.org/packages/knockoutjs&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style="color: #e69138;"&gt;App information&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
If you are familiar with the Facebook’s app developing the following information will be obvious for you. As I wrote before, every apps has an&lt;i&gt; AppManifest.xml&lt;/i&gt; in this file you can find some information like this:&lt;br /&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;xml &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;version&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;1.0&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;encoding&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;utf-8&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;?&amp;gt;
&amp;lt;!--&lt;/span&gt;&lt;span style="background: white; color: green;"&gt;Created:cb85b80c-f585-40ff-8bfc-12ff4d0e34a9&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;--&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;App &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;http://schemas.microsoft.com/sharepoint/2012/app/manifest&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"
     &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;SDFVideos&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"
     &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;ProductID&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;{07ff4877-f4cc-465b-bf16-cec326c22b81}&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"
     &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Version&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;1.0.0.0&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"
     &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;SharePointMinVersion&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;15.0.0.0&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Properties&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;SDF.Videos&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;StartPage&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;~appWebUrl/Pages/Default.aspx?{StandardTokens}&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;StartPage&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Properties&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;

  &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;AppPrincipal&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;Internal &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;/&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;AppPrincipal&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;AppPermissionRequests&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;AppPermissionRequests&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;App&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
If you open the &lt;em&gt;AppManifest.xml &lt;/em&gt;through Visual Studio 2012 a window like this will be show:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh5.ggpht.com/-BsERD3HbzMs/UQvk1sNnLrI/AAAAAAAAMRc/Nx3Z4OGZZMw/s1600-h/131201343053PM3.png"&gt;&lt;img alt="appmanifest" border="0" height="310" src="http://lh6.ggpht.com/-gHWrDFCtBGg/UQvk2M-qQNI/AAAAAAAAMRk/FfQXLfm6wHw/131201343053PM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="appmanifest" width="715" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
You can see 5 tabs:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: blue;"&gt;General&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: #8080ff;"&gt;Title:&lt;/span&gt;&lt;/strong&gt; The title of the SharePoint App. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: #8080ff;"&gt;Name:&lt;/span&gt;&lt;/strong&gt; The name of the SharePoint App. Name is not localized, and is used in URLs that address App artifacts. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: #8080ff;"&gt;Version:&lt;/span&gt;&lt;/strong&gt; The app version. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: #8080ff;"&gt;Icon:&lt;/span&gt;&lt;/strong&gt; Specifics the URL of the image that is used to present the App. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: #8080ff;"&gt;Start page:&lt;/span&gt;&lt;/strong&gt; The URL of the page visited when the SharePoint App is launched. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: #8080ff;"&gt;Query string:&lt;/span&gt;&lt;/strong&gt; Specifics the query string to be added to the start page URL.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-0xm1IL4Dv8I/UQvk2mwOa3I/AAAAAAAAMRs/u81G0Z3gdq8/s1600-h/131201352239PM3.png"&gt;&lt;img alt="permissions" border="0" height="501" src="http://lh5.ggpht.com/-4EhCBEHskBQ/UQvk3bKQykI/AAAAAAAAMR0/d8Y47njweMo/131201352239PM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="permissions" width="703" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;&lt;span style="color: blue;"&gt;&lt;strong&gt;Permissions&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Like the Facebook’s app, the SharePoint apps needs to have the permission set if those needs to use resources; for ex: write access to profiles, read access to site collection, etc…&lt;br /&gt;in this example you don’t need to provide some permissions because we haven’t code behind. It’s become useful when you, for example, develop an app that access to resources.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;&lt;span style="color: blue;"&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;is useful to specify the features and capabilities that your app depends on, like: Managed Metadata Web Service, Search Service, Secure Store Services, User Profile Service, etc&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: blue;"&gt;Supported Locales&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;List of language culture combination that this app supports&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="color: blue;"&gt;Remote Endpoints&lt;/span&gt;&lt;/strong&gt; &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;You can use this page to set Remote Endpoints useful for your app&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #ff8000;"&gt;The CORE: Knockout&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Now we can talk about the Knockoutjs experience. As you see in the picture about my project, I have a &lt;strong&gt;&lt;span style="color: blue;"&gt;Default.aspx&lt;/span&gt;&lt;/strong&gt; page into the &lt;strong&gt;&lt;span style="color: blue;"&gt;Page&lt;/span&gt;&lt;/strong&gt; folder. This is the most important markup lines of my page:&lt;br /&gt;
&lt;pre class="code"&gt;&lt;span style="background: yellow; color: black;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;-- The markup and script in the following Content element will be placed in the &amp;lt;head&amp;gt; of the page --&lt;/span&gt;&lt;span style="background: yellow; color: black;"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;asp&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;Content &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;PlaceHolderAdditionalPageHead&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;runat&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="server"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text/javascript" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;src&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="../Scripts/jquery-1.7.1.min.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text/javascript" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;src&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="/_layouts/15/sp.runtime.debug.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text/javascript" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;src&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="/_layouts/15/sp.debug.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text/javascript" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;src&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="../Scripts/knockout-2.2.1.js"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;

    &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- Add your CSS styles to the following file --&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;link &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;rel&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="Stylesheet" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text/css" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;href&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="../Content/App.css" /&amp;gt;

    &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- Add your JavaScript to the following file --&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text/javascript" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;src&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="../Scripts/App.js" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;defer&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="defer"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;

    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text/javascript"&amp;gt;
        &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;$&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;document&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;).&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ready&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() {
            &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ko&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;applyBindings&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;SDF&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Views&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;DefaultPage&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
        });
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;script&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    
&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;asp&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;Content&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="background: yellow; color: black;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;-- The markup and script in the following Content element will be placed in the &amp;lt;body&amp;gt; of the page --&lt;/span&gt;&lt;span style="background: yellow; color: black;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;asp&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;Content &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;PlaceHolderMain&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;runat&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="server"&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;button &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="click: loadItems"&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Load&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;button&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;br &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;/&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;br &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;/&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;ul &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="foreach: items"&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;li&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: Title"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;- &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: AverageRating"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;- &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: DateCompleted"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;li&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;pre &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: ko.toJSON($data, null, 2)"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;pre&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;ul&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;asp&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;Content&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Obviously the app needs a reference to our &lt;strong&gt;&lt;span style="color: blue;"&gt;knockout-2.2.1.js&lt;/span&gt;&lt;/strong&gt;, next you have a reference to the &lt;strong&gt;&lt;span style="color: blue;"&gt;App.js&lt;/span&gt;&lt;/strong&gt; where all the JavaScript code take place, and 2 lines of jQuery code that execute the knockout binding. The &lt;strong&gt;&lt;span style="color: red;"&gt;applyBindings&lt;/span&gt;&lt;/strong&gt; function is the method use by Knockout to activate the binding, in this example, to the &lt;strong&gt;&lt;span style="color: blue;"&gt;DefaultPage&lt;/span&gt;&lt;/strong&gt; view (this function is in the App.js file). Next you can see some html markup lines. The &lt;span style="color: red;"&gt;&lt;strong&gt;data-bind&lt;/strong&gt;&lt;/span&gt; attribute isn’t native to HTML but it is perfectly OK, but since the browser doesn’t know what it means, knockout does well but you need to active it by the &lt;strong&gt;&lt;span style="color: red;"&gt;applyBindings&lt;/span&gt;&lt;/strong&gt; method.&lt;br /&gt;
The &lt;strong&gt;&lt;span style="color: red;"&gt;foreach&lt;/span&gt;&lt;/strong&gt; method duplicates a section of markup for each item in the &lt;strong&gt;items&lt;/strong&gt; array, this is especially useful for rendering lists or tables. The &lt;strong&gt;&lt;span style="color: red;"&gt;text&lt;/span&gt;&lt;/strong&gt; binding apply the text found in the current item to the DOM element associated instead the &lt;strong&gt;&lt;span style="color: red;"&gt;click&lt;/span&gt;&lt;/strong&gt; binding adds an event handler to a JavaScript function that I wrote inside my &lt;strong&gt;&lt;span style="color: blue;"&gt;DefaultPage&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #ff8000;"&gt;Knockout: the App.js file&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Inside that file you can find the MVVM structure used by Knockout to works with the &lt;strong&gt;&lt;span style="color: blue;"&gt;Default.aspx&lt;/span&gt;&lt;/strong&gt; page. The first method I want show you is just an utility method:&lt;br /&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: purple;"&gt;SDF&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Utility &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() {
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;QueryStringParser&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(paramToRetrieve) {
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;params, i, singleParam;

        params = &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;window&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;document&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;URL&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;split&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"?"&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;)[1].&lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;split&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"&amp;amp;"&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;for &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(i = 0; i &amp;lt; params.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;length&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;; i = i + 1) {
            singleParam = params[i].&lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;split&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"="&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
            &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;if &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(singleParam[0] === paramToRetrieve) {
                &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;return &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;singleParam[1];
            }
        }

        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;return &lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;""&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
    }

    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;return &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;{ &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;getQueryStringParameter&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: &lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;QueryStringParser &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;};
}());&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The &lt;strong&gt;&lt;span style="color: #00b7b7;"&gt;getQueryStringParameter&lt;/span&gt;&lt;/strong&gt; is useful when you needs to get value from the query string. At least you need it to get two variables:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SPHostUrl&lt;/strong&gt;=https://dev.content.code &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SPAppWebUrl&lt;/strong&gt;=https://App-5a060d47f59262/apps/code/SDFVideos&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Those two variables are useful because tell us: &lt;strong&gt;&lt;span style="color: blue;"&gt;SPHostUrl&lt;/span&gt;, &lt;/strong&gt;where the app is hosted; &lt;strong&gt;&lt;span style="color: blue;"&gt;SPAppWebUrl&lt;/span&gt;, &lt;/strong&gt;where is into the Apps Catalog. You can use those two variables to, for ex, access to the &lt;strong&gt;&lt;span style="color: blue;"&gt;SPSite&lt;/span&gt;&lt;/strong&gt; properties by JavaScript or know the REST address.&lt;br /&gt;
&lt;br /&gt;
This is our view model:&lt;br /&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: purple;"&gt;SDF&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Views &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;SDF&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Views &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;|| {
  &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;DefaultPage&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: (&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() {

      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;Item&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(data) {
          &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;self = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;this&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
          self.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Title &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= data.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Title&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
          self.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;AverageRating &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ko&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;observable&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(data.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;AverageRating&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
          self.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;DateCompleted &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= data.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;DateCompleted&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
      }

      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;appweburl = &lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;decodeURIComponent&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;SDF&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Utility&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;getQueryStringParameter&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"SPAppWebUrl"&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;));

      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;doSuccess = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(items) {
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;buffer;

        buffer = &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;$&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;map&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(items.&lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;d&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;results&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;, &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(item) { &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;return new &lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;Item&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(item); });

        viewModel.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;items&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(buffer);
    };

      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;doError = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() {
          &lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;alert&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"error"&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
      };
    
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;viewModel = {
          &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;items&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ko&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: darkblue;"&gt;observableArray&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;([]),

          &lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;loadItems&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() {
              &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;jQuery&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ajax&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;({
                  &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;url&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: appweburl + &lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"/_api/web/lists/GetByTitle('VideoInfoList')/items"&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;,
                  &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;headers&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: { &lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Accept&lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: &lt;/span&gt;&lt;span style="background: white; color: #a31515;"&gt;"application/json; odata=verbose" &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;},
                  &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;success&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: doSuccess,
                  &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;error&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: doError
              });
          },
      };

      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;return &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;viewModel;
  }())
};&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
This is a very small and easy view model. The function &lt;strong&gt;Item&lt;/strong&gt; identify our object in the &lt;strong&gt;&lt;span style="color: blue;"&gt;items&lt;/span&gt;&lt;/strong&gt; array. When you click the button &lt;strong&gt;&lt;span style="color: blue;"&gt;Load&lt;/span&gt;&lt;/strong&gt; the method &lt;strong&gt;&lt;span style="color: blue;"&gt;loadItems&lt;/span&gt;&lt;/strong&gt; is fire, the function associated will make a REST call to our List in SharePoint. If the call will end successful the method &lt;strong&gt;&lt;span style="color: blue;"&gt;doSuccess&lt;/span&gt;&lt;/strong&gt; will be call otherwise the method &lt;strong&gt;&lt;span style="color: blue;"&gt;doError&lt;/span&gt;&lt;/strong&gt;. The &lt;strong&gt;&lt;span style="color: blue;"&gt;doSuccess&lt;/span&gt;&lt;/strong&gt; method is the most interesting of the two. By the jQuery &lt;strong&gt;&lt;span style="color: red;"&gt;map&lt;/span&gt; &lt;/strong&gt;method you can easily translate the JSON result in a new array of &lt;strong&gt;Item&lt;/strong&gt; objects. When the array is ready you apply the change to the &lt;strong&gt;&lt;span style="color: blue;"&gt;items&lt;/span&gt;&lt;/strong&gt; object. In this case the &lt;strong&gt;&lt;span style="color: blue;"&gt;items&lt;/span&gt;&lt;/strong&gt; array change is status from a empty array to an array whit some elements. Knockout will know about this change because the &lt;strong&gt;&lt;span style="color: blue;"&gt;items&lt;/span&gt;&lt;/strong&gt; object isn’t a standard array, indeed it is an &lt;strong&gt;&lt;span style="color: red;"&gt;ko.observableArray&lt;/span&gt;&lt;/strong&gt;. You have to use this object if you want to detect and respond to changes of a collection of things. This method tracks which objects are in the array, not the state of those objects.&lt;br /&gt;
&lt;br /&gt;
If you deploy the app the result will be this:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;before the click&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-1LRpp1MTNog/UQvk33jp7YI/AAAAAAAAMR8/FRn07rYdAg4/s1600-h/212013120508PM3.png"&gt;&lt;img alt="2-1-2013 12-05-08 PM" border="0" height="181" src="http://lh6.ggpht.com/-RAUrHx5GHoc/UQvk4UTB9lI/AAAAAAAAMSE/gye-Aaf8kGo/212013120508PM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="2-1-2013 12-05-08 PM" width="344" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;after the click&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-i9Bg8bee3cA/UQvk48DBNAI/AAAAAAAAMSM/TrUI5J9XeLo/s1600-h/212013120637PM3.png"&gt;&lt;img alt="2-1-2013 12-06-37 PM" border="0" src="http://lh4.ggpht.com/-_nbQLV9oDe4/UQvk5Ws3WqI/AAAAAAAAMSU/iHMXKvH1stw/212013120637PM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="2-1-2013 12-06-37 PM" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #ff8000;"&gt;Knockout: debug info&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
A very useful thing that I didn't explain before is this line: &lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd" style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background-color: white; color: maroon;"&gt;pre &lt;/span&gt;&lt;span style="background-color: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background-color: white; color: blue;"&gt;="text: ko.toJSON($data, null, 2)"&lt;/span&gt;&lt;span class="kwrd" style="color: blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background-color: white; color: maroon;"&gt;pre&lt;/span&gt;&lt;span class="kwrd" style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
that is inside the &lt;strong&gt;&lt;span style="color: red;"&gt;foreach&lt;/span&gt;&lt;/strong&gt; binding in the &lt;strong&gt;&lt;span style="color: blue;"&gt;Default.aspx&lt;/span&gt;&lt;/strong&gt;. That is a way that I use to debug my Knockout page to understand if the variable are bound well.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: #ff8000;"&gt;Knockout: performance issues&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
Let me tell you a last thing just to close well the post :). During my test I got the following performance problem:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-4ZXsh-jufXk/UQvk56rlzmI/AAAAAAAAMSc/31RRfX7y8xw/s1600-h/1282013114739AM3.png"&gt;&lt;img alt="knockout performance issues" border="0" height="283" src="http://lh4.ggpht.com/--dmqgFMrEFg/UQvk6pkujOI/AAAAAAAAMSk/hmcGnYdEWgc/1282013114739AM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="knockout performance issues" width="865" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
As you can see knockoutjs got, in total, 23 secs to repaint all the page for a request of 100 items. Why? The page is very easy, that’s a piece of my page:&lt;br /&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;tbody &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="foreach: filteredItems"&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;tr&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- ko ifnot: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label  &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: name"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
      &amp;lt;!-- ko if: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;input &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="value: name" /&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- ko ifnot: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: color"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
      &amp;lt;!-- ko if: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;select &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="options: $root.colors, value: color, optionsCaption: 'Choose...', enable: edit"&amp;gt;
      &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;select&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- ko ifnot: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: model"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
      &amp;lt;!-- ko if: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;select &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="options: $root.productModels, value: model, optionsCaption: 'Choose...', enable: edit"&amp;gt;
      &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;select&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ok, it is not all the markup, but the rest of the page is not fascinating. The main differences with the page of before are the two select with the binding: &lt;br /&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd" style="color: blue;"&gt;$root.productModels
$root.colors&lt;/span&gt;&lt;/pre&gt;
the keyword &lt;span style="color: blue;"&gt;&lt;strong&gt;$root&lt;/strong&gt;&lt;/span&gt; is a pointer to the ViewModel object. Why you need to use it? Because you are inside the &lt;strong&gt;&lt;span style="color: red;"&gt;foreach&lt;/span&gt;&lt;/strong&gt; binding but the &lt;strong&gt;colors&lt;/strong&gt; and the &lt;strong&gt;&lt;span style="color: blue;"&gt;productModels&lt;/span&gt;&lt;/strong&gt; are properties of the ViewModel:&lt;br /&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: purple;"&gt;SDF&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Views &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;SDF&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;Views &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;|| {
    &lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;IndexViewModel&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;function &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;() {
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;self;
        self = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;this&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;

        self.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;items &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ko&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;observableArray&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;([]);
        self.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;colors &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ko&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;observableArray&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;([]);
        self.&lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;productModels &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;= &lt;/span&gt;&lt;span style="background: white; color: purple;"&gt;ko&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.&lt;/span&gt;&lt;span style="background: white; color: darkcyan;"&gt;observableArray&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;([]);&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;But why knockoutjs has need 23 secs to repaint my page?&lt;br /&gt;
The problems are the two &lt;strong&gt;&lt;span style="color: blue;"&gt;select&lt;/span&gt;&lt;/strong&gt; because &lt;strong&gt;&lt;span style="color: red;"&gt;forearch&lt;/span&gt;&lt;/strong&gt; item it needs to recreate the select tag and rebinding it.&lt;br /&gt;
But I want the two &lt;strong&gt;&lt;span style="color: blue;"&gt;select&lt;/span&gt;&lt;/strong&gt; because the user should have the ability to edit an item and change the properties. To accomplish with this task and have better performance the solution is: use the &lt;strong&gt;if&lt;/strong&gt; binding.&lt;br /&gt;
The &lt;strong&gt;&lt;span style="color: red;"&gt;if&lt;/span&gt;&lt;/strong&gt; binding causes a section of markup to appear in your document, it’s difference than his brother &lt;strong&gt;&lt;span style="color: red;"&gt;visible&lt;/span&gt;&lt;/strong&gt; set to &lt;strong&gt;&lt;span style="color: blue;"&gt;false&lt;/span&gt;&lt;/strong&gt;, because with the visible attribute I only set if the data in visible or not even though it is in the DOM, otherwise the &lt;strong&gt;if&lt;/strong&gt; binding doesn’t write the data inside the DOM.&lt;br /&gt;
This is what my page looks like know:&lt;br /&gt;
&lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;tbody &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="foreach: filteredItems"&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;tr&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- ko ifnot: edit –&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label  &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: name"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
      &amp;lt;!-- ko if: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;input &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;type&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text" &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="value: name" /&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- ko ifnot: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: color"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
      &amp;lt;!-- ko if: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;select &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="options: $root.colors, value: color, optionsCaption: 'Choose...', enable: edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;select&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- ko ifnot: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="text: model"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;label&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;&amp;lt;!-- /ko --&amp;gt;
      &amp;lt;!-- ko if: edit --&amp;gt;
      &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;select &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;data-bind&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;="options: $root.productModels, value: model, optionsCaption: 'Choose...', enable: edit"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;select&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: darkgreen;"&gt;      &amp;lt;!-- /ko --&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: maroon;"&gt;td&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;
With this solution if you ask for 100 items the result is:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://lh3.ggpht.com/-Zpth9XdKWN0/UQvk7J-Tl1I/AAAAAAAAMSs/saIqG1ROhSY/s1600-h/21201332548PM3.png"&gt;&lt;img alt="2-1-2013 3-25-48 PM" border="0" height="340" src="http://lh3.ggpht.com/-mwv5x1EbyOU/UQvk7-rAqlI/AAAAAAAAMS0/vpoIneAhcZc/21201332548PM_thumb1.png?imgmax=800" style="border-width: 0px; display: inline;" title="2-1-2013 3-25-48 PM" width="665" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
and you still edit your item.&lt;br /&gt;
In the next post I will show you how edit an item.</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNj_QeaJZjsAZP9NRmqhdSJn84odFzY1q-0snkiumdyNb8m2pH8uZMOqgPuZJ_MVcL7W-Uns1FHzM2spU39d45NDR0FQueOGFGW44oGBv7xBDWIsRoNoh73snlOsGa6nnX_PMiPVvlz7E/s72-c/IC599129.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><georss:featurename xmlns:georss="http://www.georss.org/georss">London, UK</georss:featurename><georss:point xmlns:georss="http://www.georss.org/georss">51.5073346 -0.12768310000001293</georss:point><georss:box xmlns:georss="http://www.georss.org/georss">51.1912136 -0.77313010000001292 51.8234556 0.51776389999998707</georss:box></item><item><title>Introduction to the Minimal Download Strategy (MDS)</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/01/introduction-to-minimal-download.html</link><category>Guide</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 30 Jan 2013 11:58:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-9021708630653220029</guid><description>Continuing the posts about the new improvements in SharePoint 2013 I can't avoid to write about the Minimal Download Strategy, for the friend &lt;b&gt;MDS&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style="color: #e69138;"&gt;Introduction&lt;/span&gt;&lt;/h2&gt;
&lt;div&gt;
SharePoint is based on ASP.NET Web Form and, as you know, this technology is based on a request-response approach whether you need to update the whole page or a portion of it, and a determinate &lt;b&gt;Page Life Cycle&lt;/b&gt; will be start for any request from the client.&lt;/div&gt;
The following illustration shows some of the most important methods of the Page class:&lt;br /&gt;
&lt;div&gt;
&lt;img alt="IC386473" border="0" height="752" src="http://lh5.ggpht.com/--283VctrN8k/UOyO6g5uLdI/AAAAAAAAMOo/yeNmABvKpUU/IC3864734.png?imgmax=800" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline;" title="IC386473" width="606" /&gt;&lt;/div&gt;
If you like, you can find more information in the following link: &lt;a href="http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx" title="http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx&lt;/a&gt;&lt;br /&gt;
In the last years, to avoid to reload whole information on the page, we’ve seen smart approaches using DHTML, JavaScript, AJAX, UpdatePanels, and so on. Off course this solution are focused to make a better UX and minimizing the amount of data downloaded for each user interaction and increase the performance.&lt;br /&gt;
Even though SharePoint did some improvements in this way, many times when a user interacted with a page, the entire page was downloaded to the client computer.&lt;br /&gt;
SharePoint 2013 is based on a very rich web interface that contains lots of moving parts and lots of customizable areas, maintain this approach would be disruptive. &lt;br /&gt;
For this reason, SharePoint 2013, comes with a new navigation framework that improves page load performance by only downloading those portions of the page that have changed. This is known as the &lt;strong&gt;Minimal Download Strategy.&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;
&lt;h2&gt;
&lt;span style="color: #e69138;"&gt;How does it works?&lt;/span&gt;&lt;/h2&gt;
It works with the &lt;strong&gt;&lt;em&gt;AjaxDelta&lt;/em&gt;&lt;/strong&gt; control that should be added to the head section of master pages. By default, the MDS feature is activated on the Team, Community, Wiki, Projects, App, and Blog site templates.&lt;br /&gt;
When the site uses MDS and a page is requested, the address bar of the browser displays a URL like this: &lt;a href="http://address.domain/_layouts/15/start.aspx#/SitePages/Home.aspx"&gt;http://address.domain/_layouts/15/start.aspx#/SitePages/Home.aspx&lt;/a&gt;&lt;br /&gt;
The start.aspx is responsible for loading pages, it contains a JavaScript object &lt;strong&gt;&lt;em&gt;asyncDeltaMaganer&lt;/em&gt;&lt;/strong&gt; defined in &lt;em&gt;start.js&lt;/em&gt; file. Basically it parses the URL, looks for the sign #. Only the changed portions are downloaded to the client’s if the requested page contain the querystring parameter &lt;em&gt;AjaxDelta=1&lt;/em&gt;.&lt;br /&gt;
The key class that is responsible to generate the full pages or just the deltas is the &lt;strong&gt;&lt;em&gt;DeltaPage&lt;/em&gt;&lt;/strong&gt;. The common pages are inheriting from this. When MDS is enabled it is responsible for creating the delta response and for handling exceptions.&lt;br /&gt;
There is also a control called &lt;strong&gt;&lt;em&gt;PageRenderMode&lt;/em&gt;&lt;/strong&gt; that can be used on a master page, web part page or page layout. This control accepts two values, &lt;strong&gt;Standard&lt;/strong&gt; or &lt;strong&gt;MinimalDownload&lt;/strong&gt;. If it is not presente or if it’s property is set to MinimalDownload it can participate in MDS rendering:&lt;br /&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;SharePoint:PageRenderMode&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt; &lt;span style="color: red;"&gt;RenderModeType&lt;/span&gt;&lt;span style="color: blue;"&gt;="MinimalDownload"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
&lt;span style="color: #e69138;"&gt;Custom control&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
You are able to make your own control (web parts, pages, etc.) that use MDS. There is the attribute &lt;strong&gt;&lt;em&gt;MdsCompilantAttribute&lt;/em&gt;&lt;/strong&gt; that you can set on a class of your control:&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;pre id="codeSnippet" style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-family: 'Courier New', courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; width: 100%;"&gt;[MdsCompliant(&lt;span style="color: blue;"&gt;true&lt;/span&gt;)]&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&amp;nbsp;you can add the attribute to the assembly too, in this way all of your classes will use MDS.&lt;/div&gt;
&lt;br /&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh5.ggpht.com/--283VctrN8k/UOyO6g5uLdI/AAAAAAAAMOo/yeNmABvKpUU/s72-c/IC3864734.png?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Some improvements from SP2013 - Distributed Cache Service</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/01/some-improvements-from-sp2013.html</link><category>Guide</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Tue, 8 Jan 2013 13:00:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-5008857429028691738</guid><description>Continuing the&amp;nbsp;series&amp;nbsp;of posts about the new improvements from SharePoint 2013 we should talk about the upgrade of the &lt;b&gt;Cache Service&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Unlike SharePoint 2010, where the cache was a way to store information and each server had its own, in SharePoint 2013 had a mechanism of&amp;nbsp;distributed caching that spread all the data in the farm.&lt;br /&gt;
&lt;br /&gt;
This service is based on the Windows Server AppFabric 1.1 caching model (for more information:&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/hh351389.aspx"&gt;http://msdn.microsoft.com/en-us/library/hh351389.aspx&lt;/a&gt; ).&lt;br /&gt;
&lt;br /&gt;
Off course use the Distributed Cache Service take some benefits for the following features:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;Authentication: the service will stores the security token used by the Security Token Service for use by any web server in the server farm. In this way, every time a user ask to be authenticated in a web server, the web server will get the token from the cache cluster. In SharePoint 2010 was used a trick know as: &lt;a href="http://blogs.technet.com/b/speschka/archive/2011/10/28/make-sure-you-know-this-about-sharepoint-2010-claims-authentication-sticky-sessions-are-required.aspx" target="_blank"&gt;sticky sessions&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: inherit;"&gt;Socials:&amp;nbsp;My Sites contain the new Microblog and Newsfeeds features. These features allow users to engage in short, public conversations, and keep up-to-date on activities from content and people in which they are interested.&amp;nbsp;This feature take a strong use of DCS, usualy every update will register into the service and will may used. (for more information:&amp;nbsp;&lt;/span&gt;&lt;a href="http://technet.microsoft.com/library/jj219700(office.15).aspx"&gt;http://technet.microsoft.com/library/jj219700(office.15).aspx&lt;/a&gt;&lt;span style="font-family: inherit;"&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;OneNote Client Access&lt;/li&gt;
&lt;li&gt;Security Trimming&lt;/li&gt;
&lt;li&gt;Page Load Performance: SP 2013 include a new framework that improves page load performance by only downloading those portions of the page that have changed. The name of this feature is &lt;b&gt;Minimal Download Strategy&amp;nbsp;(MDS). &lt;/b&gt;It is by default enable on Team site, Community site and a few others site template. When it is enable all pages is rendered &lt;span style="font-family: inherit;"&gt;by the&amp;nbsp;&lt;strong style="background-color: white; border: 0px; line-height: 20px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"&gt;/_layouts/15/start.aspx&lt;/strong&gt;&lt;span style="background-color: white; line-height: 20px;"&gt;&amp;nbsp;page. I will write a post to explain how it works. For now I past to you what Microsoft wrote in the &lt;span style="font-family: inherit;"&gt;msdn: &amp;lt;&lt;t font="font"&gt;&lt;/t&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="line-height: 18px;"&gt;he minimal download strategy will use a single .aspx file (start.aspx) for your pages, with the actual&amp;nbsp;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd905493(v=office.12).aspx#gt_433a4fb7-ef84-46b0-ab65-905f5e3a80b1" style="line-height: 18px; text-decoration: initial;"&gt;URL&lt;/a&gt;&lt;span style="line-height: 18px;"&gt;encoded in the text following the hashmark (‘#’). When navigating from page to page, only the changes between two compatible pages will be downloaded. Fewer bytes will be downloaded and the page will appear more quickly.&amp;gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Search&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
The DCS can run in two modes:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Dedicated mode:&lt;/b&gt;&amp;nbsp;This is Microsoft's&amp;nbsp;recommended&amp;nbsp;mode. All thse services are stopped on the server except DCS. Microsoft recommends that no more than 16 GB of memory should be allocated to the DCS.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;b&gt;Collocated mode&lt;/b&gt;: Microsoft does not recommend this mode and any of the following services or application should not run on the same server:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;SQL Server 2008 or 2012&lt;/li&gt;
&lt;li&gt;Search engine&lt;/li&gt;
&lt;li&gt;Excel Services&lt;/li&gt;
&lt;li&gt;Project Server services&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Following the Windows PowerShell cmdlets that you can use to manage the DCS:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Add-SPDistributedCacheServiceInstanceOnLocalServer&lt;/li&gt;
&lt;li&gt;Clear-SPDistributedCacheItem&lt;/li&gt;
&lt;li&gt;Get-SPDistributedCacheClientSetting&lt;/li&gt;
&lt;li&gt;Remove-SPDistributedCacheServiceInstanceOnLocalServer&lt;/li&gt;
&lt;li&gt;Set-SPDistributedCacheClientSetting&lt;/li&gt;
&lt;li&gt;Stop-SPDistributedCacheServiceInstanceGracefullyOnLocalServer&lt;/li&gt;
&lt;li&gt;Set-CacheHostConfig&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
Some references:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/jj219572.aspx"&gt;Plan for feeds and the Distributed Cache service (SharePoint Server 2013)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/jj219613.aspx" style="font-family: inherit;"&gt;Manage the Distributed Cache service in SharePoint Server 2013&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/library/jj219700(office.15).aspx"&gt;Overview of microblog features, feeds, and the Distributed Cache service in SharePoint Server 2013&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
bye&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Some improvements from SP2013 - Shredded Storage - Database 2</title><link>http://salvatoredifaziosharepoint.blogspot.com/2013/01/some-improvements-from-sp2013-shredded.html</link><category>Guide</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 2 Jan 2013 13:00:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-7025643380730430013</guid><description>In my previous post I wrote about some information about the shredded storage. During this week I have read a lot of information about how this new feature works and which are the limitations.&lt;br /&gt;
&lt;br /&gt;
First of all I should write that we can use, the new feature &lt;i&gt;shredded storage&lt;/i&gt;, for the binary files too.&lt;br /&gt;
So for file such as .doc, .ppt, and .xls shredded storage is accomplished by using a feature of Windows Server 2008: Remote Differential Compression. For the friends RDC.&lt;br /&gt;
&lt;br /&gt;
However when you upgrade your system from SharePoint 2010 to 2013, your content databases do not automatically reduce in size. Shredded storage will only be used the next time the system needs to save a version.&lt;br /&gt;
&lt;br /&gt;
So we can have a big slice of&amp;nbsp;benefits if we have a lot of version of the same file,&amp;nbsp;instead if we have one or two version of the same file we shouldn't take advantage of this feature.&lt;br /&gt;
Another example is if we save jpg file. Those files are already compressed so the delta from the original file and the version can be small.&lt;br /&gt;
&lt;br /&gt;
There are some good articles around the web that&amp;nbsp;explain&amp;nbsp;the technology in depth:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blogs.technet.com/b/wbaer/archive/2012/11/12/introduction-to-shredded-storage-in-sharepoint-2013.aspx"&gt;http://blogs.technet.com/b/wbaer/archive/2012/11/12/introduction-to-shredded-storage-in-sharepoint-2013.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.docave.com/TeamBlog/Lists/Posts/Post.aspx?ID=105"&gt;http://www.docave.com/TeamBlog/Lists/Posts/Post.aspx?ID=105&lt;/a&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Some improvements from SP2013 - Database</title><link>http://salvatoredifaziosharepoint.blogspot.com/2012/11/some-improvements-from-sp2013-database.html</link><category>Guide</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 30 Nov 2012 13:08:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-731845443468892310</guid><description>&lt;span style="font-family: inherit;"&gt;With the new version of SharePoint the guys in Microsoft did a lot of improvements. One of these is the improvements about the database.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;The new SharePoint 2013 taking advantage of MS SQL 2012 Server functionality and using shredded storage that reduces the size of content database and optimizes network traffic.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;Off course you can use SP 2013 also with a MS SQL 2008 R2 SP1 database.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;In Microsoft has remove a lot of redundant and unused table and they has simplify the database schema and optimized data access to improve the database performance. Take a look at the keynote video&amp;nbsp;&lt;a href="http://www.youtube.com/watch?v=BLsIjvIyAxo"&gt;http://www.youtube.com/watch?v=BLsIjvIyAxo&lt;/a&gt; at 1h 21m.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: inherit;"&gt;The &lt;b&gt;shredded storage&lt;/b&gt;&amp;nbsp;reduce the amount of data that is saved and reduces the amount of network traffic between the SP web servers and the SQL servers.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
One of the most painful feature in SP2010 was the &lt;i&gt;versioning feature&lt;/i&gt;. In SP2010 the versioning does not worried about the changes&amp;nbsp;between&amp;nbsp;the previous version and what you start to upload. It just get your new one document and put inside the database. So if the old document was 100-KB and the new one is 105-KB you will have 205-KB of documents inside the database.&lt;br /&gt;
&lt;br /&gt;
In SP2013 by&amp;nbsp;the &lt;i&gt;MS-FSSHTTP &lt;/i&gt;protocol only the changes made while editing a file are stored in the content database. By the &lt;i&gt;Office Document Cache&lt;/i&gt;, that was used in SP2010 too, the system is able to check the difference between your version and the version in the content database and send to you just the difference.</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><georss:featurename xmlns:georss="http://www.georss.org/georss">London, UK</georss:featurename><georss:point xmlns:georss="http://www.georss.org/georss">51.5073346 -0.1276831</georss:point><georss:box xmlns:georss="http://www.georss.org/georss">51.3492066 -0.4435401 51.6654626 0.1881739</georss:box></item><item><title>How to set the destination folder in OOB Upload page!</title><link>http://salvatoredifaziosharepoint.blogspot.com/2012/11/how-to-set-destination-folder-in-oob.html</link><category>Code Drafts</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 15 Nov 2012 13:39:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-8376640076765210713</guid><description>During a sharepoint site customization, I made a web part that display the documents that the customer looking for. If the user has the permission to update the document an icon will be visible to accomplish this task; this icon call a javascript function that open the oob update page.&lt;br /&gt;
&lt;h3&gt;
Problem:&lt;/h3&gt;
For each document I can have an upload icon. Every of those documents are saved in a specific folder (don't ask me why!!!). The customer asked me that the upload page load automatically the folder where the file will be uploaded&lt;br /&gt;
&lt;a href="http://lh4.ggpht.com/-swskfUgiwjE/UKTg65yszPI/AAAAAAAAMKE/ho1PQ7P7sBA/s1600-h/upload-autopolulate%25255B3%25255D.png"&gt;&lt;img alt="upload-autopolulate" border="0" height="271" src="http://lh6.ggpht.com/-6_YUKlwOdwA/UKTg7yMmlDI/AAAAAAAAMKI/J_kWwXSINCg/upload-autopolulate_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="upload-autopolulate" width="806" /&gt;&lt;/a&gt;&lt;br /&gt;
In this way if the document is in the folder &lt;strong&gt;/FolderA/SubFolderB&lt;/strong&gt;, I will press the icon and I will have &lt;strong&gt;/FolderA/SubFolderB&lt;/strong&gt; in my &lt;strong&gt;Destaination Folder&lt;/strong&gt; textbox.&lt;br /&gt;
I have looking around on the net if anyone got a similar problem, but I didn’t find a response.&lt;br /&gt;
&lt;h3&gt;
Solution:&lt;/h3&gt;
Armed with a good time and two of my friends: &lt;strong&gt;notepad2&lt;/strong&gt; and &lt;strong&gt;JetBrains dotPeek&lt;/strong&gt;, I did a bit of analysis.&lt;br /&gt;
First of all I opened the page&lt;br /&gt;
%SHAREPOINTFOLDER%\TEMPLATE\LAYOUTS\upload.aspx&lt;br /&gt;
by the notepad2 to understand which is the dll of its code behind:&lt;br /&gt;
&amp;lt;%@ Page Language="C#" DynamicMasterPageFile="~masterurl/default.master"&amp;nbsp; Inherits="Microsoft.SharePoint.ApplicationPages.UploadPage"%&amp;gt;&lt;br /&gt;
&amp;lt;%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %&amp;gt;&lt;br /&gt;
you can find this dll in the folder &lt;strong&gt;_app_bin&lt;/strong&gt; of your site (example: C:\inetpub\wwwroot\wss\VirtualDirectories\26295\_app_bin). I opened the file &lt;strong&gt;Microsoft.SharePoint.ApplicationPages.dll&lt;/strong&gt; with &lt;strong&gt;JetBrains dotPeek&lt;/strong&gt; and I found what I was looking for:&lt;br /&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="background-color: #f4f4f4; color: black; direction: ltr; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: blue;"&gt;protected&lt;/span&gt; &lt;span style="color: blue;"&gt;virtual&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; CurrentFolderServerRelativeUrl
{
  get
  {
    &lt;span style="color: blue;"&gt;if&lt;/span&gt; (&lt;span style="color: blue;"&gt;this&lt;/span&gt;.m_folderUrl == &lt;span style="color: blue;"&gt;null&lt;/span&gt;)
    {
      &lt;span style="color: blue;"&gt;string&lt;/span&gt; str = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.Request.QueryString[&lt;span style="color: #006080;"&gt;"RootFolder"&lt;/span&gt;];
      &lt;span style="color: blue;"&gt;this&lt;/span&gt;.m_folderUrl = &lt;span style="color: blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(str) ? &lt;span style="color: blue;"&gt;this&lt;/span&gt;.CurrentList.RootFolderUrl : str;
    }
    &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;this&lt;/span&gt;.m_folderUrl;
  }
}&lt;/pre&gt;
this property is used later for the following reason:&lt;/div&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="background-color: #f4f4f4; color: black; direction: ltr; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; text-align: left; width: 100%;"&gt;stringBuilder.Append(&lt;span style="color: #006080;"&gt;"&amp;amp;RootFolder="&lt;/span&gt;);
stringBuilder.Append(SPHttpUtility.UrlKeyValueEncode(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.CurrentFolderServerRelativeUrl));
...
&lt;span style="color: blue;"&gt;this&lt;/span&gt;.Destination.Text = SPHttpUtility.HtmlEncode(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.CurrentFolderServerRelativeUrl);
...
&lt;span style="color: blue;"&gt;private&lt;/span&gt; SPFile UploadFile(&lt;span style="color: blue;"&gt;out&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; leafName, &lt;span style="color: blue;"&gt;out&lt;/span&gt; SPVirusCheckStatus checkStatus, &lt;span style="color: blue;"&gt;out&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; virusMessage)
{
  HttpPostedFile postedFile = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.InputFile.PostedFile;
  leafName = UploadPage.GetLeafName(postedFile.FileName);
  SPFile file = &lt;span style="color: blue;"&gt;this&lt;/span&gt;.Web.GetFile(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.CurrentFolderServerRelativeUrl + &lt;span style="color: #006080;"&gt;"/"&lt;/span&gt; + leafName);
  &lt;span style="color: blue;"&gt;bool&lt;/span&gt; flag1 = &lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;/div&gt;
the variable &lt;strong&gt;Destination&lt;/strong&gt; is an hidden field used by sharepoint and the key&lt;strong&gt; RootFolder&lt;/strong&gt; is used to get which folder I want specify.&lt;br /&gt;
Okie dokie, so I need a javascript method like this:&lt;br /&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="background-color: #f4f4f4; color: black; direction: ltr; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: blue;"&gt;function&lt;/span&gt; uploadDialog(folder) {
    &lt;span style="color: blue;"&gt;var&lt;/span&gt; id = String(&lt;span style="color: blue;"&gt;this&lt;/span&gt;.list.get_id());
    &lt;span style="color: blue;"&gt;this&lt;/span&gt;.url = &lt;span style="color: #006080;"&gt;'/_layouts/Upload.aspx?List={'&lt;/span&gt; + id.toUpperCase() + &lt;span style="color: #006080;"&gt;'}&amp;amp;RootFolder='&lt;/span&gt; + folder;

    optionProcedure = {
        width: 800,
        height: 500,
        url: &lt;span style="color: blue;"&gt;this&lt;/span&gt;.url,
        title: &lt;span style="color: #006080;"&gt;'Upload doc'&lt;/span&gt;
    };

    SP.UI.ModalDialog.showModalDialog(optionProcedure);
}&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
where the &lt;strong&gt;id&lt;/strong&gt; is the &lt;strong&gt;ListId&lt;/strong&gt; loaded before and the &lt;strong&gt;RootFolder&lt;/strong&gt; is where I want upload the new file. I will call this method in this way:&lt;/div&gt;
&lt;br /&gt;
&lt;div id="codeSnippetWrapper"&gt;
&lt;pre id="codeSnippet" style="background-color: #f4f4f4; color: black; direction: ltr; font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding: 0px; text-align: left; width: 100%;"&gt;&amp;lt;a href=&lt;span style="color: #006080;"&gt;"#"&lt;/span&gt; onclick=&lt;span style="color: #006080;"&gt;"javascript:uploadDialog('/Lists/MyDocs/FolderA/SubFolderB'); return false;"&lt;/span&gt;&amp;gt;
&amp;lt;img src=&lt;span style="color: #006080;"&gt;"/_layouts/images/xxx.Intranet.WebParts/procedura_upload.png"&lt;/span&gt; title=&lt;span style="color: #006080;"&gt;"Open form"&lt;/span&gt; alt=&lt;span style="color: #006080;"&gt;"Open form"&lt;/span&gt; style=&lt;span style="color: #006080;"&gt;"border: 0px;"&lt;/span&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
in this way I will have the &lt;strong&gt;Folder&lt;/strong&gt; of my &lt;strong&gt;Destination folder&lt;/strong&gt; populated with &lt;strong&gt;/FolderA/SubFolderB&lt;/strong&gt;&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh6.ggpht.com/-6_YUKlwOdwA/UKTg7yMmlDI/AAAAAAAAMKI/J_kWwXSINCg/s72-c/upload-autopolulate_thumb%25255B1%25255D.png?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Retrieve document rating with Powershell</title><link>http://salvatoredifaziosharepoint.blogspot.com/2012/10/retrieve-document-rating-with-powershell.html</link><category>Code Drafts</category><category>PowerShell</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 22 Oct 2012 13:30:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-5081128356446532366</guid><description>&lt;p&gt;Hi everyone,&lt;/p&gt; &lt;p&gt;I will show you another piece of code that I use during development.&lt;/p&gt; &lt;p&gt;In this case I need to get the rating of a document. In C# the code looks like this:&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt;&lt;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; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (SPSite site = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SPSite(&lt;span style="color: #006080"&gt;"SharePoint site URL"&lt;/span&gt;))&lt;br&gt;{&lt;br&gt;  SPServiceContext context = SPServiceContext.GetContext(site);&lt;br&gt;  SocialRatingManager mySocialRatingManager = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SocialRatingManager(context);&lt;br&gt;  SocialRating aRating = mySocialRatingManager.GetRating(myUri);&lt;br&gt;  Console.WriteLine(aRating.Url + &lt;span style="color: #006080"&gt;": "&lt;/span&gt; + aRating.Rating);&lt;br&gt;}&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;(&lt;a href="http://msdn.microsoft.com/en-us/library/ff407954.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff407954.aspx&lt;/a&gt;)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;To do the same with powershell we must do some changes. I show to you:&lt;/p&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;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; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #cc6633"&gt;$siteUrl&lt;/span&gt; = &lt;span style="color: #0000ff"&gt;Read&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "Site url"&lt;br&gt;&lt;span style="color: #cc6633"&gt;$site&lt;/span&gt; = &lt;span style="color: #0000ff"&gt;Get-SPSite&lt;/span&gt; &lt;span style="color: #cc6633"&gt;$siteUrl&lt;/span&gt;&lt;br&gt;&lt;span style="color: #cc6633"&gt;$uri&lt;/span&gt; = &lt;span style="color: #0000ff"&gt;Read&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Host&lt;/span&gt; "Uri document"&lt;br&gt;&lt;br&gt;&lt;span style="color: #cc6633"&gt;$serviceCtx&lt;/span&gt; = &lt;span style="color: #0000ff"&gt;Get-SPServiceContext&lt;/span&gt; -Site &lt;span style="color: #cc6633"&gt;$site&lt;/span&gt;&lt;br&gt;&lt;span style="color: #cc6633"&gt;$socialRatingMgr&lt;/span&gt; = &lt;span style="color: #0000ff"&gt;New&lt;/span&gt;-&lt;span style="color: #0000ff"&gt;Object&lt;/span&gt; Microsoft.Office.Server.SocialData.SocialRatingManager(&lt;span style="color: #cc6633"&gt;$serviceCtx&lt;/span&gt;)&lt;br&gt;&lt;span style="color: #cc6633"&gt;$rating&lt;/span&gt; = &lt;span style="color: #cc6633"&gt;$socialRatingMgr&lt;/span&gt;.GetRating(&lt;span style="color: #cc6633"&gt;$uri&lt;/span&gt;)&lt;br&gt;&lt;br&gt;&lt;span style="color: #cc6633"&gt;$rating&lt;/span&gt; | &lt;span style="color: #0000ff"&gt;Format-Table&lt;/span&gt; -AutoSize -Wrap&lt;br&gt;&lt;br&gt;&lt;span style="color: #cc6633"&gt;$site&lt;/span&gt;.Dispose()&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;I want remember that I’m not a powershell guy but I like it to use for my general purpose &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh6.ggpht.com/-YkPNiAaboKc/UIOrO6m_oQI/AAAAAAAAMJw/cr6vHQqgmAw/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;  </description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh6.ggpht.com/-YkPNiAaboKc/UIOrO6m_oQI/AAAAAAAAMJw/cr6vHQqgmAw/s72-c/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to add a custom value in the search core results</title><link>http://salvatoredifaziosharepoint.blogspot.com/2012/10/how-to-add-custom-value-in-search-core.html</link><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 19 Oct 2012 13:30:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-9134326594536177093</guid><description>&lt;p&gt;By the &lt;em&gt;Search Core Results&lt;/em&gt; webpart you can show the results of your search in a custom page of your site.&lt;br&gt;The default behaviours of this web part is show the default columns but if you want to show a your custom column you need to do some little steps. I show you!&lt;/p&gt; &lt;p&gt;First of all open the &lt;em&gt;SharePoint Central Administration –&amp;gt; Manage service applications –&amp;gt; Search Service Application&lt;/em&gt; and click on &lt;em&gt;Manage –&amp;gt; Metadata Properties&lt;/em&gt;:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-YwDz20sV5iE/UIEedLz932I/AAAAAAAAMIc/Lr97-jKpZZU/s1600-h/metadata%252520properties%25255B3%25255D.jpg"&gt;&lt;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="metadata properties" border="0" alt="metadata properties" src="http://lh3.ggpht.com/-cOHand4Tik4/UIEefFcJiUI/AAAAAAAAMIk/qKJFmULpl0w/metadata%252520properties_thumb%25255B1%25255D.jpg?imgmax=800" width="723" height="557"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;in this form click &lt;em&gt;New Managed Property:&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-DcTxz8XzoOg/UIEehY9AeEI/AAAAAAAAMIs/BVHnKhjeYPY/s1600-h/add%252520new%252520managed%252520property%25255B3%25255D.jpg"&gt;&lt;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="add new managed property" border="0" alt="add new managed property" src="http://lh5.ggpht.com/-rJpbChhhg6U/UIEeitfBb6I/AAAAAAAAMI0/KlQlkwCNPzk/add%252520new%252520managed%252520property_thumb%25255B1%25255D.jpg?imgmax=800" width="844" height="281"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;fill in the form:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-dJ5VSriFs-8/UIEelBuqRoI/AAAAAAAAMI8/x2_jnd8XbCI/s1600-h/new%252520managed%252520property%252520form%25255B3%25255D.jpg"&gt;&lt;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="new managed property form" border="0" alt="new managed property form" src="http://lh3.ggpht.com/-6pxFJq_Ji1M/UIEenR2s7QI/AAAAAAAAMJE/aYwsNwGk3kk/new%252520managed%252520property%252520form_thumb%25255B1%25255D.jpg?imgmax=800" width="883" height="657"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;then click ok and run the crawler:&lt;/p&gt; &lt;p&gt;&lt;img src="https://lh6.googleusercontent.com/-Q4C_nFEr72Q/Tx7a0A_bWGI/AAAAAAAAK1M/NoL6xsMsZNs/Capture05_thumb.png"&gt;&lt;/p&gt; &lt;p&gt;then come back to you &lt;em&gt;Search Core Result&lt;/em&gt; web part that you want customize and go to edit properties:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-r9Gb-J_9sH0/UIEepmwu31I/AAAAAAAAMJM/bb33rBKw-LU/s1600-h/search%252520core%252520result%252520xsl%252520editor%25255B3%25255D.jpg"&gt;&lt;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="search core result xsl editor" border="0" alt="search core result xsl editor" src="http://lh3.ggpht.com/-9B4Bxg7GSOU/UIEetdBkD-I/AAAAAAAAMJU/Rz7g-ULCr34/search%252520core%252520result%252520xsl%252520editor_thumb%25255B1%25255D.jpg?imgmax=800" width="949" height="531"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;and fill in with the following xml:&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt;&lt;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; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xsl:stylesheet&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="1.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns:xsl&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://www.w3.org/1999/XSL/Transform"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;br&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xsl:output&lt;/span&gt; &lt;span style="color: #ff0000"&gt;method&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="xml"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="1.0"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;encoding&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="UTF-8"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;indent&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="yes"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt; &lt;br&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xsl:template&lt;/span&gt; &lt;span style="color: #ff0000"&gt;match&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;br&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xmp&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xsl:copy-of&lt;/span&gt; &lt;span style="color: #ff0000"&gt;select&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="*"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xmp&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xsl:template&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;br&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;xsl:stylesheet&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;and the result will be:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="https://lh5.googleusercontent.com/-GmU9slZ_E_E/Tx7a03CPf_I/AAAAAAAAK1c/YZQt-J7mepg/Capture06_thumb_1.png"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;now you are ready to modify the xslt: &lt;a href="http://salvatoredifaziosharepoint.blogspot.it/2012/04/how-to-modify-sharepoints-result-page.html"&gt;http://salvatoredifaziosharepoint.blogspot.it/2012/04/how-to-modify-sharepoints-result-page.html&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://lh3.ggpht.com/-ErstYFZEGoQ/UIEeuct4ulI/AAAAAAAAMJc/ZFrMwaeHZYM/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;  </description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh3.ggpht.com/-cOHand4Tik4/UIEefFcJiUI/AAAAAAAAMIk/qKJFmULpl0w/s72-c/metadata%252520properties_thumb%25255B1%25255D.jpg?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>How to print fields information using PowerShell</title><link>http://salvatoredifaziosharepoint.blogspot.com/2012/10/how-to-print-fields-information-using.html</link><category>PowerShell</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Thu, 11 Oct 2012 15:00:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-2140310743715898285</guid><description>&lt;p&gt;Many times we need to print fields information to understand, for example, which is the name of the fields we looking for. You know, SharePoint has a naming convention that is different from what we expect.&lt;/p&gt; &lt;p&gt;To be able to quickly obtain this information I use Powershell with the following script:&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt;&lt;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; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;$url = Read-Host &lt;span style="color: #006080"&gt;"Web address:"&lt;/span&gt;&lt;br&gt;$web = Get-SPWeb $url&lt;br&gt;$listname = Read-Host &lt;span style="color: #006080"&gt;"List name:"&lt;/span&gt;&lt;br&gt;$&lt;span style="color: #0000ff"&gt;list&lt;/span&gt; = $web.Lists[$listname]&lt;br&gt;&lt;br&gt;$&lt;span style="color: #0000ff"&gt;list&lt;/span&gt;.fields | select Title, InternalName, Hidden, DisplayName | sort title | ft -AutoSize&lt;/pre&gt;&lt;br&gt;enjoy&lt;/div&gt;  </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Linq To Sharepoint–How to do a recursive and folder-scoped query</title><link>http://salvatoredifaziosharepoint.blogspot.com/2012/07/linq-to-sharepointhow-to-do-recursive.html</link><category>Code Drafts</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 9 Jul 2012 13:00:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-8248302204112577338</guid><description>&lt;p&gt;Hi guys,&lt;/p&gt; &lt;p&gt;I working in a &lt;em&gt;old-style-documents-archive-web-part-implementation&lt;/em&gt; that means I have a document library with folders and sub-folder.&lt;/p&gt; &lt;p&gt;I start to say you that I don’t like this solution and I think that use the &lt;em&gt;&lt;a href="http://technet.microsoft.com/en-us/sharepoint/ff924923.aspx"&gt;Managed metada server&lt;/a&gt;&lt;/em&gt; is a better solution, but anyway if you need to do queries in a document library you have to ways.&lt;/p&gt; &lt;p&gt;If you use &lt;strong&gt;SPQuery&lt;/strong&gt; you need to specify the properties &lt;strong&gt;ViewAttributes&lt;/strong&gt; :&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt;&lt;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; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;SPQuery query = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SPQuery();&lt;br&gt;&lt;span style="color: #008000"&gt;///....&lt;/span&gt;&lt;br&gt;query.ViewAttributes = &lt;span style="color: #006080"&gt;"Scope=\"RecursiveAll\""&lt;/span&gt;;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Instead if you use LinqToSharePoint you can use the property &lt;strong&gt;ScopeToFolder&lt;/strong&gt;:&lt;/p&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;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; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;var q = dc.MyDocs.ScopeToFolder(&lt;span style="color: #006080"&gt;""&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;).Where(p =&amp;gt; p.DueDate &amp;lt; DateTime.Now.AddMonths(1));&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In the MSDN page we can find the following parameters explanation:&lt;/p&gt;&lt;br /&gt;&lt;div id="codeSnippetWrapper"&gt;&lt;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; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; IQueryable&amp;lt;TEntity&amp;gt; ScopeToFolder( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; folderUrl, &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; recursive )&lt;br&gt;&lt;br&gt;folderUrl –&amp;gt; The URL of the folder.&lt;br&gt;recursive –&amp;gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt; to include items &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; subfolders; &lt;span style="color: #0000ff"&gt;false&lt;/span&gt; to exclude them.&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;enjoy &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://lh6.ggpht.com/-zXKsRWhJrYg/T_hNn92S3lI/AAAAAAAAMGs/YZyqVAztEck/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;  </description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://lh6.ggpht.com/-zXKsRWhJrYg/T_hNn92S3lI/AAAAAAAAMGs/YZyqVAztEck/s72-c/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>SharePoint 2010: Create a Content Type with Lookup Field by writing declarative XML</title><link>http://salvatoredifaziosharepoint.blogspot.com/2012/07/sharepoint-2010-create-content-type.html</link><category>Code Drafts</category><category>SharePoint</category><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 2 Jul 2012 13:00:00 +0200</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-514710704244702941.post-2300708359321150472</guid><description>&lt;p&gt;Create a content type with a lookup field in the &lt;strong&gt;Elements.xml&lt;/strong&gt; file&lt;strong&gt; &lt;/strong&gt;is not easy how you can think.&lt;/p&gt; &lt;p&gt;To accomplish this task you need to:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;define the new field&lt;/li&gt; &lt;li&gt;specify &lt;strong&gt;Name, DisplayName, StaticName&lt;/strong&gt;&lt;/li&gt; &lt;li&gt;set at &lt;strong&gt;TRUE&lt;/strong&gt; the &lt;strong&gt;Overwrite&lt;/strong&gt; attribute&lt;/li&gt; &lt;li&gt;set at &lt;strong&gt;~sitecollection&lt;/strong&gt; the &lt;strong&gt;WebId&lt;/strong&gt; attribute&lt;/li&gt; &lt;li&gt;set at &lt;strong&gt;TheLookupList&lt;/strong&gt; the &lt;strong&gt;List &lt;/strong&gt;attribute&lt;/li&gt; &lt;li&gt;set at &lt;strong&gt;&lt;a href="http://schemas.microsoft.com/sharepoint/v3"&gt;http://schemas.microsoft.com/sharepoint/v3&lt;/a&gt;&lt;/strong&gt; the &lt;strong&gt;SourceID&lt;/strong&gt; attribute&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;for example:&lt;/p&gt; &lt;div id="codeSnippetWrapper"&gt;&lt;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; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #008000"&gt;&amp;lt;!-- CT Sotto Reparto --&amp;gt;&lt;/span&gt;&lt;br&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Field&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="{2AAD1044-89E9-4C88-8234-424A4B739C1C}"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="LookupToList"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;DisplayName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="LookupToList"&lt;/span&gt; &lt;span style="color: #ff0000"&gt;StaticName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="LookupToList"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;Type&lt;/span&gt; &lt;span style="color: #0000ff"&gt;="Lookup"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;Required&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="TRUE"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;Group&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Custom Columns"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;Overwrite&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="TRUE"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;WebId&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="~sitecollection"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;EnforceUniqueValues&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="FALSE"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;List&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Lists/MyList"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;SourceID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://schemas.microsoft.com/sharepoint/v3"&lt;/span&gt;&lt;br&gt;       &lt;span style="color: #ff0000"&gt;ShowField&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="MyLookupField"&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;bye!&lt;/p&gt;  </description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item></channel></rss>