Search

rafelo

Advancing Productivity and Operational Efficiency through Cloud Services and Apps

Month

October 2008

Apply Site Features Globally from Central Administration via a custom Application Page.

This posting covers a subset of a more general subject; Using Custom Application Pages to Extend the Capabilities of the Central Administration Site. Perhaps I will elaborate on the subject another time. For now, I will cover how to create a custom application page to activate or deactivate site-scoped (web) features globally.

Not much of an explanation is needed in regards to the purpose or practicality of this posting, as I’m sure most of you have been there, but for the sake of being thorough here is a brief description of a problem it helps address:

With just about every SharePoint project I’ve worked on, there has been some level of custom branding, usually involving new themes, master pages, and page layouts. Ultimately, and preferably, these get deployed via site-scoped (web) features. While these features can be automatically activated during the site provisioning process for new sites via Feature Stapling, there are often existing sites that we need to activate the feature on. Activation of these features can generally be narrowed down to specific types of sites, that is sites created from specific templates or site definitions, and generally target specific web applications. Out of the box, SharePoint only allows activation of site scoped features per site via the Site Settings page or stsadmin.exe. Global activation of such features targeting sites of a specific type/definition requires the creation of custom scripts or batch files. The solution; create a custom application page for the Central Administration site that allows farm administrators to activate site features across all sites in a given web application and of a specific site definition.

WARNING: Great care should be taken when applying Features globally. A poorly developed feature, or one that is targeted towards one type of site and applied to another, may render the site inoperable. Make sure you test your features thoroughly with each applicable site definition/template before activating features globally using this or any other technique.

The first step is to create a page that inherits from the GlobalAdminPageBase class, which is in the Microsoft.SharePoint.ApplicationPages.Administration assembly. This is the class that most of your Central Administration Pages should inherit from as it implements security and other related logic with the Central Administration site.


Additionally, you’ll need to include references to the following Namespaces and SharePoint Controls as they will be used throughout the page:

<%@ Register Tagprefix="SharePoint"
Namespace=”Microsoft.SharePoint.WebControls” Assembly=”Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
<%@ Register Tagprefix="Utilities"
Namespace=”Microsoft.SharePoint.Utilities” Assembly=”Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>
<%@ Register TagPrefix="wssawc"
Namespace=”Microsoft.SharePoint.WebControls” Assembly=”Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”%>

The “Administration” namespace will be used, amongst other things, to obtain a reference to the SharePoint farm. The “Utilities” namespace will be used for security reasons when validating the page request. The “WebControls” namespace and additional “ascx” controls are used in rendering certain controls on the page.

Add the following Content Placeholders for the title, description, and main content area.


    Global Site Feature Management


    Global Site Feature Management


    Use this page to activate or deactivate site-scoped Features across all sites based on the selected site definition for the selected Web Application.


