Curso 10175 Microsoft SharePoint 2010 Application Development

Esta es mi bitacora personal sobre el curso 10175 Microsoft SharePoint 2010 Application Development que estamos tomando actualmente en el aula de capacitación de la DGTI. Tuvimos un instructor que vino de la ciudad de México el cuál se presentó como un Enterprise Architec, Microsoft Certified Trainer y Freelance Consultant. Mencionó que este curso es parte de la preparación para el exámen 70-573: TS: Microsoft SharePoint, Application Development (MCTS, MCPD).

Temario del curso
http://www.microsoft.com/learning/en/us/course.aspx?id=10175a#tab2

Notas del curso

Dia 1

  • Windows Server 2008 (64bits): Production.
  • Windows Vista o Windows 7 (64 bits): Development
  • IIS 7.0
  • SQL Server 2008
  • .NET Framework and ASP.NET 3.5 SP1
  • SharePoint Foundation 2010
  • SharePoint 2010
  • SPFarm
    • SPService
      • SPWebApplication
        • SPSite
          • SPWeb
            • SPList
            • SpWeb
  • No es lo mismo un SharePoint Site que un SharePoint Web
  • Una vez que se borra una WebApplication, no hay forma de recuperarla.
  • Cada SPSite tiene un RoorWeb como propiedad.
  • SPSite site = SpContext.Current.Site // La forma mas comun de obtener el current site}
  • SPSite site = new SPSite(«http://misitio/»); // Otra forma
  • Los GUID se usan para identificar los objetos de SP.
  • thisWeb.Delete() // Se borra el Web permanentemente.
  • En la mayoría de objetos no es necesario llamar el Dispose. Tratar de utilizar using o usar explicit diposal en los try-catch-finally. Asegurarse de usarlo en los ciclos foreach.
  • Uso de SharePoint Designer 2010. Sirve para darle el «branding» al sitio.
  • Creacion de listas desde Visual Studio utlizando List Definitios Elements.xml y Schema.xml y List Instances.
  • Features: Unidad de activacion o desactivacion de los administradores. Extension WSP.
  • Para hacer el Deploying se necesita:
    • Site URL
    • Entorno SandBox o no
  • Build, Package, Deploy y Retract
  • La depuracion se hace igual que en una App Web de Visual Studio. Para depuracion remota en produccion hay que usar IE y habilitar la opcion de depuracion remota.
  • La herramienta de comandos de SharePoint se llama PowerShell para SharePoint 2010:
    • Add-SPSolution C:\Ruta\paquete.wsp
    • Install-SPSolution-Identity paquete.wsp -GACDeplyment -Force
    • Uninstall-SPSolution -Identity paquete.wsp
    • Remove-SPSolution -Identity paquete.wsp
  • Podemos agregar eventos al hacer el Pre y Post Build

Dia 2

  • Creacion de Web Parts no visuales desde codigo definiendo e implementando una interfaz.
  • Conexion entre WebParts definiendo puntos de interconexion ConnectionConsumer(«Metodo»).
  • WebParts Visuales si tienen pagina de diseño, heredan de la clase UserControl.
  • Para acceder a los objetos de SharePoint desde la WebPart usamos SPContext.Current.Web
  • Ruta para colocar los WebParts: c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Control Templates\
  • Creando sitios y listas de forma programatica con thisWeb=SPContext.CurrentWeb y thisWeb.Webs.Add o thisWeb.Webs[«miWeb»].Delete
  • Creando eventos para listas y sus elementos, e-mails, flujos de trabajo, webs y features.
  • Hay eventos sincronos que terminan en ing (before events) por ejemplo antes de Adding, Updating, Deleting un item. Y asincronos con ed (after events) como despues de Added, Updated, Deleted.
  • Entonces ya la clase SPItenEventReceiver ofrece:
    • ItemAdding, ItemAdded, ItemDeleting, ItemDeleted
    • ItemUpdating, ItemUptaded entre otros
  • Trabajando con el Web.config con programacion
  • Business Connectivity Services ya tienen read/write. Se habilita por los farm administrators.
  • BCS no es un vinculo a los datos externos, sino es una copia que se sube a SharePoint.
  • Se crean tipos de contenido externos con limitantes: actualizaciones solo sobre una tabla. Si hay groupby no se pueden actualizar.

Dia 3

  • Workflows usando SharePoint Designer y utilizando Visual Studio. Mucho mas rapidos de crear y con mas funcionalidad que versiones anteriores.
  • SharePoint Client-Based APIs. Utilizando el SharePoint 2010 Client Object Model podemos conectarnos a un sitio remoto de SharePoint y manipularlo desde aplicaciones de terceros. No se requiere crear una caracteristica o paquete en el servidor. Es una aplicacion remota independiente que utiliza las bibliotecas SharePointClient y SharePointClientRuntime.
  • Podemos desarrollar interfaces de usuario interactivas con el uso de los nuevos cuadors de dialogo de SharePoint 2010. Utilizan AJAX para dar una experiencia de usuario mas dinamica.
  • Podemos agregar elementos al Ribbon del SharePoint por medio de archivos xml.
  • Los cuadros de dialogo se usan comunmente para modificar datos, manipular propiedades, subir archivos y mostrar aplicaciones de Silverlight o archivos de medios.
  • Silverlight es una version ligrera de Windows Presentacion Foundation y SharePoint 2010 ofrece el Client Object Model para usarse desde Silverlight. Lo que se hace es crear una aplicacion de Silverlight normal y se agrega la referencia del Client Object Model de SharePoint.
  • Hay WebParts especificas de Silverlight para usar en SharePoint 2010.

Dia 4

  • Las soluciones SandBox me permiten ejecutar mis aplicaciones en un entorno controlado y restringido. Esto quiere decir que no afectara a las demas aplicaciones del sitio, pueden ser monitoreadas y removidas sin afectar el sistema completo.
  • Cuando se hace el Debug a estas aplicaciones SnadBox se utiliza otro proceso distinto al w3wp.exe que es SPUCWorkerProcess.exe o SharePoint Worker Process.
  • No todos los tipos de proyecto se pueden implementar como soluciones de SandBox. Ejemplos de project item types that can be deployed as part of a sandbox solution include Web Parts, List Definitions, Event Receivers, and Content Types. Examples of prohibited project item types include Visual Web Parts, Application Pages, and Business Data Connectivity Models.
  • El acceso a datos tambien esta restringido en las soluciones sandbox solo al site collection actual al igual que acceder a bases de datos ajenas a SharePoint.
  • Hay operaciones tambien permitidas y no permitidas. For example, your code in a sandboxed solution can access lists, respond to events, create libraries, and render data in Web Parts. However, specific operations, such as performing these tasks with elevated privileges, are prohibited.
  • Se pueden crear taxonomias en SharePoint para colocar metadatos en las listas personalizadas.
  • Podemos crear usuarios y manejar sus propiedades programaticamente por medio de la clase UserProfile.
  • Se pueden entre otras cosas agregar, editar, eliminar sus propiedades y crear sus sitios personales con el metodo CreatePersonalSite().
  • El ultimo modulo fue acerca del agregar branding al sitio usando SharePoint Designer. Realmente no hicimos nada mas que cambiar el tema del sitio.

Este curso como introduccion al desarrollo de SharePoint es bueno. El material es adecuado salvo el módulo de Silverlight que parece de relleno y el modulo de CMS que parece que invita a tomar otro curso pues esta demasiado breve dejando muchas cosas en el aire. Si no conoces nada o muy poco sobre desarrollo con SharePoint este curso es el adecuado. El instructor estuvo solo como un medio para leer los contenidos del curso. Creo que leer el handbook hubiera sido lo mismo. En muchas de las preguntas que se le hacian, respondia que la respuesta era parte de otro curso y que no podia abundar en ello pero podiamos comprar el otro curso. No trajo su equipo configurado con la instalación que el curso marca para los instructores del mismo, por lo que varios demos le marcaron error y otros decidió saltarselos por la misma causa. En varias preguntas relacionadas con escenarios de implementacion reales, respondió que no habia experimentado esos casos en particular por lo que no podía ayudarnos. Varios errores que aparecian o mensajes de operacion no completada no los conocia, cuando muchos de ellos aparecen continuamente cuando se trabaja con SharePoint.