Wednesday, September 09, 2009

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:

Related links:

64bit iFilters for SharePoint Server 2007

There are currently 2 PDF iFilters available for 64-bit SharePoint Server setups:

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

Tags van Technorati: ,,,

Monday, September 07, 2009

[LOL] SharePoint is nice nice baby BPC09 Remix

Tags van Technorati: ,

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:

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. 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. 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. 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. 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. 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. 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. 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:

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
  • 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

PS Don’t forget the Office 2010 Technical Beta recruiting update and contest rules – unfortunately US and Canadians only … too bad.

Tags van Technorati: ,,

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:

Monday, August 03, 2009

MBR and GPT partioning style for disks in Windows Server 2008

I noticed something new last week – when adding a new virtual  disk to a Windows Server 2008 setup it gave me a new option when I needed to initialize the disk. You can now choose between MBR and GPT. So what’s the difference? Techotopia to the rescue:

MBR is the standard partitioning scheme that's been used on hard disks since the PC first came out. It supports 4 primary partitions per hard drive, and a maximum partition size of 2TB.

GPT disks are new, and are readable only by Windows Server 2003 SP1, Windows Vista (all versions), and Windows XP x64 Edition. The GPT disk itself can support a volume up to 2^64 blocks in length. (For 512-byte blocks, this is 9.44 ZB - zettabytes. 1 ZB is 1 billion terabytes). It can also support theoretically unlimited partitions.

Windows restricts these limits further to 256 TB for a single partition (NTFS limit), and 128 partitions.

Only Itanium systems running Windows Server 2003 and Windows Vista systems with an EFI BIOS can boot from a GPT disk. The other operating systems mentioned earlier can use GPT disks as data disks but not boot disks.

 

Tags van Technorati: ,,,

Wednesday, July 29, 2009

Reading PDF files on Windows Mobile

You can download Adobe Reader for mobile devices for free. Just run the installer from your PC and use ActiveSync to push the installation to your mobile device (this should work automatically). Don’t forget to read the Adobe Reader for Pocket PC FAQ.

Tags van Technorati: ,

SharePoint Governance - random link collection

Links you should check out for some inspiration if you are thinking about SharePoint Governance:

Monday, July 27, 2009

Activating Windows Server 2008 MSDN edition

Lastweek I installed Windows Server 2008 from MSDN subscriber downloads – unfortunately when I tried to activate it – I got an error telling “A problem occurred when Windows tried to activate. Error code 0x8007232B. For a possible resolution, click more information.” When you click the more information link you get "Code 0x9007232B - DNS name does not exist". Luckily I found the workaround - Activate Windows Server 2008 RTM (MSDN subscriberd downloads version) – just reenter the license key and Windows will automatically activate.

Tags van Technorati: ,,,

Memory settings in VMWare Workstation


When you need to run 64-bit virtual environments on you dev machine – you will not be able to use Virtual PC. So most of the time I’ll use VMWare Workstation. A setting you will need to take a look at is how VMWare will use the allocated memory – go to Edit>Preferences and select the Memory tab.

Monday, July 13, 2009

SharePoint 2010 – Sneak preview videos – Overview Sneak peek video

Microsoft just released some sneak preview content about SharePOint 2010 . Definitely take a look at SharePoint 2010 - Overview Sneak Peek Video – by Thomas Rizzo.

Some key takeaways:

  1. The core business value proposition - “The business collaboration platform for the Enterprise and the Web”
  2. Quote - “We have taken a bunch of the great technology that FAST has and combined it with SharePoint technology to provide a rich, reliable, highly scalable search within SharePoint”
  3. SharePoint 2010 has a ribbon interface which is customizable and contextual – this means you will get an extra Library Tools Tab when you are in a SharePoint document library. If you don’t like it you can still remove the ribbon.
  4. Multiple item operations – check out the video – way cool.
  5. Fluent user interface through complete assynchronous operations support
  6. Direct web edit with live preview (similar to the office client) – again take a look at the video’s – definitely a killer feature. Common things such as changing images and text on a site is a lot easier.
  7. SharePoint 2010 out of the box Silverlight web part
  8. Apply PowerPoint theme to SharePoint sites to change the look and feel
  9. Publish Visio diagrams directly to SharePoint and open them within the browser without the need to have a Visio client installed – it even works for data-driven Visio diagrams
  10. Quote - “SharePoint Business Connectivity Services (BCS) – you can think of it as an evolution of the Business Data Catalog” – with support for read/write. From within SharePoint Designer 2010 you will see a new concept called Entities to handle back-end integration. SharePoint provides seemless integration with back-end systems – so database tables can be surfaced within SharePoint and will look exactly the same as any other SharePoint list. And it even works within Office.
  11. SharePoint Workspace – the new Groove – again with support for SharePoint BCS – amazing – you can actually edit data from your backend system offline and synchronize it back. So you actually get offline data editing capabilities for free with SharePoint Workspace
  12. Also check out the video editing within Powerpoint in the last demo….

