Saturday, March 19, 2011

SharePoint 2010 MySite in detail

In general
The SharePoint 2010 MySite has changed in major points to the one in SharePoint 2007. The most striking renewals are probably the tagging und activity features. The user can now tag, comment and rate his sites and documents.

Since SharePoint 2010 has no longer a Shared Service Provider the MySite is now bound to the Profile Service. This means that the profile service must be running and configured before you can create a MySite.

The MySite uses a special master page, the "mysite.master", which is activated by the feature MySiteLayouts and uploaded to the master page gallery of the MySite sitecollection. It's relatively easy to change and switch the masterpage either by hand or by feature. The sitecollection administrator can upload a masterpage to the masterpage gallery and easily switch the master.

The good news for the frontend engineer is that the new mysite.master consists mostly of div layouts, so it
is easier to style by css. But in generally it is more difficult to change the layouts than the masterpage. This is because the mysite is a team site and has no publishing features. But you can easily change that by activating
the publishing features by hand.

The easiest way to style the mysite is propably by using themes. The sitecollection admin can create his own themes or use the existing ones.

Structure
The MySite has public and private spheres. The public pages use a different site template as the personal pages

  • Public : SPSMSITEHOST (My Site Host)
  • Private : SPSPERS (SharePoint Portal Server Personal Space)

Once you click on "My Site" within the Site Actions menu, it leads to the public area, to the default.aspx MySite site collection.



Public areas have the same view for each user and can not be personalized. All users from the ProfilDB have access to this area and only the site collection administrators can customize these pages and web parts.

The public area includes the following page:

  • default.aspx
  • discusssion.aspx
  • person.aspx
  • OrganizationView.aspx
  • personcontent.aspx
  • tagprofile.aspx

The HTML structure of these pages cannot be modified by deployment. The layout of these pages can be adjusted only with CSS, Themes or SharePoint Designer.

Clicking on "My Profile" (Site Actions Menu) leads to the public profile page. This page displays the profile information of the selected users. If the user wants to see his own profile, he has the rights to change the stored profile information. The changes are written back to the Profile-DB. If a synchronization is configured with an AD the information could also be written back to the AD.

By clicking on "My Content" in the MySite global navigation the user enters his private area. His personal site is a site collection within the MySite. If it does not exist it is created the first time. A user can create lists, modifiy content and add webparts to his personal page. It is used as a private storage of documents and information.

A private site has the url http://mysite.com/personal/mkaplan. "Personal" ist the managed path of the sitecollection and "mkaplan" the accountname and the sitecollection.

Looking at the global navigation, you'll realize that the MySite is logically divided into 3 parts. These are:

  1. My NewsFeed: Area for actual news from colleagues
  2. My Content: Area for personal data
  3. My Profile: Area with profile information of the MySite users

The following sections will describe these parts.

Lists on MySiteHost
The root site has following lists predefined:

List NameDescription
Customized ReportsFor Web Analytics
Form TemplatesContains the form templates
Style LibraryFor custom stylessheets
Organization PhotosOrganization logos
User PhotosProfile pictures

Personalization Sites
You can also use personalized sites witin the public areas of the MySite. This requires to create a new site using the "Personalization Site" template.

Personalization site template

"Personalization Sites" use the "Current User Filter" webpart, which can be connected with other webparts to display personalized data.

When you create a "Personalization Site" in the MySite the site will appear within the global navigation of the MySite as an extra entry, which is available for all users. A "Personalzation Site" contains 4 webpart zones: 1 on the top, 1 at the bottom and 2 in the middle.

A personalization site

Personalization Links in the global navigation
"Personalization Links" can be created to show entries in the global navigation for a specific audience. These types of links must be created in the "Profile Service Properties" und "Configure Personalization Site".




Site Definitions within the MySite


1. SPSMYSITEHOST

The SPSMYSITEHOST Teamsite Sitedefinition is used for all public sites within the MySite. It activates following features:

Site Features:
  • "My Site Host" in FEATURES\MySiteHost\Feature.xml.
  • "My Site Layouts" in FEATURES\MySiteLayouts\feature.xml.
Web Features:
  • "My Site Navigation" in FEATURES\MySiteNavigation\Feature.xml.
  • "Shared Picture Library for Organizations logos" in FEATURES\MySiteHostPictureLibrary\Feature.xml.
  • "Team Collaboration Lists" in \FEATURES\TeamCollab\feature.xml.
Modules: (deployed files)
  • blog.xsl : Is used by the blog webpart
  • tagprofile.aspx
  • person.aspx
  • default.aspx
  • discussion.aspx
  • OrganizationView.aspx
  • personcontent.aspx

2. SPSPERS
This Sitedefinition is used by the private sites on the MySite and activates the following features:

Adds following items to the Quicklaunch menu:
  • Documents
  • Pictures
  • Libraries
Site Features:
  • My Site Layouts: Deploys mysite master and pages
  • Base WebPart Feature
Web Features:
  • ‘Personalization Site’ in FEATURES\PersonalizationSite\feature.xml.
  • ‘My Site Navigation’ in FEATURES\MySiteNavigation\Feature.xml.
  • ‘Team Collaboration Lists’ in FEATURES\TeamCollab\feature.xml.
Modules:
  • public.aspx: Contains a redirect webpart
  • default.aspx
WebParts :
  • none
Lists:
  • Personal Documents
  • My Documents
  • My Pictures



Globally used elements


MySite Header

