Jean Paul's Blog

There are 2 types of People in the World, One who Likes SharePoint and..

    Advertisements
  • Microsoft MVP

  • MindCracker MVP

  • CodeProject MVP

  • eBook on SharePoint 2010

  • eBook on Design Patterns

  • eBook on Windows Azure

  • NLayers Framework @ CodePlex

  • MSDN Forums

  • .Net vs. Java

    Due to Public Demand
  • Advertisements

Archive for May, 2013

Content Type as Metadata – Frequently Asked Questions

Posted by Paul on May 30, 2013

In this article I would like to emphasize on Content Type as a Metadata, the Scenarios involved & frequently asked Questions.

What is Content Type?

Content type is a reusable collection of Metadata (columns), workflow, behavior, and other settings. Definition from MSDN:

“A content type is a reusable collection of settings that you want to apply to a certain category of content. Content types enable you to manage the metadata and behavior of a document, item, or folder in a centralized, reusable way. ”

clip_image001

What are the advantages of Content Type?

Content Type provides following advantages:

1. Centrally Managed We can define content type in a central location & this improves the Accuracy & Consistency.

2. Reusable We can reuse a content type across multiple libraries, sites, site collection & web application. This reduces the repetition work.

3. Metadata Content Type allows us to create columns for the underlying data involved.

4. Behavior We can associate workflows for content types. This enables workflow to be started across different libraries which uses same content type. Eg: A document of content type ‘Contract’ requires ‘Approval’ workflow to be started.

5. Retention Policies We can associate Information Management Policies for content types. This allows global policy application for entire document/item with specific content type. For example: We can set a document archiving policy for all ‘project’ content type document with age greater than 3 years.

6. Content Standardization As the content type is centralized & managed by authorized professionals, the Quality of Data will be much better.

7. Custom Forms We can associate custom forms with each content type. For example an Expense content type can have a custom form showing lookup values.

8. Hierarchical We can create new content type from existing content types. This allows reusing existing structure.

Can we assign Content Type to List?

Yes. We can have Document content type & List content type.

Can a document library have multiple Content Types?

Yes. For an example scenario, we can have a project document library which contains ‘Requirement’ content type, ‘Documentation’ content type which is different type of documents.

Can a parent site Content type reusable in child site?

Yes. Content type created in parent site is available for sites & sub sites.

What is Content Type Hub?

A content type created in Web Application can be made available in another Web application. Such a web application created for Content Type sharing is called Content Type Hub. We need to configure Managed Metadata Service (MMS) for this purpose.

What is the difference between Site Content Type & List Content Type?

When you create a content type in site level, it is a Site Content type. When you add the content type to a List level, it is copied & becomes List content type.

What is push-down operation?

As site content type are copied to list content types, the changes made to parent are not propagated to child.  To propagate changes we use push-down operations.

Is Content Type a Metadata?

Yes. Content Type can be called as Metadata. Additional to Metadata, Content Type can have behavior, forms & retention policies.

When I should use Taxonomy Terms instead of Content Types?

If you wanted to classify the entire document & items, you can assign Taxonomy Terms.

What are the different Metadata infrastructures available?

I would say Columns, Site Columns, Content Types, Terms are those available in SharePoint.

clip_image002

clip_image004

Columns are the List/Library Columns, but Site Columns represent reusable Columns in site level.

Can i live without Content Type?

No! In SharePoint everything is Content Type.  The base content type include Folder, Document & Item.

When should i use Site Column?

Site Column is just a reusable column & can be considered as Sub set of Content Type.  Site Column can be used within a Content Type.  You can use Site Column for custom column requirements.  For example SharePoint 2010 does not have an SSN column.  You can create a custom SSN site column with associated validations & behaviors.

Can we Index the Content Type Column?

No.  But you can index the list column where list is an instance of content type.

How to make a Content Type hidden?

Use the ‘Hidden’ property of content type (PowerShell / Server Object Model), Place in the _Hidden group.

How can we protect a Content Type from changes?

