Today my Windows XP showed me a very unwelcome BSOD… booting in safe mode, last known configuration, nothing helped. Unfortunately I still had some files on the machine which I definitely needed to recover – Hirens Boot CD to the rescue – amazing tool… definitely a lifesaver.
Wednesday, September 23, 2009
Sunday, September 13, 2009
Quick Tip – Excel Advanced Filters
Amazing the things you can do with Excel – check out -http://www.contextures.com/xladvfilter01.html
Wednesday, September 09, 2009
Dynamics CRM and SharePoint – birds of a feather?
Microsoft Dynamics CRM is increasingly becoming an application platform for decidedly non-marketing uses. In this way it is moving away from it’s core platform functionality – Customer Relationship Management. Microsoft likes to talk about xRM applications (check out Developing ISV applications using Microsoft Dynamics CRM ) which are basically line of business (LOB) applications that use the Dynamics CRM database, extend the basic CRM web interface and add in extra logic using CRM workflows.
While Dynamics CRM and Microsoft SharePoint are definitely complimentary platforms, this evolution allows you to probably build solutions on top of both SharePoint and MS CRM. Think about the following scenario’s:
- Project management framework
- Service desk and call follow up
- Sales dashboards
- Bid management – RFP process automation
- Recruitment process automation
- Citizen Service Platform (e-Government)
You can probably start from both SharePoint and CRM as a foundation and from there on build in the required functionality for your solution. Interesting choices … but who is making this choice?
From a development perspective you will also see some similarities.
| Dynamics CRM | SharePoint | |
| Encapsulate data | CRM entities | Content Types |
| Adding business logic | Plug in framework | Event handlers |
| Workflow development | Builds upon Workflow Foundation | Builds upon Workflow Foundation |
| User interface extensions | Embedded IFrames within CRM Forms | Web Parts and SharePoint application pages |
Related links:
SharePoint and Http 400 error – Bad Request – header field too long
After enabling Kerberos on our SharePoint Server 2007 acceptance environment I suddenly could not access the environment anymore. The only thing I got was an error stating “Bad Request – header field too long”. Since changing the authentication method to Kerberos was the only change it had to be related with this. Apparently the solution was making changes both on the client and the server level:
- In the eventlogs of my client I saw the following error - “Windows cannot determine the user or computer name. (Not enough storage is available to complete this operation. ). Group Policy processing aborted. For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.”. Apparently this was caused by the fact that I’m a member of quite a few Active Directory groups – check out KB327825 New resolution for problems with Kerberos authentication when users belong to many groups. Using the old fix – changing the MaxTokenSize and MaxUserPort in the registry seemed to already solve some issues but still no go on accessing our SharePoint Server environment.
- Next I stumbled on to this blog post – HTTP 1.1 400 Bad Request (Header field is too long). Configuring IIS on the SharePoint Server 2007 to accept larger headers seemed to do the trick – check out KB 820129- Http.sys registry settings – the settings we changed was both the MaxFieldLength and MaxRequestBytes. This seemed to do the trick.
Related links:
64bit iFilters for SharePoint Server 2007
There are currently 2 PDF iFilters available for 64-bit SharePoint Server setups:
- Adobe PDF iFilter 9 for 64-bit platforms – completely free
- FoxIt PDF iFilter – paying version but a lot faster then Adobe PDF iFilter – see PDF iFilter Battle! FoxIt vs Adobe PDF - “On average, FoxIT x64 PDF ifilter is still ~5 times faster than the Adobe one”
So basically you have a choice free but slower …
PS Foxit PDF IFilter can be used for free on desktop environment. However, users need to purchase licenses when they use Foxit PDF IFilter on server environments -http://www.foxitsoftware.com/pdf/ifilter/priceinfo.html
Monday, September 07, 2009
Usage analysis reports and SharePoint Server features
Did you ever wonder why on some SharePoint sites you will see these rather limited usage statistics page (depicted below) when you click on Site Usage Reports reports in the Site Settings page

While on other SharePoint sites you will get quite a lot more information in graphical format?

