jueves, 25 de diciembre de 2008

Quick reference Sharepoint

¿Por dónde empiezo?, esta es la respuesta que queremos dar a los consultores que acaban de llegar por primera vez a un proyecto en Sharepoint. Esta guía os servirá para encontrar los recursos básicos y facilitaros el aprendizaje de este producto.

Podéis bajaros el documento original en: http://blogs.renacimiento.com/mcortes/Documentos/Quick%20reference%20Sharepoint.docx

Conceptos

¿Qué es Microsoft Office SharePoint Server?

Primera introducción de Microsoft Office Sharepoint Server 2007

Libro Microsoft SharePoint 2007 UNLEASHED

Libro básico para iniciarnos en Sharepoint Server 2007

TechNet Tech Center for Microsoft Office SharePoint Server 2007

Centro de recursos para Microsoft Office Sharepoint Server 2007

TechNet Tech Center for Windows SharePoint Services 3.0

Centro de recursos para Windows Sharepoint Services 3

Recopilatorio Posts Plataforma SharePoint Blog CIIN

Recopilatorio de enlaces a post acerca de Sharepoint. Aunque en su página los podéis encontrar actualizados

Implementing Microsoft® Office SharePoint® Server 2007 and Windows® SharePoint® Services 3.0 Solutions

Guía de conceptos muy completa

Infraestructuras y Arquitectura

SharePoint Server TechCenter

Portal en TechNet acerca de MOSS2007

Planning and architecture for Office SharePoint Server 2007

Referencia básica acerca de cómo diseñar nuestra implantación

Deployment for Office SharePoint Server 2007

Referencia acerca del despliegue de portales en Sahrepoint.

Biblioteca técnica de Windows SharePoint Services 3.0

Portal en TechNet acerca de Wss3

Backup, Recovery, and Availability Resource Center for SharePoint Server 2007

Portal con recursos y herramientas para el mantenimiento de sistemas Sharepoint

Plan for data protection and recovery

Contiene varias guías para el mantenimiento y restauración de la bbdd de Sharepoint

SharePoint Capacity Planning Tool

Herramienta para ayudarnos a estimar los recursos que necesitaremos para nuestra implantación

Desarrollo

Introduction to SharePoint Products and Technologies for the Professional .NET Developer

Artículo de introducción a la programación sobre MOSS2007. Contiene una gran cantidad de enlaces a otros tutoriales y recursos.

Libro Inside Microsoft Windows SharePoint Services 3.0

Libro imprescindible para desarrollar y entender cómo funciona Sharepoint. Aunque desarrolles con MOSS, debes leer antes este libro.

Contiene ejemplos muy útiles para aplicar en proyectos.

Preparing the development environment

Posta cerca de cómo preparar nuestros entorno de desarrollo con VStudio 2005

Sharepoint Developer Introduction

Portal de inicio con enlaces a ejemplos y recursos

Development Tools and Techniques for Working with Code in Windows SharePoint Services 3.0

Introducción al desarrollo en WSS3

Sharepoint Services Developer Center

Portal con recursos para desarrolladores de Wss3

SharePoint Server 2007 Developer Portal

Portal con recursos para desarrolladores de MOSS2007

Windows SharePoint Services 3.0: Software Development Kit (SDK)

SDK para Windows Sharepoint Services 3

SharePoint Server 2007 SDK: Software Development Kit

SDK para Microsoft Office Sharepoint Server 2007

Screencast de MOSS2007 y WSS3

Página con los enlaces para descargar vídeos acerca de MOSS2007 y WSS3

Technical Articles WSS3

Enlaces a artículos técnicos de WSS3 en MSDN

SharePoint Products and Technologies Customization Best Practices

Enlaces a Best Practices en MSDN

patterns & practices SharePoint Guidance

Guía de pattenrs&Practice para el desarrollo en Sharepoint, con ejemplos y enlaces

Patterns&practices en MSDN

Guía de pattenrs&Practice para el desarrollo en Sharepoint

Best Practices: Using Disposable Windows SharePoint Services Objects

