Posts Tagged ‘SharePoint 2010’

Do you hate SharePoint? Part 4 of 4

If the answer is yes, could your hatred be caused by your local implementation? In this final post of our blog series we look at the last of four common problems with SharePoint implementations and how you can address them.

Once again, a huge thank you to Neil MacIsaac, SharePoint MCT, for putting this entire series together. Happy reading!

If you missed the earlier posts you can find them here

  1. Business Intelligence

This week we look at Business Intelligence.

4. Business Intelligence

Are there organizations out there that are really striving for Business Unintelligence? Wouldn’t everything that an organization does be in an effort to do something better? I love the term Business Intelligence (BI) mainly because of its massive overuse and its wide misunderstanding as ‘reporting’. So the question really becomes "How do we maximize our BI?" First, it is important to understand what BI really is. It is about making better decisions. If we have better data, and a better understanding of our data, it would be logical to conclude we would make better decisions right? Not necessarily. The theory is correct, but in practice most organizations fail to implement this properly by not focusing on the decision that they are trying to improve and instead only achieve in bombarding their key decision makers with an avalanche of reports. What is also surprising is that most of the decision makers in an organization are probably the ones asking for the reports in the first place. Let me give you an example. In a sales based business, you might see some monthly sales figures like this (overly simplified for the sake of discussion)

Sales Member

Monthly Sales (Units)









Why do we need to see these sales figures? The typical answer you will get will be "Because I need to know if there are any problems and to see if we are doing better or worse than last month or last year." So, with the above numbers, where is the problem? Most people would focus on Bob because his numbers are lower than the others. What isn’t shown with these numbers is that Bob is the newest of team and manages the smallest sales area. Can you still spot where the problem is in the above sales numbers? The typical failure in implementing a BI solution within SharePoint is usually in the disregard for a proper BI solution that focuses on those key decisions which strives to achieve a better decision by supplying as much data around the factors and drivers of the data as the data itself. Instead we see fancier reports of the above sales table and hope that our decision makers will ‘figure it out’. Another interesting point concerning SharePoint and BI integration is the potential for SharePoint to implement the decision. If our BI solution is focused on key decisions, a good solution should allow the user to implement the decision as quickly and easily as possible.


As you can see, SharePoint offers many challenges when deployed into an organization and requires due diligence to maximize your return. I hope that some of my tips may make their way into your organization and perhaps save you from some of the common pitfalls that have trapped others. There is good reason why SharePoint has become as popular as it has and hopefully you will be better able to get the most out of your implementation.

Do you hate SharePoint? Part 3 of 4

If the answer is yes, could your hatred be caused by your local implementation? In this blog series we look at four common problems with SharePoint implementations and how you can address them.

We continue our series by Neil McIsaac, SharePoint MCT, for putting this together. Happy reading! If you missed it you can still read Part 1 and Part 2 of the series

SharePoint is an interesting platform and as it grows as a product and with its already incredible adoption, it is an important cornerstone for many organizations. But ask the people that work with it, and you will find a divided love it or hate it passion for the product.

Why hate it?

It’s my experience (which dates back to the site server/dashboard days), that many customers have difficulty handling the product and I mean this a number of ways. Here’s the issue:

SharePoint will amplify your problems.

So why do we hate it? I would hate anything that made my problems larger. But did SharePoint create the problem? That would be like blaming the carpenters hammer for building a crooked house. The problems are our own doing in the majority of cases. In my experience, the most common problem SharePoint seems to amplify are the following;

  1. Information Security
  2. Business Intelligence

This week we look at Information Security.

3. Information Security

SharePoint has a confusing security architecture. A friend of mine continually jokes that you can do anything in SharePoint, as long as you know the 6 strategically placed security settings you need to set to allow users to interact with your content. I like to keep things simple. I always start addressing security by asking these 3 basic questions;

What are the requirements?

This question is pretty straight forward and we do it relatively well. Who gets access, and who doesn’t.

