Sharepoint CSS Builder
La mayoría de las ocasiones al trabjar con Sharepoint es necesario ocultar algún(os) elemento(s) de la interface por default de Sharepoint, ahora, esta herramienta publicada como servicio Web puede ayudarnos a generar rápidamente el CSS necesario:
MOSS Object Model: Obtener la lista de grupos de Sharepoint a los que pertenece el usuario logeado
private List<string> GetSPGroups() { List<string> groupNames = new List<string>(); SPGroupCollection groups = SPContext.Current.Web.CurrentUser.Groups; foreach (SPGroup group in groups) { groupNames.Add(group.Name); } return groupNames; }
Más posibilidades con la clase SPGroup:
http://msdn.microsoft.com/es-es/library/microsoft.sharepoint.spgroup.aspx
Sharepoint PeopleEditor control (AKA PeoplePicker)
Para usar el people picker en una página ASP.NET:
<SharePoint:PeopleEditor runat="server" ID="PE1" AutoPostBack="true" AllowEmpty="false" SelectionSet="User,SecGroup,SPGroup" BorderWidth="0" Width="200px" PlaceButtonsUnderEntityEditor="false" Rows="1"/>
Validación de al menos un usuario resuelto:
(PE1.Accounts.Count<1)
Guardando los usuarios seleccionados en una columna de tipo Person:
SPFieldUserValueCollection values = new SPFieldUserValueCollection(); foreach (PickerEntity entity in PE1.ResolvedEntities) { SPFieldUserValue fuv = new SPFieldUserValue(SPContext.Current.Web, Convert.ToInt16(entity.EntityData[PeopleEditorEntityDataKeys.UserId]), entity.Description); values.Add(fuv); } oListItem["ColumnaTipoPersona"] = values;
Recuperando el valor guardado en una columna de tipo Person y asignación al control PeoplePicker:
// oListItem = SPListItem de la lista donde se encuentra la columna tipo Person: SPFieldUserValue ppUser = new SPFieldUserValue(oWebsiteRoot, oListItem["ColumnaTipoPersona"].ToString()); PE1.CommaSeparatedAccounts = ppUser.User.LoginName;
Para la asignación de valor tambien se puede usar directamente una cuenta de usuario con la forma “dominio\usuario”, sin embargo es recomendable asignar el valor desde la clase SPFieldUserValue, sobre todo cuando sean valores recuperados desde otro origen.
Referencias:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.peopleeditor.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfielduservalue.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.pickerentity.aspx
Es posible realizar configuraciones especiales como incluir propiedades extra del directorio activo, delimitar las búsquedas dentro de un arbol del bosque del A.D., etc, vía la utilería stsadm:
Referencia técnica de comandos STSADM para WSS y MOSS en Silverlight
Todos los comandos STSADM incluyendo la disponibilidad según la versión instalada:
Los requisitos de software preliminares de Sharepoint 2010, 64 bits y más 64 bits
El día de hoy el equipo de desarrollo de Sharepoint publica en su blog oficial esta lista preliminar de requisitos de software y hardware. No es nada nuevo que Sharepoint 2010 únicamente saldrá en versión para 64 bits, pero no está demás hechar un vistazo para ir teniendo en cuenta en la planeación. Por lo mientras las premisas básicas:
- SharePoint Server 2010 will be 64-bit only.
- SharePoint Server 2010 will require 64-bit Windows Server 2008 or 64-bit Windows Server 2008 R2.
- SharePoint Server 2010 will require 64-bit SQL Server 2008 or 64-bit SQL Server 2005.
Sharepoint Designer ahora es gratuito
Con el fin de reforzar la penetración y utilización de las tecnologías Sharepoint, ahora Microsoft decide hacer gratuito este producto.
http://office.microsoft.com/en-us/sharepointdesigner/HA103607611033.aspx
Recopilación de ligas interesantes sobre MOSS, VS 2010, Windows Mobile
De vuelta a la blogosfera un pequeño recopilado de links utilizados recientemente:
- Integrando FCKEditor en MOSS: Link
- Integrando TinyMCE en MOSS: Link
- Kaldeera, interface gratuita para crear flujos de trabajo de MOSS mucho más allá de las posibilidades de SPDesigner: Link
- El nuevo look de Visual Studio 2010: Link
- IrisBrowser, un prometedor navegador para Windows Mobile (Inaugurando la nueva sección de Windows Mobile XD): Link
- Microsoft Recite Tech Preview, interesante aplicación para Windows Mobile 6 para grabar notas de voz y BUSCAR sobre ellas: Link
Azure Services Platform – Cloud computing para todos
Hoy inicio la PDC y Ray Ozzie anunció oficialmente Windows Azure o la Azure Services Platform definida como:
The Azure™ Services Platform (Azure) is an internet-scale cloud services platform hosted in Microsoft data centers, which provides an operating system and a set of developer services that can be used individually or together. Azure’s flexible and interoperable platform can be used to build new applications to run from the cloud or enhance existing applications with cloud-based capabilities. Its open architecture gives developers the choice to build web applications, applications running on connected devices, PCs, servers, or hybrid solutions offering the best of online and on-premises.
Los componentes clave de la plataforma son:
Sin duda un esfuerzo muy importante que ve uno de sus primeros milestones con este lanzamiento y de lo que seguramente estaremos hablando mucho en los siguientes días.
Más info:
http://www.microsoftpdc.com/
http://www.microsoft.com/azure/default.mspx
Error de JavaScript al utilizar el editor de texto enriquecido de la Content Editor WebPart
En días pasados en un proyecto de una intranet se presentaba el siguiente error al intentar utilizar el editor de texto enriquecido de una Content Editor WebPart de MOSS:
El texto del error es el siguiente:
Internet Explorer Script Error
An error has occurred in the script on this page.
Line: 3032
Char: 2
Error: Object expected
Code: 0
URL: http://server/_layouts/RTE2PUEditor.aspx
Para tener un mejor contexto, la instalación de MOSS tiene el SP1, así como el Language Pack en español (incluyendo el Service Pack del Language Pack).
Investigando un poco y siguiendo las sugerencias de este link, el problema seguía, pero la pista más importante encontrada ahí es que era un problema que tenía que ver con el Service Pack de MOSS, en particular con el Service Pack del Language Pack.
Así que la solución fue:
Localizar la carpeta "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\".
Dentro de esta carpeta, entrar a "1033" y copiar los archivos:
- BFORM.JS
- FORM.JS
Para después pegarlos en la carpeta "3082" o en la carpeta correspondiente al idioma bajo el cual este el sitio donde se presenta el error, ya que la causa es un error ocurrido al momento de la instalación del Service Pack del Language Pack que no actualizó estos archivos, ya que en un sitio en inglés el problema no ocurría.
Code behind en Master.Pages y Page Layouts de MOSS y/o WSS
Hay ocasiones en que es necesario que alguna Master.Page o un Page Layout de MOSS tengan código especial. Recordemos que al final del día estamos trabajando con una aplicación ASP.NET, por lo tanto para poder habilitar esta posibilidad, es necesario modificar el web.config del sitio de MOSS o WSS correspondiente ya agregar la siguiente configuración:
-
<sharePoint><safeMode ....>....
-
<pageParserPaths>
-
<pageParserPath VirtualPath=“/_catalogs/masterpage/*“ CompilationMode=“Always“ AllowServerSideScript=“true“ IncludeSubFolders=“true“ />
-
</pageParserPaths>
El atributo VirtualPath es importante ya que aquí especificamos los paths dentro de los cuales los archivos podrán tener code behind, de tal forma que podemos tener un valor como el siguiente si queremos permitir code behind en todos los paths del sitio:
-
VirtualPath="/*"
Una vez modificado el web.config del sitio, el código se puede agregar en el estilo “inline code” de ASP.NET, es decir, en el mismo archivo ASPX dentro de una tag <script type=”C#” runat=”server”>, teniendo con esto disponible el acceso a los eventos de una página ASP.NET común y corriente, además de acceso a controles que pudiesen existir en nuestra Master.Page o Page Layout:
-
<script type="text/c#" runat="server">
-
protected void Page_Load(object sender, EventArgs e)
-
{
-
SPSite oSiteCollection = SPContext.Current.Site;
-
}
-
</script>
De esta forma, también se tiene acceso al modelo de objetos de Sharepoint, para lo cual es necesario agregar la referencia a los namespaces correspondientes, agregando tags como esta al principio del código HTML:
-
<%@ Import Namespace="Microsoft.SharePoint" %>
Más info: