Friday, February 20, 2009

What’s the Purpose of Shared Service Provider (SSP) in SharePoint (MOSS) 2007?

Most of you already know that SharePoint gives you the ability to crate and host multiple separate web applications,for example, intranet site, internet/Extranet, Team site, etc. In MOSS 2007, Microsoft comes with a new concept of Shared Services Providers(SSP). The idea behind this concept is to manage and share certain services centrally instead of each web application level. The best examples are Profiles and Search service. Using Profile service, you can import all of the user information from Active Directory once and then use  that data within different web applications. In the same way you can also setup the search service one time and then share it across multiple web applications. It make prefect sense, right?

 

The major services that are handled by SSP are,

  • Profiles
  • Search
  • Indexing
  • My Sites
  • Audiences
  • Excel Services
  • Business Data Catalog (BDC)

Another major advantage of SSPs is separation of roles. It is most common in medium to large server farms to have one group administrating the physical servers and another group maintain search/profiles. Since SSP is its own site collection, you can define a user access so that they can not access Central Administration site but they can access the SSP. Even in SSP you can limit then what they can access.

 

As a general rule, you use single SSP. But there are some scenarios you may want to create multiple SSPs. For example, you may need separate set of permissions and services for intranet site and extra net site. You have to be vary cautious about creating multiple SSPs.

 

Final Thoughts

Shared Service Providers (SSPs) are one of the great feature in MOSS 2007. Creations of SSPs should be part of your initial planning. In SSPs, You can grant permissions at a granular level or broad access.

 

I hope this was useful and you understand clearly what’s the purpose of SSPs?

Saturday, November 22, 2008

Custom Actions in SharePoint 2007

WSS 3.0 and MOSS 2007 now have a supported extensibility mechanism allowing developers to easily add links to existing menus or Site Settings.

 

Custom Actions can be used to add new custom functionality to many places in WSS and MOSS. Depending on where the custom action is located determines the user interface of the custom action. For example if you create a custom action for the Site Actions menu the result is a menu item anchored in the control. If you create a Custom Action for the Site Settings page you will see a link.  Creating a custom action for a list's display form toolbar results in a toolbar button. As you can see just from this small list a Custom Action provides a lot of extensibility in WSS and MOSS.

Each custom action exists in a specific location, and depending on that location, can be a part of a group of actions. You can find the Default Custom Action Locations and IDs in Microsoft site.

With a custom action feature, you can:

  • Add a new Custom Action Group which can be used to group custom actions in a specific options screen;
  • Add a new Custom Action which can be a new option in a settings screen, a new menu item, or a new toolbar button;
  • Hide an existing Custom Action whether that action is the result of custom action feature or it belongs to SharePoint's out-of-the-box features.

 

How to Create a Custom Action Feature

  1. Create a new Project in VS 2008.
  2. Within the project create the following folder structure image
  3. Within the MyCustomActions folder, Add a new item and select XML file. Name it as CustomActions.xml
  4. Add the following text and make the changes accordingly.

    <?xml version="1.0" encoding="utf-8" ?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <!-- Custom Action Group -->
    <CustomActionGroup
    Id="MyActionGroup"
    Description="This group contains all my custom actions."
    Title="My Action Group"
    Location="Microsoft.SharePoint.SiteSettings"
    Sequence="30" />

    <!-- Custom Action in Custom Action Group -->
    <CustomAction
    Id="MyCustomAction"
    Description="This link is a custom action."
    Title="My Custom Action"
    GroupId="MyActionGroup"
    Location="Microsoft.SharePoint.SiteSettings"
    Rights="ManageWeb"
    RequireSiteAdministrator="FALSE"
    Sequence="20">
    <UrlAction Url="~sitecollection/_layouts/MyCustomPage1.aspx" />
    </CustomAction>

    <!-- Custom Action in Site Actions Menu -->
    <CustomAction
    Id="MyNewCustomAction"
    Description="This menu item is a new custom action."
    Title="My New Custom Action"
    GroupId="SiteActions"
    Location="Microsoft.SharePoint.StandardMenu"
    ImageUrl="/_layouts/MyActionIcon.jpg"
    Sequence="10">
    <UrlAction Url="~sitecollection/_layouts/MyCustomPage2.aspx" />
    </CustomAction>

    <!-- Hide Custom Action -->
    <HideCustomAction
    Id="HideDeleteWeb"
    GroupId="SiteAdministration"
    Location="Microsoft.SharePoint.SiteSettings"
    HideActionId="DeleteWeb" />
    </Elements>

     




  5. Within the MyCustomActions folder, Add a new item and select XML file. Name it as feature.xml


  6. Add the following text and make the changes accordingly.

    <?xml version="1.0" encoding="utf-8"?>

    <Feature  Id="Paste your NEW GUID Here"


              Title="My Custom Actions"


              Description="My Custom Actions"


              Version="12.0.0.0"


              Scope="Site"


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


      <ElementManifests>


        <ElementManifest Location="CustomActions.xml" /> 
      </ElementManifests>


    </Feature>




  7. Build the project using WSPBuilder and deploy the WSP.



Custom Actions really provide us with a great mechanism to place our needed extensions into the menus of WSS and SPS. This post about Custom Actions is a very simple start to what you can do. If you want to know more about Features, check this nice article SharePoint 2007 Deployment: Overview.

Monday, November 10, 2008

Error - You need to be a site collection administrator to set this property

Today I restore a site collection from different server to my VM and when I try to update the site Collection Administrators info on the site I received “you need to be a site collection administrator to set this property”. And also I don’t see the Site Settings and others which you normally see under site Action menu.

 

After a quick google, I found that Site Collection was locked and I need to unlock it. To unlock site collection, Go to central Admin –> Application Management. Click on “Site collection quotas and locks” under “SharePoint site Management”, then select “Not Locked” option.

 

Hope this post helped someone.

Wednesday, March 5, 2008

Understanding Web Part Life Cycle

If you are writing web parts either in ASP.NET or SharePoint, you need to understand the events and order of execution.

In this post i am trying to summarize the events and its order

 

OnInit – Configuration values set using WebBrowsable properties and those in web part task pane are loaded into the web part.
LoadViewState – The view state of the web part is populated over here.
CreateChildControls – All the controls specified are created and added to controls collection. When the page is being rendered for the first time the method generally occurs after the OnLoad() event. In case of postback, it is called before the OnLoad() event. We can make use of EnsureChildControls() - It checks to see if the CreateChildControls method has yet been called, and if it has not, calls it.
OnLoad
User Generated Event – for e.g. button click on the web part.
OnPreRender – Here we can change any of the web part properties before the control output is
drawn.
RenderContents – Html Output is generated.
SaveViewState - View state of the web part is serialized and saved.
Dispose
UnLoad.