Set the Read Only property to true OR mark it as Sealed content type.  Sealed content type are not updated through push-down operations.

References

http://msdn.microsoft.com/en-us/library/ms479905(v=office.14).aspx

Summary

In this article we have explored Content Type advantages & associated frequently asked questions.

Advertisements

Posted in SharePoint | Tagged: , , , , , , | Leave a Comment »

Error :: Word Web App cannot open this document

Posted by Paul on May 28, 2013

Error: Word Web App cannot open this document due to an unknown error.  If the problem persists, try opening the file in Microsoft Word.

image

Scenario

While opening DOCX files in SharePoint library, we may get this error.

Analysis

As the error says unknown, we need to check the following log places:

  1. SharePoint 14 Hive Log folder (although Co-relation id is missing in error, we can check for latest errors)
  2. Windows Event Log (run > eventvwr.exe)

If you are running a Farm environment, open the WFE (Web Front End) server logs as the first step.

Solution

I would be having a set of solutions instead of one.

Solution 1: As a quick solution, we can check the Underlying Infrastructure is working.

Open Central Administration > Manage service applications & ensure following services are running.

  • Word Automation Services
  • Word Viewing Service

image

You can also check the Service Proxies are configured correctly.

Solution 2: Ensure Permissions are applied property.  Open Permissions button from toolbar.

image

Solution 3: Deactivate & Activate Site Collection Feature > Office Web Apps

SharePoint Site > Site Actions > Site Settings > Site Collection Features

image

Solution 4: Try enabling Verbose logging in SharePoint, recreate the problem & see error log.

Central Administration > Monitoring > Configure diagnostic logging

image

Temporary Solution

Choose the Library Settings > Advanced Settings & Change open behavior to Client Application.

image

Posted in Uncategorized | Leave a Comment »

SharePoint 2010 Check User Permission on Web

Posted by Paul on May 28, 2013

In this article I would like to explore multiple ways to check User Permissions on a web object.

Requirement

We need to check whether a particular user have Open permission on a web object.

Solution

We can use the web.DoesUserHavePermissions() method for this purpose.

image

The method has 2 overloads, but we are using the second one which takes login as argument. The second argument SPBasePermissions can be used to specify type of permission.

image

Implementation

For testing purpose create a console application, add reference to SharePoint DLLS & change following project properties:

1. Target Framework to .Net 3.5

2. Platform Target to Any CPU

Place the following code in the main method:

using (SPSite site = new SPSite("http://localhost"))

{

using (SPWeb web = site.OpenWeb())

{

bool result = web.DoesUserHavePermissions("DOMUSR", SPBasePermissions.Open);

Console.WriteLine(result);

}

}

Console.ReadKey(false);

Please use the appropriate user names in the code.

Execution

For the above site, assign a user with Read Permission. Execute code & you will get the result TRUE.

Now, remove the user from all permissions, including Authenticated users. You will get the result FALSE.

Although the above method was invoked using SPWeb object, we can invoke it from SPList, SPItem as well. In general the method is available for all SPSecurableObject type.

1. SPWeb inherits from SPSecurableObject

2. SPList inherits from SPSecurableObject

3. SPListItem inherits from SPSecurableObject

References

http://bit.ly/11vfDCq

Summary

In this article we have explored how to check User Permissions on a particular web object. In real world scenario we need the method for scenarios like custom branding, custom event etc.

Posted in Uncategorized | Leave a Comment »

Free ebook on ‘No Code Solutions’

Posted by Paul on May 22, 2013

Out-of-the-box solutions are recommended in SharePoint, than custom solutions.  The advantages are many:

  1. Less Deployment Hassles
  2. Less Maintenance Hassles
  3. Familiar Interfaces

Following is the Free ebook from Microsoft on ‘No Code Solutions’

Location

http://msdn.microsoft.com/en-us/sharepoint/fp161345

image 

Summary