The MySite Header consists of different items: (Color corresponds to the item in image)

  • Page Title / Icon : A simple HTML element
  • Global Navigation: The navigation of the MySite is editable by the site owner in the "Site Settings", "Top Link Bar".
  • Searchbox: The Searchbox is a SharePoint PeopleSearchEx Control and has properties to change the search icon, scope dropdown, frametyp or the search options.
  • HelpButton: A simple HTML element
  • MySite Menu: Can optically only be changed by styles. Menu items can be changed by feature.


MySite Header

The MySite-Header is found on every site within the MySite, in public as well as in private sites. It is bound as a Delegate Control into the mysite.master und can be found as a ascx Control in the 14\ControlTemplates folder. The name of the file is "MySiteTopNavigation". Delegate Controls in SharePoint have the ability to be easily overriden by custom controls. This means that the header of a mysite could be customized with a custom ascx control and a feature.

Business Card
Some of the public pages contain a larger area with profile informations about the user, that is called the "Business Card“. Users can see profile informations about other users and can also enter or change personal status information, like in Twitter or Facebook. There are also standard texts for the status information, which can be choosen by a dropdown. If you examine your own "Business Card" you'll find also a link under the profile picture to edit the own profile informations.

MySite Business Card

The "Business Card" is not a Control itself but a combination of HTML tables and profile informations. The profile informations are read by special profile property controls, like the departement field:

<td><SPSWC:ProfilePropertyValue PropertyName="Department" runat="server"/></td>

This means that each page containing the "Business Card" must have the same HTML code. If someone changes the layout of the Business Card with Sharepoint Designer, he must change it on every site that contains the "Business Card" to have a consistent layout.

Quicklaunch
You'll find the "Quicklaunch Navigation" directly under the "Business Card". It is embedded to the page (not master) as an ASP:Menu Control and renders an unordered list as HTML Code and styled by css to look like that:

MySite Quicklaunch

The menu navigation points can be changed within the "Site Properties" by clicking the "Quicklaunch" link under "Look and Feel". Each of the default navigation items is linked to a different aspx page:
  1. "Overview" is linked with person.aspx.
  2. "Organization" is linked with organizationview.aspx.
  3. "Content" is linked with auf personcontent.aspx.
  4. "Tags and Notes" is linked with _layouts/thoughts.aspx.
  5. "Colleagues" is linked with _layouts/MyContactLinks.aspx.
  6. "Memberships" is linked with _layouts/MyMemberships.aspx.
The first 3 pages are delivered with the MySite Feature whereas the last 3 are pages in the layouts folder. All these page are not really personalized. Therefore there need a parameter in the url to display custom content.



Detailed inspection of MySite pages

My Newsfeed - Default.aspx


The newsfeed (or activity feed) is a new feature in SharePoint 2010. This feature corresponds to the concept of news streams in facebook. It shows the latest activities of colleagues such as new tag, changed profile information or new blog posts. The page uses the "ConsolidatedNewsFeedWebPart" to show the information.
The activity feed

Tagprofile.aspx


The tagprofile.aspx page shows information about a tag. The page is displayed when you open the "Tags & Notes" site in the quicklaunch menu and then click a tag in this site. The page contains following webparts:
  • "TagInformationWebPart" - Shows information about a tag.
  • "TaggedUrlListWebPart" - Shows tagged items.
  • "TaggedPeopleListWebPart" - Shows people that follow a tag
  • "SocialCommentWebPart" - Provides a note board
Tag information site

My Profile - Person.aspx

You get to the person.aspx when you click "My Profile" in the quicklaunch menu. This page provides an overview of general information and activities of a user.

The upper area of the site contains the "Business Card" and the "Quicklaunch Navigation". They are followed by the page content. The page layout has 4 webpart zones, like in the personal sites. The page has 1 zone in the upper,  2 in the middle and 1 at the bottom area to guarantee a flexible layout. To be flexible with webpart content, the webpart zones are located within a table layout. It is difficult to make cross browser flexible layouts only with divs.

The page contains 5 predefined webparts:

  • Ask Me About : Reads the "Ask Me About" field from the profile und displays it as a list. Informs other user about the skills of the selected user.
  • Recent Activities : Shows the recent activities of the current users, like the colleagues he added or a post he published.
  • Note Board : A textbox to post a comment.
  • Organigramm : Show the organizational structure and your position therein.
  • In Common With You : Shows common memberships and colleagues with other users.

All
-----
IN PROGRESS

8 comments:

Anonymous said...

Hello Baris,

I think that MyContent isn't a sub site of MySite, but a site collection of it owen in a managed path.

Regards
Markus

Baris Bikmaz said...

Thanks for the info Markus, you're right. I corrected the typo.

outlawspeeder said...

Ok so we have a list of Skills on "my site". How can we search those and return all name with say "Share Point" in the Skills tagging.
The thought is I have 300 people working for me and I need one to work a project, in this case "share point"

Baris Bikmaz said...

@outlawspeeder: If you put your skills in to the right profile property field on mysite, the SharePoint Search automatically indexes these fields (I think its the 'Ask me about" field.). Then you can use the standard SharePoint People Search and search after your skills.

Anonymous said...

hi, i want to disable ask me about field from my settings page, i disable in central admin site, but it is not updated on my settings page,please tell mr the procedure to hide the fields in my settings page.

Thanks,
deepak

Baris Bikmaz said...

I think the easiest way to do that is go to your User Profile Service Application, click on Manage User Properties and uncheck "Show on the Edit Details page".

Vegasvic 21 said...

Hi how can i include a spreadsheet in the creation of new mysites in the personal documents library automatically

Vic

Baris Bikmaz said...

I would use a Feature Stapler. Create a stapler on the MySite Template and add a Feature Receiver which uploads the excel into the library.