Mostrando entradas con la etiqueta Service Application. Mostrar todas las entradas
Mostrando entradas con la etiqueta Service Application. Mostrar todas las entradas

sábado, 15 de marzo de 2014

Información sobre el Servicio de Topología ()

SharePoint provee un balanceador de carga básico, que genera request mediante round robin a los Web service applications, también ofrece tolerancia a fallos, ya que permite detectar fallas de los services application proxy.

Cómo funciona?

Un Service Application Proxy solicita un endpoint para conectarse a un Service Application desde el Load Balancer (Service Application Load Balancer), el cual se ejecuta en el mismo dominio que el proxy.

El load balancer mantiene una lista disponible de endpoints para Service Application, y simplemente retorna el próximo endpoint disponible al proxy en un modo round robin.

El load balancer revisa la base de configuración para descubrir la lista disponible de endpoints para un service application

La cache de los endpoint es actualizada si la lista de service application endpoint ha sido actualizada en la base de configuración local, el tiempo promedio de actualización es menor a 1 minuto.

Podrá consultar la base de datos mediante el siguiente script de sql:

SELECT [Id]
,[ClassId]
,[ParentId]
,[Name]
,[Status]
,[Version]
,CAST([Properties] AS XML) AS Properties
  FROM [Nombre_ConfigDB].[dbo].[Objects] WITH (NOLOCK)
WHERE [ParentId] LIKE '<ID from proxy>'

El <ID from proxy> lo podrás consultar con el siguiente script de PowerShell:

(Get-SPTopologyServiceApplicationProxy).ApplicationProxies | ? { $_.Name -eq ((Get-SPTopologyServiceApplication).Id) }

Para comunicarse con un service application en una granja remota (Ej: servicios federados), el load balancer usa el web service de Topology (aka, “Application Discovery and Load Balancer Service”) para descubrir los endpoints disponibles para un service application. Este procedimiento se actualiza cada 15 minutos por el timer job “Application Addresses Refresh”.

El Service Application Proxy podría reporta una falla al load balancer, esto genera que el load balancer saque el endpoint específico de la rotación round robin por un período de tiempo (default: 10 minutos).

Este tiempo puede modificarse mediante el parámetro badtime. Después que se cumplió este tiempo, el endpoint se setea como “bueno” de nuevo.

Por default, siempre se mantiene un endpoint disponible, incluso que reporte un status “malo”.

El Topology web service application proxy es “self-balancing”

Los errores que aparecen en el Event Viewer cuando un endpoint está caído son (Por ej: el service application proxy del servicio de Metadata):

