Marc Bàguena
Project Manager especializado en la gestión de proyectos con tecnologías Microsoft [Sharepoint, Project Server, MSS, MOSS, .NET, ASP.NET]
03 diciembre, 2012
Os dejo la presentación para que podáis ojear las novedades espectaculares que trae consigo el producto. Disfrutadlo!!
24 marzo, 2012
Número 11 de la revista CompartiMOSS
Éste mes tengo el placer de colaborar en uno de los artículos publicados en #11 de la revista CompartiMOSS. Los contenidos de la edición son los siguientes:
- Editorial
- Conexiones BCS en el servicio de perfiles (Miguel Tabera Pacheco)
- Combinando SharePoint y Project Server (Arnau Roca Palà, Marc Bàguena Cuéllar)
- Linq To SharePoint (Juan Pablo Capdevila)
- Sitios de Publicación de SharePoint 2010 (Santiago J. Porras Rodríguez)
- Creando documentos profesionales en Microsoft Word 2010 (Alejandro Garrido)
- Entrevista con David Martos
- Lista personalizada con Excel (Marcus Vinícius Bittencourt)
- ¿Cómo tener éxito con la adopción de usuario de soluciones SharePoint? (Edin Kapic)
- UXDesignPoint
- Exposición de un sitio web con autenticación por claims usando ADFS - Parte 1 (Diego Gatti)
- Customización y ampliación de estadísticas de uso (Víctor Cea Espejo)
- Firma Electrónica sobre SharePoint: principales ventajas y aplicaciones (Miguel López)
- Client Object Model en SharePoint 2010 / Modificando la seguridad (Juan Pablo Pussacq Laborde)
- El concepto de Nube Privada (Daniel S. Levi)
Descargaros la revista desde el siguiente enlace: http://www.gavd.net/servers/compartimoss/compartimoss_main.aspx
22 febrero, 2012
Birchman4SharePoint.wordpress.com
- SharePoint
- Project Server
- Nintex
- ASP.NET
y demás productos y soluciones de la misma índole.
Visitadnos!!! http://birchman4sharepoint.wordpress.com
08 enero, 2012
Excel Services: Consulta de datos externos
Entonces, para solucionar ésta limitación, el workaround utilizado pasa por un código simple que lo único que hace es abrir el Excel en local, con el cliente pesado, refrescar las conexiones, guardarlo y subirlo de nuevo a la librería de SharePoint.
A grandes rasgos, el código sería similar al siguiente:
static void Main(string[] args)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite("http://demo.sugesspps.com/"))
{
//Declaramos los objetos necesarios de Interop.Excel
Application oExcelApp = new Application();
Workbook oWorkBook = null;
Worksheet oSheet = new Worksheet();
//Declaramos los objetos del SP para acceder a la web, coger el SPFile
SPWeb web = site.OpenWeb();
//Accedemos a lista donde esta el excel
SPList list = web.Lists["Excels"];
//Recogemos el fichero
SPListItemCollection excelCollection = list.Items;
foreach (SPListItem excel in excelCollection)
{
SPFile file = excel.File;
//Nos guardamos el nombre del excel
string filename = @"C:\informes\" + file.Name;
//Si existe lo eliminamos
if (System.IO.File.Exists(filename) == true)
{
System.IO.File.Delete(filename);
}
//Leemos el fichero de y lo pasamos al disco duro
byte[] dataSHP = file.OpenBinary();
FileStream fsStoDisk = new FileStream(filename, FileMode.Create);
BinaryWriter writerToDisk = new BinaryWriter(fsStoDisk);
writerToDisk.Write(dataSHP, 0, (int)file.Length);
writerToDisk.Close();
fsStoDisk.Close();
//Accedemos a él y lo abrimos
oWorkBook = oExcelApp.Workbooks.Open(filename, Type.Missing, Type.Missing, Type.Missing, "Icnet2011", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
System.Threading.Thread.Sleep(4000);
//refrescamos las conexiones
oWorkBook.RefreshAll();
System.Threading.Thread.Sleep(10000);
//Guardamos los cambios
oWorkBook.Save();
//Cerramos el fichero
oWorkBook.Close();
oExcelApp = null;
//Ahora pasamos el fichero del disco duro al SHP
byte[] dataDisk = null;
FileStream fsToSHP = new FileStream(filename, FileMode.Open, FileAccess.Read);
BinaryReader brToSHP = new BinaryReader(fsToSHP);
long numBytes = new FileInfo(filename).Length;
dataDisk = brToSHP.ReadBytes((int)numBytes);
//Cargamos el fichero
file.SaveBinary(dataDisk);
}
}
});
}
- Los Sleep's son para garantizar el tiempo de apertura y refresco de conexiones del Excel. Lo correcto sería utilizar eventos que alertasen de la finalización de apertura de Excel y de la misma forma, con el refresco de conexiones.
- Utiliza la librería Microsoft.Office.Interop.Excel
- Consume una licencia de Office
- Aplicación de consola bajo una tarea programada de Windows
- Timer Job de SharePoint
- Event Handler en la lista que hace de fuente de datos del Excel
Si tenéis alguna variante más, no dudéis en comentar en el blog.
27 diciembre, 2011
SharePoint Branding: Propiedad After de CssRegistration
- <sharepoint:cssregistration name="reset.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="style.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="ie7.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="ie7.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="style.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="reset.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="reset.css" After="corev4.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="style.css" After="reset.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="ie7.css" After="style.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="/_layouts/app1/css/reset.css" After="corev4.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="/_layouts/app1/css/style.css" After="/_layouts/app1/css/reset.css" runat="server"></sharepoint:cssregistration>
- <sharepoint:cssregistration name="/_layouts/app1/css/ie7.css" After="/_layouts/app1/css/style.css" runat="server"></sharepoint:cssregistration>
02 diciembre, 2011
Error when open an SPSite object without context
SPSite s = new SPSite(url);
The Web application at [URL] could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.
The solution maybe permissions of your Application pool user, but if you have well configured your farm you should chack your compilation platform of your Visual Studio Project.
Change the platform to x64 and the problem will be solved :)
01 diciembre, 2011
Live Groups vs Google Groups
Característica | Google Groups | Groups Live |
Funciones del grupo | ||
Url de grupo | Sí | Sí |
Lista de distribución | Sí | Sí |
Calendario compartido | Sí | Sí |
Resumen de novedades | Sí | Sí |
Mensajes al grupo | Sí | Sí |
Integración con herramientas Office en modo Offline | No | Sí |
RSS | Sí | No |
Búsquedas sobre el grupo | Sí | Sí |
Catalogación del grupo | Sí | No |
Funciones de colaboración con documentos | ||
Almacenamiento de documentos | Sí | Sí |
Edición en línea | Sí | Sí |
Colaboración con documentos | Sí | Sí |
Estructura por carpetas | Sí | Sí |
Histórico de documentos | No | Sí |
Catalogación de documentos | No | Sí |
Volumen de datos | 1Gb por miembro | 5GB para el grupo + 25GB por miembro |
Tamaño máximo por fichero | 2MB docs, 20MB Excel, 10MB PPT | 100MB |
Anclado de documentos | No | Sí |
Seguridad | ||
Invitar a miembros | Sí | Sí |
Control de miembros | Sí | Sí |
Control de permisos a nivel de documentos | Sí (pero depende del miembro que comparte el documento) | Sí |
Control de permisos a nivel de listas de distribución | Sí | Sí |
Https | No | Sí |
23 noviembre, 2011
WebCast: SUGES - Birchman: Project Server 2010 y SharePoint Server 2010 - Análisis económico de proyectos
Hora de inicio: 20/12/2011 16:00
Hora de finalización: 20/12/2011 17:30
Ponentes:
- Marc Bàguena Cuéllar: MCITP-PRO en SharePoint 2010 y MCP en SharePoint 2007, con más de 5 años de experiencia en soluciones integrales de negocio, concretamente en soluciones basadas en SharePoint. A lo largo de los 5 años ha trabajado con SharePoint 2003, 2007, 2010 y soluciones relacionados con dicho producto: EPM 2007 y 2010, Dynamics CRM, SSRS, etc.
- Alfons Martínez: MCITP-PRO en SharePoint 2010 y MAP en España, con más de 3 años de experiencia en soluciones integrales de negocio, concretamente en soluciones basadas en SharePoint. A lo largo de los 3 años ha trabajado con SharePoint 2007 y 2010 y soluciones relacionados con dicho producto: EPM 2010, Dynamics CRM, Dynamics Navision, SSRS, etc.
¿Quieres saber dónde se escapa el coste de tu proyecto?
¿No sabes cómo va el margen de tu proyecto?
Son algunas de las preguntas que podrás responder después de asistir al evento.
Te esperamos!!
20 noviembre, 2011
Rich Internet Application
Veamos un esquema:
Si nos fijamos en la figura, el esquema se diferencia claramente en la capa de presentación, la cual en un caso se sitúa en el servidor, facilitando una response en formato HTML, que posteriormente el navegador renderizará. El modelo RIA, se basa en el trabajo de entidades directamente en el navegador bajo un framework (por ejemplo JQuery) basado en lenguajes interpretados por el navegador, o sea, Javascript.
¿Es el futuro?
Sin lugar a dudas, Sí.
¿Por qué?
Dejamos atrás todas las realmente incómodas cargas de pantalla, para dar paso a interfícies de usuario ricas, potentes y mucho más dinámicas a la hora de facilitar la información al usuario.
¿Ejemplos?
Por supuesto, MVC3 es un muy buen ejemplo. HTML5 despertará una nueva era en éste sentido, aprovechemos el impulso de IE10 y HTML5 para subirnos a un carro que nos llevará lejos en los próximos años.
03 noviembre, 2011
Utilizando las audiencias en la navegación de SharePoint
Ahora imaginamos que queremos utilizar ese mismo menú de publicación para nuestros menesteres, por ejemplo, de administración. Los items de administración DEBEN tener seguridad implementada dado que NO pueden verse, así que utilizamos las audiencias para solucionar la papeleta.
¿Qué ocurre cuando queremos hacer una combinación de rutas/jerarquías que no son ni páginas, ni Sites, ni elementos de lista? Efectivamente, las audiencias NO funcionan correctamente.
El principal motivo es que ES UNA CARACTERÍSTICA DE LA INFRAESTRUCTURA DE PUBLICACIÓN, no para hacer menús libremente.
Eso significa que cada vez que pongamos un elemento en el proveedor de navegación, éste aplicará la audiencia pero con ciertos condicionantes, ya que además de ello, aplica la seguridad del elemnto final (Site/Page/ListItem) y como consecuencia oculta o muestra el elemento.
Como habréis deducido, si le pongo un link del cual no puede resolver la seguridad, la audiencia no se comporta de forma correcta, así como la seguridad nativa del producto.
El funcionamiento es el siguiente:
- Si el nodo incluye un enlace a algo que no se puede convertir en un Site, página o ListItem, el campo de audiencia será ignorado.
- Si existe un nodo raíz agrupador y éste no satisface #1, entonces la raíz y los nodos secundarios se ocultará.
- En caso de un nodo secundario satisface #1, se mostrará sólo si el nodo raíz también satisface #1.
Espero que os sirva para momentos de desesperación...
Thanks Eric.. SharePoint Global Navigation Sometimes Ignores Target Audience Settings