SCOM – SharePoint Management Packs – new download location

It seems that the download location of the SCOM management packs fro SharePoint have changed:

Thursday, July 09, 2009

Freeing storage memory on E-Ten Glofiish M700

Today my smartphone started struggling with a lack of free storage. After searching for large files using storage memory – I found a file which is called mms_handler.txt which seems to be a log file of some sort. You can apparently safely delete it.

Tags van Technorati: ,

Wednesday, July 08, 2009

KODU – XBOX game design for everyone

Just stumbled upon this project from Microsoft Research - KODU

Kodu is a new visual programming language made specifically for creating games. It is designed to be accessible for children and enjoyable for anyone. The programming environment runs on the Xbox, allowing rapid design iteration using only a game controller for input.

Tags van Technorati: ,,,

Tuesday, July 07, 2009

Why you would want access to the sourcecode for custom developed SharePoint solutions

So why do you need to get access to source code of custom built SharePoint components? What about 3d party ISVs versus System Integrators?

One thing to note is that I make a distinction between system integrators/consultancy firms and firms whose main target is to build specific SharePoint products. I do not expect that 3d party SharePoint ISV’s will release source code but I also think this is not that much of a problem since their products are widely deployed (ask for references!!!) and they know that a bad rep would kill their business. Therefore they probably have a stringent quality process for building SharePoint addons.

If your custom built solution is procured as a product purchase it is very rare that you get access to the source code and even if you do – you have to make sure that he source code does not get into the wrong hands.

If the custom built solution is procured as part of a works made for hire or services engagement (which is mostly the case with system integrators or consultancy firms), the source code is mostly provided – but not always.

Sourcecode keeps SI’s honest

Access to source code gives you additional flexiblity. If you need a change to your custom built solution you might have the option to do it yourself instead of reverting back to the System Integration.  If you have access to the source code, then any SI can make the change.  It keeps everyone honest… and it is better from a business continuity perspective. You probably want to protect your investments.

It probably is very disturbing when you notice that you can’t upgrade your platform since you have a lock-in from a custom built solution tied to a specific system integrator or consultancy firm.

Review deployed sourcecode

A custom build solution deployed on SharePoint can have the ability to impersonate to any other account without their passwords – take a look at Elevation of Privilege for some background info. You cannot be absolutely sure that they are not doing this, unless you have the ability to review the source code from a technical perspective.

If you have access to the code it is  also easier to validate the deliverable (the code) in terms of what you have agreed upon – this is what I call review source code from a functional perspective.

If you do not care if SharePoint code runs as fully trusted and you do not attempt to enforce partially trusted scenario’s – you probably don’t need the source code. Reviewing source code (and this is certainly the case for SharePoint) is not for the faint of heart and requires a lot of effort.

Best practice – do your own builds

If you are planning to run business critical applications on top of SharePoint make sure that you actually do the builds of the source code yourself. You might be in for a surprise when you notice that the source code built does not equal the deployed assmemblies because some extra code was added in the dll’s which are deployed on your server.

If you are a customer who works with a system integrator or consultancy firm you might even ask access to parts of their code repository. This way you can use this code directly and even see actual progress of your project at any time without the delay of having to send an e-mail every time. Take for example a look at Using Team Foundation Server to develop Custom SharePoint Products and Technologies applications

Look at the contract

Common sense dictates that you have to look at contracts that you sign – and this is also the case for software project contracts. Make sure that you look at the small print of a contract. Look if it is not explicitly stated that you do NOT get access to the source code. Most of the time, the SI will give you  a non-exclusive license to use the source code internally. You get access but you do not own the code. The SI will probably retain the rights to reuse, package, deploy, sell, etc… the source code and all derivative works. 

Some SI’s work with  third party source code escrow agents where the source code is kept (under escrow) and is only released under certain conditions – for example when the supplier goes out of business (One of the players is Escrow Europe which also has an affiliate in Belgium  - another one is Merak)

Remark: The views expressed here are personal and do not necessarily reflect the views of my employer.

Thursday, July 02, 2009

SharePointGovernance.org launched

Because of it’s viral nature a SharePoint deployment without any control has a high risk of becoming total chaos. Yesterday SharePointGovernance.org launched to help you effectively manage your SharePoint environment. I will actively work with some peers on SharePointGovernance.org to share some of the do’s and don’ts with regards to share. Hope to see you there…

Wednesday, July 01, 2009

The ten commandments for SharePoint development

