Archive for July 2008

Find SharePoint Help, References and Material

July 30, 2008

Everyone who begins working with SharePoint or even many of us who have been working with it for awhile always come up with some question that the books we keep around us cannot easily answer.

The good news is that pretty much every question has been answered by some nice blogger, the Microsoft Team, or you can find the information that will enable you to make your own answer.

In my opinion you can find the MOST ACCURATE answer quickest by referencing MSDN or your SDK. However MSDN is a bit technical oriented, and of course does not contain every answer. The second place I would search would be user blogs (there are lots of wonderful ones out there, and then some okay ones like mine :P). Finally I would search actual physical books last (unless you remember reading about it and the page/paragraph it was on you robot in the guise of a human).

The secret to doing this however is in what you search for. The internet is full of wonderful content, and sifting through that can be difficult for even the best search engines. You can improve the odds of success by adding operands to your search query and if possible using class names or things that should be unique on the internet.

Example: I want to find MSDN information on SharePoint features.

I navigate to the search engine of my choice and input “site: msdn.microsoft.com SharePoint Features” which will cause the search results to only display those that are on the MSDN site that have the words SharePoint Features. You could even adjust it further by adding qoutes around SharePoint Features so that it looks for the two words side by side as you describe.

Here is a good reference for operands for google (which most can be used in other search engines):

http://www.googleguide.com/advanced_operators_reference.html

Hope this helps someone looking for some more information,
Richard Harbridge

Corporate Memory – The Good, The Bad, and The Ugly

July 29, 2008

(I rarely do this, but this post also is important for those who are planning, deploying, and working with SharePoint solutions. So I have copied it from my project analysis blog as well to provide some extra benefit to all you wonderful people out there.)

Throughout the world more and more businesses (regardless of type, or size) are creating initiatives, are planning the implementation of, are implementing, or have implemented corporate memory management and support systems. Some names relating to Corporate Memory Management and Support systems are knowledge base, knowledge sharing, knowledge capturing, lessons learned, collaboration centers, and so on and so forth.

Why?

The goal of these systems is simple: “Promote an environment that captures and shares the knowledge and experience gained by individuals, and collective groups to the organization as a whole in an organized manner so that everyone can benefit from the progress, work, and lessons learned generated on a daily basis.”

The benefits of something like that are obvious, novices can gain the insight and experience of veteran staff, new staff can find all the resources they need, the cost to manage, transfer knowledge, and train staff decreases while the capabilities of each staff member increases and as a result so will customer satisfaction.

How?

The most common answer I hear to this is “by applying technology”. While I wish it was this easy, I assure you there is a very large amount more than just technology involved in providing a good Corporate Memory solution for any company. The technology is often an important tool that can be used to improve a corporate memory solution, but the reality is that the actual corporate memory solution can always be done, with or without technology.

This isn’t a new concept, companies have been doing it for a very long time, and those who have done it well have become exceedingly successful as a result.

The best way to create a corporate memory solution for your organization is rather simple. Just follow the few steps I outline below and you will have a much greater chance than if you missed one of these crucial items.

1. Don’t rely on technology to solve your problems.

You see this happen all the time. People hear about a content management (or document management), and collaboration system and often believe that by implementing this system you will have the automatic collection and sharing of all corporate data.

The truth is that the business processes, data to be collected, the communication and training, and the overall user acceptance of the system all play a far greater role than the technology does in a corporate memory management solution. The technology just supports these other areas that must be clearly defined, planned, and implemented in order to have a good corporate memory solution.

2. Information requires context to become knowledge.

This is important. Information is not knowledge. Information alone is unusable as corporate memory without context. The context provides a way for everyone to relate the information to something they can use. It’s the relationships to business processes, and metadata (related information) such as purpose, and how it can be applied that makes the information become knowledge that is usable by the individual, or organization.


So to implement a corporate memory solution for your organization you have to figure out what all of those business processes, purposes, and metadata will be. Don’t worry you don’t need to know all of it, just everything around the first information expected in the system and a plan to ensure that as more information comes in you will be able to keep up with that information’s context to ensure it becomes knowledge, and doesn’t remain information and just ‘clutters the shelf’.

3. Knowledge requires maintenance.