Recomendaciones para liberar correctamente los recursos

Best Practices: Common Coding Issues When Using the SharePoint Object Model

Recomendaciones al manejar el modelo de objetos de Sharepoint

Herramientas

Stsadm

Herramienta básica para la gestión de la granja

SharePoint Administration Toolkit

VSeWSS

Extensiones de Sharepoint Para Visual Studio 2008. Imprescindible!!

SharePoint Manager 2007

Herramienta de gestión muy completa. Imprescindible!!!

CAML Query Builder

Herramienta para construir la consultas CAML. Imprescindible!!

EventHandler Explorer

Herramienta para gestionar los EventHandlers de forma visual

Imtech Fields Explorer

Herramienta muy útil para construir features

Comunidades

Sharepoint community Portal

Portal con una gran cantidad de referencias y recursos

SharepointBlogs

Blogs temáticos de Sharepoint, encontrareis las últimas noticias, actualizaciones, recursos, ejemplos, etc.

Blogs renacimiento

Blogs de renacimiento, podéis encontrar a grandes profesionales con gran experiencia en el mundo de Sharepoint

Blogs de Geeks

Blogs de profesionales de todo tipo, hay una gran cantidad de artículos acerca de sharepoint.

Sharepoint User Groups Spain

Portal de usuarios de España

Blog del CIIN

Blog del Centro de Innovación en integración de Navarra. Contiene una gran cantidad de enlaces sobre Sharepoint.

Sharepoint Pedia

Portal con ejemplos y referencias para la gestión y desarrollo en Sharepoint

Certificaciones

MCTS: Microsoft Windows SharePoint Services 3.0 – Application Development

Imprescindible para desarrolladores. Nos permite adquirir los conocimientos básicos.

MCTS: Windows SharePoint Services 3.0 – Configuration

MCTS: Microsoft Office SharePoint Server 2007 – Application Development

MCTS: Microsoft Office SharePoint Server 2007 – Configuration

Microsoft Certified Master: Microsoft Office SharePoint Server 2007

martes, 2 de diciembre de 2008

Ghosted o unghosted, ¿Quién corre más?

Siguiendo con el anterior artículo "Page Templates con ayuda del Sharepoint Designer", he caído en la cuenta de la cantidad de personsalizaciones que se hacen sobre sharepoint sobre entornos de producción sin que seamos conscientes de cómo afecta esto a nuestros sistema.

Esta claro que una personalización para un sitio con una relativa carga de usuarios es incluso hasta aconsejable ya que el coste en desarrollo podría penalizarnos demasiado. Pero si lo que nos estamos planteando es el desarrollo de una página corporativa o extranet, deberíamos tener en cuenta que una gran volumen de usuarios podría provocar una denegación del servicio.

Para ver como afecta al rendimiento la forma de diseñar la solución he estado realizando una serie de pruebas sobre un wss3. Para ello he creado un aplicación web con una colección y dos listas con unos mil elementos y varios campos con valores aleatorios. Una vez creadas las listas, realicé varias pruebas:

  • Una página ghosted, sin editar ni customizar
  • Una página ghosted con edición de contenido
  • Y una página unghosted

La prueba de carga consistía en realizar una consulta a todos los elementos de la lista llamando a AllItems, y después consultar un elemento de la lista distinto en cada test, con un incremento de carga progresivo de 50 usuario cada 30 segundos por un tiempo máximo de 10 minutos. Estas pruebas se han repetido varias veces cada una y reiniciando el servidor en cada paso.

No os fijéis en los resultados numéricos absolutos, sino en las diferencias entre cada escenario. Esto se debe a que las pruebas están realizadas sobre un wss3 contra una bbdd alojada en la misma máquina, por lo que he tenido que bajarle los hilos del workerprocess para que deje tiempo de proceso al SqlServer.


Una página ghosted, sin editar ni customizar


Podemos observar como el proceso se ha comportado relativamente bien hasta el minuto 6'45, donde ha empezado a aumentar el tiempo de respuesta producirse errores de denegación de servicio.También se aprecia como ha conseguido mantener los tiempos de respuesta aun con una carga elevada. Aunque los errores han ido creciendo poco a poco no han adquirido un número elevado teniendo en cuenta que tenía una carga de unos 800 usuarios, por lo que la respuesta a los usuarios sería relativamente aceptable.




Una página ghosted con edición de contenido


Vemos como en este caso los errores de solicitud se empiezan a producir mucho antes, justo a partir del minuto 5'50'' con una carga total de unos 560 usuarios. Además el tiempo de respuesta y los errores han seguido creciendo.



Ya podemos observar como este tipo páginas tiene un rendimiento 30% inferior y una media de solicitudes por segundoinferior al anterior.

Y una página unghosted

En este caso se ha customizado con Sharepoint Designer la página AllItems de la lista y su masterpage.





Este escenario, ha resultado ser muy parecido al anterior pero fijaros que con tiempos de respuesta más elevados y con una carga de cpu muy superior. Si observáis la línea azul (tiempo de respuesta) existe un salto que coincide con la falta de respsuesta del servidor al VisualStudio debido a un consumo elevado..

En este caso ha conseguido un rendimiento aceptable con una carga de unos 600 usuarios, un 25% inferior al primer caso.


Conclusiones

Anque los ejemplos han sido casos muy sencillos, en un entorno real con muchas personalizaciones habríamos visto como la diferencia habría sido mucho mayor. Tener en cuenta además que esto se ha realizado en una granja con un solo servidor, si hubiéramos tenido varios frontales el rendimiento de las páginas ghosted se incrementaría de forma proporcional al incremento de servidores, pero en el caso de las unghosted crecería en una menor medida debido a que la mayor parte del procesamiento se invertiría en consultar la bbdd de contenidos.

miércoles, 26 de noviembre de 2008

Page Templates con ayuda del Sharepoint Designer

El otro día me acordé del artículo que ya escribí acerca de como realizar personalizaciones rápidas en sharepoint. El ejemplo realizaba modificaciones en modo unghosted, lo que implicaba que cada que se consume las páginas se estaba accediendo a la bbdd para cargarla.

Como alternativa a las personalizaciones sobre la bbdd de contenidos debemos de realizar nuestras páginas como page templates o applications pages, e incluso podemos pensar en webparts antes de hacer que una página sea unghosted.

Las page templates consisten en páginas que están físicamente en el servidor frontal se ejecuta en "safe mode", es decir no permite ejecutar código en servidor, y permite customizarla.

Un caso real

En el proyecto se planteaba una solución sobre lista de wss3 la cual debía de mostrar una vista y comportamiento especial en las páginas de DispForm, NewForm y EditForm. Si huebiéramos modificado la página directamente desde Sharepoint Designer habríamos terminado rápidamente, pero a cambio habríamos acarreando otros problemas futuros como pueda ser el backup/restore del portal y el rendimiento.

Comenzamos haciendo la lista con la estructura, lo recome

ndable es hacerlo definiendo un contenttype. Una vez creada la lista, abriremos el sharepoint Designer y entraremos en el formulario a modificar, en este ejemplo en DispForm.

Una vez abierto lo modificaremos con la estructura que deseemos, tal y como explicaba en mi anterior artículo.

Una vez modificada, lo que haremos será quedarnos con el código fuente, pero ojo no guardaremos el fichero, solo lo utilizaremos para renderizar el resultado y hacernos una idea en tiempo de diseño.

Ahora crearemos un proyecto en blanco con la estructura adecuada para construir una feature de sharepoint. Añadiremos una nueva páginas aspx sin código y pegaremos el código generado por el designer.

Si nos fijamos en el código generado por el designer veremos que nos ha incrustado un DataFormWebPart y que tiene como datasource y parámetros referencias a la lista pero por ID. Esto significa que todo lo que hagamos no podremos moverlo a otro sitio ya que la instancia de la lista tendrá otro id distinto aunque tenga la misma estructura.

Para solucionarlo accederemos por nombre en lugar de id, por lo que cambiaremos todas las referencias de ListId por ListName y el guid de la lista por el nombre de la lista. También quitaremos el parámetro

<ParameterBinding Name="ListID" Location="None" DefaultValue="{3C54AAE0-1C6F-4FFD-A3F9-F3BB6FEDA399}"/> por <ParameterBinding Name="ListName" Location="None" DefaultValue=""/>

Para verificar que lo hemos hecho correctamente copiaremos el código y lo pegaremos desde el designer en la página que tomamos como ejemplo. PERO SIN GUARDAR DESDE EL DESIGNER!!!.

Ahora tendremos que indicar a sharepoint que la página que hemos hecho se utilizará como template. Crearemos un fichero xml en el que indicaremos lo siguiente:

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

<Module Path="PagesTemplates" Url="Notas de Gastos/Forms" >
<File Url="NotasDeGastosDispForm.aspx" Path="NotasDeGastosDispForm.aspx" Type="Ghostable" />
<File Url="NotasDeGastosEditForm.aspx" Path="NotasDeGastosEditForm.aspx" Type="Ghostable" />
<File Url="EntregarNotasDeGastosForm.aspx" Path="EntregarNotasDeGastosForm.aspx" Type="Ghostable" />
</Module>

</Elements>

El atributo path indica la ruta física del directorio y de la página, y el atributo Url indica el path relativo de la url desde donde se accederá.

Ahora solo tendremos que terminar de configuar nuestra feature, instalarla y activarla.

Al activarla, si actualizamos nuestro explorador del designer veremos como ha aparecido nuestra página. Fijaros que no tienen ningún indicador de que es unghosted.

Ahora solo nos quedará indicar a la lista que utilice nuestra página cuando se acceda a la Vista de propiedades desde DispForm. Para ello podemos hacerlo desde el designer en caso de las lista, y para las librerías de documentos por código desde un SPFeatureReceiver, en el evento FeatureActivated.

Algunos enlaces adicionales:

http://www.sharepointonlinkedin.com/post/2008/07/20/How-to-free-your-Data-View-Web-Part-(DVWP)-from-those-nasty-GUIDs.aspx

http://sharepoint-insight.blogspot.com/2008/07/dataform-webpart-escape-from-hardcoded.html

martes, 25 de noviembre de 2008

Welcome to the Visual Studio 2010

Son muchos los blogs que ya han comentado las novedades de VST2010. En este artículo me centraré en enseñaros "otras" novedades menos comentadas.

Lo primero que nos encontramos al iniciar la máquina es que ya viene instalado:
VSTudio 2010 y 2008
Framework 4.0
TFS
Microsoft Camano
Dinner Now
SqlServer2008
W2k8 con IIS7 y WSS3, etc
Ha merecido la pena la descarga.



VisualStudio 2010
Después de leer las nuevas herramientas y novedades Principalmente me he centrado en los siguientes puntos que me han parecido importantes para el entorno en el que me muevo:
El nuevo Framework 4 con las Parallel Extension incorporadas en el core
Herramientas para el desarrollo integrado con WSS3 y MOSS
Mejoras en las herramientas de Testing
Nuevas herramientas para los arquitectos

Tenéis más referencias de Visual Studio en:
http://blogs.msdn.com/sharepoint/archive/2008/11/10/visual-studio-2010-tools-for-sharepoint-announced-at-teched-emea-developers-2008.aspx
http://geeks.ms/blogs/elbruno/archive/2008/11/13/vsts2010-training-kit-ya-disponible.aspx
http://dotnet.org.za/willy/archive/2008/11/21/visual-studio-2010-ctp-2-6-7-the-exciting-world-of-construction-part-2-2.aspx