If you have SharePoint Server installed you will be able to see the extensive statistics when you activate Office SharePoint Server Standard Site features or Office SharePoint Server Enterprise Site features. The feature responsible for updating the link is a CustomAction feature called AnalyticsLinks (56DD7FE7-A155-4283-B5E6-6147560601EE).
Wednesday, September 02, 2009
SharePoint Governance and best practices, some thoughts
I just finished a number of SharePoint governance workshops and so I wanted to share a number of thoughts on the subject.
1. The terms SharePoint governance and best practices are hugely overhyped.
I think this quote from Governance Man – has fallen into my trap ;-) sums it up quite nicely:
I have had a couple of experiences now, where I have been called in by clients who have the typical SharePoint chaos. Things have gotten out of hand and as a result, key stakeholders started to lose faith, and the project team really felt the pressure from the powers to be. There were strong undercurrents of desperation to get things sorted, like… yesterday. Under these circumstances, they asked for help on “governance”. They needed “governance”, they must have “governance” and they spoke about governance as if it was something that a pizza driver can deliver to their door (and if it was not there in 30 minutes, it was free).
2. SharePoint is not a silver bullet and if you use it wrongly no governance plan can save you.
Project managers which are assigned the task of managing a project implementation which uses SharePoint will typically ask questions like “What do you mean SharePoint is not a BPM platform?”, or “How do I integrate SAP and SharePoint?” or “How do I do contract management in SharePoint?”. As you see the questions can be quite diverse. And the problem is, that the are answers will be quite diverse as well. There are a lot of design decisions you need to make - all with certain tradeoffs. You can start with out-of-the-box, add a layer of customization or even proceed to some serious SharePoint development. And then there is a huge amount of third party tools out there.
SharePoint is not targetted at a specific vertical or horizontal and if your company’s strategy is to always choose for best of breed and is able to support an enormous variety of platforms and applications – SharePoint is probably not a good solution. If your business really needs a 99% percent match for all of their requirements and can’t live with trade-offs – there is no other choice then greenfield development.
SharePoint is all about reuse and platform capabilities. Aim at leveraging the out-of-the-box functionality and when there is not match with the requirements try talking about the processes which created the requirement in the first place.
3. When talking about SharePoint governance and best practices make sure that your audience has a basic (to intermediate) understanding of SharePoint fundamentals
There is a lot of best practices regarding SharePoint infrastructure setup on TechNet and MSDN. So you can always point to those as a reference. It is however necessary that people understand concepts such as WFE’s, SharePoint web applications, site collections, etc … It is not that because you know SQL Server inside out that you also understand SharePoint inside out (allthough a thorough understanding of SQL is definitely a good thing). You really need adequate resources within your company which are sufficiently trained to support a SharePoint implementation.
4. Yes, … you will probably need some third party tools
People are always amazed by the fact that they will actually need some third party tools to make SharePoint meet the requirements of their users. Also when you look at SharePoint from a manageability and operations standpoint you will notice that there are some gaps that are filled in with third party tools (or other Microsoft products) – some questions you should probably ask yourself:
- Did you think about antivirus when doing a SharePoint implementation?
- What about backup and restore?
- Did you take a look at the standard usage statistics. Are they sufficient for your needs? Remember that you need a feedback cycle to measure the success of your deployment so you will probably need some more elaborate statistics then the ones which are provided by SharePoint.
- What about monitoring?
5. Keep the organizational culture in mind when thinking about governance
One of the best postings I read about this is Make SharePoint governance plans plain and simple which talks about companies which are considered icons and examples within their industry (or even accross industries). In his posting he translated some internal guidelines from PCL Construction – called Pool’s rules into relevant SharePoint specific statements – here are my 2 favourites:
- Give encouragement and show appreciation
… Providing encouragement and showing appreciation is especially important for fledgling SharePoint environments; participation and adoption are paramount to success. It’s also critical for ongoing success; consider your own population and develop a program that continuously provides encouragement and support to all communities involved. Make sure that you actually encourage Knowledge Sharing – for some thoughts on this topic – see Knowledge is power! So why share knowledge … - If you don’t have the funding, time, human resources or the budget to effectively create, deploy and maintain a SharePoint solution, don’t start one.
And on that bombshell :-) …
Related postings:
- To best practice or not to best practice
- Problems with SharePoint governance
- Why SharePoint development projects failed – Part II
- Why do SharePoint implementations fail
- Inadequate resources to support the implementation - Part 3: I really don’t remember signing up for this
- Stop blaming technology and own up to the responsibility
- The hidden cost of SharePoint in the enterprise
- The one best practice to rule them all – Part 5
- Root causes of Communication Fragmentation – Learning styles and behavioral styles
- Root causes of Communicaiton Fragmentation – Organizational culture
- The long and short of corporate culture
Thursday, August 27, 2009
4th release of the SharePoint administration kit
A new release of the SharePoint administration kit is now available – some very cool new stuff in there:
- Update to the SharePoint diagnostics tool – check out SharePoint Diagnostics Tool (SPDiag) details on Technet.
- A number of Security Reporting tools added to report on broken security inheritance, check effective permissions and permission set inheritance
- Updates to stsadm to enhance quota management
- Security configuration wizard manifests for SharePoint Server 2007 and Windows SharePoint Services 3.0
Downloads:
SharePoint as a development platform - 7 reasons why I like it ...
I already talked about why some people don't like SharePoint. Now let's talk about why I like it:
- 1. SharePoint is a great site templating engine - you can built a certain template once and next kick it off to your end users so that they can built thousands of sites/workspaces with it. Remember to take a look at SharePoint – it’s all about making the right design choices – when to use custom site definitions before you start clicking around creating templates though.
- 2. It's all about Features - Once you grasp the concept of SharePoint features you can go ahead and built whatever you want on SharePoint. SharePoint is both a product and an application platform. The modularity of these features and the possibility to activate them later on in a project make SharePoint an interesting platform for agile development. Check out Features in MOSS 2007 and WSS 3.0 for additional details.
- 3. SharePoint solutions to make your admin your friend – From time to time, you will see some friciton between developers and operations people. Developing something is not that hard but then you need to get it deployed. In custom development this is one of the tasks which is quite often hugely underestimated. For SharePoint developers it is kind of mandatory to think about how to deploy stuff since there are a lot of files going in a lot of different places on your server. Once you get the hang of building SharePoint solution file for your customizations, everything will get deployed quite nicely on your whole farm. Take a look at the ten commandments for SharePoint development – SharePoint solution deployment is mentionned twice and not in vain.
- 4. InfoPath 2007 and Forms Services are great - it is amazing how easy it is to build electronic forms using InfoPath 2007 and then distribute them to your end users using browser-enabled forms. Quick warning though: deployment may be tricky and some manual steps will be required from your admin. Let’s hope that the story gets better in SharePoint 2010.
- 5. Strong integration with Office 2003/2007 - the things which you get for free in SharePoint are amazing. Integrated editing of Office documents, easy exports of SharePoint lists to Excel, taking documents offline in Outlook (2007 version only ...), two way sync of contacts and tasks in Outlook (again 2007 version only …). Remember Office is one of the most used applications worldwide so think about the integration story.
- 6. Easy branding and custom layouting - yes, there are some obstacles with regards to SharePoint branding –the master pages built in are not a good starting point and the CSS files might seem a bit bloated. But still – changing the look&feel is still quite easy. Learn to Know your master pages inside out.
- 7. I don’t have to write code for everything – when building something in SharePoint you don’t need write code for everything. This might seem shocking to some devs … take a look at Demo: a six-part series on getting the most out of SharePoint Designer. … I expect quite a lot of improvement in this area with SharePoint Designer 2010.
Tuesday, August 25, 2009
Removing hiberfil.sys on Windows Server 2008
One of the things I found out when using Spacesniffer was that there existed a big hidden file on my Windows Server 2008 system drive called hiberfil.sys. Apparently when you hibernate your computer, Windows saves the contents of the system's memory to the hiberfil.sys file. As a result, the size of the file is as big as the amount of physical memory present. Since I allocated 6 GB RAM to my virtual Windows Server 2008 – the file was a whopping 6GB big ….
Now to remove it – open command prompt (remember to use the run as administrator option) and type powercfg.exe /h off.
For some background info check out KB920730 – How to disable and re-enable hibernation on a computer that is running Windows Vista.
Analyzing disk space with Spacesniffer
Virtual disks seem to have a tendency to fill up faster then expected sometimes. So today I found myself without disk space on my system disk of one of my virtual machines. Since I was not really sure what was occupying so much space I searched the web for some analysis tool and I downloaded Spacesniffer – this is definitely the coolest little utility I have seen for quite a while…and it works like a charm even on Windows Server 2008. Completely free…
Monday, August 24, 2009
Changes in Workflow Foundation 4.0
If you plan to start writing workflows using Workflow Foundation 3.5 (or 3.0 for that matter) definitely take a look at the following links. There are quite a few architectural changes in Workflow Foundation 4.0 so beware:
- Windows Workflow Changes direction
- Windows Workflow Changes Direction: Write New Workflows with .NET 4.0 in Mind
- WF 4.0 – the new runtime model
- The road to 4 – WF changes between Beta 1 and CTP
- WF 4.0 migration guidance - These documents help .NET developers better understand and evaluate Windows Workflow Foundation (WF) in the Microsoft .NET Framework 4, and the impact of WF 4 on existing WF workflows and code.
3 interesting facts about SharePoint user profiles
1. If you need to import user profiles from Active Directory – read this Support KB -How to import user profile information of enabled user accounts from Active Directory to SharePoint Portal Server 2003 or Office SharePoint Server 2007 – To import user profile information of only user accounts that are enabled, use the (&(objectCategory=person)(objectClass=user)( !(userAccountControl:1.2.840.113556.1.4.803:=2))) LDAP search filter.
2. Users which are disabled will be added to the “Profiles missing from import” view after the import has run again. Here you can manually delete them, you can also wait for three full imports – see http://www.gilham.org/Blog/Lists/Posts/Post.aspx?ID=488 for more details.
3. There is an interesting tool which allows you to populate your SharePoint Server user profile database using basic XML files as source on Codeplex MOSS 2007 utility for import/export of user profiles. Also check out the codesample about how you can automatically create my sites as well as the information about using powershell to set up SharePoint user profiles
Tuesday, August 18, 2009
Troubleshooting WCF on Windows Server 2008
Recently I had to check some webparts which are using WCF services and which were deployed on Windows Server 2008. The only thing to check was this nice cryptic error message:
TCP error code 10061: No connection could be made because the target machine actively refused it 10.16.1.25:32845.
I finally got this working … but still the troubleshooting steps might be interesting:
- First thing to notice – the WCF service installed under port 32845 and when I looked at the bindings in IIS it was using net.tcp.
- Check if the necessary Windows Server 2008 features are installed using the Server Manager:
- WCF activation
- HTTP activation
- Non-http activation
- WCF activation
- Next check – the IIS 7.0 website hosting the WCF services – if you look at the UI – you will notice this strange “?” icon on top of the site. Unfortunately this does not mean that there is something wrong with the site hosting– in this case it just points to the fact that you have multiple bindings for different protocols.