Next we will add an InputForm, ButtonSection, and a WebApplicationSelector controls to the page. This will allow the user to select the Web Application on wish to activate the feature. We use the same controls SharePoint uses on its Central Administration pages to provide a consistent look and feel. We will also add; a RadioButtonList control to display the features, a CheckBox to indicate if the action should be forced, a DropDownList to specify the action (activate or deactivate), and a CheckBoxList to display the Site Definitions. We will encapsulate all of this in an ASP Panel control to toggle the visibility of the form when the user clicks OK.


   
       

       

         

                   

               

               
                       
          

            <!– ****************************************
                 DISPLAY THE AVAILABLE FEATURES
                 USING THE InputFormSecton AND ASP:RadioButtonList CONTROLS –>
            <wssuc:InputFormSection runat="server"
                Title=”Site Feature”
                Description=”Select a site feature from the list” >
               
               

                   

               

           
               
           
           

            <!– *******************************************
                 DISPLAY A SECTION TO SPECIFY THE ACTION TO
                 PERFORM WITH THE FEATURE–>
            <wssuc:InputFormSection runat="server"
                Title=”Action”
                Description=”Specify if activating or deactivating the selected Feature.” >
               
               

                   

               

           
               
           
           

            <!– *******************************************
                 DISPLAY A SECTION TO SPECIFY IF THE FEATURE ACTIVATION
                 SHOULD BE FORCED –>
            <wssuc:InputFormSection runat="server"
                Title=”Force Feature Activation / Deactivation”
                Description=”Check here to force feature activation or deactivation.” >
               
               

                   

               

           
               
           
           

            <!– *******************************************
                 DISPLAY THE AVAILABLE SITE DEFINITIONS
                 USING THE InputFormSecton AND ASP:CheckBoxList CONTROLS –>
            <wssuc:InputFormSection runat="server"
                Title=”Site Definitions”
                Description=”Select the site definitions to which the
                                 feature will be applied” >
               
               

                   

               

           
               
           
                       

            <!– ****************************
                 OK AND CANCEL BUTTON SECTION –>
            <wssuc:ButtonSection runat="server" TopButtons="false" 
                BottomSpacing=”5″ ShowSectionLine=”true”>
               
                    <asp:Button UseSubmitBehavior="false" runat="server"
                       class=”ms-ButtonHeightWidth” OnClick=”BtnSubmit_Click”
                       Text=”” 
                       id=”BtnSubmitBottom”
                       accesskey=”” 
                       Enabled=”true”/>
               
           
           
         

       

       

  
            <!– *****************************************
                 USE SHAREPOINT THE ButtonSection CONTROL
                 TO DISPLAY THE “OK” AND “CANCEL” BUTTONS –>
            <wssuc:ButtonSection runat="server" TopButtons="true"
                BottomSpacing=”5″ ShowSectionLine=”false”>
               
                    <asp:Button UseSubmitBehavior="false" runat="server"
                        class=”ms-ButtonHeightWidth” OnClick=”BtnSubmit_Click”
                        Text=””
                        id=”btnSubmitTop”
                        accesskey=””
                        Enabled=”true”/>
               
           
           

            <!– **************************************
                 DISPLAY THE WEB APPLICATION SELECTOR
                 USING THE InputFormSecton AND WebApplicationSelector CONTROLS.
                 THE TITLE AND DESCRIPTION ARE SPECIFIED IN THE CORRESPONDING
                 ATTRIBUTES OF THE InputFormSection CONTROL, WHILE THE CONTROLS
                 THEMSELVES ARE PLACED INSIDE THE InputFormControl SECTION –>

            <wssuc:InputFormSection runat="server"
                Title=”Web Application”
                Description=”Select a Web Application” >
               
               

                    <SharePoint:WebApplicationSelector id="Selector" runat="server"
                            TypeLabelCssClass=”ms-listheaderlabel”
                            AllowAdministrationWebApplication=”true” />
                   
                    <!– Use a SharePoint Required Field Validator to ensure
                         that a web application is selected –>
                    <wssawc:InputFormRequiredFieldValidator
                            ID=”ReqValAppPoolPassword”
                            ControlToValidate=”rdSiteFeatures”
                            ErrorMessage=”You must select a Feature to activate”
                            Runat=”server” />
                    <asp:RadioButtonList ID="rdSiteFeatures" runat="server"
                            CssClass=”ms-listheaderlabel” EnableViewState=”true” />
                   
                    <asp:DropDownList ID="lstAction" runat="server"
                         EnableViewState=”true”>
                    
                    
                   
                   
                    <asp:CheckBox ID="chkForce" runat="server" 
                          EnableViewState=”true” Text=”Force
                          CssClass=”ms-listheaderlabel”  />
                   
                         
                       <asp:CheckBox ID="chkSelectAll" runat="server"
                            CssClass=”ms-listheaderlabel” 
                            Text=”Select All
Click here to select all site
                                    definitions.”
                            OnCheckedChanged=”chkSelectAll_Changed”
                            AutoPostBack=”true”  />

                        <asp:CheckBoxList ID="chkListSiteDefinitions" runat="server"
                            CssClass=”ms-listheaderlabel” AutoPostBack=”false” />
                   

   


   

Next we’ll need to populate the list of features. Check the PostBack state of the page, if false, get the available features from the FeatureDefinitions property of the SPFarm object. Iterate through each of the features and add a list item the the feature radio button list for each one that is scoped at the site(web) level.

