<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results for 'app:weblogs' matching tags 'C#' and 'SharePoint'</title><link>http://msmvps.com/search/SearchResults.aspx?q=app:weblogs&amp;tag=C%23,SharePoint&amp;orTags=0&amp;o=DateDescending</link><description>Search results for 'app:weblogs' matching tags 'C#' and 'SharePoint'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Get the FBA User Logged</title><link>http://msmvps.com/blogs/officept/archive/2012/07/11/get-the-fba-user-logged.aspx</link><pubDate>Wed, 11 Jul 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1812695</guid><dc:creator>Joao</dc:creator><description>&lt;div class="code"&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;GetMyFbaUserProperty&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;get&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;fbaUser&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;HttpContext&lt;/font&gt;&lt;font color="#000000"&gt;.Current.User.Identity.Name&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;lastIndex&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;fbaUser.LastIndexOf(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;|&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;fbaUser&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;fbaUser.Substring(lastIndex&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;+&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#800000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#808080"&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;(fbaUser.Length&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;-&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;lastIndex&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;-&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#800000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;))&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;}&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;}&lt;/font&gt; &lt;/div&gt;</description></item><item><title>Paquete de 101 c&amp;#243;digos de ejemplo en desarrollo SharePoint 2010</title><link>http://msmvps.com/blogs/haarongonzalez/archive/2012/02/22/paquete-de-101-c-243-digos-de-ejemplo-en-desarrollo-sharepoint-2010.aspx</link><pubDate>Wed, 22 Feb 2012 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1806300</guid><dc:creator>haaron</dc:creator><description>&lt;p&gt;En el blog oficial del &lt;a href="http://blogs.msdn.com/b/sharepointdev"&gt;equipo de desarrollo SharePoint&lt;/a&gt; de Microsoft se ha publicado una entrada referente a un &lt;a href="http://blogs.msdn.com/b/sharepointdev/archive/2012/02/22/sharepoint-101-code-samples-are-now-available.aspx"&gt;paquete de ejemplos de código sobre SharePoint 2010&lt;/a&gt; lo cual me parece fabuloso. Estuve revisando la lista de ejemplos y se deja ver que este es un excelente recurso para programadores SharePoint y/o principiantes. &lt;/p&gt;  &lt;p&gt;Puedes descárgalo &lt;a href="http://code.msdn.microsoft.com/SharePoint-2010-101-Code-da251182"&gt;aquí&lt;/a&gt; y estoy seguro será de utilidad&lt;/p&gt;  &lt;p&gt;HG&lt;/p&gt;</description></item><item><title>Create a WebPart Dynamically thru a DWP (XML File Exported)</title><link>http://msmvps.com/blogs/officept/archive/2011/12/22/create-a-webpart-dynamically-thru-a-dwp-xml-file-exported.aspx</link><pubDate>Thu, 22 Dec 2011 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1803993</guid><dc:creator>Joao</dc:creator><description>&lt;p&gt;&lt;font size="2"&gt;This method will create a WebPart within a XML File DWP that is an exported WebPart file when you export by clicking his option.&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2"&gt;webSite = SPSite&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;wpId = ZoneID&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;wpZi = ZoneID&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;wpPage = Page Name&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2"&gt;wpDwp = DWP File&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2"&gt;By my tests the ZoneID sometimes is not assumed, I presume it is a bug in the ObjectModel, or not&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#006400"&gt;/// &amp;lt;/summary&amp;gt;         &lt;br /&gt;/// &amp;lt;param name=&amp;quot;webSite&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;          &lt;br /&gt;/// &amp;lt;param name=&amp;quot;wpId&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;          &lt;br /&gt;/// &amp;lt;param name=&amp;quot;wpZi&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;          &lt;br /&gt;/// &amp;lt;param name=&amp;quot;wpPage&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;          &lt;br /&gt;/// &amp;lt;param name=&amp;quot;wpDwp&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;          &lt;br /&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;CreateWebPart(&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;webSite,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;wpId,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;wpZi,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#808080"&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;wpPage,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;wpDwp&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Consolas"&gt;try&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#006400"&gt;// Get a reference to a web and a list         &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;site&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;SPSite(webSite))&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;web&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;site.OpenWeb()&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#006400"&gt;// Get the web part collection         &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;coll&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;web.GetLimitedWebPartManager(&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt;.Format(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;{0}/Pages/{1}&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;webSite,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;wpPage),&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;PersonalizationScope.Shared)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;reader&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;XmlTextReader&lt;/font&gt;&lt;font color="#000000"&gt;(wpDwp))&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#006400"&gt;// import the web part from the stream         &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;errorMessage&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;newWp&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(WebPart)coll.ImportWebPart(reader,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;out&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;errorMessage)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;reader.Close()&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;newWp.ZoneID&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;wpId&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#006400"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#006400"&gt;// check for import errors         &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(!&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt;.IsNullOrEmpty(errorMessage))&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;font color="#0000ff"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#006400"&gt;// add the web part to the page         &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;coll.AddWebPart(newWp,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;newWp.ZoneID,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;Convert.ToInt32(wpZi))&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;}&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;}&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;true&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2" face="Consolas"&gt;}&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;catch&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ex)&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;font color="#0000ff"&gt;return &lt;font color="#0000ff"&gt;false&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#808080"&gt;     &lt;br /&gt;&lt;font size="2" face="Consolas"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;}&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Usando los controles de SharePoint en WebParts</title><link>http://msmvps.com/blogs/haarongonzalez/archive/2011/07/28/usando-los-controles-de-sharepoint-en-webparts.aspx</link><pubDate>Thu, 28 Jul 2011 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1796875</guid><dc:creator>haaron</dc:creator><description>&lt;p&gt;Sin duda, con el poder viene la responsabilidad. En pasados d&amp;iacute;as publiqu&amp;eacute; un &lt;a target="_blank" href="http://msmvps.com/blogs/haarongonzalez/archive/2011/07/06/programaci-243-n-asp-net-en-webparts-de-sharepoint.aspx"&gt;post &lt;/a&gt;acerca de c&amp;oacute;mo utilizar los controles de ASP.NET y toda su experiencia &lt;span style="text-decoration:line-through;"&gt;gloria&lt;/span&gt; dentro de WebParts de SharePoint. Sin embargo, al utilizar esta estrategia un conjunto de consideraciones subsecuentes deber&amp;aacute;n ser contempladas como &lt;b&gt;hacer uso de los mismos controles SharePoint dentro de estos WebParts. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;En ese sentido, debido a que sin problema alguno puedo utilizar el GridView y/o cualquier control ASP.NET al principio suena atractiva la posibilidad pero como siempre la realidad se asoma y nos muestra al que un d&amp;iacute;a fue novedoso control Calendar de ASP.NET y con todo el debido respeto, hoy no es la mejor opci&amp;oacute;n para la captura de una fecha dentro de una forma en SharePoint, al menos la mejor opci&amp;oacute;n es usar el mismo control que se usa en SharePoint, &amp;iquest;est&amp;aacute;s de acuerdo?&lt;/p&gt;
&lt;p&gt;Vamos a nuestro Web User Control y registramos los controles web de SharePoint. Estos son los controles mejorados que SharePoint internamente utiliza en su capa de presentaci&amp;oacute;n.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6567.image_5F00_25598246.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6710.image_5F00_thumb_5F00_2F1E2817.png" border="0" height="188" width="1154" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Despu&amp;eacute;s dentro de nuestro c&amp;oacute;digo Markup agregamos el control SharePoint que requerimos:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/5037.image_5F00_02F10559.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6457.image_5F00_thumb_5F00_71BD27B5.png" border="0" height="136" width="876" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Lo interesante es que tenemos una gama de controles de SharePoint disponibles.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/1780.image_5F00_17B2D80C.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/5327.image_5F00_thumb_5F00_7DDEA1DC.png" border="0" height="300" width="305" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;A continuaci&amp;oacute;n dentro del c&amp;oacute;digo hacemos referencia al control de SharePoint para poder adjuntar alg&amp;uacute;n evento o leer su valor. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/7384.image_5F00_24408528.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6758.image_5F00_thumb_5F00_51FE2820.png" border="0" height="366" width="1081" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Y el resultado es:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/5773.image_5F00_180EE534.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/7230.image_5F00_thumb_5F00_7DCE7C0F.png" border="0" height="249" width="361" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Estos controles cuentan con validaciones, propiedades y eventos que podemos utilizar a nuestro favor. Cr&amp;eacute;ditos a Luis Edmundo Teos por el reto y escenario.&lt;/p&gt;
&lt;p&gt;Suerte!&lt;/p&gt;</description></item><item><title>Display your Twitter Update List in SharePoint</title><link>http://msmvps.com/blogs/officept/archive/2011/07/04/display-your-twitter-update-list-in-sharepoint.aspx</link><pubDate>Mon, 04 Jul 2011 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1795691</guid><dc:creator>Joao</dc:creator><description>&lt;p&gt;&lt;font size="2"&gt;First I am using a Custom Control in a ASPX page then:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;You must change “YourTwitterName” by your login name and put the Output.Append() lines in the same line&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;For other languages you must change the Lines in the JS file in order to match your language&lt;/font&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:#ffffff;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Tahoma&amp;#39;, 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;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;Less then a minute ago&amp;#39;&lt;/span&gt;;&lt;br /&gt;  } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (delta &amp;lt; 120) {&lt;br /&gt;      &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;About one minute ago&amp;#39;&lt;/span&gt;;&lt;br /&gt;  } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (delta &amp;lt; (60 * 60)) {&lt;br /&gt;      &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; (parseInt(delta / 60)).toString() + &lt;span style="color:#006080;"&gt;&amp;#39; minutes ago;&lt;br /&gt;  } else if (delta &amp;lt; (120 * 60)) {&lt;br /&gt;      return About one hour ago;&lt;br /&gt;  } else if (delta &amp;lt; (24 * 60 * 60)) {&lt;br /&gt;      return &amp;#39;&lt;/span&gt;About &lt;span style="color:#006080;"&gt;&amp;#39; + (parseInt(delta / 3600)).toString() + &amp;#39;&lt;/span&gt; hours ago&lt;span style="color:#006080;"&gt;&amp;#39;;&lt;br /&gt;  } else if (delta &amp;lt; (48 * 60 * 60)) {&lt;br /&gt;      return One day ago;&lt;br /&gt;  } else {&lt;br /&gt;      return (parseInt(delta / 86400)).toString() + &amp;#39;&lt;/span&gt; Days ago&amp;#39;;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;CODE&lt;/strong&gt;&lt;/font&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:#ffffff;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Tahoma&amp;#39;, 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;p&gt;&lt;span style="color:#0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;override&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Render(HtmlTextWriter writer)&lt;br /&gt;{&lt;br /&gt;    StringBuilder output = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; StringBuilder();&lt;br /&gt;&lt;br /&gt;    output.Append(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;h1 style=\&amp;quot;display:none;\&amp;quot;&amp;gt;&amp;lt;/h1&amp;gt;&amp;lt;h2&amp;gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;    output.Append(&lt;span style="color:#006080;"&gt;&amp;quot;Twitter&amp;quot;&lt;/span&gt;);&lt;br /&gt;    output.Append(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;/h2&amp;gt;&amp;quot;&lt;/span&gt;);    &lt;br /&gt;    output.Append(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;div class=\&amp;quot;lista\&amp;quot; id=\&amp;quot;twitter_div\&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;);    &lt;br /&gt;    output.Append(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;ul id=\&amp;quot;twitter_update_list\&amp;quot;&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;span&amp;gt;&amp;lt;a id=\&amp;quot;twitter-link\&amp;quot; &lt;br /&gt;        style=\&amp;quot;display:block;text-align:center;font-weight:bold;font-size:9pt;\&amp;quot; &lt;br /&gt;            href=\&amp;quot;http://twitter.com/YourTwitterLogin\&amp;quot;&amp;gt;Siga as Notícias&amp;lt;/a&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;    output.Append(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;script type=\&amp;quot;text/javascript\&amp;quot; src=\&amp;quot;_layouts/2070/YourPath/YourJSName.js\&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;    output.Append(&lt;span style="color:#006080;"&gt;&amp;quot;&amp;lt;script src=\&amp;quot;http://twitter.com/statuses/user_timeline/&lt;br /&gt;        YourTwitterLogin.json?callback=twitterCallback2&amp;amp;amp;count=3\&amp;quot; type=\&amp;quot;text/javascript\&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/p&gt;&lt;p&gt;    writer.Write(output.ToString());&lt;br /&gt;&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&lt;strong&gt;JS&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:#ffffff;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Tahoma&amp;#39;, 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;function&lt;/span&gt; twitterYourFeeds(twitters) {&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; statusHTML = [];&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; i = 0; i &amp;lt; twitters.length; i++) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; username = twitters[i].user.screen_name;&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^&lt;span style="color:#006080;"&gt;&amp;quot;\s\&amp;lt;\&amp;gt;]*[^.,;&amp;#39;&amp;quot;&lt;/span&gt;&amp;gt;\:\s\&amp;lt;\&amp;gt;\)\]\!])/g, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;(url) {&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;a href=&amp;quot;&amp;#39;&lt;/span&gt; + url + &lt;span style="color:#006080;"&gt;&amp;#39;&amp;quot;&amp;gt;&amp;#39;&lt;/span&gt; + url + &lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;/a&amp;gt;&amp;#39;&lt;/span&gt;;&lt;br /&gt;        }).replace(/\B@([_a-z0-9]+)/ig, &lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;(reply) {&lt;br /&gt;            &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; reply.charAt(0) + &lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;a href=&amp;quot;http://twitter.com/&amp;#39;&lt;/span&gt; + reply.substring(1) + &lt;span style="color:#006080;"&gt;&amp;#39;&amp;quot;&amp;gt;&amp;#39;&lt;/span&gt; + reply.substring(1) + &lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;/a&amp;gt;&amp;#39;&lt;/span&gt;;&lt;br /&gt;        });&lt;br /&gt;        &lt;span style="color:#008000;"&gt;//statusHTML.push(&amp;#39;&amp;lt;li&amp;gt;&amp;lt;span&amp;gt;&amp;#39; + status + &amp;#39;&amp;lt;/span&amp;gt; &amp;lt;a style=&amp;quot;font-size:90%&amp;quot; href=&amp;quot;http://twitter.com/&amp;#39; + username + &amp;#39;/statuses/&amp;#39; + twitters[i].id + &amp;#39;&amp;quot;&amp;gt;&amp;#39; + relative_time(twitters[i].created_at) + &amp;#39;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#39;);&lt;/span&gt;&lt;br /&gt;        statusHTML.push(&lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;li&amp;gt;&amp;lt;span&amp;gt;&amp;#39;&lt;/span&gt; + status + &lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;&amp;#39;&lt;/span&gt; + MyTimeToDisplay(twitters[i].created_at) + &lt;span style="color:#006080;"&gt;&amp;#39;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&amp;#39;&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;    document.getElementById(&lt;span style="color:#006080;"&gt;&amp;#39;twitter_update_list&amp;#39;&lt;/span&gt;).innerHTML = statusHTML.join(&lt;span style="color:#006080;"&gt;&amp;#39;&amp;#39;&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt; MyTimeToDisplay(time_value) {&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; values = time_value.split(&lt;span style="color:#006080;"&gt;&amp;quot; &amp;quot;&lt;/span&gt;);&lt;br /&gt;    time_value = values[1] + &lt;span style="color:#006080;"&gt;&amp;quot; &amp;quot;&lt;/span&gt; + values[2] + &lt;span style="color:#006080;"&gt;&amp;quot;, &amp;quot;&lt;/span&gt; + values[5] + &lt;span style="color:#006080;"&gt;&amp;quot; &amp;quot;&lt;/span&gt; + values[3];&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; parsed_date = Date.parse(time_value);&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; relative_to = (arguments.length &amp;gt; 1) ? arguments[1] : &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; Date();&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; delta = parseInt((relative_to.getTime() - parsed_date) / 1000);&lt;br /&gt;    delta = delta + (relative_to.getTimezoneOffset() * 60);&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (delta &amp;lt; 60) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;Menos de um minuto atr&amp;amp;aacute;s&amp;#39;&lt;/span&gt;;&lt;br /&gt;    } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (delta &amp;lt; 120) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;Cerca de um minuto atr&amp;amp;aacute;s&amp;#39;&lt;/span&gt;;&lt;br /&gt;    } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (delta &amp;lt; (60 * 60)) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; (parseInt(delta / 60)).toString() + &lt;span style="color:#006080;"&gt;&amp;#39; minutos atr&amp;amp;aacute;s&amp;#39;&lt;/span&gt;;&lt;br /&gt;    } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (delta &amp;lt; (120 * 60)) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;H&amp;amp;aacute; cerca de uma hora atr&amp;amp;aacute;s&amp;#39;&lt;/span&gt;;&lt;br /&gt;    } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (delta &amp;lt; (24 * 60 * 60)) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;H&amp;amp;aacute; cerca de &amp;#39;&lt;/span&gt; + (parseInt(delta / 3600)).toString() + &lt;span style="color:#006080;"&gt;&amp;#39; horas atr&amp;amp;aacute;s&amp;#39;&lt;/span&gt;;&lt;br /&gt;    } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (delta &amp;lt; (48 * 60 * 60)) {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#006080;"&gt;&amp;#39;1 dia atr&amp;amp;aacute;s&amp;#39;&lt;/span&gt;;&lt;br /&gt;    } &lt;span style="color:#0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; (parseInt(delta / 86400)).toString() + &lt;span style="color:#006080;"&gt;&amp;#39; dias atr&amp;amp;aacute;s&amp;#39;&lt;/span&gt;;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;
&lt;font size="2"&gt;&lt;/font&gt;</description></item><item><title>Cuantos ingenieros se necesitan para cambiar una bombilla o crear sitios SharePoint</title><link>http://msmvps.com/blogs/haarongonzalez/archive/2011/03/31/cuantos-ingenieros-se-necesitan-para-cambiar-una-bombilla-o-crear-sitios-sharepoint.aspx</link><pubDate>Thu, 31 Mar 2011 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1790986</guid><dc:creator>haaron</dc:creator><description>&lt;p&gt;No es curioso, es un hecho que en el ambiente laboral relacionado con tecnolog&amp;iacute;as de informaci&amp;oacute;n y seguramente en muchos otros, nos encontramos con diversas personalidades, temperamentos y arquetipos colaborando d&amp;iacute;a con d&amp;iacute;a para resolver alg&amp;uacute;n problema t&amp;eacute;cnico o de negocio. Las personas tenemos toda una historia distinta, adem&amp;aacute;s de cualidades que en parte de forma consiente o inconsciente constituye la forma muy particular de ver y reaccionar ante vida, en algunos casos estas cualidades son las adecuadas para ciertos escenarios pero que en definitiva en otros no lo son. &lt;/p&gt;
&lt;p&gt;Entonces la pregunta es, &amp;iquest;c&amp;oacute;mo aprovechar lo que cada quien aporta para generar valor empresarial?, esa es una pregunta que especialistas en Management, Leadership y Coaching podr&amp;iacute;an responder sin ning&amp;uacute;n problema. Sin embargo, desde mi &amp;oacute;ptica por lo menos &lt;strong&gt;compartir constantemente una visi&amp;oacute;n compartida con lineamientos claros&lt;/strong&gt; es esencial para organizar y aprovechar lo que cada persona con su historia histeria y experiencia aporta.&lt;/p&gt;
&lt;p&gt;En esta historia, el requerimiento es crear un conjunto finito de sitios con las siguientes caracter&amp;iacute;sticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Cada sitio se basa en la plantilla de sitio de &lt;b&gt;Trabajo en Equipo&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;Cada sitio no deber&amp;aacute; tener &lt;b&gt;herencia de permisos&lt;/b&gt; &lt;/li&gt;
&lt;li&gt;Cada sitio deber&amp;aacute; contar con 4 grupos &amp;ldquo;Owners, Visitors, Members, Permissions&amp;rdquo; bajo la nomenclatura &amp;ldquo;&lt;b&gt;Sitio + Nombre de grupo&lt;/b&gt;&amp;rdquo; &lt;/li&gt;
&lt;li&gt;Cada sitio cuenta con usuarios espec&amp;iacute;ficos para cada grupo. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lo que piensan los miembros del equipo de TI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Miembro 1 - Vamos a lucirnos con la soluci&amp;oacute;n&lt;b&gt;, hagamos un WSP con feature receiver&lt;/b&gt; a nivel sitio web para que cuando le den activar en las caracter&amp;iacute;sticas del sitio, program&amp;aacute;ticamente los construya y configure. &lt;/li&gt;
&lt;li&gt;Miembro 2 &amp;ndash; &amp;iquest;Hay urgencia por parte del cliente como para dedicar tiempo a construir y probar un WSP?, &amp;iquest;se va a reutilizar la jerarqu&amp;iacute;a en alg&amp;uacute;n otro sitio en el futuro?, &amp;iquest;conviene dejar archivos en el 12 hive y un ensamblado en el GAC con full trust assembly?, &amp;iquest;vamos a implementar en DEV, QA, UAT y PROD el WSP? Yo digo que &lt;b&gt;construyamos los sitios manualmente&lt;/b&gt; usando el UI de SharePoint. &lt;/li&gt;
&lt;li&gt;Miembro 3 &amp;ndash; &lt;b&gt;Usemos scripts&lt;/b&gt; en un archivos *.bat que ejecute el comando stsadm.exe para crear los sitios y grupos, pasamos par&amp;aacute;metros e nivel comando y creamos un solo archivo que cuente con todas las instrucciones necesarias. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Despu&amp;eacute;s los miembros dan inicio a los argumentos t&amp;eacute;cnico-personales para defender su postura a capa y espada, &lt;span style="text-decoration:line-through;"&gt;como si fueran program managers de microsoft&lt;/span&gt;, correos electr&amp;oacute;nicos empiezan a fluir con preguntas que toman minutos leer y escribir de regreso para ser enviados de nuevo. El tiempo pasa, el tema sube de nivel, siguen estancados, el usuario pregunta por sus sitios y en eso Miembro 2 lo toma personal, sube de nivel su contestaci&amp;oacute;n y claudica ante su postura. Miembro 1 ratifica la postura de Miembro 2 con el af&amp;aacute;n de no afectar al equipo y Miembro 3 procede a ejecutar la postura del Miembro 2. &lt;b&gt;Tiempo total transcurrido 2.5 horas.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Si lo analizamos, todos pierden. El esp&amp;iacute;ritu del equipo se deteriora, definitivamente se ve mal y el usuario de plano esperando. Realmente cualquier postura es aceptable y totalmente factible, cada una con sus peculiaridades, estimaciones, esfuerzos y consecuencias. &lt;/p&gt;
&lt;p&gt;Dicho esto, tengo 2 preguntas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&amp;iquest;C&amp;oacute;mo podr&amp;iacute;amos contextualizar las cosas para asegurar que antes de dar inicio a una soluci&amp;oacute;n construida por ingenieros, todos est&amp;eacute;n viendo hacia el mismo lugar? Esa es una respuesta que probablemente podamos encontrar aqu&amp;iacute; &lt;a href="http://www.crecenegocios.com/los-objetivos-de-una-empresa/"&gt;http://www.crecenegocios.com/los-objetivos-de-una-empresa/&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&amp;iquest;Qu&amp;eacute; estrategia t&amp;eacute;cnica conviene utilizar para un escenario donde el resultado se requiere de inmediato? &lt;b&gt;A veces me pregunto si mi trabajo es preguntar&lt;/b&gt;, sin embargo haciendo un intento de posible respuesta, dejo algunos cuestionamientos respecto al escenario planteado y claro, su implementaci&amp;oacute;n. &lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;Construyendo sitios de forma manual&lt;/h1&gt;
&lt;h2&gt;Pros&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;R&amp;aacute;pida ejecuci&amp;oacute;n usando UI de SharePoint &lt;/li&gt;
&lt;li&gt;Cero dependencia a c&amp;oacute;digo, ensamblado o XMLs, todo queda en la base de datos usando los site definitions y templates propietarios de SharePoint que si est&amp;aacute;n considerados para ser migrados y respaldados &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Cons&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;No es repetible &lt;/li&gt;
&lt;li&gt;Requiere de intervenci&amp;oacute;n manual para replicar en cada ambiente y por lo tanto hay margen de error &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Implementaci&amp;oacute;n&lt;/h2&gt;
&lt;p&gt;Ubicados en el sitio en cuesti&amp;oacute;n accedemos a &lt;strong&gt;Acciones de sitio&lt;/strong&gt;, &lt;strong&gt;Configuraci&amp;oacute;n del sitio, Toda la configuraci&amp;oacute;n del sitio&lt;/strong&gt; y al de final las galer&amp;iacute;as elegimos &lt;strong&gt;crear sitios o &amp;aacute;rea de trabajo&lt;/strong&gt;. Especificamos el nombre, url y los siguientes puntos:&lt;/p&gt;
&lt;table width="400" cellpadding="2" cellspacing="2" border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;Crear sitio&lt;/strong&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;strong&gt;Configurar grupos&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/7573.image_5F00_3C44BF6E.png"&gt;&lt;img height="484" width="300" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/2806.image_5F00_thumb_5F00_2FA6EC85.png" alt="image" border="0" title="image" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td width="200" valign="top"&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/5554.image_5F00_7B629D71.png"&gt;&lt;img height="484" width="435" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/7827.image_5F00_thumb_5F00_1ECF1C0A.png" alt="image" border="0" title="image" style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1&gt;Construyendo sitios program&amp;aacute;ticamente&lt;/h1&gt;
&lt;h2&gt;Pros&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Total portabilidad a m&amp;uacute;ltiples ambientes y sitios con m&amp;iacute;nimo esfuerzo de implementaci&amp;oacute;n &lt;/li&gt;
&lt;li&gt;Aprovisionamiento y des aprovisionamiento flexible de la funcionalidad y dependencias &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Cons&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Crea una dependencia a un WSP, ensamblado en GAC y archivos en 12 hive &lt;/li&gt;
&lt;li&gt;Requiere de construcci&amp;oacute;n, pruebas, empaquetamiento y puesta en marcha en cada ambiente &lt;/li&gt;
&lt;li&gt;Pasa a control de versiones y gesti&amp;oacute;n &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Implementaci&amp;oacute;n&lt;/h2&gt;
&lt;p&gt;En este caso vemos que utilizamos una colecci&amp;oacute;n especial de tipo diccionario para almacenar la URL y Nombre del sitio que deseamos crear. Existen varias formas de hacer lo mismo, en este caso recorremos la colecci&amp;oacute;n de plantillas SharePoint para poder elegir la que usaremos &amp;ldquo;Team Sites&amp;rdquo;. Recorremos la colecci&amp;oacute;n de nuestro diccionario y utilizamos la colecci&amp;oacute;n Webs para agregar un nuevo site pasando los argumento recolectados, lo mas importante destacar en este punto es que el ultimo argumento false indica que no se mantiene la herencia y a continuaci&amp;oacute;n ya dentro del sitio rompemos la herencia, posteriormente recorremos el arreglo que tiene el nombre de los grupos que estaremos construyendo program&amp;aacute;ticamente, ese c&amp;oacute;digo se los debo y si alguien quiere compartirlo adelante.&lt;/p&gt;
&lt;pre class="csharpcode"&gt;           &lt;span style="font-family:Courier New;font-size:xx-small;"&gt;&lt;span class="kwrd"&gt;uint&lt;/span&gt;        lcid_english = 1033;
            &lt;span class="kwrd"&gt;string&lt;/span&gt;      siteUrl = &lt;span class="str"&gt;&amp;quot;http://portal.litwareinc.com&amp;quot;&lt;/span&gt;;
            &lt;span class="kwrd"&gt;string&lt;/span&gt;[]    groupTypeNames = {&lt;span class="str"&gt;&amp;quot;Owners&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;Members&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;Permissions&amp;quot;&lt;/span&gt;,&lt;span class="str"&gt;&amp;quot;Visitors&amp;quot;&lt;/span&gt;};

            Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; targetSites = &lt;span class="kwrd"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt;();
            targetSites.Add(&lt;span class="str"&gt;&amp;quot;demo1&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Sitio de demostracion 1&amp;quot;&lt;/span&gt;);
            targetSites.Add(&lt;span class="str"&gt;&amp;quot;demo2&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Sitio de demostracion 2&amp;quot;&lt;/span&gt;);
            targetSites.Add(&lt;span class="str"&gt;&amp;quot;demo3&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;Sitio de demostracion 3&amp;quot;&lt;/span&gt;);
                    
                &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPSite site = &lt;span class="kwrd"&gt;new&lt;/span&gt; SPSite(siteUrl))
                {
                    SPWebTemplate siteTemplate = &lt;span class="kwrd"&gt;null&lt;/span&gt;;
                    SPWebTemplateCollection templateCollection = site.GetWebTemplates(lcid_english);
                    
                    &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (SPWebTemplate template &lt;span class="kwrd"&gt;in&lt;/span&gt; templateCollection)
                    {
                        &lt;span class="kwrd"&gt;if&lt;/span&gt; (template.Title.Equals(&lt;span class="str"&gt;&amp;quot;Team Site&amp;quot;&lt;/span&gt;))
                        {
                            siteTemplate = template; 
                            &lt;span class="kwrd"&gt;break&lt;/span&gt;;
                        }
                    }

                    &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb web = site.OpenWeb())
                    {
                        &lt;span class="kwrd"&gt;foreach&lt;/span&gt; (KeyValuePair&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;string&lt;/span&gt;&amp;gt; siteInfo &lt;span class="kwrd"&gt;in&lt;/span&gt; targetSites)
                        {
                            &lt;span class="kwrd"&gt;using&lt;/span&gt; (SPWeb newWeb = web.Webs.Add(&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;siteInfo.Key, &lt;/span&gt;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;siteInfo.Value, &lt;/span&gt;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt;.Empty, &lt;/span&gt;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;lcid_english, siteTemplate, &lt;span class="kwrd"&gt;false&lt;/span&gt;, &lt;span class="kwrd"&gt;false&lt;/span&gt;))
                            {
                                newWeb.BreakRoleInheritance(&lt;span class="kwrd"&gt;false&lt;/span&gt;);
                                newWeb.Update();

                                &lt;span class="kwrd"&gt;foreach&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt; groupTypeName &lt;span class="kwrd"&gt;in&lt;/span&gt; groupTypeNames)
                                {
                                    &lt;span class="kwrd"&gt;string&lt;/span&gt; groupType = &lt;span class="kwrd"&gt;string&lt;/span&gt;.Format(&lt;span class="str"&gt;&amp;quot;{0} {1}&amp;quot;&lt;/span&gt;,siteInfo.Value,groupTypeName);
                                    
                                    &lt;span class="rem"&gt;// aqui deberas crear el grupo y asignar los permisos         &lt;/span&gt;
                                }                                                                  
                            }                            
                        }
                    }                
                }&lt;/span&gt; &lt;/pre&gt;
&lt;p&gt;

&lt;/p&gt;
&lt;h1&gt;Construyendo sitios con comandos stsadm.exe&lt;/h1&gt;
&lt;h2&gt;Pros&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Reutilizaci&amp;oacute;n moderada e intervenci&amp;oacute;n manual para especificar sites, groups que se aprovisionaran por los comandos &lt;/li&gt;
&lt;li&gt;F&amp;aacute;cil de corregir y reaccionar ante cualquier error &lt;/li&gt;
&lt;li&gt;La forma recomendada por Microsoft &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Cons &lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Crea una dependencia al script que ejecuta los comandos de staadm.exe para la estructura solicitada &lt;/li&gt;
&lt;li&gt;Pasa a control de versiones y gesti&amp;oacute;n &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Implementaci&amp;oacute;n&lt;/h2&gt;
&lt;p&gt;En esta alternativa utilizamos las sentencias del comando stsadm.exe ubicado en c:\program files\common files\microsoft shared\web server extensions\12\bin especificando mediante &amp;ndash;o la opci&amp;oacute;n que deseamos y mediante los par&amp;aacute;metros especificamos lo que requerimos. Espec&amp;iacute;ficamente &amp;ndash;unique describe que no queremos heredar los permisos. Subrayo en rojo la parte donde especificamos el URL del sitio que estaremos creando. En este caso estamos creando un sitio llamado Sitio 1 y posteriormente creando cuatro grupos en donde los grupos Visitors y Members tienen como due&amp;ntilde;o al grupo Permissions.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;stsadm.exe -o createweb &amp;ndash;url &amp;quot;el url del sitio donde crearemos/&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;url del nuevo sitio&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;quot;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;-lcid 1033 -sitetemplate STS#0&amp;nbsp; -title &amp;quot;Sitio 1&amp;quot; -description &amp;quot;&amp;quot; &amp;ndash;unique&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;stsadm.exe -o creategroup -url &amp;quot;el url del sitio donde aplicaremos&amp;quot;&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt; -name &amp;quot;Sitio 1 Permissions&amp;quot; -description &amp;quot;Permissions of the site&amp;quot; -ownerlogin &amp;quot;administrator@litwareinc.com&amp;quot; -type &amp;quot;Owner&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;stsadm.exe -o creategroup -url &amp;quot;el url del sitio donde aplicaremos&amp;quot;&lt;/span&gt;&lt;a href="http://portal.litwareinc.com/2/&amp;quot;"&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt; -name &amp;quot;Sitio 1 Owners&amp;quot; -description &amp;quot;Owners of the site&amp;quot; -ownerlogin &amp;quot;administrator@litwareinc.com&amp;quot; -type &amp;quot;Owner&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;stsadm.exe -o creategroup -url &amp;quot;el url del sitio donde aplicaremos&amp;quot;&lt;/span&gt;&lt;a href="http://portal.litwareinc.com/2/&amp;quot;"&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt; -name &amp;quot;Sitio 1 Visitors&amp;quot; -description &amp;quot;Visitors of the site&amp;quot; -ownerlogin &amp;quot;Sitio 1 Permissions&amp;quot; -type &amp;quot;Visitor&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;stsadm.exe -o creategroup -url &amp;quot;el url del sitio donde aplicaremos&amp;quot;&lt;/span&gt;&lt;a href="http://portal.litwareinc.com/2/&amp;quot;"&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:Courier New;font-size:xx-small;"&gt; -name &amp;quot;Sitio 1 Members&amp;quot; -description &amp;quot;Members of the site&amp;quot; -ownerlogin &amp;quot;Sitio 1 Permissions&amp;quot; -type &amp;quot;Member&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Personalmente en ocasiones he llegado a pensar, &amp;iquest;qu&amp;eacute; es mas complejo?, la tecnolog&amp;iacute;a o la psicolog&amp;iacute;a, en fin.&lt;/p&gt;
&lt;p&gt;&amp;iquest;Cu&amp;aacute;l es la mejor alternativa? Depende &lt;img src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/8400.wlEmoticon_2D00_smile_5F00_2F86A0EB.png" alt="Sonrisa" class="wlEmoticon wlEmoticon-smile" style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" /&gt;&lt;/p&gt;</description></item><item><title>How to manage the Master Page and Layouts List on SharePoint</title><link>http://msmvps.com/blogs/officept/archive/2011/02/10/how-to-manage-the-master-page-and-layouts-list-on-sharepoint.aspx</link><pubDate>Thu, 10 Feb 2011 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1787963</guid><dc:creator>Joao</dc:creator><description>&lt;p&gt;&lt;font size="2"&gt;Here is an easy way to manage the _catalogs/masterpages folder. &lt;/font&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;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;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(url))&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (SPWeb web = site.OpenWeb())&lt;br /&gt;   {&lt;br /&gt;      SPFolder fld = web.Folders[&lt;span style="color:#006080;"&gt;&amp;quot;_catalogs&amp;quot;&lt;/span&gt;];&lt;br /&gt;      SPFolder mPagesFolder = fld.SubFolders[&lt;span style="color:#006080;"&gt;&amp;quot;_catalogs/masterpage&amp;quot;&lt;/span&gt;];&lt;br /&gt;      &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (SPFile mpage &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; mPagesFolder.Files)&lt;br /&gt;      {&lt;br /&gt;        &lt;span style="color:#008000;"&gt;//Go         &lt;/span&gt;&lt;br /&gt;      }&lt;br /&gt;   }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="csharpcode"&gt;&lt;font face="Tahoma"&gt;&lt;/font&gt;&lt;/pre&gt;


&lt;p&gt;&lt;font size="2"&gt;Good Coding&lt;/font&gt;&lt;/p&gt;&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;</description></item><item><title>Sandbox Solutions in SharePoint 2010</title><link>http://msmvps.com/blogs/marafa/archive/2010/10/16/sandbox-solutions-in-sharepoint-2010.aspx</link><pubDate>Sat, 16 Oct 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1780105</guid><dc:creator>Anonymous</dc:creator><description>Hi All,&lt;br /&gt;&lt;br /&gt;Today i was presenting in SharePoint Saturday DC Federal and the event was hosted in Booz Allen Hamilton in McLean,VA.&lt;br /&gt;&lt;br /&gt;I enjoyed the questions from Devs,Architects and attendees. It was really awesome meeting you all. The questions were primarily for secured sandbox solutions which are important for the federal employees and secured environments.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In this session i covered the following topics:&lt;br /&gt;1) Sandbox overview.&lt;br /&gt;2) Sandbox life cycle.&lt;br /&gt;3) Developing and Deploying Sandbox solutions.&lt;br /&gt;4) Custom workflow actions in workflow.&lt;br /&gt;5) Custom Validator.&lt;br /&gt;6) Resource Management.&lt;br /&gt;7) Blocking Sandbox Solutions.&lt;br /&gt;8) Points to metrics equation and how to convert points to different units.&lt;br /&gt;&lt;br /&gt;And more...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Presentation url:&lt;br /&gt;http://cid-4bc94054914a6469.office.live.com/self.aspx/SharePoint%20DC%20Federal/Sandbox%20Solutions%20In%20SharePoint%202010.pptx&lt;br /&gt;&lt;br /&gt;Demos url:&lt;br /&gt;http://cid-4bc94054914a6469.office.live.com/self.aspx/Blog%20Code/SPSDCFederal.zip&lt;br /&gt;&lt;br /&gt;Hope this helps. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,Mostafa Arafa&lt;br /&gt;twitter.com/mostafaelzoghbi&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/25545748-7170339966413225170?l=moustafa-arafa.blogspot.com" alt="" /&gt;&lt;/div&gt;</description></item><item><title>Mocking SPContext.Current with JustMock</title><link>http://msmvps.com/blogs/mehfuz/archive/2010/09/27/mocking-spcontext-current-with-justmock.aspx</link><pubDate>Mon, 27 Sep 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1778828</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;Today, I happen to find an interesting post on mocking SharePoint context using TypeMock. Being a JustMocker, i thought rather to follow the footsteps and see if can do the same with JustMock. I am no SharePoint expert. Occasionally, I use a Windows 2003 VM with SharePoint server installed which gives me the required flavor of SharePoint for testing&amp;nbsp; SP capabilities of JM.&lt;/p&gt; &lt;p&gt;Anyway, here is the original post that i am going to recycle using JustMock.&lt;/p&gt; &lt;p&gt;&lt;a title="http://meronymy.blogspot.com/2010/09/mocking-spcontextcurrent-with-typemock.html" href="http://meronymy.blogspot.com/2010/09/mocking-spcontextcurrent-with-typemock.html" target="_blank"&gt;http://meronymy.blogspot.com/2010/09/mocking-spcontextcurrent-with-typemock.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The scenario here is pretty simple. There is a method that returns an URL from the current &lt;em&gt;SPContext&lt;/em&gt; which i am going to mock in order to return my expected URL.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Therefore, the class for which the behavior to be mocked is similar to:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:24e40be3-6418-4eea-9e16-f31fac6e6e3e" class="wlWriterEditableSmartContent"&gt; &lt;div class="le-pavsc-container"&gt; &lt;div style="background:#ddd;max-height:300px;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0 0 0 2em;padding:0 0 0 5px;"&gt; &lt;li&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;Site&lt;/span&gt;&lt;/li&gt; &lt;li class="even"&gt;{&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; GetHomePageUrl()&lt;/li&gt; &lt;li class="even"&gt;    {&lt;/li&gt; &lt;li&gt;        &lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;SPContext&lt;/span&gt;.Current.Site.Url;&lt;/li&gt; &lt;li class="even"&gt;    }&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Finally, the test that creates fake instance of &lt;em&gt;SPSite&lt;/em&gt; and passes it to the current context:&lt;/p&gt; &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:118a35e9-4381-4916-9997-295cc7aafb5a" class="wlWriterEditableSmartContent"&gt; &lt;div class="le-pavsc-container"&gt; &lt;div style="background:#ddd;max-height:300px;overflow:auto;"&gt; &lt;ol style="background:#ffffff;margin:0 0 0 2.5em;padding:0 0 0 5px;"&gt; &lt;li&gt;[&lt;span style="color:#2b91af;"&gt;TestMethod&lt;/span&gt;]&lt;/li&gt; &lt;li class="even"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; ShouldAssertSPSiteUrlWithExpected()&lt;/li&gt; &lt;li&gt;{&lt;/li&gt; &lt;li class="even"&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fakeSiteUrl = &lt;span style="color:#a31515;"&gt;&amp;quot;http://www.telerik.com&amp;quot;&lt;/span&gt;;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#0000ff;"&gt;var&lt;/span&gt; fakeSharepointSite = &lt;span style="color:#2b91af;"&gt;Mock&lt;/span&gt;.Create&amp;lt;&lt;span style="color:#2b91af;"&gt;SPSite&lt;/span&gt;&amp;gt;();&lt;/li&gt; &lt;li class="even"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#008000;"&gt;// Arrange&lt;/span&gt;&lt;/li&gt; &lt;li class="even"&gt;    &lt;span style="color:#2b91af;"&gt;Mock&lt;/span&gt;.Arrange(() =&amp;gt; &lt;span style="color:#2b91af;"&gt;SPContext&lt;/span&gt;.Current.Site).Returns(fakeSharepointSite);&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#2b91af;"&gt;Mock&lt;/span&gt;.Arrange(() =&amp;gt; fakeSharepointSite.Url).Returns(fakeSiteUrl);&lt;/li&gt; &lt;li class="even"&gt;&amp;nbsp;&lt;/li&gt; &lt;li&gt;    &lt;span style="color:#008000;"&gt;// Act&lt;/span&gt;&lt;/li&gt; &lt;li class="even"&gt;    &lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; actualUrl = &lt;span style="color:#2b91af;"&gt;Site&lt;/span&gt;.GetHomePageUrl();&lt;/li&gt; &lt;li&gt;&amp;nbsp;&lt;/li&gt; &lt;li class="even"&gt;    &lt;span style="color:#2b91af;"&gt;Assert&lt;/span&gt;.AreEqual(fakeSiteUrl, actualUrl);&lt;/li&gt; &lt;li&gt;}&lt;/li&gt; &lt;/ol&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;pre class="brush: csharp;"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;p&gt;I have used&amp;nbsp; JustMock SP1 for the purpose and thanks to the original author for this sample.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope that helps&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7620872" width="1" height="1" alt="" /&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/burncsharp?a=1_Z4Z1qYSCc:RfzkuM-OLl8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/burncsharp?d=yIl2AUoC8zA" border="0" alt="" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/burncsharp?a=1_Z4Z1qYSCc:RfzkuM-OLl8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/burncsharp?d=qj6IDK7rITs" border="0" alt="" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/burncsharp?a=1_Z4Z1qYSCc:RfzkuM-OLl8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/burncsharp?d=7Q72WNTAKBA" border="0" alt="" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/burncsharp?a=1_Z4Z1qYSCc:RfzkuM-OLl8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/burncsharp?i=1_Z4Z1qYSCc:RfzkuM-OLl8:F7zBnMyn0Lo" border="0" alt="" /&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/burncsharp/~4/1_Z4Z1qYSCc" height="1" width="1" alt="" /&gt;</description></item><item><title>Sandbox Solutions in SharePoint 2010 session - SharePoint Saturday New York City</title><link>http://msmvps.com/blogs/marafa/archive/2010/07/31/sandbox-solutions-in-sharepoint-2010-session-sharepoint-saturday-new-york-city.aspx</link><pubDate>Sat, 31 Jul 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1775128</guid><dc:creator>Anonymous</dc:creator><description>Hi All,&lt;br /&gt;We had a successful SharePoint event in New York City on 31 July 2010 at Microsoft - Manhattan Office. On this event i presented a session covering: &amp;quot;SharePoint 2010 Sandbox solutions best practices&amp;quot;,&lt;br /&gt;&lt;br /&gt;In this event i covered the following topics in Sandbox solutions:&lt;br /&gt;Sandbox solutions overview, Sandbox Architecture, SP 07 solutions challenges and SP 2010 approach, Sandbox solutions life cycle, limitations, SP Power Tools for VS 2010, Resource management for sandbox solutions, Load balancing and solutions validation framework.&lt;br /&gt;&lt;br /&gt;The session was so interactive and i had amazing group between SP developers and SP Admins/Architect and we had nice conversation about sandbox solutions best practices and how admins can check developers&amp;#39; work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;What was the most interesting things/topics in the session- summary:&lt;br /&gt;1) SharePoint Power Tools for VS 2010 and how to download it using Extension Manager in VS 2010.&lt;br /&gt;2) Sandbox architecture and the SPUCWorkerProcess and how SP handle the lifecycle of loading/validate the sandbox solutions.&lt;br /&gt;3) Sandbox solutions project items that you can develop such as: workflow activities, content types, site columns, visual webpart support ( HOT Topic having SP  power tools in VS2010)...etc.&lt;br /&gt;4) Resource management / solutions blocking.&lt;br /&gt;5) Importance of solution validation for any organization.&lt;br /&gt;&lt;br /&gt;Event - Share the stories:&lt;br /&gt;This section is not technical, but it shows some fun time during the event.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Speakers&amp;#39; fun: @ Speakers&amp;#39; room&lt;/span&gt;&lt;br /&gt;I was talking with few speakers that i bought a new notebook for my travels, that&lt;br /&gt;has super configurations and RAM and very light and at the same time the battery life is 8 hours :) and i asked them how much do yo think i bought this laptop: and they gave me prices from 700-1500 $, then when i just said i bought it with 200 $ throught a sale- brand new, one of the speakers told me from which truck did you get it Mostafa ?!!! this was so funny and interesting.&lt;br /&gt;Discussions among: Thomas M Daly, Ricardo Palhano, Eugene Rosenfeld and myself :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;** Event Url:&lt;br /&gt;http://www.sharepointsaturday.org/ny/default.aspx&lt;br /&gt;&lt;br /&gt;** Presentation Url:&lt;br /&gt;http://bit.ly/bBKXvt&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Regards,Mostafa Arafa&lt;br /&gt;twitter.com/mostafaelzoghbi&lt;div class="blogger-post-footer"&gt;&lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/25545748-868242871481684403?l=moustafa-arafa.blogspot.com" alt="" /&gt;&lt;/div&gt;</description></item></channel></rss>