Inconvenient Content Query Web Part slots and CQWP’s extensibility



SharePoint 2010 Content Query Web Parts ships with the Slots capability which simplifies working with custom Item Styles. Unfortunately it turns out that Slots may be broken when working with extended CQWPs. So what is the problem exactly and, more important, how can you solve it?

Slots – and it’s not about Vegas

Slots are one of the great improvements of the Content Query Web Part in SharePoint 2010. Using slots you can decouple your custom Item Styles (presentation layer) from the underlying data. What’s even more important is that when using slots you don’t need to know the internal names of fields and map them in the hidden properties of the Content Query Web Part. Slots allow you to use the display names which gives you a really convenient way of working with custom Item Styles.

Extending Content Query Web Part with custom functionality

The standard functionality of the Content Query Web Part provided with SharePoint 2010 should be sufficient for most scenarios. However, once in a while you might come across some requirement that cannot be achieved using the standard functionality. And while you could create a whole new Web Part, it might be easier to just extend the CQWP with the missing functionality.

One scenario for extending the Content Query Web Part capabilities is to provide additional functionality that can be used in XSLT. To do that all you have to do is to inherit from the ContentByQueryWebPart class and override the ModifyXsltArgumentList method. In there you can start extending the standard functionality with custom parameters and XSLT functions.

Unfortunately, it turns out, that extending the Content Query Web Part with new XSLT capabilities comes with a price.

CQWP slots vs. custom XSLT extensions

Imagine the following Item Style template:

As you can see there are two slots defined (Members and SiteTitle). In between, a custom XSLT function called GetUserLoginName is called. When you open CQWP’s properties however you will see only one slot:


Congratulations: you just broke CQWP slots.

The reason why CQWP slots and custom XSLT extensions don’t get along well is how the Content Query Web Parts generates a list of all available slots in the linked Item Style XSL file.

While building the list of all available slots, the Content Query Web Parts creates a new instance of the CQWP, binds dummy data to it and performs an XSL transformation. As you can imagine, as soon as the transformation will stumble upon your extension it will throw an exception and CQWP will stop retrieving slots for your template.


Depending on where in your Item Style template you make a call to your custom functions, you will either see all of your slots just as if everything worked correctly, you might see only some of them (those located before the call to the custom function) or none of them.

So much for flexibility…

CQWP slots and custom XSLT extensions: better together

It turns our that it is possible to combine custom XSLT extensions with slots after all and all you need for it is a little trick. The basic idea is to make the CQWP parse all of your slots before the first call to any of your custom extensions where the exception occurs.

What doesn’t work

The most obvious solution to this issue, that you might think of, might be to define a variable for every slot, like:

Unfortunately it doesn’t work. Because available slots are retrieved using an XSL transformation rather than string matching, the value of the variable is not instantiated until it’s being referred to for the first time. And if the call to your custom extension occurs before the first call to the variable, your slots will still not be picked up by the CQWP.

What does work

What you really need, to work around this issue, is a void template. A template that retrieves values of all slots and yet doesn’t output any of them.

With that all you have to do is to modify your Item Style template so that it initializes all slots before doing anything else:

With this in place you can benefit of all your custom extensions and yet keep the CQWP fully functional.



Trying to find out if the Content Query Web Part will load all slots might be a tedious process especially if you’re working with Content Approval. To help you be productive I created a command line tool that allows you to check which slots will the CQWP pick up for your Item Style template.

It’s usage is simple and if you want to know everything about it just type MaventionWhatsMySlots and hit enter and all available commands will be shown to you.


The great thing about using this tool is that all you have to do is to save your changes in the XSLT files and run the tool. No longer do you have to worry about publishing them, clearing the cache and reloading the page.


Download: Mavention What’s My Slots (19KB, ZIP)

SPC11 - Personal Schedule

  • Sunday Night: Opening reception starting at 6:00pm - I’ll be strolling around and hanging out with the crew somewhere near the booth.

  • Sunday Night: Seb Matthews and Dave Coleman are coordinating a SharePint - Look for the guy with the sparkling water, standing with a group of binge drinkers. I’ll probably be the only one with a hat on unless Eric Shupps shows up.
  • Monday 12:15pm - Chairing a panel discussion on how enterprises are using SharePoint, based off the SharePoint Survey results compiled by Derek Weeks.
  • Monday 5:45pm - On a panel at the Perficient booth.
  • Tuesday 6:00pm  - ShareSushi is a tradition that was started at the last conference in Las Vegas.
  • Tuesday 8:00 - DisneyLand. Need I say more?
  • Tuesday Late - Moneyball. I’ve been wanting to see this movie since it came out. A couple of us are going to slip away from Mickey Mouse at the bewitching hour and catch the late night show.
  • Wednesday 1:15pm - I’ll be at the Microsoft pavilion doing a talk on "5 No Brainer Ways to Get End User Buy In"
  • Wednesday 5:45 - I’ll be on the game show panel at the Quest booth. Come and see if you can Stump the Panel.
  • Thursday - Heading out in the afternoon for a flight to Arkansas to go hunting for the weekend. 


If all else fails, look for the hat. Looking forward to seeing everyone.




SPC11 - ShareSocial


2011-09-28-Party-01.jpgIt appears that attendees of the SharePoint Conference 2011 in Anaheim will do tons of networking, have a lot of fun and get very little sleep. In keeping with those ideals, we’ve compiled a list of SPC11 social events.

If I’ve missed any events, or you are trying to get something started, please let me know in the comments below or tweet me at @TeamEUSP. Let’s leave no stone unturned in our pursuit of a good time.

SharePint Saturday
Coordinated by Dave Coleman and Seb Matthews
Saturday, October 1st 7:00 - 11:00

Club SPC
Sponsored by BlackBerry
Sunday, October 2nd 5:00 - 7:00

SharePoint Conference Welcome Reception
Sponsored by Nintex
Sunday, October 2nd 6:00 - 9:00

Get Social with Bamboo
Sponsored by Bamboo Solutions
Monday, October 3rd 5:30 - 8:30

Have a Duckin’ Good Time Party & Book Signing
Sponsored by idera
Monday, October 3rd 6:30 - 8:30

Have a Drink on Us
Sponsored by Yammer
Monday, October 3rd 5:30 - 9:30

The RED Party
Sponsored by AvePoint
Monday, October 3rd 8:00 - Midnight

Hosted by Ruven Gotz, Janis Hall and Anders Rask
Tuesday, October 4th 6:00 - 7:30

Influencer Reception
Hosted by Infragistics
Tuesday, October 4th 6:00 - 7:45

Disneyland Park Private Party
Sponsored by Neudesic
Tuesday, October 4th 8:00 - Midnight

Secrets to SharePoint Success in the Enterprise
Sponsored by Colligo
Wednesday, October 5th 11:45 to 1:45

SoCal SharePint
Hosted by Architecting Connected Systems, New Horizons of Southern California, and ShareSquared
Wednesday, October 5th 7:00 to 9:00

Sponsored by Synteractive and Amazon Web Services
Wednesday, October 5th 7:00 to 10:00

SharePoint by Day, SharePint by Night
Hosted by Andrew Connell
Wednesday, October 5th 8:00 to Midnight

SPC Freeze Mob!
Sponsored by SPC Freeze Mob Team
Date, Time and Location - TBD

Sponsored by Axceler, Apptix, Jornata, PointBridge, Syntergy, Kodak, BA Insight, K2, and BlueRooster
Wednesday, October 5th 7:30 to 1:00 am

In order to prepare for the festivities you might want to read Jeremy Thake’s article SPC11 social events survival guide from one binge drinker to another as well as Marcy Kellar’s post 11 Tips to Get the Most Out of the SharePoint Conference 2011.

SharePoint 2010 Training - 5 Ways to Educate End Users


2011-09-23-5WaysEducate-01.pngBusinesses and organizations typically do not like change. They are comfortable in the routine and the processes that are in place. Although some people within the organization do resist the change until the bitter end; inevitably, business changes. Installing a new version of SharePoint can be a very big change for any organization. Only a few people understand the power of SharePoint and will begin to use it immediately.

However, others will push back, badmouth, and sometime sabotage the new investment just to keep the old processes as the norm. One way to combat this environment is to train the end users on the benefits and more efficient processes that are in SharePoint. Below are 5 ways to train end users on SharePoint 2010.

1. Computer based training from Microsoft is a great place to start

There are many places where examples and action steps are described in great detail. One place to start is the Microsoft SharePoint 2010 Home page. There is a great place located there called Resources for End Users. This website will give end users of all levels general and specific information about all things SharePoint 2010.

