> # Modelo de Objetos

> SharePoint 2007 dispone de un extenso Modelo de Objetos que permite accederlo y trabajar con todos los componentes del servidor en cualquier forma deseada. El Modelo de Objetos es completamente Orientado a Objetos y basado en DOT.NET 2.0, lo que permite que desarrolladores utilicen el ambiente de programación ofrecido por Visual Studio 2005.

> El Modelo de Objetos brinda, entre otras muchas posibilidades, acceso completo a las Librerías de Documentos, sus documentos y las propiedades de cada uno de ellos, como se puede ver en el video acompañante; el objetivo del video es dar una idea inicial sobre la utilización del Modelo de Objetos para trabajar con Librerías y Documentos, pero sus capacidades son mucho mas amplias, alcanzando todos los aspectos de SharePoint.

> Para programar con facilidad a SharePoint es recomendable (aunque no obligatorio) instalar Visual Studio 2005 en el mismo servidor en donde se ha instalado SharePoint. Esto es aplicable solamente para sistemas de desarrollo; en sistemas de producción es recomendable instalar la menor cantidad posible de software para garantizar la estabilidad del sistema. Teniendo a Visual Studio junto a SharePoint simplifica el agregar referencias y la depuración. Otro punto importante es que no es posible utilizar el Modelo de Objetos de forma remota, así que el ensamblado generado necesita estar localizado físicamente en el servidor(es) en donde esta instalado SharePoint.

> El Modelo de Objetos de WSS y MOSS utiliza cerca de 100 NameSpaces y más de 1.200 clases que cubren todos los aspectos de SharePoint: Administración, creación de componentes en el sistema, autorización, manejo de usuarios y seguridad para cada uno de sus elementos, todo esta cubierto por el API (Application Programming Interface).

> Las dos clases más importantes del Modelo de Objetos son SPSite y SPWeb:

> - SPSite representa una colección de sitios en el servidor virtual, incluyendo los sitios de nivel superior y todos sus subsitios. SharePoint puede contener diferentes servidores virtuales, y cada servidor puede contener una o mas colecciones de sitios.

> La clase SPSite provee dos constructores que permiten crear un objeto representando un sitio de diferentes maneras:

> SPSite(Cadena) Inicializa una nueva instancia basada en un URL absoluto
> SPSite(Guid) Inicializa una nueva instancia basada en un especifico GUID de una colección de sitios

> ### Figura 1: Examinador de Objetos de Visual Studio con el Modelo de Objetos para SPSite y SPWeb

> Y también se puede construir el objeto utilizando el contexto, por medio de la clase SPControl y su método GetContextSite. Luego de haber creado el objeto representando el sitio, se pueden utilizar todas sus propiedades y métodos, que permiten obtener toda la información del sitio, y poder interactuar con el.

> - SPWeb contiene un sitio específico. Cada colección de sitios representada por la clase SPSite puede contener uno o más sitios, representado por la clase SPWeb. Por defecto, hay por lo menos un sitio en cada colección de sitios, y su nombre es igual al nombre de la colección.

> Utilizando la misma clase SPControl y su método GetContextWeb se puede crear una referencia al Web que se encuentra bajo el contexto del código, o se puede utilizar un objeto del tipo SPSite para crear un objeto que represente un solo Web utilizando el método publico OpenWeb, que, a su vez, tiene tres constructores:

> OpenWeb(), retorna el Web asociado por defecto con el Sitio
> OpenWeb(Cadena), que retorna un Web especifico bajo la estructura del Sitio, basado en el URL relativo al del Sitio
> OpenWeb(GUID), que retorna un Web especifico basado en su Identificador

> El siguiente fragmento de código, por ejemplo, crea un objeto representativo del sitio bajo el contexto en el que ejecuta el programa, basado en él crea otro objeto para contener un Web determinado, y finalmente crea una variable del tipo cadena que contiene el nombre del usuario actual:

>     SPSite MiSite = SPControl.GetContextSite(Context);
>     SPWeb MiWeb = MiSite.OpenWeb("UnSubsitio/OtroSubsitio");  //Rutas relativas al Sitio
>     string NombreDeMiUsuario = MiWeb.CurrentUser.Name

> ## Video

> El video presenta la creación una aplicación de consola sencilla, utilizando Visual Studio 2005, he indica los pasos indispensables para empezar a programar utilizando SharePoint.
> Duración: 11:19 minutos