Many people forget that knowledge requires maintenance. It has to be constantly evaluated to see if it is still relevant, to ensure that the relationships and metadata are still appropriate and that they still provide a purpose and application in the business. Knowledge that isn’t well maintained falls into disarray, it becomes outdated, it degrades belief in the corporate memory solution as a whole, and most importantly it becomes unusable to the individual and organization. Without maintenance it becomes information with a pretty dress (and unlike fashion these outdated clothes don’t come back into style – zing!).

So make certain you have a good maintenance plan, and not just the technology, I am talking about communication, training, and of course the constant evaluation and analysis of corporate memory.

4. Corporate memory is organic.

Some people often think of corporate memory as data. Which in many ways it is, but the key is that it is organic data, which grows and changes overtime. This is a wonderful beautiful thing. What it means is that while your business grows, evolves, and changes the knowledge contained in corporate memory will grow, evolve and change with it.

What this means is that your corporate memory solution must be able to grow, evolve and change along with the corporate memory and your business. Things like a good maintenance plan (that is constantly evaluated) and a good framework for managing information context are integral to the success of a corporate memory solution.

5. You do not harvest knowledge, mine it, or fish for it.

Knowledge capturing and understanding that knowledge’s context cannot be achieved by harvesting, mining, or fishing. You can’t just harvest documents, mine them for the information you think is important and guess what contexts that knowledge can be used for. If you do that all you end up with is information. This as I mentioned earlier is unusable in a corporate memory solution.

Instead you need to create (forgive the bad analogy) the fertile field in which knowledge can grow and plant the seeds. Remember that knowledge is organic, and that initially while you set up the plan, framework and solution that it will change overtime and that it is impossible to guess how the knowledge will grow. This planning and hard work to create a solution is the field in my analogy. And the seeds are the first pilots, communication methods, and training aspects that you implement to get your corporate memory solution to grow (in the direction you want it to).

If you try and harvest, mine, or fish for the knowledge you will just end up with barren fields that don’t bear fruit. (Last one, I promise.)

If you carefully think about those points I am confident you will implement a corporate memory solution that will not only provide wonderful opportunity, growth and power to your organization and its members, but you will also have done it in such a way that you don’t have to redo all of the work a short time down the road just because the technology changes (which it always will).

Thank you and best of luck to your corporate memory solutions,
Richard Harbridge

SharePoint Information Architecture

July 28, 2008

One of the hardest questions anyone who is architecting small, medium, or large SharePoint deployments is how to set up the site collections and governance model around those areas.

Some groups say more site collections is better, some say less is better, but of course the overall saying is that it totally depends on your needs. This is great to know, but it doesn’t really provide enough information, and unless you want to read tons of blog posts and reams of Microsoft technical material (which I personally love to do) you need something thats organized well and articulates the high level concepts you need to know to make a successful implementation of SharePoint.

Well Bob Mixon has done a wonderful job of this. Take a gander at: http://www.bobmixon.com/blog/Lists/Posts/Post.aspx?ID=55

Thank you Bob!
Richard Harbridge

Microsoft SharePoint Online

July 28, 2008

Microsoft came out with the announcement that they would be having online services for exchange, sharepoint, dynamics and live meeting a fair bit ago, but in case you aren’t aware of it yet I highly recommend watching the demo available at:

http://www.microsoft.com/online/sharepoint-online.mspx

Once the beta is complete this will have a HUGE impact upon the SharePoint world. Think of it as a subscription service that is provided which deals with the data center needs, most of the administration, and greatly reduces costs to businesses. Small businesses will especially gain a considerable advantage from these services so I am looking forward to how the adoption rate for online business service solutions increases over the next few years.

Usage Analysis Processing Beyond 30 Days

July 28, 2008

Often the need to see usage analysis past the 30 day default limit that displays in SharePoint’s UI is desired.

SharePoint Designer can help with these situations with it’s reporting abilities.

  1. Open the desired site in SharePoint Designer
  2. Select the Site Option from the menu bar -> Reports -> Usage and the the report you would like to see.


Hope this helps someone in the future,
Richard Harbridge

SharePoint Permission Dependancies

July 26, 2008