//Get the regional localeID and Culture Information (Regional Settings)
//these will be used to retrieve the list of features and
//site definitions
int localeID = (int)SPContext.Current.RegionalSettings.LocaleId;
System.Globalization.CultureInfo cInfo = new System.Globalization.CultureInfo(localeID);

//Get a reference to the farm object we will use it
//to retrieve the feature definitions
SPFarm thisFarm = SPFarm.Local;
foreach (SPFeatureDefinition featureDefinition in thisFarm.FeatureDefinitions)
{
//Check that each feature is scoped at the web level and
//that it is not hidden before adding it to the list
if ((featureDefinition.Scope == SPFeatureScope.Web) && !(featureDefinition.Hidden))
{
ListItem siteFeatureItem = new ListItem("" + featureDefinition.GetTitle(cInfo) + "
"
+ featureDefinition.GetDescription(cInfo), featureDefinition.Id.ToString());
rdSiteFeatures.Items.Add(siteFeatureItem);
}
}

To populate the list of site definitions obtain a reference to the SPWebTemplateCollection of the current site definition via the GetWebTemplates method.

//Get the list of available Site Definitions / WebTemplates
foreach (SPWebTemplate webTemplate in SPContext.Current.Site.GetWebTemplates(SPContext.Current.RegionalSettings.LocaleId))
{
//Skip "GLOBAL", it has an ID of 0
if (webTemplate.ID != 0)
{
ListItem webTemplateItem = new ListItem("" + webTemplate.Title + " - ID: " + webTemplate.ID + " Name: " + webTemplate.Name + "
"
+ webTemplate.Description,webTemplate.Name);
chkListSiteDefinitions.Items.Add(webTemplateItem);
}
}

Finally, you’ll need to write the code that adds or removes the feature from each site. Use the CurrentItem of WebApplicationSelector to get a reference to the selected web application and the underlying site collections. Iterate through each site(web) checking the WebTemplate and Configuration properties of each against the list of selected site definitions. If the web template and configuration of the site are in the list of selected site definitions, call the Add method of SPWeb.Features to activate the feature and the Remove method to deactivate it based on the “action” the user selected.

//*************************************************************
// This method is called when the user clicks the "OK" button
// to activate the site feature.
protected void BtnSubmit_Click(object sender, EventArgs e)
{
//Prepare a string object to display the result
//of the feature activation for each site
string strMessages = "";

//Hide the form
inputForm.Visible = false;

//Get the GUID of the selected Feature to activate
Guid featureID = new Guid(rdSiteFeatures.SelectedValue);

try
{
//Iterate through each of the site collections
//in the selected web applications
foreach (SPSite site in Selector.CurrentItem.Sites)
{
//Disable the CatchAccessDeniedException
//of the site collection to avoid being redirected
//to the "Access Denied" page if access is denied.
site.CatchAccessDeniedException = false;

//Iterate through each site in the site collection
//and activate the selected feature
foreach (SPWeb web in site.AllWebs)
{
//Use a try statement to trap any errors that
//may occur during activation. Errors may occur
//due to feature dependencies, features that
//may already be active, permissions, etc.
//Consider Refactoring this code for better error
//handling
try
{
//Check if the site definition/configuration of the
//current site is included in the list of site definitions
//that the feature will be applied to.
ListItem item = chkListSiteDefinitions.Items.FindByValue(web.WebTemplate + "#" + web.Configuration.ToString());
if ((item != null) & (item.Selected))
{
//Activate the feature
if (lstAction.SelectedValue == "Activate")
{
web.Features.Add(featureID, chkForce.Checked);
strMessages += "
Feature Successfully Activated: "
+ web.Url + "
"
;
}
else
{
web.Features.Remove(featureID, chkForce.Checked);
strMessages += "
Feature Successfully Deactivated: "
+ web.Url + "
"
;
}

}
}
catch (Exception featureActivationError)
{
//if an error occurs during activation;
//capture the message to display it to the user
//after iterating through all the sites
strMessages += "
Feature Activation Error: "
+ web.Url + " ERROR:" + featureActivationError.Message + "
"
;
}
}
//Allow the site collection to continue handling
//access denied exceptions
site.CatchAccessDeniedException = true;
}
}
catch (Exception featureActivationError)
{
//if an error occurs write the error message to
//an error element
strMessages += featureActivationError.Message + "hhhhhh
"
;
}
}

