<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.ms/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>Haaron Gonzalez : Visual Studio 2008, Soporte</title><link>http://geeks.ms/blogs/haarongonzalez/archive/tags/Visual+Studio+2008/Soporte/default.aspx</link><description>Etiquetas: Visual Studio 2008, Soporte</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Programando con Listas en Windows SharePoint Services 3.0</title><link>http://geeks.ms/blogs/haarongonzalez/archive/2013/04/10/programando-con-listas-en-windows-sharepoint-services-3-0.aspx</link><pubDate>Wed, 10 Apr 2013 19:59:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:209134</guid><dc:creator>Haaron Gonzalez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/haarongonzalez/rsscomments.aspx?PostID=209134</wfw:commentRss><comments>http://geeks.ms/blogs/haarongonzalez/archive/2013/04/10/programando-con-listas-en-windows-sharepoint-services-3-0.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span lang="ES-MX" style="mso-ansi-language:ES-MX;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;Aqu&amp;iacute; un entrenamiento que di hace muchos a&amp;ntilde;os para una empresa en la que trabaj&amp;eacute; como l&amp;iacute;der de practica de colaboraci&amp;oacute;n. B&amp;aacute;sicamente prepar&amp;eacute; esta presentaci&amp;oacute;n para mostrar a programadores como manejar listas y elementos de forma program&amp;aacute;tica a fin de introducirlos al mundo de la programaci&amp;oacute;n SharePoint.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="ES-MX" style="mso-ansi-language:ES-MX;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="font-size:small;"&gt;Durante una revisi&amp;oacute;n a un respaldo me encontr&amp;eacute; con los archivos fuente de este WebCast y decid&amp;iacute; compilarlo como video para subirlo a &lt;a href="http://www.youtube.com/haarongo"&gt;mi canal&lt;/a&gt; de Youtube. Si por alguna raz&amp;oacute;n sigues dando soporte a plataforma SharePoint 2007 (MOSS o WSS 3.0) en temas de programaci&amp;oacute;n este video sin duda es una referencia que te permitir&amp;aacute; entender los fundamentos de programaci&amp;oacute;n de listas en SharePoint. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span lang="ES-MX" style="mso-ansi-language:ES-MX;"&gt;&lt;span style="font-family:Calibri;"&gt;Adem&amp;aacute;s, creo que los temas aqu&amp;iacute; mencionados tambi&amp;eacute;n aplican para SharePoint 2010 &lt;/span&gt;&lt;/span&gt;&lt;span lang="ES-MX" style="font-family:Wingdings;mso-ansi-language:ES-MX;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size:small;"&gt;&lt;span lang="ES-MX" style="font-family:Wingdings;mso-ansi-language:ES-MX;mso-ascii-font-family:Calibri;mso-hansi-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;iframe width="640" frameborder="0" src="http://www.youtube.com/embed/2Uf4GINu0ko" height="480"&gt;&lt;/iframe&gt;&lt;/p&gt;
Originalmente publicado en msmvps.com&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=209134" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Code/default.aspx">Code</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Soporte/default.aspx">Soporte</category></item><item><title>Usando los controles de SharePoint en WebParts</title><link>http://geeks.ms/blogs/haarongonzalez/archive/2011/07/28/usando-los-controles-de-sharepoint-en-webparts.aspx</link><pubDate>Thu, 28 Jul 2011 17:30:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:198474</guid><dc:creator>Haaron Gonzalez</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/haarongonzalez/rsscomments.aspx?PostID=198474</wfw:commentRss><comments>http://geeks.ms/blogs/haarongonzalez/archive/2011/07/28/usando-los-controles-de-sharepoint-en-webparts.aspx#comments</comments><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://geeks.ms/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://geeks.ms/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://geeks.ms/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://geeks.ms/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://geeks.ms/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://geeks.ms/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://geeks.ms/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://geeks.ms/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://geeks.ms/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://geeks.ms/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://geeks.ms/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;
Originalmente publicado en msmvps.com&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=198474" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/WebPart/default.aspx">WebPart</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Soporte/default.aspx">Soporte</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/WSS/default.aspx">WSS</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Practicas/default.aspx">Practicas</category></item><item><title>Programación ASP.NET en WebParts de SharePoint</title><link>http://geeks.ms/blogs/haarongonzalez/archive/2011/07/06/programaci-243-n-asp-net-en-webparts-de-sharepoint.aspx</link><pubDate>Thu, 07 Jul 2011 00:12:00 GMT</pubDate><guid isPermaLink="false">2a2e7ade-7474-448b-9de5-1515d8bb7d1b:197347</guid><dc:creator>Haaron Gonzalez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.ms/blogs/haarongonzalez/rsscomments.aspx?PostID=197347</wfw:commentRss><comments>http://geeks.ms/blogs/haarongonzalez/archive/2011/07/06/programaci-243-n-asp-net-en-webparts-de-sharepoint.aspx#comments</comments><description>&lt;p&gt;Si eres un de desarrollador ASP.NET que se está iniciando en desarrollo SharePoint este ejemplo puede ser de utilidad. Básicamente, usaremos un enfoque de desarrollo de WebParts basado en el uso de Web User Controls de ASP.NET 2.0.&lt;/p&gt;  &lt;p&gt;Antes que nada utilizaremos las siguientes herramientas:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 2008 Professional &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=841" target="_blank"&gt;Visual Studio 2008 Extensions for SharePoint&lt;/a&gt; (VSeWSS 1.2 o 1.3) &lt;/li&gt;    &lt;li&gt;Windows SharePoint Services 3.0 o Microsoft Office SharePoint Server 2007 &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Dentro de nuestro servidor de desarrollo SharePoint cargamos Visual Studio 2008 y elegimos la creación de un proyecto SharePoint en blanco, este proyecto lo nombraremos ASPNETWebPart.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/1108.clip_5F00_image002_5F00_5EBC6F5C.gif"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/4452.clip_5F00_image002_5F00_thumb_5F00_168EB380.gif" width="780" height="538" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Especificaremos que el nivel de confianza de esta solución SharePoint sea Full Trust y la razón es que usaremos un método Page.LoadControl que requiere de permisos elevados para ejecutarse, me parece que la razón es porque este método lee de la ruta de archivos SharePoint “12 hive” y para ello requiere que el proceso w3wpg.exe solicite los permisos necesarios.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/0576.clip_5F00_image004_5F00_43A3A04E.gif"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image004" border="0" alt="clip_image004" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6443.clip_5F00_image004_5F00_thumb_5F00_0E2ADE29.gif" width="451" height="278" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Usando la solución generada por Visual Studio 2008 dentro del Solution Explorer agregamos un nuevo Empty Web Site de ASP.NET llamado ASPNETWebPArtsWebSite ubicándolo en la misma carpeta creada por nuestro proyecto anterior.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/2148.clip_5F00_image006_5F00_4D8891B9.gif"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image006" border="0" alt="clip_image006" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/5314.clip_5F00_image006_5F00_thumb_5F00_3AD39802.gif" width="780" height="516" /&gt;&lt;/a&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;Dentro de nuestro proyecto ASPNETWebPartWebSite agregamos un &lt;b&gt;Web User Control&lt;/b&gt; llamado ASPNETWebUserControl y es muy importante que no deseleccionemos el cuadro de verificación &lt;b&gt;Place Code in separate file.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/3107.clip_5F00_image008_5F00_39FB3218.gif"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image008" border="0" alt="clip_image008" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/1452.clip_5F00_image008_5F00_thumb_5F00_04163CFE.gif" width="780" height="525" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Esto nos crea un simple archivo con extensión .ascx dentro de nuestro proyecto ASP.NET. A estas alturas podremos realizar cualquier funcionalidad ASP.NET. Solo hay que asegurarnos de no generar dependencias a otras carpetas como App_Code, tratemos de generar todo el código y funcionalidad sobre el Web User Control. En mi caso usare las características de vinculación de controles de ASP.NET para crear el más humilde de los GridView de ASP.NET. Podemos crear una página Defaullt.aspx para probar el funcionamiento del mismo. A continuación agregare un cuadro de texto , un botón y un label.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/4628.clip_5F00_image010_5F00_4A26FA11.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image010" border="0" alt="clip_image010" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/2500.clip_5F00_image010_5F00_thumb_5F00_09187AAD.jpg" width="784" height="517" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;El resultado es un código Markup que podría tener sin duda código C#. En la sección de Script runat=”Server” estarían los eventos disparados por los controles de nuestro Web User Control. Solo que para propósitos de este ejemplo quiero hacer que los eventos sean disparados desde un WebPart de SharePoint y no necesariamente desde aquí.&lt;/p&gt;  &lt;p&gt;A continuación en nuestro proyecto SharePoint agregamos un elemento de tipo Template, el cual nos creara un archivo dentro de la ruta interna de archivos de SharePoint o más conocida como 12 hive “C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6646.clip_5F00_image012_5F00_40EABED0.gif"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image012" border="0" alt="clip_image012" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6574.clip_5F00_image012_5F00_thumb_5F00_4731955E.gif" width="780" height="481" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Eliminamos el archivo generado TemplateFile.txt y agregamos la carpeta CONTROLTEMPLATES y dentro la carpeta ASPNETWebParts. Esto permite incluir en nuesdttro paquete de deployment generado por nuestro proyecto SharePoint una nueva carpeta que será aprovisionada de forma confiable en la ruta 12 hive de cada Web Front End de la granja SharePoint. Agregara una nueva carpeta llamada ASPNETWebParts. Dentro de esta carpeta agregaremos como elemento existente nuestro archivo .ascx. El resultado es algo asi:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6012.clip_5F00_image014_5F00_2D5D5F2F.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image014" border="0" alt="clip_image014" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/3060.clip_5F00_image014_5F00_thumb_5F00_3AC37235.jpg" width="376" height="282" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ya casi terminamos, a continuación agregamos el código de un WebPart de SharePoint que nos permitirá cargar en tiempo de ejecución el .ascx recién desarrollado. Dentro de nuestro proyecto ASPNETWebPart damos clic derecho y agregamos un nuevo elemento de tipo Web Part bajo el nombre ASPNETWebPart. En realidad puede ser cualquier nombre.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/0160.clip_5F00_image016_5F00_4C33D30D.gif"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image016" border="0" alt="clip_image016" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/4478.clip_5F00_image016_5F00_thumb_5F00_5DA433E5.gif" width="780" height="481" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Abrimos el código de nuestro WebPart y agregaremos lo siguiente:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Una variable miembro de tipo UserControl, esta se utilizara como un placeholder de todo el ASPNETWebUserControl.ascx. &lt;/li&gt;    &lt;li&gt;Sobre escribimos el método Render para escribir en el flujo de salida de nuestro WebPart el contenido del WebUserControl. &lt;/li&gt;    &lt;li&gt;Múltiples variables miembro que representan cada uno de los controles que existen en nuestro archivo ASPNETWebUserControl.ascx &lt;/li&gt;    &lt;li&gt;En el evento CreateChaldControls hacemos una instancia de UserControl mediante Page.LoadControl y de cada uno de los controles; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Básicamente podremos tener el control de la funcionalidad desde el WebPart y esto facilita el hacer uso del modelo de objetos de SharePoint para leer datos de otras listas o hacer querys que podamos usar para después presentarlos en el Web User Control. &lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using System;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using System.Runtime.InteropServices;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using System.Web.UI;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using System.Web.UI.WebControls;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using System.Web.UI.WebControls.WebParts;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using System.Xml.Serialization;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using Microsoft.SharePoint;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using Microsoft.SharePoint.WebControls;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;using Microsoft.SharePoint.WebPartPages;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;namespace ASPNETWebPart&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;[Guid(&amp;quot;7625d718-fb33-4bbc-b05f-2f1ff0dd4a88&amp;quot;)]&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;public class ASPNETWebPart : System.Web.UI.WebControls.WebParts.WebPart&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;public ASPNETWebPart()&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;this.ExportMode = WebPartExportMode.All;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;protected override void Render(HtmlTextWriter writer)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;this.ascxControl.RenderControl(writer);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;UserControl ascxControl;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;Button button1;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;TextBox textbox1;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;Label label1;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;GridView gridView1;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;protected override void CreateChildControls()&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;base.CreateChildControls();&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;ascxControl = (UserControl)Page.LoadControl(@&amp;quot;/_controltemplates/ASPNETWebParts/ASPNETWebUserControl.ascx&amp;quot;);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;button1 = (Button)this.ascxControl.FindControl(&amp;quot;Button1&amp;quot;);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;textbox1 = (TextBox)this.ascxControl.FindControl(&amp;quot;TextBox1&amp;quot;);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;label1 = (Label)this.ascxControl.FindControl(&amp;quot;Label1&amp;quot;);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;gridView1 = (GridView)this.ascxControl.FindControl(&amp;quot;GridView1&amp;quot;);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;button1.Click += new EventHandler(button1_Click);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;this.Controls.Add(ascxControl);&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;void button1_Click(object sender, EventArgs e)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;label1.Text = textbox1.Text;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000" size="4" face="Cordia New"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;El resultado:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6471.clip_5F00_image018_5F00_1D01E776.jpg"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="clip_image018" border="0" alt="clip_image018" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/haarongonzalez.metablogapi/6557.clip_5F00_image018_5F00_thumb_5F00_116C2A37.jpg" width="380" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;
Originalmente publicado en msmvps.com&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://geeks.ms/aggbug.aspx?PostID=197347" width="1" height="1"&gt;</description><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Code/default.aspx">Code</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Demo/default.aspx">Demo</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/.NET+2.0/default.aspx">.NET 2.0</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/WSS+3.0/default.aspx">WSS 3.0</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/SharePoint+2007/default.aspx">SharePoint 2007</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Issues/default.aspx">Issues</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Soporte/default.aspx">Soporte</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Desarrollo/default.aspx">Desarrollo</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/WSS/default.aspx">WSS</category><category domain="http://geeks.ms/blogs/haarongonzalez/archive/tags/Practicas/default.aspx">Practicas</category></item></channel></rss>