The book provides an overview & usage of:

  1. SharePoint Composites
  2. SharePoint Apps
  3. Solution Life Cycle
  4. Composite Design Patterns
  5. Web Parts
  6. Workflows
  7. Project Site Template
  8. Document Management Infrastructure
  9. Records Management Infrastructure
  10. Intranet, Internet Sites
  11. Business Intelligence
  12. BCS
  13. JavaScript, REST
  14. 40 Free Templates Information
  15. Visio Diagrams & Solution Life Cycle

Posted in Uncategorized | Leave a Comment »

SharePoint 2010 Feature Scopes & Activation Location

Posted by Paul on May 16, 2013

Depending on the Feature Scope, we need to Activate it from different locations.

image

Feature Activation Matrix

Following is the Feature Scope & Activation location.

Scope

Location

Site

SharePoint Site > Site Actions > Site Settings > Manage Site Features

Site Collection

SharePoint Site > Site Actions > Site Settings > Site Collection Features

Web Application

Central Administration > Manage Web Applications > Manage Features

Farm

Central Administration > Manage Farm Features

Feature Scopes

As you know we have 4 types of scope:

1. Site (web site)

2. Site Collection

3. Web Application

4. Farm

To view it, open your project in Visual Studio & double click on the Features item from Solution Explorer.

clip_image004 clip_image006

After deploying the soluiton, you can Activate/Deactivate feature from the corresponding page.

clip_image008

For activating Site scoped feature, open SharePoint site & go to Site Actions > Site Settings > Manage Site Features page.

clip_image009

You can Activate / Deactivate corresponding feature.

For activating Site Collection scoped feature, open SharePoint site collection top-level site & go to Site Actions > Site Settings > Site Collection Features page.

clip_image010

For activating Farm scoped feature, open Central Administration > Manage Farm Features page.

clip_image011

For activating Web Application scoped feature, open Central Administration > Manage Web Applications page & then Select web application, Manage Features from the Toolbar.

clip_image012 clip_image014

clip_image016

You can also activate features using PowerShell. For more information on Feature Scope & Items, see the References section.


References

http://bit.ly/YMyINQ

Summary

In this article we have explored the Feature Activation locations based on the Scope.

Posted in Uncategorized | Tagged: , , , , , , | Leave a Comment »

SharePoint 2010 – How to move/copy Site without PowerShell?

Posted by Paul on May 14, 2013

image

In the life time of a SharePoint deployment, we need to restructure sites like:

1. Copy one site to another parent

2. Move one site to another parent

Surely there are PowerShell, STSADM, and Server Object Model ways of doing it. But here I am going through the SharePoint Web Interface way of doing it.

The advantage is that we can do it without the help of SharePoint Administrator & Central Administration.

Content Database

Each site collection resides in a content database. In the case of web application, there could be multiple content databases.

Copying Site

Now let us see how to copy a site from one location to another. Open your SharePoint site & choose Site Actions > Site Settings.

clip_image002

Choose the Site Administration > Content and Structure item. In the appearing page, choose the sub site & context menu, then Copy item.

clip_image003

You will get the following dialog to choose the destination site.

We are copying site from one parent to another parent.

clip_image005

Choose your Destination Parent & click the Ok button. Your Copy operation should begin now..

clip_image007

Wait for a few minutes until the contents are copied. You can see the new site is created.

clip_image008

You can try accessing it using the URL.

clip_image009

The site appears as shown below.

clip_image011


Moving Site

For moving site, you can use the Move context menu item & then choose destination parent site.

clip_image012

clip_image014

If you cannot see the Site Content and Structure link, you need to activate the SharePoint Server Publishing Infrastructure feature from Site Settings > Site Collection features

clip_image016

References

http://bit.ly/102VB0C

Summary

In this article we have seen how to move/copy site without using PowerShell.

Posted in SharePoint | Tagged: , , , , , | 5 Comments »

SharePoint Permissions Best Practices

Posted by Paul on May 12, 2013

In this article I would to summarize the Best Practices in SharePoint Permissions assignments.

Best Practices

clip_image002

clip_image004

For more information on Permissions, please find the articles below:

1. SharePoint Permissions Part 1 of 3

2. SharePoint Permissions Part 2 of 3