A while back Hank Hooiveld posted some permission dependancy diagrams. If you are a SharePoint administrator or a developer who is manipulating site or list level permissions this diagram will be an invaluable tool to you.

http://www.sharepointblogs.com/files/folders/henkhooiveld/entry4858.aspx

It shows the dependancy of each permission. Without this one, you can’t have that one. Letting you know just what will happen to all the permissions of a user if you remove one permission for that user.

Development with SharePoint Designer

July 25, 2008

A wonderful post was written by Emile Bosch about the power behind SharePoint Designer and the lack of developers using it to it’s full potential.

http://agiledirect.wordpress.com/2007/11/10/developer-awareness-and-the-bad-reputation-of-sharepoint-designer-a-post-to-all-developers

It is my highest recommendation that if you are a SharePoint Developer, Analyst, or Consultant that you fully investigate SharePoint Designer and what is available out of the box for SharePoint. One of the biggest wastes around SharePoint is the duplication of effort. Someone doesn’t know enough about the out of the box components and features (partly Microsoft’s fault for not evangelising this) and recreates SharePoint functionality.

Don’t think it’s just SharePoint Designer either, make sure you understand the API of SharePoint well before developing something, because odds are it might already exist, or at least an existing object or class can give you a boost and reduce your development effort.

If you haven’t take a gander at all the SharePoint WebControls: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.aspx

A few other examples of great components that exist out of the box that often people don’t explore fully are:

  • DataFormWebPart
  • ListFormWebPart
  • ListViewWebPart

I hope this helps,
Richard

STSADM Backup/Restore

July 25, 2008

Often there is a need to copy a site collection in SharePoint from either one server to another, or to back it up before making some big changes, or maybe even just a desire to duplicate the site collection for testing purposes.

There are a whole slew of ways to do this, but I will recommend the simplest and most successful approach (in my experience). That is the STSADM command for backing up site collections, and the STSADM command for restoring site collections.

Backup a Site Collection

  1. On your SharePoint server hit WINDOWS + R.
  2. Type “cmd” and click OK.
  3. In the cmd window navigate to the “C:\Program files\common files\microsoft shared\web server extensions\12\bin” directory.
  4. Type stsadm -o backup -url “http://theurlofthesitecollection” -filename “C:\MyFirstBackup.bak” -overwrite
  5. Press Enter

    When the backup is completed it will now be sitting in your C:\ with the name MyFirstBackup.bak.

At this point you can copy the file to the other server, or just perform the restore on the same server by following the steps below.

Note before restoring ensure that the target site collection you are restoring onto is a BLANK site. This will allow you to avoid some potential issues with duplicate names and ID’s.

To Restore a Site Collection

  1. On your SharePoint server hit WINDOWS + R.
  2. Type “cmd” and click OK.
  3. In the cmd window navigate to the “C:\Program files\common files\microsoft shared\web server extensions\12\bin” directory.
  4. Type stsadm -o restore -url “http://theurlofthetargetsitecollection” -filename “C:\MyFirstBackup.bak” -overwrite
  5. Press Enter

When the restore is complete the site collection should now be replicated, or restored.

Keep in mind this is a pretty fast method. However it is not the ONLY or BEST meethod for backing up. It’s only my recommendation for something fast to migrate site collections, etc.

For more inforamtion on the limitations of each backup method and advantages see this wonderful TechNet Article: http://technet.microsoft.com/en-us/library/cc287880(TechNet.10).aspx

Thank you,
Richard

SharePoint Content Query WebPart (Customizable, Powerful, and Invaluable to ANYONE who uses SharePoint)

July 25, 2008

Out of the box SharePoint provides ANYONE with almost everything you could possibly need to present SharePoint data (list items, documents, you name it..) onto a webpage. Whether you have an intranet, extranet, and/or internet SharePoint deployment one of the single most important webparts will be the SharePoint Content Query WebPart.

Not sure what it is? Basically (very generalized description) it allows you to roll up SharePoint data into a customizable presentation. Read more here: http://office.microsoft.com/en-us/sharepointdesigner/HA101741341033.aspx