2. A Lunch and Learn

is a good way to get in front of your users and discuss the new SharePoint 2010 technology and how it can help their group work easier and more efficient. Generally a presentation along with a question and answer session will suffice. Expect specific questions regarding how SharePoint can be used.

3. Keep a list of books and articles

or better yet provide access to an online library where users can go and do some research on their own about SharePoint. When users feel like they have some control over how they learn, it makes it easier to get them to adopt the new tools. Articles and White Papers can generally be downloaded to a document library so that users can find them there to read.

4. Demonstrations

allow a specific function of SharePoint to be explained and utilized by the people that will be using it. When setting up a demonstration, ensure that the users provide the necessary input so that the demonstration will be most effective. If possible allow the users to actually use SharePoint 2010 so that they can get a feel for the actions performed during the demonstration.

5. SharePoint 2010 makes it easy to set up a community site

where all the users can get together to share ideas, ask questions, and get answers about how to use the tools in SharePoint 2010. At a minimum, set up a Discussion Board and a Wiki site where the community of end users can collaborate on ideas and share their individual successes. Run a contest within the community to spur use of the tools.

These five ways to train will help a SharePoint 2010 Administrator to educate end users to not only understand the power of the new tools, but encourage them to learn on their own as well. One of the central points of Change is to make sure everyone knows what is changing. Getting the word out with end user training can foster success between SharePoint 2010 and its users.

SharePoint Developer Orientation - Part 4: Advanced Customization with Designer


2011-07-17-SPDevOrientation-Part01-01.jpgSharePoint Designer is your friend

Now that you are generally familiar with SharePoint from a user’s perspective, it’s time for advanced customizations with SharePoint Designer. This tool is for customizing specific SharePoint sites and adds a lot of functionality over the Web UI (workflows, form customizations, Business Connectivity Services, etc.). It is a powerful and useful tool, even if buggy, prone to crashes, and slow.

The goal of any SharePoint project is to leverage the use of the platform, deliver value rapidly, and enhance the user’s capabilities to serve their business needs. Depending on the type of project you are working on, Designer can be your destination or your vehicle. If this is a single-site customization project, for example, try to stop at the web UI and Designer. If this is a professional solution with complex implementation, deployment, or maintenance requirements, you will still use Designer regularly. Oftentimes, it is the only way to learn how something works, or at least the best way to get started. You will then import your customizations into a Visual Studio solution to package them up, and deploy them, and likely add code (web parts, workflow activities, event receivers, etc.).

Customizing list views and forms

One of the most common and likely customizations you will come across is customizing list views and forms. In the web UI, you can customize a view by showing or hiding columns, adding filters, sorting, grouping, and that sort of thing. You cannot, however, touch how the list data are rendered. Each field will display the same way every time depending on its type. The headers, the hover effects, and all the elements of that list are predetermined. SharePoint Designer gives you the tools to go deeper.

SharePoint uses an XSLT rendering method that applies the XSL Transformations to the results of a query to render a list view or form (display, edit, or new). The actual transformation happens early in the page lifecycle during page initialization, allowing the use of ASP.NET server control declarations in the XSL. You will see the <SharePoint:FormField … /> control in new and edit forms, for example, that renders the complex controls for editing data depending on the field type. Also, SharePoint provides added functionality by importing some xml namespaces for use in your XSL markup. So, when customizing a view or form, you have the power of XSLT to work with, plus the SharePoint ddwrt namespace, plus the use of ASP.NET and SharePoint server controls.

To get started, check out this great SharePoint Designer resource from Microsoft. The Data Views and Forms link has a wealth of information on how to use the tool to customize views and forms using Designer. Each article has a See Also section near the top of the right margin with related articles. Some notable examples:

  • Example 1: Create a custom list view
    Just to give you an idea, here is an example from a recent sample project I worked on. Here I used HTML (added div elements and the like to the XSL), jQueryUI and CSS to translate numeric or text values into meaningful visualizations:
  • Before:




  • Example 2: Create a custom list form
    Once again, example screenshots to spur the imagination. Here I formatted the fields as Text Boxes instead of SharePoint FormField using the Design view. I then switched to Source view and added jQueryUI sliders and synced them with the textbox. To add more sizzle, I swapped out CSS classes for the slider depending on ranges I chose. Green for 0 – 0.35, etc.
  • Before:




Before we move on, I have to mention Marc Anderson, one of the most active members of the SharePoint community serving “the middle tier”. Call it what you will, this advanced customization, declarative programming, or middle tier development that I described above is very powerful. Check out his blog, and the SPServices jQuery library.

Designer workflows

You can create workflows to help automate business processes using the many OOTB workflow actions and pre-canned workflows, like approval and signature collection. Workflows open the door to processing data that you don’t have in the web UI. A workflow is just code that runs on the server with inputs, outputs, access to variables, etc. This is Workflow Foundation under the covers. So using the existing workflow actions, you can process data in new ways. For example, since some fields aren’t accessible in a Calculated column (like ID or lookup fields), you can use a workflow as a replacement. The workflow is scheduled to run asynchronously in a timer job after the list item is created with no guarantee of when it will run, so it may not be ideal in all situations. Any workflow-modified fields will not be immediately available to the user and could take a few minutes to update.

You cannot create new actions or write new workflow code in Designer, but you can augment your toolbox. Here is a great opportunity to gradually scale up your project. If you find you cannot accomplish something with a Designer workflow, you can find open source components (check and third party products (from activities to advanced workflow design software). Failing that, as a developer, you will certainly be able to write your own as well. It goes against our instinct as developers, doesn’t it? If Designer workflows are too limited, we want to pull it into Visual Studio and use the full power of Workflow Foundation. We don’t want to use some contrived designer to perform actions that would take only a line or two of crisp, clean code. Remember… the point is to deliver low-cost, low-complexity solutions. Purchasing a workflow action is cheaper, more reusable, and easier than custom code. Of course, when warranted, there is nothing better than custom code, but think reusability. Write a custom action to get over a hump before writing a completely custom Visual Studio workflow.

What else?

A few other important capabilities to be aware of are:

  • InfoPath: If you are using SharePoint Server, you also have access to InfoPath forms for form customization. InfoPath includes a rules engine, validation, more form layouts, and controls, and the ability to write code within the form.
  • Business Connectivity Services: BCS allows you to integrate external data and functionality into your SharePoint 2010 environment. This great article by Kirk Evans describes what BCS is, how to use it, and even proper scenarios for custom development beyond Designer.
  • Honorable Mention: Well, as this post fizzles out, I’ll mention that Designer has other capabilities that you can explore on your own. Editing pages, editing master pages, and site/sub-site creation all get an honorable mention.

In conclusion, I hope you see that an awful lot can be done in SharePoint using the web UI and Designer. Even if you remain strictly a custom coder, there is a place for you in this ecosystem. Everything we have covered so far can be extended with custom components. It is important to understand how this all works, what the capabilities are, and where your hooks are to develop most efficiently. But for the developers who are interested in building complete business solutions on SharePoint, you have to have an open mind. Even if you are working in Visual Studio, you will author many of your customizations in the web and Designer before importing them into your project. You will play a sort of dual role as a power user and developer, but that comes with the greatest combination of capabilities.

Thanks for Reading,
Lou Estrada

SharePoint is ‘Facebook for the enterprise’? - No it’s not


2011-09-23-SPIsFaceBook-01.jpgMicrosoft held a ‘Financial Analyst’ meeting last week, headed up by COO Kevin Turner. Lots of interesting things were discussed:

  • The business division of MS is now a healthy 32% of the company
  • Office 2010 is the most successful version of the software to date
  • SharePoint is the most successful Microsoft product ever

All good stuff. Except this quote from Turner:

"SharePoint is Facebook for the enterprise"

I beg your pardon? I think what Kevin meant was that SharePoint is an enterprise platform, capable of connecting its users and letting them share information and documents. SharePoint is nothing like Facebook, and comparing it to the social networking giant is very unhelpful for those of us that sell and implement the product. Why you ask? Well two reasons.

Firstly, end users constantly tell me they want Facebook, or bits of Facebook, in their workplace. They want to connect to friends, have profile pages, be able to ‘like’ things. They use Facebook a heap outside of work, so they think they want it in their office. Now aside from whether this is a good idea (more on that in my second point) SharePoint is very far from Facebook. Yes you can have a MySite. But activity feeds? ‘Likes’? Fan pages and instant chat? Nope, not in SharePoint, not without lots of custom work. Facebook is an agile web application, one that evolves constantly. SharePoint 2010 is very much not. Realigning and then meeting user expectations is hard enough on most projects, without Microsoft adding to the problem.

Secondly, many board and director level users, typically those that sign off on SharePoint projects, are very nervous about putting a ‘business Facebook’ into their organisation. They think it will lead to a drop in productivity, a rise in gossiping, and possibly the ‘end times’. They see it as a toy, and playing with toys is not generally what users are paid to do at work. Now, these people are right to be nervous but also need to be educated that parts of the social networking model can actually be very useful in their workplace. But again throwing the ‘F’ word around is not really helping.

So next time someone at Microsoft thinks about using that word, could you think again? Facebook is great, SharePoint is great. But SharePoint is very much not Facebook for the enterprise.

The Departure


2011-09-23-Departure-01.jpgIn fourth grade they changed the elementary busing routes which meant instead of walking across the street to get home after school, I had to trek over a mile (carrying a newly adopted coronet no less!) So I compiled some statistics (the percentage increase of my new route) and I talked with neighbors in the area (my relatives lived nearby) to find that they were also unhappy with the increased traffic and had them sign a fourth-grade-style petition.

I then made an appointment with the Superintendent of the schools and presented him with my information. When he pointed out that his children had to walk over a mile to get home I was quick to tell him that was of his own folly since he had not purchased his home with after school busing in mind. Sometime before the weather changed to winter they changed the route back and it still runs that way today. In my 9-year-old brain I had been instrumental in reversing that decision and the fire was lit to keep up the good fight.

My experience with SharePoint has been a breeding ground for my spirited attitude. User adoption is really all about believing what you are doing is for the greater good.  Of course the real difference with the accomplishments from fourth grade and those with end-user adoption is that I’m now in my superintendant’s role; since I am the one trying to get the people to accept change. Lucky for me I am very persuasive, and have had relatively no opposition to the ‘new route.’ I suspect the only petition they might circle concerning my work is one convincing me to stay.

You see, I’m leaving.  I gave my notice at work last week, after nearly 20 years here, I am retiring.  It is fun to say that when you are only 40, I can’t deny it, but I’m leaving behind a job I have really enjoyed, especially the last 4 years doing SharePoint. Both the management and the staff I have had the honor to support with SharePoint have been absolutely wonderful to work with and I hate to leave them, but this job has turned into more than I bargained for…it isn’t really a job anymore, I’ve come to the crossroads of a life decision, and this is looking like a career choice.

Unsung? You really have no idea.

With the restrictions and frustrations I face here due to the conservative nature of a healthcare IT department I have known for a while that if I stay in SharePoint it cannot be here, I would have to face change. The problem is that I am passionate about a great number of things beyond SharePoint. I paint and teach elementary art, I love to garden and cook, I am very involved in my church, and I’m a mother to four fabulous children. That last responsibility being the most important and has suffered a great deal since my passion for SharePoint has consumed my free time…so decisions need to be made as to what the next 20+ years of my working life are going to look like.

To be perfectly honest, Winning microsoft’s ‘Unsung Hero‘ award kind of brought this entire situation to a head, since the SharePoint Conference in Anaheim would be the networking opportunity of a lifetime, a new job would be sure to follow. Little did I know that my husband had other plans. He wanted me home. It seems that the family business we started our first year out of college has continued to grow and we need an employee; someone with yet untapped talent, acute attention to detail, and a passion for the greater good. I accepted the position.

So I’m leaving SharePoint. Our small family business has little need for a collaboration platform. Our four employees eat at the same table, work in the same buildings, and sleep under the same roof. Truth be told, we could probably use a little less collaboration time on occasion, so adopting SharePoint here is not in the plans for the near future.

But wait, there is some good news.

I have as long as I need to leave my current job in order to document my work and share what I’ve learned along my journey. As I document I plan to share those notes with you all. Somehow I suspect that I don’t SharePoint like other people, so I would like to pass on my philosophy before I go in the hopes that it provides another point of view to this already rich community. I do hope that I can count on you all to comment on the things you agree with and share alternatives for the ideas you find contradictory to how you might have approached the problem. Can we reinvigorate the community comment engine?

This is not yet goodbye; I do have a few things left to say. Before I head off on my new route, I must build a better foundation for those that follow behind me. Perhaps now it becomes more obvious why I have this new focus on the need for documentation? Letting you all in on my plans to leave was necessary for it all to make sense. I will start with the structure of my notes and then elaborate more on my process and specifically my techniques for end-user friendly solutions.

Believe me, none of it is earth shattering and practically everything I do is out of the box (and sorry, based in Moss) but with Microsoft adding 20,000 SharePoint users per day, someone out there might find some of it interesting.

I love your comments (every author here does!) so I really do hope you share your thoughts along the way.

Rendering User Control ASCX via XSL in SharePoint


Background & The Problem

Last time we discussed how to integrate a custom control into an XSL transformation. The key point to note, about the previously discussed approach, is that all the markup is output by the overridden Render method. This can easily get cumbersome and ineffective for complex server side controls. The stack offers us a solution to this common problem with Control definitions. This solution is a UserControl which adds a special ASCX file containing declarative markup which makes the development task much easier, simpler & cleaner.

In this post, we will show how to incorporate a server side UserControl with markup in it’s ASCX file to render within an XSLT instead of a simple Control definition.

How to do this

In order to render a UserControl ASCX within an XSLT, we need to follow a slightly different method that the one discussed in the previous post. Here are the steps-

  1. First thing we need to do is to define our user control. Here is a sample ASCX definition. Notice that this control renders a variable called ‘Input’ which we will also define in the code-behind class in the next step-
  2. Next, we define the code-behind what our ASCX inherits from. Notice that we are declaring a public string property called ‘Input’ whose value is being directly rendered within the ASCX as an example. This variable is used to accept contextual information about the XML node being processed by the XSL transform at the time of evaluating this control during the runtime-
  3. Next, we need to globally register our user control so that our XSLT can find it. This is done because we don’t have the ability to register custom user controls from within an XSLT webpart. The following registration happens in the web.config in this node: <configuration>…<system.web>…<pages>…<controls>. Notice that we assign a tagName for this user control. This tag name will be used when we reference the user control in our XSLT-
  4. Now that SharePoint globally knows about this user control, we need to modify our xsl declaration to assign a tag prefix for this control so that we can reference it wherever we want to use it. In this case, our tag prefix is ‘PSControl’-
  5. Now that everything has been setup, we can simply reference our custom user control using the tag prefix defined in step 4 (PSControl) and the tag name defined in step 3 (PSC). Combined, this tag declaration allows us to render our custom user control ASCX which was written declaratively to save development time associated with defining a custom server side control for our XSLT. Notice that we are using the Input property defined in the UserControl and passing it contextual value about the current node being processed in this case-

That’s it! You can now write declarative markup in a UserControl ASCX file and have that markup process XML nodes using a code-behind, all within the context of an XSL transform.

SharePoint or ScarePoint - Why Do So Many Fear It? The Key to End User Adoption


What is SharePoint to you? Do you have a love-hate relationship with change? Many people would often agree that change is The Devil. “If it has always worked, and we have always done it this way, why fix something that isn’t broken?” I’m sure at one point we have all heard End Users use those terms. Some of us probably still have an abacus on our desks, just because we refuse to change from the way we may have originally learned how to add or subtract. But let’s face it, those calculators may be a passing fad anyway.

This is merely a simple form of Fear. Why do many fear what they do not understand? Or better yet, refuse to try to understand? Many see it as of way to slash jobs or a means to impose a new technology that they may be unwilling to learn. Or maybe it is just the fact that they have heard many “horror stories” about SharePoint. This brings us back to that word Fear again. This is where we need to explain the many capabilities that SharePoint provides and benefits to them personally, in order to have a successful end user adoption. Listing all of the many functions may come across as technical jargon, and will be quickly dismissed by the average user. Instead, ask your end users what their needs are. Everyone always wants to know “What’s in it for me?” This could be something as simple as creating a survey and merely asking them about their needs. Get your users involved! After assessing their feedback, show them how SharePoint will streamline their processes.

For many people, social media is a way for us to connect with colleagues, friends, family, and maybe even long time childhood friends. Allow your users to create their own My Sites. Let your users make SharePoint their own (within reason of course). Make the user feel like SharePoint is a tool they can use, and not just something they are being forced to use. By allowing them to see the many benefits of SharePoint, your end user will have a better chance of embracing SharePoint.