3. SharePoint Permissions Part 3 of 3

References

Free Tool for Permissions Management >> Squadron

Summary

In this article we have explored SharePoint Permissions Best Practices & associated Articles.

Posted in SharePoint, Uncategorized | Tagged: , , | Leave a Comment »

Windows Explorer View is Very Slow!!

Posted by Paul on May 6, 2013

While working with SharePoint, we might need to switch to Windows Explorer View using the Library Settings > Open in Windows Explorer view.

image

The above feature for SharePoint 2010 is only available with Internet Explorer.  Please see the Browser Compatibility Matrix for more details.

             image  

Problem

While copying files between folders in this Explorer View seems to be very slow.

Solution

You can increase the speed by changing the following setting of Internet Explorer

  • Automatically Detect Settings

Uncheck the above setting.

Open Internet Explorer > Options > Connections tab

image

Open LAN settings & uncheck the Automatically detect settings

image

Click the OK button to continue.

Now retry the Explorer View copying & pasting, you should see the speed is increased now.

Core

SharePoint supports Explorer View through the local machine (client) WEBDAV service.  WEBDAV represents Web Distributed Authoring and Versioning (WebDAV) is an extension of HTTP enabling managing of files over the HTTP protocol.

Posted in SharePoint, Uncategorized | Tagged: , | Leave a Comment »

SharePoint Permissions – Part 3 of 3

Posted by Paul on May 6, 2013

This is a continuation article of the 3 part series. In this article I would like to summarize the Best Practices for SharePoint Permissions.

Best Practices

Following are some of the best practices:

1. Always use SharePoint Groups to assign Permission Levels

2. Add new Active Directory users & groups to SharePoint Groups

3. Create custom Permission Levels based on scenario

4. Run Permissions Audit Report & Cleanup deviations on periodic basis

5. Create unique permissions only after valid justification

6. If multiple items have same set of unique permissions, try to create new list with the items

7. Set appropriate Site Collection Administrators & Access Request emails

8. Integrate Permissions Request & Assignment through proper SharePoint Governance Policies

Following are the depiction of the same:

image

You can refer the Part 1 & 2 of article in References section below.


Tools

In a large farm scenario, we often require tools to manage & automate tasks. I will discuss some of the scenarios & tools available to solve it.

Copy Permissions

Imagine that you have a SharePoint farm consisting of 10 site collections, 50 sites & 100 lists & libraries. There are above 100 employees in the organization. A new employee is arriving & requires same permission of Accountant named ‘Joe’. How you will perform it?

In the non-tool scenario, you have to manually go & find each site / library to get permissions of ‘Joe’. After that you need to add new employee for the same location. Is it time consuming? Yes! Plus it is error prone too.

In the above scenario, we can use SharePoint Tools for addressing the problem. Following is a screen shot of Squadron > Permissions > Copy Permissions module.

clip_image004

We can enter the source & destination users to copy permissions.


Delete Permissions

Imagine a scenario where an employee is quitting the organization. We need to disable his access to all the SharePoint resources. How to achieve this?

In the manual way, we disable the Active Directory account & thus user cannot login to the SharePoint site. But his user account remains in SharePoint sites as Dead Account. The best way is to delete the user from all permissions assigned.

In the automated way, we can use Squadron to find account usage & delete it in less than 5 minutes.

clip_image006

More Tools

In the market, there are dozens of tool for the same purpose. Although priced, they provide better speed & cost advantage for high traffic farms. Some of them are:

LightningTools > DeliverPoint > Permissions Management

clip_image008

Idera > SharePoint Admin Toolset > Permissions Analyzer

clip_image010

References

Part 1 http://www.jeanpaulva.com/?p=5242

Part 2 http://www.jeanpaulva.com/?p=5289

http://www.sharepointcto.com/Squadron


Summary

In this article we have explored about Best Practices & Tools for SharePoint Permissions Management. I hope the article series was useful to you. Please let me know your comments & feedbacks.

Posted in SharePoint, Uncategorized | Tagged: , | 1 Comment »