What this really means is two things:

  1. You can roll up pretty much any kind of “query” you can think of for SharePoint data. I could roll up all the policy documents throughout the entire site collection into one page for everyone to see, or maybe roll up the latest 5 news articles and present them to the viewer.
  2. You can CUSTOMIZE the look and feel VERY easily. This can allow some normal list data that looks like a listing of information to be INTERACTIVE for a user, or to look and feel exactly how you want it to!

The second point there is extremely important for those who are using it for internet sites. Want your news articles to roll up on your homepage and show just a thumbnail, title and description? Easy as pie! What if those news articles are all over the site, and are made by many different kinds of users? As long as you structured the data (used content types or something) you can just “Query” it with the content query webpart and voila it will appear.

Now for the part many people miss: But it doesn’t look the way I want it to, and all the options still don’t make it look the way I want.

No problem! If you have anyone who can do basic HTML you should be able to pull it off. (XSL skills are probably a good thing for anything more advanced than minor changes.)

The Content Query WebPart runs off of XSL!
Microsoft released wonderful documentation on how to modify it here: http://msdn.microsoft.com/en-us/library/bb447557.aspx

But as always I will try and provide my own little example to help anyone who hasn’t caught on yet.

  1. Add a content query webpart to a page.
  2. Here is what mine looked like:
    Take a look at the drop down for item style, what I am going to take you through is how to make your own new item style, completely customizing the LOOK and FEEL for how my data items are displayed.
  3. Navigate to the site collection root and visit the StyleLibrary. Within this library is a folder called XSL Style Sheets. We are going to modify one of the files in here called ItemStyle.
  4. You can modify it in notepad, or in visual studio or some other XML/XSL editor. For this demo I will be using visual studio.
  5. Either write your own new template using the others as a guide OR copy one of them as a starting point. In this case we will just copy the “TitleOnly” template and paste it below.Notice that we change the NAME and MATCH of the template we copied. This is what it will show up in the drop down as, and how it will associate the styles and xsl you adjust in the actual content query webpart.
  6. Add some HTML or adjust the XSL as desired. In this sample I just added an image that will appear to the left of each title.
  7. Save and check the XSL change in.
  8. Open the content query webpart you added in step 1 and cause the item style drop down to display.

    You will notice our new template shows up.
  9. Click OK or Apply and VOILA – Customized Presentation (in my case an image of myself showing to the left of each item. Narcissistic I know.)

I hope you all see the power of this WebPart and use it to save you tons of time and effort,
Richard Harbridge

P.S – I highly recommend downloading and trying this solution on a development environment: http://ecqwp.codeplex.com/ which is basically a content query webpart enhanced with more properties pushed up to the user. It also has some other slick features, but basically makes the above steps far simpler to execute and adjust.

— UPDATE: This is a codeplex project, so there are some issues, specifically when dealing with non root site collections. I am advising this as something to start from 🙂 —

SharePoint Unexpected Error has Occured, Unknown Error has Occured, File not Found

July 25, 2008

Everyone who has ever worked with SharePoint eventually gets the well known error window of SharePoint which has something fairly useless such as: An unknown error has occured, please contact your system administrator, or maybe a file not found error without any of the details that allow you to troubleshoot it or understand why the error has occured.

You could go into the SharePoint logs, but almost everyone just turns on debugging, callstack and custom errors off.

Let’s turn SharePoint debugging and error reporting on shall we?

  1. To do this navigate to the Inetpub directory on your SharePoint server.
  2. Navigate into the wwwroot folder.
  3. Navigate into the wss folder.
  4. Navigate into the web application’s folder. (This is either a hostheader name, or a port number, if in doubt talk to whomever set up your SharePoint environment.)
  5. Open the web.config file.
  6. Find the following line: <customerrors mode=”On” /> and change the “On” value to “Off”.
  7. Find the following line: <SafeMode MaxControls=”50″ CallStack=”false” and change the “false” value of CallStack to “true”.
  8. Find the following line: <compilation batch=”false” debug=”false“> and change the “false” value of debug to “true”.
  9. Perform either an IISReset (hit windows + R and type IISRESET and click OK)
    OR
    Just recycle the app pool. (This way it doesn’t impact the other web applications.)

When you reload the page, site, or reperform the error causing action you should now see more information on what caused the error and if you still aren’t sure how to resolve it can always turn to mans best friend google and search for that error.

Good luck with your troubleshooting,
Richard