How do we know we meet the security requirements?

This is one area where SharePoint poses some difficulty, since it lacks any worthwhile reporting tools and has enough security layers that are hidden in the UI that it feels like finding an answer to this question is akin to finding the meaning of life itself. Paired with the products inability to properly handle security inheritance and the lack of a proper method to deny permissions and you are on a never ending hunt for individualized permissions. Yuck. Unfortunately the best security reporting tools are third party. Your team needs to sit down and address how your organization will address security reporting and auditing.

When is the last time we checked?

Security audits are often checked at implementation, but rarely checked afterwards. Permission elevation happens for various reasons such as troubleshooting, making it necessary to schedule our audits. If running an audit is painful because we haven’t properly addressed the above question, then scheduling it will hurt that much more. Again, get a good security tool.

Information Security Tips

Here are a few tips on implementing security in SharePoint to help make things a little more manageable.

Libraries/Lists are for security

I am not a fan of the Shared Documents Library which comes as a default. If you have ever heard me talk on the subject, you know I get a bit worked up about it. I am a fan of lists/libraries in SharePoint and I completely understand Microsoft’s position in adding it. It was a necessary evil. The problem that I have with it is what most people put in it. It goes against pretty much every information management principal that we have. Many organizations use this library and why not? It says "Shared" and I want to share my stuff, so why not? The reasons are many, but at a simple level, you will end up with a folder structure that mimics your old file shares, and make it work by placing individual permissions on folders and files to compensate for your lack of proper architecture. If you think of lists and libraries as containers, which if you were paying attention in the previous blog post when I ranted about the importance of structure, you can shape these containers to better store its information. You can change the shape (think ‘content types’), and you can change the behaviour (think ‘workflows’ and ‘views’) to better aid the end user in the task they have at hand (think ‘Use Cases’). Coming back to permissions, if we have a container with similar information in it, we can control permissions to all of its content by controlling permissions to the container. In other words, permissions in SharePoint are best handled at the list and library level and not at the folder or file/item level. Which brings me to a solid point: If you are not sure how many libraries you should have, look at the common permissions to your content. If a group of people need read access to one type of content but not to another type of content, then the content should be in the same list/library and we can control permissions to the content by setting the permissions once on the list or library. So how many lists or libraries should you have? The answer is in how many groups of content with the same permissions you have. This is not always the answer, but it is a good starting point.

Use SharePoint groups as functional roles

SharePoint groups are best used to reflect functionality rather than entity. Since we typically use Active Directory groups, adding the AD groups to our SharePoint groups to reflect the same group would be redundant. For example, having a Sales group in AD, which we mimic and create a Sales group in SharePoint usually offers little benefit. Having a group in SharePoint that reflects their ability is preferred. For example, I can create a group in SharePoint called Sales Lead Generators that can better reflect what anyone in that group can ‘do’ rather than who they are. Not only does it simplify security administration, it makes audit reporting a lot easier to read and verify.

Use Information Rights Management

Information Rights Management has been around for some time now. Surprisingly, most organizations that want to secure documents rely on securing the folder or physical media where the file is stored. The problem is that this security simply doesn’t follow the document where ever it goes. IRM on the other hand, does! You just have to ask someone if their documents are just as secure after an employee that has proper permissions to the file copies it to a thumb drive, or inadvertently emails it to the wrong person. SharePoint and IRM integrate very well. You can check out more about IRM here.

Next week, part 4 business intelligence…

Do you hate SharePoint? Part 1 of 4

If the answer is yes, could your hatred be caused by your local implementation? In this blog series we look at four common problems with SharePoint implementations and how you can address them.

SharePoint is one of those tools where the line blurs between the developer and the administrator, much like SQL Server and much like SQL Server, SharePoint is everywhere! So even though this post is not about coding for SharePoint, I thought it had some great information that many of us could use when dealing with SharePoint implementations, either as a developer supporting an implementation, or even as an end user (did I mention I use SharePoint at work? Hey boss, you reading this?).  A huge thank you to Neil McIsaac, SharePoint trainer extraordinaire, (bio at the end of the blog) for putting this together. Happy reading!