1. Stick to the product if you can. SharePoint provides a lot of functionality out of the box - focus on these quick wins and don't immediately switch over to Visual Studio and start writing code.

2.  Built to last SharePoint projects are in continuous evolution so you need to develop in such a way that it is easy to evolve and to extend. Take a look at site definitions vs site templates for example.

3. Do not GAC every web part you develop. By the way, there are number of SharePoint development artifacts which you need to add to the Global Assembly Cache (GAC) such as receivers -feature receivers as well as other event receivers - timer jobs and workflow assemblies.

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.

5. Do not touch the production server's file system. Yes, if you need to deploy something you really need to wrap it up as a SharePoint solution file (wsp). Check out Creating a SharePoint Solution Package in Windows SharePoint Services 3.0 as well as my own post from a while ago - WSP - SharePoint Solution Files. Don't forget to take a look at WSPBuilder

6. Features are your friend . Features can be added to sites as needed. You can even force their deployment through stapling them to existing Site Definitions. Features can be activated, deactivated, and even upgraded, on existing sites.

7. Thou shall not use Full trust in vain. Changing the trust level in the web.config is just stupid for anything other than debugging.  So learn to use SharePoint Code Access Security policy files. 

8. Stay out of the database. The SharePoint database schema should not be altered in any fashion or you will lose all support in case of an incident. KB841057 - Support for changes to the databases that are used by Office Server products and by Windows SharePoint Services. I think it is also safe to not directly read from the database – SharePoint provides you with multiple methods to do exactly what you need – stsadm, the object model, web services or WSS RPCs so there’s no need to read directly from the database.

9. Use different development, build, test, staging, and production environments. Take a look at the SharePoint application life cycle from the P&P SharePoint guidance. If you are unsure about the why and how.

10. Be your admins friend You can make deploying a SharePoint solution very easy for your admins using SharePoint solution packages, together with powershell and/or stsadm extensions. Or can make his life hell – remember this quote from JThake - “Mr SharePoint Solution meets Mr XCopy in a bar and kicks the living sh*t out of him” (Jthake)

PS These commandments are not listed in order of importance… if you have some other ones – please add a comment.

Hotfix for SharePoint SP2 trial version mistake

A quite unfortunately quirck of SharePoint SP2 was that after you installed it, the product expiration date was activated incorrectly (For more details check out KB 971620 )

The SharePoint team blog also states that an update of SP2 will be provided in the coming weeks.

 

Tuesday, June 30, 2009

SharePoint - It's all about making the right choices and decisions - When to use custom site definitions.

This is the third posting about making the correct design decisions when implementing SharePoint. It's about site definition vs site templates.

I strongly believe that there are a couple of  reasons for using custom site definitions:

  1. Better overall performance of using site definitions instead of site templates for creating sites
  2. More control and flexibility in building a specific solution. One thing to keep in mind though is to keep your custom site definitions as minimal as possible and to use the SharePoint Features framework to add functionality.
  3. Site templates are basically black boxes where you have limited control over the way that they are working - so when you get into trouble you're stuck.
  4. It is easier to add additional functionality to site which are developed using a site definition in contrast with these built using a site template.

The main reason for choosing site templates is that overall it takes less effort to create a site template. You can just click everything together and use the Save site as template option. Another reason would be that you can change a site template without affecting existing sites (allthough this might be a disadvantage as well).

Some extra info: Site definitions versus site templates and deciding on the correct customization approach . On a similar note this same post from  Eric - The great debate: SharePoint Designer vs custom site definitions.

Previous postings:

Visio design templates for SharePoint 2007

Reminder:

List web part for Microsoft CRM 4.0

Another interesting one  to to integrate SharePoint and Microsoft CRM 4.0 is to use the List Web Part for Microsoft Dynamics CRM 4.0. (Released december 2008 - tip: there is a different web part for Dynamics CRM 3.0)

The List Web Part for Microsoft Dynamics CRM 4.0 provides a way to view and update Microsoft Dynamics CRM records using a Windows SharePoint Services 3.0 SP1 or Microsoft Office SharePoint Server 2007 SP1 Web site. Microsoft Dynamics CRM users can create shared or personal List Web Parts of Microsoft Dynamics CRM records from a SharePoint Web site, open records in Microsoft Dynamics CRM 4.0 from the List Web Part, and create connected List Web Parts.

Tags van Technorati: ,,,

Microsoft Dynamics Snap apps

If you want people to use the core applications you invested in (such as CRM and ERP), it is a good idea to integrate them into a familiar interface. Most people tend to use Office applications quite a lot in their daily job so why not integrate your CRM and ERP from within Office. Dynamics Snap applications show how information workers can work with data out of Dynamics CRM and Dynamics from within their Office applications (This is what Microsoft calls a Office Business Applications or OBA)

