Forums

Skip Navigation LinksHome / Developer Network / Forums / Sitefinity 3.x: General Discussions > Integrating SharePoint and Sitefinity

Integrating SharePoint and Sitefinity

  • Posted on Nov 12, 2008 (permalink)

    Hi all,

    I've browsed through the threads on integrating SharePoint and Sitefinity, but didn't see any concrete guidance.  I was wondering if anyone has actually done this yet, as I'm about to propose that sort of a project to a client, and would be interested in hearing about your experiences. 

    The idea is that Sitefinity provides the public facing web site, and Windows SharePoint Services provides the intranet and collaboration part.  I'm trying to find a good solution that avoids the complexity (and licensing cost) of using MOSS for publishing sites, but retains the collaboration tools that WSS has.

    In this particular project there is a substantial effort involved to create a new business application using SharePoint, parts of which will be exposed through the public web site.

    The main areas of concern I have are:

    Shared Membership provider.  I've got a fair amount of experience getting SharePoint to behave well with the OOTB ASP.Net SQL Membership and Role Providers, and it seems to me that Sitefinity uses essentially the same provider.  Does anyone know if there are any major obstacles to using one for the other?  My thought was to create a separate SQL database that would be used for membership for both Sitefinity and SharePoint.

    Content Sharing.  I will have a lot of list-oriented data on the SharePoint site.  Some of that will need to be exposed through the publc-facing web site, secured by a login.  Ordinarily I would say the best way to share this data is via the SharePoint web services.  Any other ideas?  Has anyone created a control similar to the SharePoint Connector that was available in the past to share content between SPS and MCMS?

    Sharing of the object model.  Has anyone tried working with the SharePoint object model from within a Sitefinity page?  Assuming for the moment that both applications are on the same server, and they're sharing a membership and role provider, it seems like this would be a viable approach to content sharing.  In particular, I'd like to implement a sort of dashboard functionality on a Sitefinity page, that would use the SharePoint object model to get it's data.

    Any thoughts or experiences would be greatly appreciated!

    Regards,
    Mike Sharp

    Reply

  • Georgi Georgi admin's avatar

    Posted on Nov 18, 2008 (permalink)

    Hi Mike,

    Unfortunately we do not have any experience with Sharepoint and its integration with Sitefinity so far. I think the following thread could help you a bit - Need help to integrate with a SharePoint Portal.

    We would greatly appreciate if you could share your experience though.

    All the best,
    Georgi
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.

    Reply

  • Posted on Nov 18, 2008 (permalink)

    Thanks Georgi,

    I'll definitely share my experiences.  I think the combination of Sitefinity and WSS 3.0 is pretty compelling.  I'm waiting to hear if I got the project or not, but either way I'm going to experiment with connecting the two.  I'm pretty new to Sitefinity, but I've been developing on SharePoint for a long time. 

    Regards,
    Mike Sharp

    Reply

  • Georgi Georgi admin's avatar

    Posted on Nov 18, 2008 (permalink)

    Hi Mike,

    Thank you for your willingness!
    We hope that you will get the project. We will update your Telerik account with some points for any information you share with us and the community :)

    All the best,
    Georgi
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.

    Reply

  • Posted on Nov 19, 2008 (permalink)

    Hey Mike,

    I wanted to chime in here as well.  The integration story between SharePoint & Sitefinity is very interesting to me as well.  I would love to get any feedback or discoveries you have on this.

    Gabe Sumner
    http://www.goondocks.com/

    Reply

  • Marko avatar

    Posted on Nov 21, 2008 (permalink)

    Just thought I'd put my name on the receiving end, too. :-)  We're also using WSS for collaboration and are probably not likely to go to MOSS for similar reasons that Mike mentioned.  So far, though, we haven't explored any possible integration between the two, but I can easily think of some potential scenarios.

    I definitely thought of the web services immediately, when I saw your question.  That would probably be especially a good way to just READ the data from WSS, and simply display and format it in SF, for the dashboard-like things.  So, use WSS to manage the data, but use SF to show it off to the workd, or whatever.

    I think you can also work with the Sharepoint object-model if you simply load the needed Sharepoint dll(s) into your SF website bin folder, and you reference your WSS Sites and Site Collections by using a URL-specific string (instead of a typical local way of doing things in WSS).  You would also need to make sure dispose of the objects manually, since Sharepoint would not do the cleanup automatically in that case.

    Of course, that's just hypothetical stuff, because I haven't actually done it myself in this exact scenario, but those would be the things I would start exploring, if I were to start doing this today.

    When it comes to the authentication, Sitefinity is supposed to be able to work wqith multiple authentication providers, so again in theory, there should not be problems letting your Sharepoint users into Sitefinity or vice-versa.

    Reply

  • Georgi Georgi admin's avatar

    Posted on Nov 24, 2008 (permalink)

    Hello Marko,

    This is great help for starting up with the integration! Despite you did not tested all this, we see your willingness to help, therefore we are updating your Telerik account for helpful reply!

    All the best,
    Georgi
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.

    Reply

  • Adam @Habanero avatar

    Posted on Dec 3, 2008 (permalink)

    Our company does a lot of Sharepoint and Moss work, and we are new to Sitefinity.  I'm very curious as to the integration of these to products.  Your idea for using SF for the public site seems like a good one.

    Looking forward to seeing what you find works.  Will try to help with infomation if at all possible.

    Reply

  • Erik avatar

    Posted on Jan 8, 2009 (permalink)

    I am working on a project now that will likely attempt to accomplish what Marko was talking about where SF is used as the publishing platform for SP content.  I am running Sitefinity as an Intranet CMS and working on revamping the public website with the bent on using Sitefinity to run the public site and have all the content for documents come out of SP.

    Any information about the integration of SF and SP will be greatly appreciated on my part as I attempt to venture into this uncharted territory.  Good luck and I will hopefully be able to provide some valuable feedback as I go through this process as well!

    Reply

  • Georgi Georgi admin's avatar

    Posted on Jan 9, 2009 (permalink)

    Hello Erik,

    It will be great if you could provide any feedback on this matter.
    Unfortunately we do not have enough information at the moment, that we can share.

    Best wishes,
    Georgi
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.

    Reply

  • Gary avatar

    Posted on Jan 12, 2009 (permalink)

    Hi Mike,

    I implemented a solution to fetch content from SharePoint lists via web services. I'll share a few things I did along the way in case they are useful ideas for you.

    To avoid performance issues the data fetched from SharePoint is persisted locally and then consumed by user controls. The admin user clicks a button on a secured page to initiate the load, which reads a list of elements from web.config to determine which SharePoint site list views to fetch the data from. This could of course also be initiated via a scheduled task.

    The data loaded for each list entry in the web.config file was saved in its own folder within a defined root folder. I included the ability to transform the data via an XSLT before saving the file to cleanup the SharePoint XML and convert to a syntax appropriate for the customer needs.

    You can get fancy in the XLSTs and use the document function to reference another XML file to resolve SharePoint lookup fields and fetch associated attributes (i.e. flatten the data).

    I also created the ability to fetch image libraries (they are just lists with URL references to image files) with the option to resize the image and also to create a thumbnail before it is saved.

    Additionally, I created the ability to persist the list data into a database table. In this case a transformation is required so that the list elements are structurally similar to table rows. Primary key fields were identified within the web.config entry so that the data can be inserted, updated, and deleted automatically (I didn't want to flush and fill because that would have required downtime due to data availability).

    It worked out pretty well and can be used on any SharePoint site without code changes. The customer I used it with has added a couple of additional lists to the web.config file to work with new SharePoint data they've created since I built the solution.

    Regards,
    Gary

    Reply

  • Adam @Habanero avatar

    Posted on Jan 12, 2009 (permalink)

    Very interesting Gary.

    We are most likely going to implement something simmilar for our clients in the near future.

    Does anyone know what the licensing implications are to this type of setup? 

    Reply

  • Georgi Georgi admin's avatar

    Posted on Jan 13, 2009 (permalink)

    Hello,

    Thank you for your thoughts! We always appreciate when someone shares his experience. Gary, your account has been updated.

    Greetings,
    Georgi
    the Telerik team

    Check out Telerik Trainer, the state of the art learning tool for Telerik products.

    Reply

  • Pete avatar

    Posted on Apr 1, 2009 (permalink)

    I'm glad to see there is a growing community exploring this option!

    I too am looking to develop Sitefinity  to be bundled with each of our WSSv3 front ends.

    So far I have produced a proof of concept issuing, retrieving and displaying search results from a given WSSv3 search server.  I have also created a rough proof demonstrating the ability to execute CRUD operations against a list residing in WSSv3.  Yet another proof demonstrates the ability to discover and retrieve field information for a given list within sharepoint, and translate that information in to appropriate UI components.  In this case, retrieving the possible values out of a Choice field and enumerating them as options for a DropDownList within a template control of a gridview.

    I have accomplished both proofs using the Sharepoint object model running with elevated privileges against a specific WSS site.  I need to explore the security risks of operating with AllowUnsafeUpdates set to true in order to manipulate the object model while not directly within the Sharepoint installation.

    Here is some sample code for the search proof mentioned above.  I welcome any comments or concerns:

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="SPSearch.ascx.cs" Inherits="SPSearch" %> 
     
    <div style="width:400px; margin:auto; overflow:auto; padding:1em; text-align:center;"
       <h1>WSSv3 Search Demo</h1> 
       <br /> 
       <center> 
       <table> 
          <tr><td><b>Search Term:</b></td><td style="padding-left:.5em;"><asp:TextBox ID="txtTerm" runat="server" /></td></tr> 
          <tr><td colspan="2" style="text-align:center;"><br /><asp:Button ID="btnSearch" Text="Search" runat="server" onclick="btnSearch_Click" /></td></tr> 
       </table><br /> 
       </center> 
       <br /> 
       <asp:GridView ID="grdResults" runat="server" BackColor="White"  
          BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3"  
          GridLines="Vertical" AutoGenerateColumns="false" > 
          <RowStyle BackColor="#EEEEEE" ForeColor="Black" /> 
          <FooterStyle BackColor="#CCCCCC" ForeColor="Black" /> 
          <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> 
          <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" /> 
          <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" /> 
          <AlternatingRowStyle BackColor="#DCDCDC" /> 
          <Columns> 
             <asp:BoundField DataField="Title" HeaderText="Title" /> 
             <asp:BoundField DataField="Author" HeaderText="Author"/> 
             <asp:TemplateField HeaderText="Path"
                <ItemTemplate> 
                   <asp:LinkButton PostBackUrl='<%# Eval("Path") %>' Text='<%# Eval("Path") %>' runat="server" /> 
                </ItemTemplate> 
             </asp:TemplateField> 
             <asp:BoundField DataField="HitHighlightedSummary" HeaderText="Results" /> 
          </Columns> 
       </asp:GridView> 
    </div>

    using System; 
    using System.Data; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
    using Microsoft.SharePoint.Search; 
    using Microsoft.SharePoint; 
    using Microsoft.SharePoint.Search.Query; 
     
    public partial class SPSearch : System.Web.UI.UserControl 
        protected void btnSearch_Click(object sender, EventArgs e) 
        { 
            SPSite site = new SPSite("http://MySite"); 
     
            KeywordQuery request = new KeywordQuery(site); 
     
            request.QueryText = txtTerm.Text; 
            request.ResultTypes = ResultType.RelevantResults; 
            ResultTableCollection results = request.Execute(); 
            ResultTable relResult = results[ResultType.RelevantResults]; 
     
            DataTable ResultsTable = new DataTable(); 
     
            ResultsTable.Load(relResult, LoadOption.OverwriteChanges); 
     
            grdResults.DataSource = ResultsTable; 
            grdResults.DataBind(); 
        } 


    Reply

  • Georgi Georgi admin's avatar

    Posted on Apr 2, 2009 (permalink)

    Hello,

    We are really glad that the community integrating Sharepoint and Sitefinity is constantly growing! We also find that your comments and experience with this matter is really helpful for everyone following our Forums. Hopefully, we will soon see another great posts about the integration.

    Sincerely yours,
    Georgi
    the Telerik team

    Check out Telerik Trainer , the state of the art learning tool for Telerik products.

    Reply

  • mgrp avatar

    Posted on Feb 1, 2010 (permalink)

    Hi all,
    I have a FBA sharepoint site, and I want to show some of its areas in a sitefinity portal. My question is,
    could I configure FBA authentication in sharepoint using sitefinity membership provider? If the answer is affirmative, how can I do it?

    Thanks!

    Reply

  • Georgi Georgi admin's avatar

    Posted on Feb 1, 2010 (permalink)

    Hello mgrp,

    We are using Forms Authentication in Sitefinity for the backend login. The Sitefinity membership provider is based on the standard Microsoft SQL membership provider, so it should be difficult. We do not have additional information on this though.

    Perhaps you can connect to some of the Sharepoint services, get the data needed through a user control and place this control in Sitefinity.

    Kind regards,
    Georgi
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Watch a video on how to optimize your support resource searches and check out more tips on the blogs.

    Reply

  • Jan Arenö avatar

    Posted on Oct 28, 2010 (permalink)

    Hi

    Did Mike ever got back with any exp with the integration
    We are currently working on a solution where we have the structured data (contact information, documents and product images) inside sharepoint (2010) and is loaded to sitefinity. The project is kind of just starting up and any early experience from others is always nice.
    I think one possible problem is going to be performance as Gary noted. Hopefully we can avoid this by doing caching and store the data closer to the public web.

    we try to do this all by handling a generic dataretriever and work with templates to display the data. Our test shows us that the Proof of concept is working, now it needs to be polished and so the end user can handle it and performance is good enough.

    I hope to share some of our experience as we go along

    Reply

  • Register for webinar
Skip Navigation LinksHome / Developer Network / Forums / Sitefinity 3.x: General Discussions > Integrating SharePoint and Sitefinity