SharePoint is an interesting platform and as it grows as a product and with its already incredible adoption, it is an important cornerstone for many organizations. But ask the people that work with it, and you will find a divided love it or hate it passion for the product.

Why hate it?

It’s my experience (which dates back to the site server/dashboard days), that many customers have difficulty handling the product and I mean this a number of ways. Here’s the issue:

SharePoint will amplify your problems.

So why do we hate it? I would hate anything that made my problems larger. But did SharePoint create the problem? That would be like blaming the carpenters hammer for building a crooked house. The problems are our own doing in the majority of cases. In my experience, the most common problem SharePoint seems to amplify are the following;

  1. Information Management
  2. Project Management
  3. Information Security
  4. Business Intelligence

Without a doubt, this is not a definitive list of problem areas, but from my experience, these are the key ones that help make or break your experience with SharePoint. So let’s take a look at them.

1. Information Management

In my mind, this is the biggest problem area and by a considerable margin. Why? Well, if you think about information management, it really encompasses all of the other areas. It is a really broad topic. What is surprising is as an industry whose core revolves around titles such as Information Management and Information Technology; you would think that we’d be better at it. Let’s look at an example: The shared documents library within the default team site is fairly widely used by organizations. At face value it seems like a perfect solution for the sharing of documents. After all, it is called the ‘shared documents’ library.

When I was a kid, I remember going to the library. I am talking about the real one that had shelves and shelves of books that you couldn’t carry around in your pocket. I won’t refer to those times as ‘the good old days’ because they simply weren’t. What fascinated me was the organization. I had the power as a kid, to walk in to the library and find various books on a topic that interested me, and to browse some additional information about each book before ever finding the book on the shelf. You might be thinking that I am referring to the ability to sit down in front of a computer and search, but I’m older than that. I’m referring to the cataloguing system called the Dewey Decimal system.

That’s right, no computers. Yet I could search amongst a huge amount of material systematically and rapidly (for the times). 135 years later, and I’m watching organizations fumble with taxonomy and metadata like new borns driving a car.

So what’s the problem?

If we look at the shared documents library like a real library and a document like a book, if you let your employees simply start saving their document in the library it becomes almost the equivalent of having a library where you open up the front door, and chuck your book into the building. Imagine trying to find that book a week later. For the first hundred books or so, you might be ok, but what about the first thousand? Every time you see the default shared documents library being used, you should picture a real library, with nothing more than a mound of books in the middle of the room and people frantically trying to find things in the pile. The first thing that might come to many peoples mind is that "Well that is what we have Search for!" No we don’t. Well, not exactly. Search doesn’t organize our data for us; it makes the retrieval faster in larger systems. If you don’t believe me, do an internet search for a topic such as Shakespeare and tell me what the most current and correct material is on the subject. So how do we go from a pile of books on the floor, to nicely organized books on the proper shelves? The answer is 2/3rds metadata, and 1/3rd taxonomy.

Metadata is data that describes data. In the case of the Dewey Decimal system, that data helped to organize books into categories such as fiction or non-fiction, and provide additional tags such as animals, psychology, religion etc. so that you could much more easily identify basic keywords that described the material. In the library system, that information is collected, identified, and then recorded when the book is first brought into the library so that the material can be properly placed as well as be identified within a cataloguing system to be more easily retrieved. Do your SharePoint libraries behave like that?

Taxonomy is the organization of metadata. In the example of the library, who determined that fiction and non-fiction should be one of the primary organizational metadata to categorize books? Why not hard cover and soft cover? Within your own organization, the determination of metadata and the taxonomy surrounding it is purely yours. It needs to reflect your organizational goals, which is why companies like Microsoft can’t exactly make that an out of the box feature. YOU have to address it, and unless you like sorting through a million books, you need to address it yesterday.

If you haven’t already addressed it, let me help you with a few tips.

Focus on process

Data is a byproduct of process. Data simply wouldn’t exist if it didn’t have somewhere to go or something to be done to it. Knowing and understanding the key processes in your organization is a must. What can be more difficult is the identification of key areas where your processes will likely change, or where you would like to change in the future. The reason we need to identify this as best as we can is so that we can better lay the ground work now. In other words, after we know what the current process is, we need to ask "What is likely to change? What additional information might be needed to identify problems or opportunities that we could leverage to further improve the process?" As an example, if we examine a simple project management site where we record change requests and have their statuses updated, could you easily identify the total amount of time it took to go from request to resolution? Could I easily identify the chain of events that happened after receiving a change request? And is either of those 2 details important to me or will be important to me in the future? Questions such as those will help take you beyond simply recording a change request and marking it as ‘resolved’. Better metadata = better taxonomy = better processes.

Have Multiple Taxonomies

Taxonomy is fairly simple in concept in that it is leveraged metadata. I think I’ve already established the importance of having some type of taxonomy. Although what I am about to say is really two versions of the same thing, for the sake of the SharePoint argument I am going to separate the taxonomies into 2 types; Navigational taxonomies and categorical taxonomies. The reason for the separation is so they can be planned according to their primary usage in that users are either finding the data they need, or working with the data to make decisions. By focusing on their usage, we can hopefully make a better taxonomy.

With navigational taxonomies our focus should be on the Use Cases that you have established for the project. By focusing on what people do with the site, we can streamline their access to their data. You won’t be able to establish that unless you understand what people do with your site, and Use Cases are the best way to establish that.

You should also support more than one navigational taxonomy since there isn’t only one way to complete a task. The goal of the menu navigation should be task focused, so how do we add a second navigational taxonomy? By adding more menus? No. In SharePoint, we can add these extra navigational taxonomies through the introduction of a Site Directory focused site, and/or through the use of custom search pages and results. Both of these options are relatively easy to implement and will allow your users a second and or third way to find a location in your growing architecture.

Categorical taxonomy can be a bit harder to implement since it deals directly with content. We need to collect metadata on content to better describe it, but what should that metadata be? How should it be best structured? Great questions and the first answer lies within understanding the various processes surrounding your data. How it will be used, what decisions need to be made on it, etc. The metadata from this is typically well understood and most organizations have little trouble in establishing what the metadata is rather they have trouble in establishing how to best implement it within SharePoint.

Let me give you some tips in establishing categorical taxonomies;

Use Content Types

Content types are a way of establishing a common structure that can be shared amongst lists and libraries. Use them if you want to establish some consistency.

Use the Managed Metadata Service (MMS)

You can think of the MMS as a place to store the common vocabulary for your organization which can be used and shared in a number of ways. Another advantage is that you can disseminate the administration of the terms to the people that use them and not IT. Be aware that the MMS interface within the Document Information Panel is only supported within Office 2010.

Support Views

Views are a great way to change to look and organization of a list or library. They work by changing the display of the data, such as sort order, which columns are shown etc. Good views require good metadata.

Support Soft Metadata

Hard metadata is metadata that directly fulfills a business requirement. In other words, it really needs to be there and usually in a very structured way where we control the terms and their usage. Soft metadata on the other hand is metadata that doesn’t have a direct business relationship but can offer some insight to the content. A good example would be in the way that we tag photos. Quite often we will need some hard metadata such as the date that the photo was taken and the location, but we want to support soft metadata so that users are able to tag the photo with open terms, such as ‘wildlife’ or ‘Christmas Party’. But why do we want to support this? To which my answer is ‘Do we really want to turn away free information?’ Granted there is a minimal support cost to this. In the end, we have content that is simply more usable, and with any luck, could be leveraged one day, so I often tout that the support costs are minimal with a potential for much gain, so why not. SharePoint 2010 can implement this many ways including using keywords, and/or open MMS term stores.


This has been a thorn in my side almost wherever I go. We work in the information age and are so-called masters of information technologies, so why are we so bad at archiving strategies? A common dialog I often have with my clients goes something like this: "Our data retrieval is slow because we have a lot of it, over a million rows.", "Why do you have over a million rows in your table?", "We need to keep our data for X years.", "Did anyone say you need to keep it in the same storage medium as the daily production data?", "Ummm, no.". Archiving data does not have to be offline, it can be online and accessible, it simply has a different purpose than your live, day to day, data, most importantly it should be separated. Every time you create a new location where users can add content, whether it be a list, or a library, or a database, or a file share, you should ask yourself "How does this content retire?" and "When does it change its purpose?" After that, automate the process. Without an archival strategy you are setup for failure, you just don’t know when. By accumulating data over time, you cause the live, day to day, data to slowly become harder to use when it is left in the same storage medium. Retrieving data will be slow, and it will often get in the way of users trying to find the correct content while they are trying to accomplish their day to day tasks.

Next week Part 2. Project management…

NeilMcIssacNeil McIsaac (MCPD, MCITP, MCTS, MCSD, MCDBA, MCSE, MCSA, MCT) is an accomplished educator, consultant, and developer who specializes in enterprise application development and integration, application architecture, and business intelligence. As an instructor, Neil shares his knowledge and years of experience with students on a wide range of topics including SharePoint, BizTalk, SQL, .NET development, and PowerShell. He recently did an interview about SharePoint in the Cloud with .NET Rocks

Neil is an owner of BlueGreen Information Technologies Inc., and has over 18 years experience working in the IT industry in both the private and public sectors. His focus on large scale application development and integration keeps Neil involved almost exclusively with enterprise level companies. However, he also works in every level of government.

Neil lives in Moncton, New Brunswick Canada. In his spare time, Neil enjoys downhill skiing, golf and a new motorcycle.

This blog is also posted on the Canadian Developer Connection

Ask a Trainer: Free resources to help you learn SharePoint

FAST university has free webcasts on Enterprise Search and other SharePoint topics

At the MCT Summit in October, I had a chance to chat with Larry Kaye, a Microsoft Certified Trainer. Larry works with FAST University. I hadn’t heard of that organization before, so I asked Larry to fill me in on what they do. I’ll summarize the key offerings here, but if you don’t feel like reading, just watch my interview with Larry below (apologies for the camera shake, I am prone to that, I think I should get a tripod)

FAST University offers training and resources on SharePoint for administrators and developers. Although they cover other topics as well, they offer a lot of training on search features. They have classroom training, and just in case there are no classroom dates or locations convenient for you, they also offer virtual and e-learning courses.

If you register at their website, you can see a full list of the resources, and access a number of free webcasts! Including the following which I thought might be of interest to SharePoint developers:

  • Architecture of Search in SharePoint 2010 – learn the architecture of search in Microsoft SharePoint 2010 and FAST Search Server 2010 for SharePoint.
  • Business Connectivity Services – Creating a .NET Connectivity Assembly in Visual Studio – learn how to connect SharePoint to external data sources such as SQL Server databases, SAP applications and Web services.
  • FAST Search for SharePoint 2010 – Property Extraction – Learn about the property extraction feature that identifies information such as person names, company names, and geographic names and locations in documents. These properties help you find the “who”, “what”,”when”, and “where” of each document.
  • Fast Search Server for Internet Sites (FSIS) with Content Transformation Services (CTS) – Learn about Content Transformation Services, how to build flows and sub-flows and tips and techniques for building flows in Visual Studio.
  • Search Reporting and Analytics with FAST Search Server – An introduction to Search Reporting and the Search administration tools.

Here’s Larry talking about FAST University and their courses.

This blog is also posted on the Canadian Solution Developer

Do You Really Need that Web Part? SharePoint 2010 Business Connectivity Services, long name, AWESOME FEATURE!