One that I tried out recently - Microsoft Dynamics Snap for Microsoft Dynamics AX on Codeplex – of which the current release supports Dynamics AX 2009. There are two different snaps available for Dynamics AX 2009:

  • Offline Expense - This snap-in enables expenses to be entered in Excel while disconnected from the corporate network, and then posted to Dynamics AX at a later time. This snap-in uses WCF-based services and LINQ to retrieve data from Dynamics AX, and uses the Application Integration Framework, or AIF to send business documents to Dynamics AX.
  • Business Data Lookup (BDL) - This snap-in enables information workers to access data from Dynamics AX from within Excel, Word and Outlook. This snap-in is an upgrade of the BDL snap-in that was distributed with Microsoft Dynamics AX 4.0.

Unfortunately the Microsoft Dynamics Snap Team Blog doesn't show any activity since january 2007

References:

Sunday, June 28, 2009

Troubleshooting Microsoft CRM

My colleague Koen has been writing some excellent blog posts about troubleshooting certain issues with Microsoft CRM:

Belgian Azure User Group launched …

Kurt Claeys just announced the birth of a new Belgian user group – www.azug.be

AZUG.BE is a Belgian user group with focus on development and architecture of the Microsoft Azure Services Platform. Azure is a cloud hosted development platform for internet oriented applications aimed at high scalability and based on .NET technology.

Our goal is to share knowledge and experiences with the .NET community in development and architecture in the Azure Services Platform and the .NET Services technology. As new programming skills and a new architectural approach are needed I’m inviting you to become member of this user group to prepare you for building this new style of applications.

We’ll have regular public meetings (free of charge) providing demos, training, presentations and discussions on the technology part of Azure. First public meeting is planned in september 09.

Interested in participating as boardmember ? Shoot a mail at board@azug.be.

Interested in the agenda of upcoming events, visit www.azug.be regularly or register for the newsletter at newsletter@azug.be with the word subscribe as subject. Hope to see you.

Thursday, June 11, 2009

What’s in a name – SharePoint Online, BPOS and Microsoft Online Services

SharePoint Online, Microsoft Online Services or BPOS (Business Productivity Online Suite) are terms which you hear flying around when you look for information about Microsoft’s endeavors in the cloud. Here’s some more background information:

  • SharePoint Online : is a collection of web-based collaboration tools built on Microsoft Office SharePoint Server 2007 and provided by Microsoft as a hosted service. For some more information check out Service Description for Microsoft Office SharePoint Online
  • Business Productivity Online Suite (BPOS) : goes broader then SharePoint – it is a set of messaging and collaboration solutions hosted by Microsoft, and consists of Exchange Online, SharePoint Online, Office Live Meeting, and Office Communications Online.
  • Microsoft Online Services: is the overall name of all services Microsoft will offer in a hosted environment – current focus for Belgium is BPOS but the offering will probably extend to also include Microsoft Dynamics CRM Online in the coming months.

Before you rush in it is probably best to first take a look at what the trade offs are when you choose the SharePoint Online option instead of an on-premise deployment.  A good start is the SharePoint Online Infrastructure Planning and Design (IPD) guide. Infrastructure Planning and Design (IPD) guides help you in making design decisions by looking at available options, taking into account cost, complexity and technical contstraints. They help you to align your business and IT more efficiently. There are already a number of IPD’s available (released versions)  - Infrastructure Planning and Design Guides

It is also important to note that the use of SharePoint Online is not mutually exclusive with a SharePoint installation on premise. These two forms can quite easily co-exist, it is however important that you define policies and rules for users when to use what. This is typically an important aspect of a SharePoint governance plan.

If you want to try it out – there is a 30-day free trial which you can use at the Microsoft Online Services – Customer Portal

More background info:

Tuesday, June 09, 2009

PDF Annotations

A common requirement for PDF files is the ability to add comments and annotations. Docutrack has an interesting tool called PDF-XChange viewer (which is free) which allows you to do just that.

Tags van Technorati: ,,

Sunday, June 07, 2009

Free Documentum Developer Edition available

On june 2d EMC announced  a free developer edition of EMC Documentum Content Server 6.5 which you can download from the ECM Developer Community.

To get you started take a look at the Content Server Developer Edition Install instructions. What’s a little bit weird is that Windows Server 2008 seems to be missing from the list of supported OS – I tried installing it anyway but it failed with this error -  DIWAOEMExecuteConfigurationscripts failed - "creating index agent" failed. Runtime execution failed with childprocess
launchftconfigurationprogram.bat

Too bad  … time to setup a new blank Windows Server 2003.

Technorati Tags: ,,