Save the application page to the “ADMIN” folder in the 12 hive’s template directory, usually C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\ADMIN\. The complete code sample of the application page includes additional error handling and security logic to validate the users roles and page request.
With the application page created and saved to the ADMIN folder, it can be called and ran from the browser via the Central Administration site’s URL followed by “_admin/pagename.aspx” (i.e. http://centraladminsite/_admin/sitefeaturemanagement.aspx).
image
To add a link to the page from the Application Management Section of the Central Administration Web Site, we’ll need to create a farm feature. Create a new folder in the feature directory and name it “SiteFeatureAdministration”. Create a Feature.xml file in the newly created folder with the following code:

<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
Id="4D4F4516-DDEC-4ea8-82F4-124D1B743984"
Title="Site Scoped Feature Management"
Hidden="FALSE"
Scope="Farm"
ActivateOnDefault="TRUE"
Version="12.0.0.0">

<ElementManifest Location="Elements.xml" />

This file tells SharePoint that the feature is scoped at the farm level and is to be activated by default. The elements.xml file referenced will contain the instructions of what the feature should do.
Next create an elements.xml file in the SiteFeatureAdministration folder with the following code:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomActionGroup
Id="BDDBB947-CBC6-47f7-B57A-6C8BEB0E19D7"
Location="Microsoft.SharePoint.Administration.ApplicationManagement"
Title="Utilities"
Sequence="1000"/>
<CustomAction
Id="E57ECD33-91FD-4fc3-A4E8-E1B932178CB4"
GroupId="BDDBB947-CBC6-47f7-B57A-6C8BEB0E19D7"
Location="Microsoft.SharePoint.Administration.ApplicationManagement"
Sequence="20"
Title="Site Scoped Feature Management"
Description="">
<UrlAction Url="_admin/SiteFeatureManagement.aspx"/>

The “CustomActionGroup” element tells SharePoint to create a new section titled “Utilities” in the Application Management Section of the Central Administration site. The “CustomAction” element gives the link a name and adds it to the CustomActionGroup. The “UrlAction” element specifies the URL of the link.
Deploy the feature using your preferred method. Go to the Application Management page in the Central Administration, you should see the Utilities Section with a link to the Site Feature Management page.
image
When creating custom solutions for SharePoint its always a good idea to use Solution Packages. They provide ease of deployment and upgrading capabilities for your custom application pages, features, web parts, and custom site definitions to all of the servers in the farm. For more information on how to create, deploy, and work with solution packages, reference: http://msdn.microsoft.com/en-us/library/ms413687.aspx
You can download the full code samples from: http://www.rafelo.com/SiteFeatureManagmentCode.zip
You can download the solution package from:

http://www.rafelo.com/SiteFeatureManagementWSP.zip

Programmatically Checking User Roles or Permission Levels in SharePoint 2007

Not to be confused with SharePoint groups; Roles, also known as Permission Levels or Role Definitions, are logical groupings of base permissions. These are typically assigned to SharePoint Groups but can also be assigned to individual users. Some samples of out-of-the-box roles or permission levels include; Read, Contribute, Design, Full Control, and Limited Access.

The following code demonstrates how to verify if the current user is in a particular role or has been assigned a specific permission level. The code sample uses SPContext.Current to get a reference to the current site, as such it must be ran under the context of SharePoint (in a web part, or custom application page), to run the code in a console application or windows application you will need to change how the reference to the SPWeb object is obtained.

SPWeb web = SPContext.Current.Web;

//****************************************
// Validate the page request to avoid
// any malicious posts
if (Request.HttpMethod == “POST”)
   SPUtility.ValidateFormDigest();

//****************************************
// Get a reference the roles that are
// bound to the current user and the role
// definition to which we need to verify
// the user against
SPRoleDefinitionBindingCollection usersRoles = web.AllRolesForCurrentUser;
SPRoleDefinitionCollection roleDefinitions = web.RoleDefinitions;
SPRoleDefinition roleDefinition = roleDefinitions[“Full Control”];

// Check if the user is in the role. If not
// redirect the user to the access denied page
if (usersRoles.Contains(roleDefinition))
{
   //*******************************
   //Check if post back to run
   //code that initiates the page
   if (IsPostBack != true)
   {
    //Do your stuff here
   }
}
else
{
   Response.Redirect(“/_layouts/accessdenied.aspx”);
}

Using the InputFormSection and InputFormControl to build Custom Application Pages that look like OOTB Pages.

I’ve seen this topic covered indirectly and even unintentionally  in a number of posts, some of my favorite references include: “Using the SPPropertyBag with Custom Admin Pages in SharePoint” where Steve Graegert dedicates a section of the posting to talk about the “Page Structure”. Another is “Creating Custom Timer Jobs in Windows SharePoint Services 3.0” by Andrew Connell, in this one, the subject is not covered directly but the code provides a great example of how the controls can be used.

In this posting I’ll try to cover the subject directly using a basic application page and creating a very simple form.

We’ll start out with the application page; copy the following code and save it as an ASPX page in the SharePoint Layouts folder (usaually c:\program files\common files\microsoft shared\web server extensions\12\template\layouts\)

<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,
PublicKeyToken=71e9bce111e9429c” %>

 
    Sample Application Page

 
    Sample Application Page


    This is a page provides an example of how to use the InputFormSection
    and InputFormControl control templates to create an application page
    that looks like the SharePoint OOTB Application Pages.

 

When accessing the page from the browser (i.e. http://siteurl/_layouts/pagename.aspx) should yield the following result:
 image

Add a “register” directive for each of the controls in the page as follows:

<%@ Register TagPrefix="wssuc" TagName="ButtonSection"
src=”~/_controltemplates/ButtonSection.ascx” %>

Next we’ll add a table to the “PlaceHolderMain” content place holder as follows. This table will be used to house our controls:


    This is a page provides an example of how to use the InputFormSection
    and InputFormControl control templates to create an application page
    that looks like the SharePoint OOTB Application Pages.

   
   

    

       

    

   

       

   

Insert the InputFormSection control to the table as follows:


    This is a page provides an example of how to use the InputFormSection
    and InputFormControl control templates to create an application page
    that looks like the SharePoint OOTB Application Pages.


   
   

    

       

    

   

        <wssuc:InputFormSection runat="server"
            Title=”Sample Form Section”
            Description=”This is a sample form section” >
       

       

   

This change should yield the following result:

image

Next we will add the “Template_InputFormControls” element, which will contain our actual form controls. This will be displayed in the right section of the form (the light blue section.) We will also add the “ButtonSection” control which we’ll use to house the buttons for our form. See the full code sample below:


<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0,
Culture=neutral, PublicKeyToken=71e9bce111e9429c” %>

<%@ Register TagPrefix="wssuc" TagName="ButtonSection"
src=”~/_controltemplates/ButtonSection.ascx” %>


    Sample Application Page


    Sample Application Page


    This is a page provides an example of how to use the InputFormSection
    and InputFormControl control templates to create an application page
    that looks like the SharePoint OOTB Application Pages.

   
   

    

       

    

   

        <wssuc:InputFormSection runat="server"
            Title=”Sample Form Section”
            Description=”This is a sample form section” >
           
              
           
       

        <wssuc:ButtonSection runat="server" TopButtons="true"
            BottomSpacing=”5″ ShowSectionLine=”false”>
           
                <asp:Button UseSubmitBehavior="false" runat="server"
                    class=”ms-ButtonHeightWidth” Text=”OK”
                    id=”BtnSubmitBottom” Enabled=”true”/>
           
       
       

   

The result should look as follows:

image

 

SharePoint Back To Basics: Common SharePoint Terms

This is the first in a series of posts meant to cover some of the SharePoint basics (as the title implies.) Specifically, this post will list out some of the more common SharePoint terms, which are naturally more than I am able/willing to write about in one sitting. I will start out with a few and continue adding to the list of as time allows. Feel free to make any suggestions.

  1. SharePoint Farm (SPFarm) – In its simplest form, a SharePoint farm refers to series of servers running SharePoint Services which share a common configuration database, combined with any other servers which play a critical role in the configuration; such as the configuration and content database server(s) and mail server(s).

  2. Web Application (SPWebApplication) – An IIS web site configured in SharePoint to provide content or services such as InfoPath Forms Services, Excel Calculation Services, and Workflows.

  3. Site Collection (SPSite) – Most people refer to a site collection as a top level site. From a programmers point of view, a site collection is not really a site at all, in that it doesn’t contain most of the methods or properties that you would typically find in the object that represents a site (SPWeb). The “top level site” also referred to as the “root site” is simply another site in the site collection. That being said a site collection is more than just a collection of sites, it contains a number of configuration settings that apply to all the sites in it; such as recycle bin settings, site collection features, quotas, locks, self service site creation settings, search settings, and many more.

    Note: There is an object in the SharePoint API, called SPSiteCollection. This object does not represent a site collection per se. It is actually a collection of “site collections” or SPSite objects, and generally used to retrieve the site collection that are available for any given web application.

  4. Site or Web (SPWeb) – In its simplest form a site is a collection of pages, lists, libraries and related settings. It is where the bulk of the action takes place. If you are a programmer, this is the object that you will interact with the most. If you are a user, basically everything you work with in SharePoint is contained in a site. Per the MSDN: A Web site hosted in a virtual URL. A SharePoint site is a place for collaboration, communication, or content storage. Depending on your business needs, you can create sites such as team sites, blog sites, wiki sites, and others. You can customize a site’s appearance, users, user permissions, galleries, and site administration by using the Site Settings administration pages.

  5. List (SPList) – In SharePoint a list is a container of information or data structure organized in 2 dimensions; rows and columns. In which each row represents an individual record (SPItem) and each column (SPField) represents a specific attribute value of that record.

  6. Features (SPFeatureDefinition)- SharePoint Features are a mechanism for defining and delivering functional elements within SharePoint. Features can be developed to enhance or extend functionality in sites, site collections, web applications, or even the farm as a whole. For more detailed information see (http://msdn.microsoft.com/en-us/magazine/cc163428.aspx)

  7. Site Definitions – A Site Definition consists of a series of files that define the components, including; lists, libraries, features, master pages, and page layouts that make up a site. Site Definitions may contain (and usually do contain) multiple configurations, these configurations are surfaced through the interface as site templates. For instance the Team Site, Blank Site, and Document Workspace templates are all configurations of the STS site definition. All site templates are based on a site definition.

  8. Site Templates – The term “Site Template” is used in many ways. Sometimes its erroneously used to refer to a site definition. While a site template is not a site definition, it can be used to refer to one of the configurations in a site definition. More commonly, in SharePoint development, it is used to refer to an actual site configuration (a site in SharePoint configured in a specific way) that has been saved as a template for reuse.

From MSDN:

  • Windows SharePoint Services 3.0. A set of services for collaboration and a foundation for building Web-based applications on Windows Server. Windows SharePoint Services 3.0 is included in Windows Server 2003 and in Windows Server 2008, and is also available separately as a download.

  • Microsoft Office SharePoint Server 2007. A single, integrated application that provides sites (locations) where employees can efficiently collaborate with team members, find organizational resources, search for experts and corporate information, manage content and workflow, and make use of business insight to reach better-informed decisions. Office SharePoint Server 2007 is part of the 2007 Microsoft Office system. For more information, see the Microsoft Office SharePoint Server 2007 frequently asked questions.

  • Microsoft Office SharePoint Designer 2007. A designer and developer tool that enables you to quickly build solutions that include both design and workflow.

  • Web Parts. Web Parts in Windows SharePoint Services provide developers with a way to create UI elements that support both customization and personalization. A site owner or a site member with the appropriate permissions can customize Web Part Pages by using a browser or Microsoft Office SharePoint Designer 2007 to add, reconfigure, or remove Web Parts. For more information, see the Windows SharePoint Services Web Parts Resource Center.

  • Workflow. Workflows implement custom business processes that you can attach to SharePoint documents and list items. You can use workflows to control almost any aspect of an item in Windows SharePoint Services, including the life cycle of that item. For more information, see the Workflow Resource Center.

  • Collaboration and social computing. Office SharePoint Server 2007 provides Web Parts that enable functionality for social computing, wikis, blogs, RSS feeds, e-mail integration, and task coordination. All of these components use information about your organization, communities, and electronic communications in Public My Site pages to help establish connections between colleagues with common interests. For more information, see Collaboration Help and How-to.

  • Portals. Office SharePoint Server 2007 is a world class enterprise portal platform that makes it easy to build and maintain portal sites for every aspect of your business. It provides built-in My Site personal sites, content syndication, user profiles and a profile store, audience targeting, mobile device support, portal site templates, document aggregation Web Parts, and more. For more information, see Developer-Oriented Videos on Building Portals.

  • Enterprise Search. Enterprise Search in Microsoft Office SharePoint Server 2007 provides extensive and extensible content gathering, indexing, and querying ability. This service supports full-text searching by using a Structured Query Language (SQL-based) query syntax, and provides a new keyword syntax to support keyword searches. For more information, see the Enterprise Search Information Center.

  • Enterprise content management. Enterprise content management (ECM) features provide ways to manage the content and metadata of business documents stored in Office SharePoint Server 2007 document libraries. ECM is a key infrastructure component that can help companies manage and organize high volumes of unstructured content such as forms, documents, records, e-mail messages, videos, instant messages (IMs), and Web pages. For more information, see the Enterprise Content Management Information Center.

  • Business process and forms. Office SharePoint Server 2007 provides built-in electronic forms and workflow templates. InfoPath Forms Services, included in Office SharePoint Server 2007, enables you to publish InfoPath form templates, designed in Microsoft Office InfoPath 2007, to Office SharePoint Server 2007 as ASP.NET Web applications. You can open these in your browser to provide a similar experience to filling out and editing a form in InfoPath. For more information, see the InfoPath Forms Services Resource Center. In addition, Office SharePoint Server 2007 provides built-in workflows for document approval, feedback collection, signature collection, and disposition approval, and three-state workflows and a translation management workflow. You can also write custom code to create, maintain, and analyze custom workflows, enabling you to streamline your business processes. For more information, see the Workflow Resource Center.

  • Business intelligence. Office SharePoint Server 2007 provides infrastructure to create dashboards that allows decision-makers to access information. Excel Services server technology, included in Office SharePoint Server 2007, is a shared service that enables you to load, calculate, and display Excel workbooks on Office SharePoint Server 2007. You can use the Excel Services programmability framework to extend Microsoft Office Excel 2007 and Excel Services functionalities to work with Office SharePoint Server 2007 lists, query tables on Excel Services, external workbook references, SQL write-back, and user-defined functions (UDFs). For more information, see the Excel Services Resource Center. Additionally, the Business Data Catalog functionality in Office SharePoint Server 2007 enables you to present LOB data within Office SharePoint Server. By using the Business Data Catalog, you can bring key data from different business applications to SharePoint lists, Web Parts, search, user profiles, and custom applications. The Business Data Catalog allows you to pull data from Microsoft SQL Server, Oracle, Microsoft Office Access, or other databases by using a connection string. It also allows you to pull business data from back-end server applications such as SAP, Siebel, or other LOB systems by using Web services. You can use the Business Data Catalog: Metadata Model to define an LOB entity and the How to: Get Started with Using the Administration Object Model to manage metadata programmatically. For more information, see the Business Data Catalog Information Center.

  • Microsoft Office SharePoint Designer. Microsoft Office SharePoint Designer 2007 is a developer tool specifically designed to enable you to build and customize SharePoint sites, workflow-enabled applications, and reporting tools. It provides a WYSIWYG design interface, developer environment, and easy-to-use development tools that help simplify the task of building sites and applications. ASP.NET developers can take advantage of their existing knowledge and use this tool to create, view, and modify ASP.NET pages. The WYSIWYG design interface provides precise rendering of Extensible Hypertext Markup Language (XHTML) code, cascading style sheets (CSSs), and ASP.NET technologies. This tool also provides Microsoft IntelliSense support, Web Parts, and ASP.NET controls.

  • Application page. Allows the use of inline custom code. Application pages or “_layout” pages are stored on the SharePoint Web server and made available via a Microsoft Internet Information Services (IIS) virtual directory. Though application pages behave much like other ASPX pages and allow the use of inline custom code, they differ from content pages in that they cannot be used to host SharePoint features such as dynamic Web Parts and Web Part zones. For more information, see Creating an Application Page in Windows SharePoint Services 3.0.

  • Content type. A reusable collection of settings to apply to a certain category of content such as documents and folders. Content types are designed to help users organize their SharePoint content in a more meaningful way. For more information, see Introduction to Content Types.

  • Custom action. Represents a link, toolbar button, menu item, or any control that can be added to a toolbar or menu that appears in the UI. You define custom actions by using a custom action element within a feature definition file. You can bind custom actions to a list type, content type, file type, or programmatic identifier (ProgID). For more information, see Custom Action Definitions.

  • Event receiver. Evaluator of an event and definer of the behavior of an application. Windows SharePoint Services 3.0 allows you to define event handlers within libraries, lists, and sites. Event receivers can be defined by using a receiver element within a feature definition file. For more information, see Event Registrations.

  • Feature. A package of Windows SharePoint Services elements that can be activated for a specific scope and that helps users accomplish a particular goal or task. Windows SharePoint Services 3.0 introduces this inherently portable and modular functionality, which simplifies modification of sites through site definitions. For more information, see Working with Features.

  • Master page. Pages that provide a consistent layout and appearance (look and feel) for SharePoint sites. They allow you to factor out layout, structure, and interface elements such as headers, footers, navigation bars, and content placeholders. Master pages in ASP.NET 2.0 and master pages in Windows SharePoint Services work in the same way. For more information, see Building Simple Master Pages for Windows SharePoint Services 3.0.

  • Module. A file or collection of file instances that define the location where the files are installed during site creation. Modules are frequently used to implement a Web Part Page in the site. You can define modules by using a module element within a feature definition file. For more information, see Modules.

  • SharePoint site collection: A collection of SharePoint sites that share common administration pages and site settings. Site collections allow you to share content types, site columns, templates, and Web Parts within a group of SharePoint sites.

  • SharePoint Web farm: A group of Office SharePoint 2007 servers that share the same configuration database. All site content and all configuration data is shared for all front-end Web servers in a server farm.

  • Site definition. A set of files that includes a master XML configuration file that is stored on all front-end Web servers. A site definition provides the basic blueprint for how sites look, what lists they include, their default navigational structures, and so on. For more information, see Working with Site Templates and Definitions.

  • Site template. A package containing a set of differences and changes from a base site definition that is created through the UI or through implementation of the object model. The site template package is stored as a .cab-based file that can be downloaded or uploaded to site collections by users with the appropriate rights. Site templates offer a measure of portability to SharePoint applications. For more information, see Working with Site Templates and Definitions.

  • Solution. A file that is a bundling of all the components for extending Windows SharePoint Services in a particular way. A solution file has a .cab-based format with a .wsp extension. A solution is a deployable, reusable package that can contain a set of Features, site definitions, and assemblies that apply to sites, and that you can enable or disable individually. You can use the solution file to deploy the contents of a Web Part package, including assemblies, class resources, and other package components. For more information see, Solution Overview.

  • Theme. A group of files (CSS, images) that allow you to define the appearance (look and feel) of Web pages. Themes in ASP.NET 2.0 and themes in SharePoint Products and Technologies work in the same way. Themes are used to help organizations to brand their portals and team sites. Office SharePoint Server 2007 includes a set of predefined themes. However, as a developer, you can create custom themes for your company. For more information, see How to: Customize Themes.

The following post from the MSDN Blogs also covers some of the common terms:
http://blogs.msdn.com/skelley/archive/2007/06/24/sharepoint-terminology-defined.aspx

The following post does a good job defining and covering some of the key differences between Columns, Fields, and Properties:
http://blogs.msdn.com/andrew_may/archive/2006/06/14/SharePointTermsColumnsFieldsProperties.aspx

Technorati Tags: ,

del.icio.us Tags: ,

Create a free website or blog at WordPress.com.

Up ↑

%d bloggers like this: