Search This Blog

Showing posts with label SharePoint. Show all posts
Showing posts with label SharePoint. Show all posts

Friday, January 22, 2016

Think before you act

Think before you act

 
Information flows
 
SharePoint is just an enabler. The people that use your precious intranet, collaboration or whatever solution are the ones you need to keep happy. Mostly they don't give a…great deal about the technology below, in this case: SharePoint.
 
They just need to do their job and preferably as fast as possible! 

That is one of the major reasons why you need to think before you act. Ask yourself:
  • What are we trying to accomplish with this solution?
  • Who will be using this solution?
  • What is it that they need to do?

You need to be able to answer the questions above before even thinking about creating site collections, libraries or other objects. Please do! Plan for SharePoint 2013
 
Once you have the answers you will need to document them. Again Microsoft helps us by providing templates for documenting your solutions Planning worksheets. 
 
The planning worksheets help you build your logical architecture. Perhaps you already notice we are working from the business down! Please remember that we are building a solution for real people.
 
In my future posts we will be diving head first in the information architecture to find out that different persona's work with your solution, requiring their own specifics that need to be facilitated!

Usefull links:


Thursday, August 22, 2013

Information management - Deployment

This blog is all about Deployment of your solution!

First thing first. Where are we in the process? When we are ready for deployment we already covered (in one form or another):
- Information architecture - Done!
- Logical architecture - Done!
- Physical architecture - Done!
- Installation - Done!

Woohoo! So now we can implement our solution, finally!

You have several options for a SharePoint deployement:
- Manual
- Automated
- Mixed

Manual deployment
A manual deployment is exactly what it is, a manual deployment. You ask somebody to manually, a.k.a using the SharePoint user interface, to create the required objects, like:
  • Web apps
  • Site Collections
  • Sites
  • Content Types
  • Site Columns
  • Libraries
  • SharePoint Groups
  • Activate features
  • Configure (SharePoint) settings
  • etc.
Requirements for a manual deployment:
  • Accurate information architecture
  • Extremely organized and punctual consultant(s)
  • Test environment
  • Time!
One of the key take aways here is having a specific persona in your team. One that is able to replicate exactly what is written in the information architecture and is able to spot mistakes. I have been working with SharePoint more then 7 years and haven't seen a 100% accurate information architecture with matching logical architecture.

Another key aspect if this type of deployment is time. Manually creating and testing all objects can take days or even weeks! This, off course, depends on your implementation. Think about a DMS solution with 1-5 site collections, 40 content types, 20 or so document libraries and content organizer rules that move documents through your system.

Automated deployment
An automated deployment is a deployment where you use pre-configured scripts, compiled code to create the objects mentioned above.

You could create SharePoint features using Visual Studio that deploy webpart, content types, libraries, etc. Another way is by using Powershell scripts.

Requirements for an automated deployment:
  • Accurate information architecture
  • Development team
  • Development environment
  • Test environment
There is a new requirement here Development environment. I personally do not think it it neccesary in a manual deployment but this is very arguable, I agree!

The requirement time isn't on the list. You've been using that during the developement process. Building the features or scripts. Deployment should be a breeze....

Mixed deployment
Off course it is really feasible to use a mixed deployment, e.g.:
Creation of web applications, site collections, content databases, content types, site columns, libraries etc is done using powershell scripts.
Creation of custom webparts is done via custom developed features.
Content organizer rules are created manually.

Requirements for an mixed deployment:
  • Accurate information architecture
  • Development team
  • Development environment
  • Test environment
  • Extremely organized and punctual consultant(s)
  • (Time)
With a mixed deployment you need, off course, all the requirements above!

Wednesday, August 14, 2013

SharePoint 2010 Content Query Web Part demystified


Content Query Web Part
This blog is more about architecture & information management in a real world SharePoint environment. Since content aggregation is part of architecture & information management I decided to share my findings on the elusive Content Query Web Part a.k.a. CQWP.

The story
According to Microsoft the CQWP can be used to show aggregate content:
  • over a single list
  • over a site and all subsites
  • over a site collection
The story demystified
The above mentioned is accurate...although not complete.
Imagine this real world scenario. Contoso is a medium sized company with approx 25.000 documents. These documents reside in a single Site Collection and are spread over multiple document libraries. Off course we implemented a thorough information architecture and this all documents are neatly classified in terms of content type and metadata.

Now we have a business requirement: "I want to see all contracts assigned to me.".
Further, an architectural principle states only OOB functionality is allowed.

And we are off.... Let's skip a couple of steps to the point the CQWP is the way to go for this requirement (OOB it is... really... trust me... no you cannot use search).

The CQWP: What does it do and where can I find it?
The CQWP is an out of the box webpart that, as stated above, enables you to aggregate data. We need aggregation over multiple libraries and we need filtering. Before this little 'gem' makes it appearance you need to enable it. This is done via the activation of the publishing infrastructure feature.

Analysis
The contracts are stored in several different libraries. Perhaps due to shere numbers, authorization, etc.

Implementation
So we create a new page, add the CQWP.
Next part is the configuration. The 3 elements we are going to focus on here are:
  • Source
  • Filter
  • Sorting
First off the source. Since we are testing the solution we are setting the source to aggregate over a single list.
Content Type = Contract
The filter is DocumentManager (people picker field type) and it's value is set to '[Me]'.

Run the page and voila we have a result of 2 contracts (just an example). As a wise man once said: WOOHO! We have a(n almost) working solution!

Now, change the source of the filter to aggregate everything over the site collection and:
CRASH!


What just happened? Where is my nicely aggregated list of contracts?

CQWP internals
At this point we need to start debugging the solution. Review filter settings, (if you didn't already) enable trace logging, etc. etc.

As you perhaps already know the CQWP runs a CAML query that you probably want to analyze. Glyn Clough has written a nice blog on just how to do that! Off course we are using the ULS Viewer to analyze  the huge amounts of ULS logs created. Somewhere in there you will find something like:
"xxxxxxx* w3wp.exe (0x0C98) 0x16F0 Web Content Management Publishing 7352 Warning ...entTypeId" Nullable="True" Type="ContentTypeId"/><Value Type="ContentTypeId">0x0101</Value></BeginsWith><Eq><FieldRef ID="{f366697d-21a6-493e-af7d-9b3cf5410ea4}" Nullable="True" Type="User"/><Value Type="User"><UserID/></Value></Eq></And></Where><OrderBy></OrderBy></Query>' generated the following error:The attempted operation is prohibited because it exceeds the list view threshold enforced by the administrator. at the following url: XXXXX. Web Part title: Content Query b8210847-657f-40f3-80af-22bf444ad8f8"

The good, the bad and the ugly
The good part about this log is that it is extremely clear and straightforward! The CQWP is prohibited from displaying the results because it exceeds the set limitation of the list view threshold (LVT). As you can read in SharePoint 2010 capacity management the default value of the lvt is 5.000 items.

The bad part about this is that this setting isn't there because it looks really cool but it has a real purpose. Try cranking it up to, let's say, 30.000 and let half a dozen users try to access the page. You can actually see the performance penalty it causes.

The ugly part... now what? The CQWP should only return a couple of contracts, not even close to 5.000.

Indexed columns
As it turns out the columns you use with filtering AND sorting need to be indexed columns, according to Microsoft.

The ultimate catch
Try and add more than 5.000 items in a single document library, filter on a single column (using the CQWP) and give it a shot! When you use an indexed column as a filter it will return results. When you remove the indexed column from that specific list it will not return results and spit back the log mentioned above.

So, the solution is adding the filter column on all document libraries in the site collection and....CRASH! WTF? We did everything correct and still nothing.

"Statement" by Microsoft
(This is not the actual statement but a, valid, free interpretation)
The CQWP only uses the indexed columns when selecting a single list as source. The CQWP ignores the indexed columns when the source is anything else than a single list!

And that my friends is how the cookie crumbles!

Sources:
Designing large lists and maximizing list performance (SharePoint Server 2010)
Data in SharePoint 2010 – Part 2 – Content Query Web Part
SharePoint Server 2010 capacity management: Software boundaries and limits
Inspecting the caml of a content query web part

Saturday, December 31, 2011

Information Management - The Series

SharePoint in the Real World - Information Management

I've been playing around with this new blog and this thing is so complex that I decided to create several blog post for this one. 
  • Information management - Findability & Data
  • Information management - Analysis
  • Information management - Deployment
  • Information management - Maintenance
The above is certainly not carved in stone. I'm not totally convinced that Deployement and Maintance will become different blogs. Maybe I'll group them. maybe I will add more..and maybe the above will prove just about wright!

Findability & Data

Findability & data is all about how users find the data they need, what data it is that they need, how they are going to use it and why. This information is crucial for the steps to come.

Analysis

Analysis is all about analysing the information & business requirements. In this blog I'll write how I go about determining the requirements and validating them to the conceptual, logical and physical architecture. (I think I will also need to explain about the conceptual, logical and physical architecture)

Deployment

Okay, analysis is done! We are ready to create and deploy this stuf! Cool, but how are we going to do that?

Maintenance

As a wise man once said: WHOOHOO we deployed it and everything is fine we can go home and die - or do something else :-). Nooo some user wants to change my beloved configuration! Now what? Maybe we'd better think this through before hand. That's what this blog is going to be about. Planning for change and how change effects your environment, time-2-market and what not.

I really hope you guys and girls appreciate the effort and give me some feedback!

Regards,
GH

Friday, December 30, 2011

Real World SharePoint

To determine what Real World SharePoint is we have to know what it is not. So what is Real World SharePoint IMHO not?
  • Real World SharePoint is not brought to you by the Microsoft marketing division (no-offense intended).
  • Real World SharePoint is not what you are tought at most(!) education facilities.
  • Real World SharePoint is not what you are asked during a MCP exam.
  • Real World SharePoint is not something you pick up by reading a book.

As with everything in life, from riding a bike to starting a fire with a couple of sticks, you have to expierenced the real thing! Same goes with SharePoint.
Installing SharePoint is easy! Just insert the DVD or mount that ISO and your off…
SharePoint is blazing fast… on my 8GB laptop with SSD and using a local SQL Server 2008R2
Security is a piece of cake
Etc.

When you are stepping into the Real World of SharePoint you will definitly have to:
  • Know what the Microsoft marketing division is selling.
  • Be educated at a highly recommende education centre.
  • Passed an MCP exam or 2…3…4…5...
  • Read every book you can get you hands at.
  • Know the best practices for the areas of SharePoint you will be facing

In this blog I will try to let you see my Real SharePoint World.

Regards,
GH