ShrPt10_h_cL_epsBusiness Connectivity Services is a feature I have heard about, but never had a chance to try. In the hands on labs at TechEd I sat down and launched a virtual machine and followed step by step instructions to try it out. There were even proctors around to give me a hand when I got stuck. The perfect time to try out BCS!

BCS (sometimes referred to as BDC Business Data Connectivity) allows you to connect external data to SharePoint. I know you can do that with web parts, but then you have to show your users how to access and use the web parts, they already know lists! With the BCS features in SharePoint 2010 you can create lists that read data from external data sources like flat files and databases. You could do it in SharePoint 2007 but it was a LOT of work to set it up for read and write.  It’s a *lot* easier in SharePoint 2010. You have two choices for setting up BCS: SharePoint designer or Visual Studio. In the lab I was able to try and compare both methods.

In the first part of the lab I set up a list that pointed to a database table using SharePoint Designer. It took me about 5-10 minutes. The list allowed the user to read and update the database table. Not bad for 10 minutes work! I’ve summarized the steps below, sorry there aren’t any screenshots, that’s the one drawback to using someone else’s hardware. (found a video that shows you how to create the external content type with SharePoint Designer if you want to try it yourself)

  1. Edit your site in SharePoint Designer.
  2. In SharePoint designer, add a new External Content Type.
  3. Set the external system of your content type to point to your data source (for example a SQL Server database)
  4. Use the Data Source Explorer tab to select the table you wish to access
  5. Right click the table name and select Create All Operations to create operations that will be used to read and update the underlying data source.
  6. Use the properties section to map the columns in your data source to your client (for example if you are reading contacts from a database table that you want to access from Outlook, you need to specify which column in the database table contains the e-mail address.
  7. Because your database table may contain millions of records you should also add a filter to limit the number of records returned, this acts like a Where clause restricting the number of records returned.
  8. Now create an External List using your External Content Type. (NOTE: You will need to ensure your users have the necessary permissions to access the External Content Type in the Business Data Connectivity Service)

During the second part of the lab, I created a list from a flat file using Visual Studio. It took me 50 minutes and that was following step by step instructions that provided all the code in detail! I can tell you right now, if you have a choice, use SharePoint designer! The functionality is great, and more flexible, but just a heads up, if you are going to use Visual Studio to set up your external list, be prepared to spend a fair bit of time going through Help, blogs, and your code to make sure you haven’t missed anything. (found a video on how to set up BDC in Visual Studio 2010)

Today’s my 5 are tips for SharePoint 2010 developers working with BCS, but they aren’t really My 5, these tips come from Penny Coventry (@pjcov) she was one of the Microsoft Certified Trainers working as a Technical Learning Guide in the Hands On Labs. She knows more about this feature than I do!

Penny’s 5 Tips for SharePoint Developers getting started with BCS (in no particular order)

  1. Check out the book Professional Business Connectivity Services in SharePoint 2010 by Scott Hiller and Brad Stevenson.
  2. If you are going to do a lot of BCS, check out the tool bcs Meta Man from Lightning Tools.
  3. Work closely with your administrator, to ensure you have the necessary permissions to create your business data connectivity model and to ensure that your users can use your model.
  4. You may need to configure Secure Store Services because in most situations Windows Authentication cannot be used to connect to your data source (and of course most of us have our SQL databases set up to do Integrated Security! This makes it very difficult to use BCS in SharePoint Foundation because it does not come with Secure Store Services. You can do it, but be prepared for a rather long and arduous battle.
  5. If you need to use the data in workflows, stick to web parts to access your external data, but if all you want to do is give users a way to view and update that data, Business Connectivity Services is the way to go.

Okay It’s Penny’s 5, but I am adding Number 6, Penny is quite the SharePoint guru and has written her share of SharePoint books as well so I am going to recommend you check out some of her books as well.

This blog was also posted to the Canadian Solution Developer