SharePoint Web Services Round Robin Service Load Balancer Event: EndpointFailure Process Name: OWSTIMER Process ID: 12264 AppDomain Name: DefaultDomain AppDomain ID: 1 Service Application Uri: urn:schemas-microsoft-com:sharepoint:service:id#authority=urn:uuid:anotherid&authority=https://myappsserver:1234/Topology/topology.svc Active Endpoints: 1 Failed Endpoints:1 Affected Endpoint: http://myappsserver:1234/1234567890/MetadataWebService.svc
Para solucionar endpoints corruptos podemos realizar las siguientes tareas básicas:

  • Para actualizar la lista de endpoints disponibles, podemos limpiar la cache de Sharepoint: http://blogs.msdn.com/b/jamesway/archive/2011/05/23/sharepoint-2010-clearing-the-configuration-cache.aspx

  • Realizar un iisreset

  • Verificar que el servicio del endpoint esté ejecutando en Central Administration -> System Settings -> Manage services on server(Ej: en este caso, Managed Metadata Web Service)

  • Verifica si las cuentas de usuario con las cuales se ejecutan los services application application pool no estén bloqueadas

  • Si ninguno de los pasos anteriores solucionó tu problema, accede al service directamente y evaluar el error que lanza http://myappsserver:1234/1234567890/MetadataWebService.svc una manera de tener un mensaje de error más adecuado, podrás setear el modo debug en el web.config del service application
  • Para exportar la configuración actual del servicio de topología, ejecuta el siguiente script de powershell:
    Get-SPTopologyServiceApplication  | Export-Clixml .\Get-SPTopologyServiceApplication.xml
    Get-SPTopologyServiceApplicationProxy | Export-Clixml .\Get-SPTopologyServiceApplicationProxy.xml

    lunes, 25 de febrero de 2013

    Links útiles #59–Sharepoint 2010

    1-Services App Starter Kit para Visual Studio 2010 y Sharepoint 2010 (crear Sharepoint custom services)

    http://visualstudiogallery.msdn.microsoft.com/a8539635-2d9a-468e-bddf-341332061ec7

    2-Metadata sobre una carpeta de Sharepoint

    http://geeks.ms/blogs/santypr/archive/2012/10/16/sharepoint-2010-a-241-adir-metadatos-a-las-carpetas-de-una-biblioteca-de-documentos.aspx

    3-Remover usuarios huérfanos (no están más en el Active Directory) de Sharepoint 2010

    http://weblogs.asp.net/bsimser/archive/2013/02/12/powershell-tools-removing-orphaned-users-from-sharepoint.aspx

    4-MySite en detalles

    http://blogbaris.blogspot.com.ar/2011/03/sharepoint-2010-mysite-in-detail.html

    http://blogbaris.blogspot.com.ar/2010/09/how-to-setup-mysite-in-sharepoint-2010.html

    5-Load Balanced Central Administration Sharepoint 2010

    http://walkthroughsharepoint2010.blogspot.com.ar/2013/02/central-admin-load-balance-procedure.html

    6-Snapshots en Sharepoint 2010

    http://blogs.msdn.com/b/mossbiz/archive/2013/01/14/sharepoint-vs-snapshots.aspx

    http://blogs.msdn.com/b/mossbiz/archive/2013/02/22/sharepoint-vs-snapshots-part-2.aspx

    7-SPServices y CRUD operaciones

    http://meandmysharepoint.blogspot.com.ar/2013/02/crud-operations-using-spservices.html

    8-Best practices de VMware para Sharepoint 2010

    http://www.vmware.com/solutions/business-critical-apps/sharepoint-virtualization/index.html

    http://www.vmware.com/files/pdf/solutions/SharePoint_2010-Best-Practices-Guide.pdf

    9-Deploy web part en Sharepoint 2010

    http://amalhashim.wordpress.com/2013/02/14/sharepoint-deploy-webpart-page-using-module/

    10-People Picker en Silverlight

    http://blogs.technet.com/b/speschka/archive/2011/08/09/writing-a-sharepoint-2010-people-picker-control-for-silverlight.aspx

    miércoles, 6 de febrero de 2013

    Tips Info #96 Sharepoint 2010

    1-Excluir una librería

    Ir a la opción “Advanced Settings”, y editar la propiedad “Allow items from this document library to appear in search results?

    Library Advanced Setting

    2-Consumo alto de CPU o RAM del search services en Sharepoint 2010

    Verifica el nivel actual de search crawl mediante el siguiente comando de powershell:

    Get-SPEnterpriseSearchService

    image

    Puedes utilizar el siguiente comando para bajar el consumo de recursos:

    Set-SPEnterpriseSearchService –PerformanceLevel “Reduced”

    Performance Level Explained:

    Reduced: Total number of threads = number of processors, Max Threads/host = number of processors

    PartlyReduced: Total number of threads = 4 times the number of processors , Max Threads/host = 16 times the number of processors

    Maximum: Total number of threads = 4 times the number of processors , Max Threads/host = 16 times the number of processors (threads are created at HIGH priority)

    Más info: http://technet.microsoft.com/en-us/library/ff678212(v=office.14).aspx

    3-Ocultar los encabezados de los  web part (hide web parts headers)

    Agregar un content editor web part a la página. Edita el web part. Click sobre el área de HTML y elige “Edit HTML Source”.

    Agrega el siguiente código:

       <style>

          TR.ms-viewheadertr > TH.ms-vh2 {

          DISPLAY: none

          }

       </style>

    En las propiedades del web part, expande “Appearance”, y setee el tipo de encabezado a “None”

    4-Remover vistas de listas de los resultados de búsqueda (remove list views from search results)

    Agregar un nuevo Search scope, con la siguiente configuración:

    Crear una nueva regla de search (search rule). Seleccionar 'Property Query' desde la sección “Scope Rule Type”

    Seleccionar 'contentclass' del drop down. Ingresar 'STS_List_GenericList', y para finalizar excluir desde la sección “Behavior”

    image

    5-Event receiver se dispara dos veces para los evento Item Updating y Item Updated

    Hay algunos eventos que se disparan dos veces cuando se usan los eventos Item Updating y Item Updated

    -Cuando sube un nuevo archivo

    -Cuando sube un archivo, que tiene seteado la opción “Overwrite existing file”, o agregar una nueva versión.

    Para solucionar este problema, puede usar el siguiente código en el evento:

    if (properties.AfterProperties["vti_sourcecontrolcheckedoutby"] == null

    && properties.BeforeProperties["vti_sourcecontrolcheckedoutby"] != null)

    {

    //Código que se ejecuta cuando hay un evento de check

    }

    else

    {

    //Código que se ejecuta por cualquier otro evento

    }

    jueves, 17 de enero de 2013

    Tips Info #4 Sharepoint 2013

    1-Configuración de Shredded Storage para Sharepoint 2013

    $web = Get-SPWebApplication http://<URL>
    $web.WebService.FileOperationSettings = 2
    $web.WebService.Update()

    UseWebSetting (=0)
    AlwaysDirectToShredded (=1)
    NeverDirectToShredded (=2)

    También se puede configurar la propiedad FileWriteChunkSize (default es 64KB). Esta propiedad permite definir el tamaño del fragmento en bytes de escritura óptima de datos de SQL o algún otro dispositivo de almacenamiento externo. Valores altos mejoran el throughput, valores pequeños mejoran la latencia.

    2-Sign in as Different User en Sharepoint 2013

    Abre el archivo ubicado en  C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\CONTROLTEMPLATES\Welcome.ascx

    Agrega el siguiente elemento antes del elemento "ID_RequestAccess":

    <SharePoint:MenuItemTemplate runat="server" ID="ID_LoginAsDifferentUser" Text="<%$Resources:wss,personalactions_loginasdifferentuser%>" Description="<%$Resources:wss,personalactions_loginasdifferentuserdescription%>" MenuGroupId="100" Sequence="100" UseShortId="true" />

    Guarda el archivo, y has un iisreset.

    Más informción : http://support.microsoft.com/kb/2752600.

    3-HTML Field Security en Sharepoint 2013

    Esta nueva funcionalidad nos permite limitar los links (vía frames) a páginas externas.

    image

    image

    En el caso que se haya ingresado un link NO permitido mediante un campo html, custom code, etc, la página nos informará lo siguiente:

    image

    4-Sharepoint 2013 Services

    Services on Application Server

    Access Database Service 2010
    Access Services
    App Management Service
    Application Registry Service
    Business Data Connectivity Service
    Excel Calculation Services
    Machine Translation Service
    Managed Metadata Web Service
    Microsoft SharePoint Foundation Subscription Settings Service
    PerformancePoint Service
    PowerPoint Conversion Service
    Lotus Notes Connector
    Search Host Controller Service
    Search Query and Site Settings Service
    SharePoint Server Search
    Secure Store Service
    User Profile Service
    User Profile Synchronization Service
    Visio Graphics Service
    Word Automation Services
    Work Management Service
    Central Administration
    Claims to Windows Token Service
    Distributed Cache
    Document Conversions Launcher Service
    Document Conversions Load Balancer Service
    Microsoft SharePoint Foundation Incoming E-Mail
    Microsoft SharePoint Foundation Sandboxed Code Service

    Services on WFE Server (Web Application)
    Microsoft SharePoint Foundation Subscription Settings Service
    Claims to Windows Token Service
    Distributed Cache
    Microsoft SharePoint Foundation Incoming E-Mail
    Microsoft SharePoint Foundation Sandboxed Code Service
    Microsoft SharePoint Foundation Web Application
    Microsoft SharePoint Foundation Workflow Timer Service
    Request Management

    Se puede usar la siguiente plantilla, para configurar los servicios:http://www.microsoft.com/en-us/download/details.aspx?id=30367

    5-Mostrar contenido para un device particular, ej Windows Phone

    Se puede usar el control Mobile

    <PublishingWebControls:MobilePanel runat=”server” IncludedChannels=”WinPhone”>
         <p>Esto se ve sólo para el Windows Phone Device</p>
    </PublishingWebControls:MobilePanel >

    martes, 4 de septiembre de 2012

    Tips/info #66–Sharepoint 2010

    1-Settings para un Sharepoint Timer JOB

    Para leer información de un timer job, se podrá utilizar el archivo OWSTIMER.EXE.CONFIG. El mismo se deberá crear en la misma carpeta donde está el archivo OWSTIMER.EXE (C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN\)

    Escriba todas las configuraciones que necesite. Ej: un caso típico de su uso, es cuando al realizar un crawl, recibimos el siguiente error:

    “Crawling this document could not be completed because the remote server did not respond within the specified timeout. Try crawling the server later, or increase the timeout value. You may also try scheduling crawls during off-peak usage times.”

    Para solucionar este problema, podremos debuggear el tráfico del owstimer: http://msdn.microsoft.com/en-us/library/ty48b824.aspx

    2-Master pages disponibles en Sharepoint 2010

    Master page primaria – v4.master
    Usada para páginas de adminstración y contenido.Generalmente es usada en la página inicial de los Team Site, páginas de librería y listas, y páginas de configuración de site.

    Minimal master page – minimal.master
    Contiene mínimo contenido de Sharepoint, usada para funcionalidades full screen o aplicaciones embebidas. Esta master page es usada para crear páginas de inicio o de resultados en un Search Center, páginas que hostean Word o Excel web applications.

    Publishing master page – nightandday.master
    Usada para páginas de sites con la feature SharePoint Server publishing habilitada. Son usadas para páginas de incio, de acerca de, extranet, intranet, etc.

    2007 default master page – default.master
    Usada para soportar legacy de SharePoint, las cuales han sido upgrade de forma visual a SharePoint 2010.
    Home page, site pages, ylist pages sobre sites de SharePoint 2007 antes del visual upgrade.       

    Otra master page, la simplev4.master, la cual es usada para pantallas específicas de Sharepoint, como Login.aspx, Error.aspx, y Confirmation.aspx. Esta master page es localizada en el server y no puede customizarse con Sharepoint Designer 2010.

    3-Diferencias entre workflows y event receivers

    • Event handlers no pueden iniciarse de forma manual – workflows puede ser inicializados de forma automática o manual.
    • Event Handlers pueden ser sincrónicos o asincrónicos – Workflows son siempre asincrónicos (Se ejecutan después de la operación)
    • En un Event Receivers podemos cancelar la operación (tales como add/update/delete) – pero en Workflows no es posible.
    • Event handlers se ejecutan en un particular WFE, así si hay algo mal en ese WFE, puede terminar. Jobs de Workflow son robustos y pueden reiniciarse incluso después de reinicios de servidor.
    • Usualmente los Event handlers se ejecutan por corto periodo – Workflows pueden estar disponibles por mucho tiempo, incluso años.
    • No hay User Interface/user Interaction en los Event Receivers – Workflows pueden tener user interactions tales como obtener información de usuario en forms de iniciación.
    • Los Event receivers son lanzados por eventos tales como New Item Adding-Added, Updating-Updated, Deleting-Deleted, etc. – pero los workflows se lanzan sólo en creación/modificación/borrado.
    • Event Receivers son creados con Visual studio – Workflows pueden ser creados medianteSharePoint user interface, SharePoint Designer, Visio o Visual studio.
    • Workflows mantiene los de "Workflow History"  - Event handler no deja nada.
    • Event receivers son mejores para manejar grandes cantidades de datos – Workflows son mejores para pequeñas cantidades de datos.

    4-No me aparece las opciones de “View in Browser “y “Edit in Browser” para un archivo de excel.

    Recuerde que office web apps sólo renderiza archivos excel con formato OpenXML (Excel 2007 o Excel 2010 o Excel 2013). No renderiza archivos xls.

    5-Error: The search request was unable to connect to the Search Service

    Se debe verificar lo siguiente:

    • Verifica que el servicio “SharePoint Server Search 14″ (OSearch14) esté ejecutándose. En el caso que esté ejecutandose, reinicia el servicio.
    • Verificar que el web application deseado esté conectado al service group donde está el servicio de search (Central administration > Manage Webapplications > click sobre el Webapplication > Click Service Connection. verifica que el Search Service Application está marcado): Link
    • Verifica que l web part de resultados no tenga seteado el valor “Local FAST search results” en la propiedad Location
    • Limpia la cache de los servers: http://todosharepoint.blogspot.com.ar/2012/02/sharepoint-configuration-cache.html , y a continuación reinicia el servicio de oSearch14.
    • Verifica que el proxy del search esté funcionando (Search Application proxy):
      • $getsearchapp = get-spenterprisesearchserviceapplication "<Nombre del search Service Application>"
      • $setproxy = new-spenterprisesearchserviceapplicationproxy -name "Nombre del Search Service Application Proxy" -Uri $getsearchapp.uri.absoluteURI
      • $setproxy.status
      • Si la línea anterior, devuelve offline, ejecuta lo siguiente: $proxy.status = “online”
    • Verifica que no debas hacer un upgrade de las bases de datos (Get-SPDatabase | ?{$_.NeedsUpgrade -eq $true} | Select Name)
    • Verifica que la cuenta de usuario no esté bloqueada.

    martes, 21 de agosto de 2012

    Tips / Info #60 Sharepoint 2010

    1-Botón de New Document deshabilitado

    Si usted ve el botón de New Document deshabilitado

    image_thumb2_thumb_thumb_thumb

    deberá ir al Central Administration, y elegir Authentication Providers para el Web Application deseado.

    image_thumb3_thumb_thumb_thumb

    Click sobre la zona default

    image_thumb4_thumb_thumb_thumb

    Y habilitar la opción “Enable Client Integration”

    image_thumb5_thumb_thumb_thumb

    2- Highlight de una custom property en los resultados de búsqueda

    Verifica lo siguiente

    1) There is no

    2) This location is inaccessible because you are using FORM Authentication? You need to extend the web application on another port to connect to SPD.

    3) URL contains illegal characters?

    4) URL contains file names i.e. default.aspx

    5) Check in Central Administration > Application Management > Authentication Providers. Make sure "Enable Client Integration" is set to "Yes".

    3-Access Denied al crear una nueva página

    Si usted tiene permisos de full control sobre el site, pero sigue sin poder crear una página nueva, esto se debe a que no está su usuario en el grupo “Style Resource Readers”.

    Este grupo permite leer la galería de master page y lectura restringuida a la librería de estilos.

    Resolución: Abrir site > Site Actions > Site Settings En la sección Users and Permissions > People and Groups Click sobre Groups y seleccionar Style Resource Readers Click New > Add User En la sección de Add Users, agregar all authenticated users link Click OK

    4-Mensaje: There is no data available for this report. Here are some possible reasons: (1) Web Analytics has not been enabled long enough to generate data; (2) There is insufficient data to generate this report; (3) Data logging required for this report might not be enabled; (4) Data aggregation might not be enabled at the level required for this report.

    Puede ser que el proxy Usage and Health Data Collection Service Application esté detenido. Realice lo siguiente:

    $UP = Get-SPServiceApplicationProxy | where {$_.DisplayName -eq “Usage and Health Data Collection Service”}

    $UP.Provision()

    5-Deshabilitar la opción de eliminar una lista

    DltShr8

    If ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null )
    {
        Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell
    }
     
    $web = Get-SPWeb -Identity "http://sharepointsite" -AssignmentCollection $assignment
    $list = $web.lists["Nombre_lista"]
    $list.AllowDeletion = $true
    $list.Update()

    DltShr4

    viernes, 13 de julio de 2012

    Tips/Info #50 Sharepoint 2010

    1-Chrome y Sharepoint: no aparecen las barras verticales

    Se puede solucionar mediante jquery

    <script type="text/javascript">
    $(document).ready(function() {
    {
        $("#s4-workspace").height($(window).height() - $("#s4-ribbonrow").height());
    });
    </script>

    Otra resolución: http://kyleschaeffer.com/sharepoint/sharepoint-2010-scrolling/

    2-Borrar una carpeta de Sharepoint mediante Server Object

    SPList lista = web.Lists.TryGetList("Libreria");
    SPFolder folder = lista.ParentWeb.GetFolder(lista.RootFolder.ServerRelativeUrl + "/" + "XXXXX");
    if (folder.Exists)
    {
      folder.Delete();
    }

    3-Deshabilitar throttling para una lista específica

    $web = Get-SPWeb http://site_url
    $list = $web.Lists[“Listas”]
    $list.enablethrottling = $false
    $list.update()

    4-Obtener todos los servicios habilitados de un server específico

    Get-SPServiceInstance –Server NOMBRE_SERVER | sort TypeName | Format-Table –AutoSize

    5-El servicio SPUserCodeV4 no puede iniciarse

    Verifica en el central administration (Central Admin >> System Setting >>Manage services on server) que el servicio Microsoft SharePoint Foundation Sandboxed Code Service esté iniciado. Si el servicio SPUserCodeV4 está apagado, al deployar una sandboxed solutions nos lanzará el siguiente error:

    Error occurred in deployment step 'Activate Features': Cannot start service SPUserCodeV4 on computer 'XXXXXXXX'.

    domingo, 1 de julio de 2012

    Tips/Info #41 Sharepoint

    1-Timer jobs: no detecta los cambios de la última versión del código

    Esto se debe a que usted deployo la solution con código nueva, pero no reinicio el timer job.

    Abra una línea de comandos, y ejecute los siguiente en orden:

    net stop “SharePoint 2010 Timer”
    net start “SharePoint 2010 Timer”

    2-Content query web part vs data view web part

    Características de data view web part (DVWP):

      • El Sharepoint Designer es requerido para desarrollar DVWP
      • DVWP puede obtener datos desde fuentes de datos (diferentes a listas y xml)
      • DVWP puede obtener datos de otro site collection
      • DVWP puede mezclar datos de más de una lista

    Características de content query web part (CQWP):

      • CQWP puede obtener datos desde un Content Type.
      • Puede habilitar RSS feed en el CQWP.
      • CQWP genera campoa para mostrar los cuales pueden mapearse a columnas custom

    3-Error:The form cannot be rendered. This may be due to a misconfiguration of the Microsoft SharePoint Server State Service.

    1. Abrir Central Administration
    2. Ir a Application Management
    3. Sobre Service Applications click Configure service application associations"
    4. Click sobre el Application Service Proxy Group del WebApplication que estás trabajando.
    5. Verifica que el checkbox de State Service es marcado.

    4-Ejemplos de jobs

    Algunos ejemplos donde los jobs correran dependiendo de los parámetros pasados al constructor:

    //Job asociado con un web app, sin servers en particular y none lock:
    // correrá en todos los frontends
    var jobCorreraSobreTodoLosFrontEndServers = new MiTimerJob1("mitimerjob",
        SPWebApplication.Lookup(webAppURI), null, SPJobLockType.None);

    //Job asociado con un web app, un front end server y job lock:
    //  correrá solamente en el server frontEndServer1
    var jobRunningOnAParticularFronEndServer = new MiTimerJob1("mitimerjob",
        SPWebApplication.Lookup(webAppURI), fronEndServer1, SPJobLockType.Job);

    //Job asociado con un web app, y un app server y lock type job:
    //  no correra en ningún server ya que el server especificado NO esta corriendo el Web Application Service
    var jobRunningOnNoServer = new MiTimerJob1("mitimerjob",
        SPWebApplication.Lookup(webAppURI), appServer1, SPJobLockType.Job);

    //Job asociado con el timer service, un app server particular y un none lock:
    // Correra sobre el appServer1 solamente
    var jobRunningOnAppServer = new MiTimerJob("mitimerjob",
        SPFarm.Local.TimerService, appServer1, SPJobLockType.None);

    5-Obtener la base de datos de configuración con PowerShell

    Get-SPDatabase | Where-Object { $_.TypeName -eq "Configuration Database" }

    miércoles, 20 de junio de 2012

    Links útiles #36 Sharepoint 2010

    1-Listas externas con Sharepoint Workspaces

    http://www.c-sharpcorner.com/UploadFile/anavijai/external-lists-in-sharepoint-workspace/

    2-Publicar aplicaciones de servicios a otras granjas (Managed Metadata Service)

    http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-publish-a-service-application-in-sharepoint-2010/

    3-Crear un custom document ID provider

    http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-create-custom-document-id-provider-in-sharepoint-2010/

    http://www.c-sharpcorner.com/UploadFile/anavijai/custom-document-id-provider-web-part-for-sharepoint-2010/

    4-Mostrando gráficos dentro de una vista de lista

    http://blog.johnsworkshop.net/displaying-data-using-bar-graphs-inside-your-sharepoint-list-views/

    http://blogs.msdn.com/b/sharepointdesigner/archive/2008/06/27/css-style-bar-graphs-using-data-views.aspx

    5-Business Data Connectivity Model: agregando un filtro a uno existente

    http://www.c-sharpcorner.com/UploadFile/anavijai/how-to-add-a-comparison-filter-descriptor-to-a-finder-method-in-business-data-connectivity-model/

    6-Instalando Reporting Services en una granja existente de Sharepoint 2010

    http://sharepointgeorge.com/2012/installing-configuring-reporting-services-sharepoint-2010-existing-farm/

    7-Hold and Discovery

    http://www.c-sharpcorner.com/uploadfile/anavijai/holds-and-hold-reports-in-sharepoint-2010/

    http://mysharepointsolution.wordpress.com/2012/06/13/sharepoint-2010-hold-and-ediscovery-feature-part-1/

    http://mysharepointsolution.wordpress.com/2012/06/13/sharepoint-2010-hold-and-ediscovery-feature-part-2/

    http://mysharepointsolution.wordpress.com/2012/06/13/sharepoint-2010-hold-and-ediscovery-feature-part-3/

    8-People Picker en Infopath

    http://blogs.solidq.com/sharepoint/Post.aspx?ID=174&title=Person%2fGroup+Picker+en+InfoPath+2010+%E2%80%93+Parte+1

    9-ISA Server Sharepoint 2010

    http://sharing-the-experience.blogspot.com.ar/2012/02/isa-how-to-redirect-http-to-https-how.html

    10-Configurar el search de Sharepoint 2010

    http://sharepointjourney.wordpress.com/2012/06/13/configure-search-in-sharepoint-2010/

    jueves, 31 de mayo de 2012

    Links útiles #26 Sharepoint 2010

    1-FBA Forms Authentication Sharepoint 2010

    http://blogs.technet.com/b/meamcs/archive/2012/05/28/create-sharepoint-2010-web-application-using-fba-forms-based-authentication.aspx

    2-Deploy archivos de recursos

    http://www.sharepointblues.com/2012/05/28/sharepoint-2010-resource-file-deployment-done-easy/

    3-Detener un workflow hasta una fecha (due date)

    http://www.sharepointdotnet.com/2011/06/due-date-reminder-workflow-in.html

    4-Sincronizar entre un excel y Sharepoint 2010

    http://salaudeen.blogspot.com.ar/2012/05/synchronize-between-sharepoint-lists.html

    5-Error en Datasheet cuando la opción “Content Aproval” está activada

    http://salaudeen.blogspot.com.ar/2012/04/edit-in-datasheet-view-even-when.html

    6-Crear un job de timer en Sharepoint 2010

    http://salaudeen.blogspot.com.ar/2012/05/creating-custom-timer-job-for.html

    7-Filtros para importar usuarios dependiendo de un criterio en el servicio de perfil

    http://salaudeen.blogspot.com.ar/2012/04/filters-in-user-profile-synchronization.html

    8-Subir un archivo mediante client object

    http://salaudeen.blogspot.com.ar/2012/04/how-to-programmatically-upload-file-to.html

    9-SPPersistedObject: ej de su uso: necesitas guardar datos de configuración para un job que se corre de forma planificada. Una forma de guardar la información es usando este objeto.

    http://www.chaholl.com/archive/2011/01/30/the-skinny-on-sppersistedobject-and-the-hierarchical-object-store-in.aspx

    http://joelblogs.co.uk/2010/10/10/persisting-configuration-data-in-sharepoint-2010-with-sppersistedobject/

    10-Generar un craw después de detener todos los content sources mediante powershell

    http://get-spscripts.com/2012/05/force-stop-and-then-start-full-crawl-on.html

    11-Copiar una document set vía programación

    http://www.thesharepointblog.net/Lists/Posts/Post.aspx?List=815f255a-d0ef-4258-be2a-28487dc9975c&ID=117

    12-Servicios entre granjas para gobiernos

    http://jandresval.wordpress.com/2012/05/29/servicios-intergranjas-para-gobiernos-corporativos-y-administrativos/

    13-Carousel

    http://junestime.wordpress.com/2012/05/23/adding-a-javascript-image-carousel-to-sharepoint-2010-using-content-editor-web-part/

    lunes, 28 de mayo de 2012

    Links útiles #25 Sharepoint 2010

    1-Deshabilitar drag and drop de eventos en calendarios Sharepoint 2010 (SP.UI.ApplicationPages.CalendarContainerFactory.create)

    http://spblog.net/post/2012/01/29/How-to-disable-drag-and-drop-events-in-calendar.aspx

    2-Obtener la fecha seleccionada de un calendario Sharepoint 2010

    http://franknezrick.blogspot.com.ar/2012/03/get-selected-datetime-within-sharepoint.html

    3-Obtener el ID del evento que se clickea en un calendario

    http://mhusseini.wordpress.com/2012/05/18/handle-clicks-on-calendar-items-in-sharepoint-2010-with-javascript/

    4-Restringir a que usuarios borren content types

    http://alancejacob.wordpress.com/2012/05/18/restrict-users-to-edit-or-delete-contenttype-fields-from-a-list-in-sharepoint-eventreceiver/

    5-Conectar dos web parts

    http://www.sharepointkings.com/2012/05/connectable-web-parts-in-moss.html

    6-Tips para trabajar con los calendarios

    http://digitalmacgyver.wordpress.com/2012/05/24/simple-tips-for-working-with-sharepoint-calendars/

    7-Mostrar el historial de versiones en la página DispForm

    http://benmjamin.wordpress.com/2012/05/17/sharepoint-2010-list-item-version-history-on-display-form/

    8-Mostrar campos en el Content Query

    http://www.sharepointblog.co.uk/2012/05/fields-to-display-in-content-query-web-part/

    9-Diálogos modales en Sharepoint 2010

    http://saifalmaluk.wordpress.com/2012/05/18/sharepoint-2010-modal-dialog-pop-up/

    http://spblog.net/post/2012/04/28/SharePoint-2010-modal-dialog-extensions.aspx

    http://franknezrick.blogspot.com.ar/2012/03/refresh-parent-showmodaldialog.html

    10-Crear un custom template con Visual Studio 2010

    http://dotnetfollower.com/wordpress/2012/05/sharepoint-how-to-create-a-custom-master-page/

    11-Crear servicio de aplicación en Sharepoint 2010

    http://www.sharepointblog.co.uk/2012/05/creating-custom-sharepoint-2010-service-applications-and-consumers/

    http://msdn.microsoft.com/en-us/library/gg543112.aspx

    12-Nivo Slider Web Part

    http://nivowebpart.codeplex.com/releases/view/88481

    13-Kentico para Sharepoint

    http://devnet.kentico.com/docs/devguide/index.html?sharepoint_overview.htm

    14-PowerShell para Office 365

    http://blog.powershell.no/2011/05/09/administering-microsoft-office-365-using-windows-powershell/

    http://technet.microsoft.com/en-us/magazine/hh750396.aspx

    http://onlinehelp.microsoft.com/office365-enterprises/hh124998.aspx

    15-Deploy custom page aspx mediante una sandbox solution

    http://www.akruratechnologies.com/2012/05/14/deploy-custom-aspx-page-with-sandbox-solutions-sharepoint-2010/

    16-Web Part SkyDrive para Sharepoint 2010

    http://skydriveconnector.codeplex.com/

    17-Comparación entre Exchange public folders y Sharepoint

    http://sharepointadmin4u.wordpress.com/2012/05/22/exchange-public-folder-vs-sharepoint-why-should-you-migrate-your-exchange-public-folders-to-sharepoint/

    18-SPQuery y problema con las fechas (datetime)

    http://sladescross.wordpress.com/2012/05/28/spquery-iso-datetime/

    domingo, 13 de mayo de 2012

    Tips/Info #20 Sharepoint 2010

    1-Resetear el theme del site al desactivarse una feature

    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        //Voy al site collection actual
        SPSite siteCollection = properties.Feature.Parent as SPSite;
        if (siteCollection != null)
        {
            SPWeb topLevelSite = siteCollection.RootWeb;
            foreach (SPWeb site in siteCollection.AllWebs)
            {
                //reseteo el tema en el caso que se haya aplicado
                ThmxTheme.RemoveThemeFromWeb(site, true);
            }
        }
    }




    2-Detener las intancias del servicio SharePoint Incoming E-Mail Service


    Get-SPServiceInstance | ? {$_.Typename -eq "Microsoft SharePoint Foundation Incoming E-Mail"} | Stop-SPServiceInstance -Confirm:$False



    3-Obtener todas las listas mediante una query de base de datos


    SELECT      
        Webs.FullUrl as 'URL', 
        Webs.Title as 'Web Title', 
        WEBS.Description as 'Web Description', 
        AllLists.tp_Title as 'List Description', 
        AllLists.tp_Version as 'List Version' 
    FROM          
        Webs  with (nolock)
    INNER JOIN  
        Sites ON Webs.SiteId = Sites.Id  
    INNER JOIN AllLists ON Webs.Id = AllLists.tp_WebId 
    ORDER BY 
        Webs.FullUrl




    4-Ejecutar de forma inmediata el jobs de Análisis de Mantenimiento


    Get-SPTimerJob | Where {$_.Name -like "*Health*" -and $_.Name -like "*-all-*"} | Start-SPTimerJob



    5-Ocultar la sección de papelera de reciclaje (Recycle Bin) y todo el contenido del sitio (All Site Content)


    leftnav2b


    <style type="text/css">
    .s4-specialNavLinkList
    {
    display:none !important;
    }
    </style>


    6-Consultas de SQL: Obtener los grupos de permisos con nombre ‘HR Visitors’ y con el tipo de permiso de full control


    select ra.PrincipalId as 'GroupID', g.Title as 'GroupTitle', p.ScopeUrl, r.Title as 'RoleTitle', ui.tp_Title
    from RoleAssignment ra with (nolock)
        left outer join Roles r  with (nolock) on ra.RoleId = r.RoleId
        left outer join Perms p  with (nolock) on ra.ScopeId = p.ScopeId
        left outer join GroupMembership gm  with (nolock) on ra.PrincipalId = gm.GroupId
        left outer join Groups g  with (nolock) on gm.GroupId = g.ID
        left outer join UserInfo ui  with (nolock) on gm.MemberId = ui.tp_ID
    where     p.ScopeUrl like 'sites/HR%'
        and g.Title = 'HR Visitors'
        and r.Title != 'Full Control'




    7-Consultas de SQL: Obtener todos los grupos donde un usuario específico está incluido




    SELECT Groups.Title
    FROM GroupMembership with (nolock)
    inner join Groups with (nolock)  ON GroupMembership.GroupId = Groups.ID
    inner join UserInfo with (nolock)  ON GroupMembership.MemberId = UserInfo.tp_ID
    where userinfo.tp_Login like '%cazcon'



    8-Compartir servicios en granjas de servidores de Sharepoint 2010 (Service Application Federation)


    En Microsoft SharePoint Server 2010, un conjunto o granja de servidores de SharePoint puede conectarse a una aplicación de servicio publicada en otra granja de servidores de SharePoint Server 2010 para usarla. Para ello, las granjas de servidores deben intercambiar certificados de confianza.

    En este artículo se describe cómo intercambiar certificados de confianza entre la granja de servidores de publicación y la granja de servidores de consumo. Tenga en cuenta que ambas granjas de servidores deben participar en este intercambio para que el uso compartido de las aplicaciones de servicio funcione.

    Un administrador de la granja de servidores de consumo debe proporcionar dos certificados de confianza para la granja de servidores de publicación: un certificado raíz y un certificado de servicio de token de seguridad (STS). Un administrador de la granja de servidores de publicación debe proporcionar un certificado raíz para la granja de servidores de consumo.

    Más info: http://technet.microsoft.com/es-ar/library/ee704552.aspx

    http://sharepintblog.com/2011/12/02/publishing-and-consuming-sharepoint-service-application-with-powershell/

    http://www.kowalski.ms/2010/07/16/sharepoint-server-2010-enterprise-service-application-publishing-and-consuming-farms/

    http://www.aiim.org/community/blogs/expert/Connecting-to-the-User-Profile-Service-Proxy

    9-Obtener el id de la granja (farm) con powershell

    (Get-SPFarm).Id

    10-Actualizar password para cuentas administradas

    Set-SPManagedAccount -Identity <<Doamin\LoginName>> –UseExistingPassword

    11-Restear la farm Passphrase


    • Abrir una consola de powershell y ingresa lo siguiente


    $passphrase = ConvertTo-SecureString -asPlainText –Force



    • Escriba la contraseña

    • Después ingrese los siguiente: Set-SPPassPhrase -PassPhrase $passphrase –Confirm

    • Reingrese la contraseña

    12-Control CSSResgistration para la carga de CSS


    <SharePoint:CSSRegistration name= "<%$SPrl:~SiteCollection/Style Library/~language/Core Stypes/Band.css%>" runat="server"/>


    Algunas propiedades útiles de este control:


    After: permite cargar un css después de un determinado elemento de css. Ej: <SharePoint:CSSRegistration name= “_layouts\CleanV4\style0.css” runat="server" After=”corev4.css”/>

    ConditionalExpression:
    <SharePoint:CSSRegistration name= “_layouts\CleanV4\style0.css” runat="server" ConditionalExpression =”IE 6.0” />
    La última sentencia sólo se cargar para IE 6

    viernes, 4 de mayo de 2012

    Tips/info #17–Sharepoint 2010

    1-Extensión de una aplicación web
    Si desea exponer el mismo contenido en una aplicación web a diferentes tipos de usuarios con métodos de autenticación o direcciones URL adicionales, puede extender una aplicación web existente a una nueva zona. Al extender la aplicación web a una nueva zona, se crea un sitio web de Internet Information Services (IIS) independiente (con su propio web config) para ofrecer el mismo contenido, pero con un tipo de autenticación y dirección URL únicos.
    Una aplicación web extendida puede usar hasta cinco zonas de red (predeterminada, intranet, Internet, personalizada y extranet). Por ejemplo, si desea extender una aplicación web para que los clientes puedan obtener acceso a contenido desde Internet, seleccione la zona de Internet y elija permitir el acceso anónimo y conceder a los usuarios anónimos permisos de solo lectura. Los clientes tendrán acceso a la misma aplicación web que los usuarios internos, pero mediante direcciones URL y configuraciones de autenticación distintas.
    2-Servicios dependientes en Sharepoint 2010
      • PerformancePoint Service requiere tener configurado: Excel Services, State Service
      • Sharepoint Server Search requiere tener configurado Usage and Health Data Collection Service
      • Visio Graphics service requiere tener configurado State Service
      • Web Analytics service requiere tener configurado State Service
    3-Obtener los ids de los application pools
    Get-SPServiceApplicationPool | select Id, Name
    Esta cmdlet nos dará la lista de Grupo de Aplicaciones
    4-Guardar el usuario actual en un campo de una lista

       1:  SPSecurity.RunWithElevatedPrivileges(delegate()
       2:              {
       3:                  SPWeb currentWeb = SPContext.Current.Web;   
       4:                 SPList lst = currentWeb.Lists["ListaPrueba"];
       5:                  SPListItemCollection myColl = lst.Items;
       6:                  SPListItem item = myColl.Add();
       7:                  item["Title"] = txtTitle.Text;   
       8:                  SPFieldUserValue value = new SPFieldUserValue(currentWeb, currentWeb.CurrentUser.ID, currentWeb.CurrentUser.LoginName);
       9:                  item["Autor"] = value.LookupId;
      10:                  item.Update();
      11:   
      12:              });

    5-Obtener los items en los cuales los worfklows tuvieron un error (Error Occurred)

    StatusValue
    Not Started0
    Failed on Start1
    In Progress2
    Error Occurred3
    Canceled4
    Completed5
    Failed on Start (retrying)6
    Error Occurred (retrying)7
    Approved16
    Rejected17


    supongamos que el workflow se llama “NombreWorkflow” la columna que indica el status del workflow se llamará “NombreWo”, son los primero 8 caracteres del nombre del workflow.


    La consulta CAML será <Eq><FieldRef Name=”NombreWo” /><Value Type=”WorkflowStatus”>3</Value></Eq>


    6-Al querer guarda una lista como template obtengo acceso denegado


    Ingresar (un administrador de site collection) a site > site actions > site settings > Galleries > List template gallery


    Y dar permisos de contribute a la persona que tiene persona


    7-Agregar una propiedad sobre el objeto “property bag” a un sitio
    $url= 'http://sharepoint.com/sites/Chris'
    $site = Get-SPSite($url)
    $rootWeb = $site.RootWeb
    $rootWeb.AllProperties.Add("Edad","29")  
    $rootWeb.Update()
    $ht = $rootWeb.AllProperties  # Muestro la tabla hash completa


    8-Diferencia entre Attach File y Upload File
    Adjuntar un archivo (attach file) se utiliza para agregar el archivo adjunto a la lista. Subir archivos (Upload File)  se utiliza para subir el archivo a la biblioteca de documentos.


    9-Método SPUtility.GetLocalizedString: recupera el valor de un recurso desde un archivo de recurso para un lenguaje específico
    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Utilities;
     
    namespace ConsoleApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (SPSite site = new SPSite("http://localhost"))
                {
                    using (SPWeb web = site.RootWeb)
                    {
                        if (web.IsMultilingual)
                        {
                            IEnumerable<CultureInfo> cultures = web.SupportedUICultures;
                            foreach (CultureInfo culture in cultures)
                            {
                                // Print the value of a language resource in the current language.
                                string str = "$Resources:onet_TeamWebSite";
                                string locStr = SPUtility.GetLocalizedString(str, "core", (uint)culture.LCID);
     
                                Console.WriteLine("{0}  {1}", culture.Name, locStr);
                            }
                        }
                    }
                }
                Console.Write("\nPress ENTER to continue....");
                Console.ReadLine();
            }
        }
    }


    10-Reiniciar el servicio de SharePoint Foundation Web Services en el WFE (Web Front End)
    stsadm -o provisionservice -action start -servicetype spwebservice

    Después reiniciar IIS.


    11-No me aparece la opción “Save Site as Template”


    Puede ser que no tengas permisos, o que no hayas activado la feature: SharePoint Server Publishing


     12-List.ItemCount vs List.Items.Count

    var itemCount = list.Items.Count; 
    esta sentencia trae todo los items y en memoria hace la cuenta, en cambio la siguiente sentencia realiza la cuenta sin tomar todos los items.
    var itemCount = list.ItemCount;
    13-Customizar la navegación de MySites
    Site Actions > Site Settings > Top link bar


    0417.sp-sharepointers1


    0417.sp-sharepointers2


    Site Actions > Site Settings > Quick launch

    0417.sp-sharepointers3

    Si abres el master page mysite.master en SharePoint Designer, hay una área controlada por un delegado llamado “GlobalNavigation.”. Este control es cargado desde el folder especial 14.


    \14\TEMPLATE\CONTROLTEMPLATES\MySiteTopNavigation.ascx.

    viernes, 6 de abril de 2012

    Tips/info #13–Sharepoint 2010

    1-Soporte para mirroring de base de datos en Sharepoint 2010

    hay dos bases de datos que no tienen soporte para mirroring

    • User Profile Service: Synchronization database
    • Web Analytics Service: Staging database

    http://technet.microsoft.com/en-us/library/cc748824.aspx

    2-Características no soportadas para excel services en Sharepoint 2010

    • Comentarios de celdas
    • Referencias de fórmulas a libros externos
    • Query tables (conocidos como external data ranges).
    • Microsoft Visual Basic for Applications (VBA).
    • Cualquier tecnología OfficeArt. Ej, Shapes, WordArt, SmartArt, organization chart, diagrams, signature lines, ink annotations, etc.

    3-Rompiendo la herencia de seguridad de una lista mediante Client Object

       1:  using System;
       2:  using Microsoft.SharePoint.Client;
       3:  using SP = Microsoft.SharePoint.Client;
       4:   
       5:  namespace Microsoft.SDK.SharePointServices.Samples
       6:  {
       7:      class BreakSecurityInheritance
       8:      {
       9:          static void Main()
      10:          {
      11:              string siteUrl = "http://MyServer/sites/MySiteCollection";
      12:              ClientContext oContext = new ClientContext(siteUrl);
      13:              SP.List oList = oContext.Web.Lists.GetByTitle("Announcements");
      14:   
      15:              oList.BreakRoleInheritance(true, false);
      16:   
      17:              oContext.ExecuteQuery();
      18:          }
      19:      }
      20:  }




    Más info: http://msdn.microsoft.com/en-us/library/ee535228.aspx


    4- Opción Accuracy Index en el panel de refinamiento



    Hay algunos conceptos erroneos con respecto al panel de refinamiento y cómo se general los refinamientos. A continuación los conceptos erroneos:




    • Los refinamientos son generados del conjunto completo de resultados de búsqueda


    • Los refinamientos son generados de la primera página de los resultados de búsqueda


    • Los refinamientos son generados de forma random

    Ninguno de estos conceptos son correctos, los refinamientos son generados en base a una propiedad del panel de refinamiento: Accuracy Index.



    image_thumb


    Define cuántos elementos se consideran en la creación de los refinamientos. Por defecto se establece en 50 de modo que sólo los primeros 50 elementos en sus resultados de búsqueda se utiliza para generar los refinamientos.




    • Esto tiene varias consecuencias importantes:
      Si usted tiene más de 50 resultados (por ejemplo 20000) podría haber algunas categorías de refinamiento que no aparecen porque no están en los primeros 50 resultados


    • Si usted tiene contadores para los refinamientos, verá que el número total contadores podría no sumar el número total de resultados.

    Sin embargo, usted puede aumentar este valor hasta un máximo de 500. Si usted quiere ser capaz de generar refinamientos para todos los resultados de búsqueda, llamados deep refiners, entonces usted tendrá que usar FAST Search.


    Entre más refinamientos tengas, menor performance tendrá en la consulta.


    5-Mostrar contadores en el panel de refinamiento



    Hacer click en “Filter Category Definition” en el web part de panel de refinamiento.



    image_thumb1


    En la categoría deseada, ej: Title, agregar ShowCounts=”Count”


    image_thumb2


    La inclusión del contador es determinado por xlst en el web part de refinamiento.


    image_thumb3


    6-Evitar dos llamadas a ItemUpdating después de subir un documento a una document library



       1:  public override void ItemUpdating(SPItemEventProperties properties)
       2:    {  
       3:      base.ItemUpdating(properties);
       4:      if (properties.AfterProperties["vti_sourcecontrolcheckedoutby"] == null && properties.BeforeProperties["vti_sourcecontrolcheckedoutby"] != null)
       5:       {
       6:         //do stuff
       7:       }
       8:    }




    Más info: http://www.simple-talk.com/content/print.aspx?article=1424


    7-Habilitar HTML 5 en Sharepoint 2010



    En tu master page default, buscar la siguiente línea:


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

    Modificarla por:

    <!DOCTYPE html>

    Después modifica la siguiente línea:

    <meta http-equiv="X-UA-Compatible" content="IE=8"/>

    Por la siguiente:

    <meta http-equiv="X-UA-Compatible" content="IE=9"/>









    8-Error: al abrir un archivo word desde Sharepoint 2010



    Word experienced an error trying to open the file.

    Try these suggestions.

    * Check the file permissions for the document or drive.

    * Make sure there is sufficient free memory and disk space.

    * Open the file with the Text Recovery converter.

    word_error



    Para solucionarlo, ir a File/Options/Trust Center/Trusted Center Settings.


    Después seleccionar la sección Protected View, y desmarcar todas las opciones.


    protected_view-300x172



    9-Donde crear un servicio de WCF en Sharepoint 2010



    Si está creando un servicio WCF básicamente tienes dos opciones:
    -Crear un servicio WCF en un contexto de SharePoint.
    -Crear un servicio WCF independiente.



    Si está creando un servicio WCF en un contexto de SharePoint, básicamente hará lo siguiente: crear un proyecto de SharePoint, agregue el servicio WCF y desplegar a la carpeta ISAPI. Véase: http://msdn.microsoft.com/en-us/library/ff521581.aspx  para obtener más información. Además, puede utilizar http://cksdev.codeplex.com/  , que contiene una plantilla WCF útil.



    Si está creando un servicio WCF independiente, básicamente creará un proyecto WCF y publicar el servicio. Ver
    http://sharepointdragons.com/2011/10/07/parallel-programming-in-sharepoint-2010-the-back-to-the-future-pattern/



    ¿Por lo tanto, a la hora de elegir uno de los dos escenarios, cuál es la mejor práctica, y por qué?


    Crear un servicio WCF en un contexto de SharePoint
    -Si necesita que el servicio se ejecute en el contexto actual de SharePoint
    -Si desea utilizar el soporte completo de API de SharePoint
    -Si desea que su cliente acceda a su servicio con la misma experiencia como los servicios de SharePoint OOB
    -Si se extiende algunos funcionalidad personalizada de su solución que no sea por defecto proporcionados por servicios de SharePoint.
    -Si desea utilizar y proporcionar la misma autenticación/autorización configurada en la granja al acceder a su servicio.
    -Si el servicio será usado entre las granjas de SharePoint.


    Crear un servicio WCF independiente
    -Si desea exponer algunas funcionalidades de su solución al mundo exterior.
    -Sólo puede utilizar la API de cliente / SharePoint webservice / o su referencia de código personalizado dentro de su servicio WCF.
    -Desea prestar atención a la autenticación y autorización
    -Si puede accederlo por otro cliente, sin siquiera conocer la existencia de SharePoint en el back-end.



    Si deseas crear un servicio WCF independiente, es recomendable ejecutar en un sitio web de IIS independiente (No Sharepoint).