If you look at the status screen (Click on sites) you will probably see “Unknown” for the net.tcp protocol. This is not a problem – just check that the web site is started. - Right click the website which is hosting the WCF services and select Manage website> Advanced settings and check if tcp is an enabled protocol.

For some info about how to do this in Vista check out see How to: Install and Configure WCF Activation Components - On Windows Server 2008 you can everything through the UI – so you don’t need the command line scripts – as outlined before - Take a look at Checklist: Use TCP Port Sharing to Allow Multiple WCF Applications to Use the Same TCP Port
- Check the firewall settings on Windows Server 2008 – Go to Server Manager > Configuration, here you will see Windows Firewall with advanced properties. Make sure that you have the correct and inbound rules… (or disable them just to troubleshoot)
- Make sure that the Net.TCP listener adapter and Net.TCP Port Sharing Services are running (Server Manager > Server Roles > Application Manager)

As a matter of fact, it was this last setting in combination with the firewall settings which caused my WCF services to fail
Related reading:
Monday, August 17, 2009
Playing around with Powershell and SharePoint user profiles
First thing to note when playing around with SharePoint and Powershell is that you will probably need to load a number of extra assemblies (For some background check out Load an assembly in Powershell).
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[System.Reflection.Assembly]::LoadWithPartialName("microsoft.sharepoint.portal")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
[System.Reflection.Assembly]::LoadWithPartialName("System.Web")
Next if you want to manipulate SharePoint user profiles using Powershell you might want to take a look at Creating and updating user profile properties in SharePoint using Powershell
Now an interesting concept would be to use a XML file as a source for creating SharePoint user profiles – take a look at Processing XML with Powershell to get going. So basically if you want to build a reusable powershell script for creating user profiles you will need two parameters – the XML file and the name of the SSP. By adding in some extra functions and using the power of piping (See Piping and Pipeline in Powershell) you will have a very powerfull powershell script with only limited code.
$userprofileproperties = get-xml $xmlFile
$context = [Microsoft.Office.Server.ServerContext]::GetContext($sspName)
$profileManager = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)
$userprofileproperties.userprofileproperties.userprofileproperty | foreach { checkIfExists $_.Name $profileManager }
$userprofileproperties.userprofileproperties.userprofileproperty | foreach { createProperty $_ $profileManager $context }
PS I’m not going to give you all the code but the code snippets above should get you going. Credits go to Jeroen for writing these nifty lines of powershell.
Sunday, August 16, 2009
SharePoint and the 2000 security principal limit
Update 17/8: apparently my explanation was not that clear so I added some extra details
An important thing to remember is the fact that SharePoint scales through the use of site collections. So if you have a fairly large implementation of SharePoint you will be typically using multiple site collections.
One of the things which has caused some serious problems in the past – but is not that clearly documented is the 2000 security prinicipals limit per site collection.
If you read through Plan for software boundaries – you see this
| Security principal | Approximately 2,000 per ACL (Access Control List) on any securable object (scope) | The total size of the ACL on scopes can be no larger than 64kb. Because each security principal is approximately 32 bytes in size, there can be no more than approximately 2,000 security principals or less for each scope. If this limit is reached, indexing of items in that scope, and all items below that scope, to fail. Also, because SharePoint Groups are expanded during the indexing process, having more than 2,000 users or Directory Groups in a SharePoint group and using that group for securing scopes may cause indexing of items secured with these groups, and all items below them, to fail. |
The scope they are talking about is according to me - site collection level. Every time you secure something in a site collection – meaning you assign a security principal (for developers –a SPPrincipal object) with it’s permissions set to a site, or a specific library/list or even to an individual document/item, an entry is added to a list of security principlas at site collection level. It is this list of security principals which has a limit of 2000 entries.
So no troubles if you are using 40 distinct Active Directory groups all over the places to assign security in thousands of individual documents – but when you are using more then 2000 individual users which are assigned a permission directly in one or more places within a site collection – you will get into trouble. There is no problem with Active Directory groups who contain thousands of individual AD users since they are not expanded.
The article only states problems when crawling but I also noticed some performance issues on SQL Server level where we needed to put in some extra processing power.
InfoPath 2010 – new features
- Control filtering/cascading dropdowns – (definitely take a look at the video to see browser based InfoPath 2010 forms in action - With InfoPath 2010, it appears that these workarounds are no longer necessary. In the video I posted earlier this month about richer browser forms, see the filtering functionality at work in an InfoPath 2010 browser scenario. At least that's one big improvement to the browser form experience... [Source: http://blogs.3sharp.com/davidg/archive/2009/07/27/5058.aspx ]
- InfoPath Team Blog – What’s new in InfoPath 2010 – provides some insights about SharePoint integration as well – my favorites:
- Create forms for SharePoint lists
- Create mashups using the InfoPath Forms webpart
- Quick (validation) rules
- InfoPath 2010 feature videos
PS Don’t forget the Office 2010 Technical Beta recruiting update and contest rules – unfortunately US and Canadians only … too bad.
Thursday, August 06, 2009
Keep your SharePoint site definitions minimal, really I mean it.
Something which caused me a lot of troubles last week – an overbloated site definition. Don’t do this. As stated in the ten commandments for SharePoint development:
4. Keep your custom site definitions as minimal as possible. A long debate started after Joel's post on the topic - Do you really need a site definition . They are nothing more than a "skeleton" for attaching programmatic elements in the form of features and should be deployed as solution packages.
Trust me – follow this advice, it will cause less problems in the future.
Related posts:
Wednesday, August 05, 2009
Things I read (and watched) this week
For those interested in SharePoint – don’t botter – the next links are all off-topic – but hey life is about more then SharePoint :-) …
- Zune hands on impressions, tears of joy
- Quick hands on with the Zune HD
- Is Bing worth all the money Microsoft is throwing at it? [video]
- What’s Microsoft’s next billion dollar business? (Hint: it’s not search)
- Step-by-step: Turning a windows 7 DVD or ISO into a Bootable VHD Virtual Machine
- How will Microsoft fix Windows Mobile? The softies still aren’t saying
- What happens when TCO meets the cloud
- Shining customer service in a tough business economy
- Why intranets will destroy the corporate website
- Expert-to-Expert: Harry Shum – General purpose search, decision engines and Bing
- Why most presentations suck
- When internal collaboration is bad for your company (HBR) and the comments – Is collaboration bad, really?