El nuevo Framework 4
Entre las novedades podemos destacar el manejo de código que podemos compilar en tiempo de ejecución, la incorporación de Parallel Framework y LinQ en el core, Entity framework ( sin SP's), MVC, Velocity, ...
Tenemos también el Visual Studio 2010 and .NET Framework 4.0 Training Kit con presentaciones acerca de las novedades http://www.microsoft.com/downloads/details.aspx?FamilyId=752CB725-969B-4732-A383-ED5740F02E93&displaylang=en


Herramientas para el desarrollo integrado con WSS3 y MOSS
Ya he leído varios artículos sobre esta herramienta, pero no la he podido tocarla ya que todavía no está disponible en esta versión, de hecho, hay disponible un vídeo en Channel 9 http://channel9.msdn.com/posts/VisualStudio/Sharepoint-Development-with-Visual-Studio-2010/, que muestra ligeramente la herramienta. Si os fijais en el vídeo vereis como ocultan la parte izquierda de la ventana de proyectos.
Dispondremos de varios tipos de proyectos con sus correspondientes asistentes.

Tendremos además un explorador donde podremos navegar por la estructura de nuestro portal.

Podremos definir mediante asistentes la estructura de nuestros contentypes y features, además parece que los proyectos vienen preparados para encapsular las features y soluciones y no tratarlos como ficheros adjuntos al proyecto, fijaros en la ventana del explorador de soluciones.


Al menos por lo que he visto tiene buena pinta.

Nuevas herramientas para los arquitectos
Architecture explorer

Model proyect





VST TFS
No puedo profundizar porque no lo he tratado, así que se lo dejo a los expertos.

Microsoft Camano
Consiste en una aplicación para la gestión, monitorización, seguimiento de los test. No es una herramienta basada en el código, sino en la gestión del ciclo de vida de las pruebas de los proyectos.
Está integrado con nuestro TFS y está dividido en varias secciones: Planificación, testing, defects y reports.




Dinner Now
Consiste en un conjunto de aplicaciones de ejemplo que nos muestra distintas tecnologías. La máquina virtual incorpora los fuentes por lo que podemos echar un vistazo a las nuevas herramientas que incorpora VST2010 sin tener que crear ningún proyecto.
Podéis descargaros el proyecto desde http://www.codeplex.com/DinnerNow


Si apodéis, echarle un vistazo, solo ocupa unos 7 GB y unos GB de RAM libres, parar un rato las pelis y ya verséis como tarda poco. Podeis descargarlo http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814 y las FAQS https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=10046.
Por cierto, algo curioso que he visto en la página de connect en el apartado "How can I improve the performance of the Virtual PC?" indica al final del todo el siguiente comentario "Also while using the Virtual PC, you should periodically close and reopen Visual Studio 2010.", joer, menuda técnica!!

martes, 18 de noviembre de 2008

Microsoft Certified Master en MOSS2007

Acaba de salir la nueva certificación para MOSS Microsoft Certified Master: Microsoft Office SharePoint Server 2007, consiste en un paso previo al MCA (Microsoft Certified Architect) pero especializado en MOSS2007.

Consiste en un curso presencial de tres semanas con expertos en el producto, con charlas, laboratorio y esas cosas.

Esta certificación te exige tener los 4 MCTS de Sharepoint , hablar un buen inglés (seguro que Enrique ya está en ello), además de unos 20.000$.

 

Ya están disponibles varios Certified Master:

  • Exchange 2007
  • Sqlserver2008
  • MOSS2007
  • Office Communication 2007

 

buffff, espero que no me pongan una de estas como objetivos,

martes, 21 de octubre de 2008

ReportViewer un gran desconocido

¿Cómo construirías un Report sobre .NET sin coste adicional de licencias?, si has contestado "con ReportViewer" la muñeca chochona para tí.

Como algunos compis no tienen claro como funciona os he preparado un ejemplo para que podáis seguir la siguiente explicación.

En mi blog de Renacimiento encontraréis el resto del artículo.

martes, 7 de octubre de 2008

ADAMProfileProvider 1.1.0

Ya está disponible en Codeplex la versión 1.1.0 del ADAMProfileProvider.

Hemos corregido algunos errores y mejorado el control de inicialización.

Podéis encontrar ejemplos en mi anterior entrada acerca de la versión 1.0.0

También podéis visitar la profile en  MSDN donde explica como extender vuestro Profile.