Welcome to my blog on all things SharePoint. I have a range of articles that will interest you if you've made it as far as visiting my blog. I was awarded as an SharePoint MVP by Microsoft in July 2010. I currently live in New York and am an Enterprise Architect at AvePoint Inc.. I co founded www.NothingButSharePoint.com with Mark Miller in 2010.

MVP AwardJeremy Thake Profile Photo

Whitepapers

NBSP

Check out my articles on NothingButSharePoint.com

Solution Development in SharePoint 2007

This series was inspired by the chatter amongst SharePoint blogs on the best ways to approach customisations in SharePoint using Solutions.

Part 1 - Part 2 - Part 3 - Part 4 - Part 5 - Part 6 - Part 7 - Part 8

Leveraging the SharePoint Platform

This series was inspired by a discussion had with Andrew Coates at a Perth SharePoint User Group meeting. This then turned into a 6 part series on Arno Nell's SharePointMagazine.net web site.

Initial post - Part 1 - Part 2 - Part 3 - Part 4 - Part 5 - Part 6

Webcasts

I have recorded various web casts that I present at User Groups or just on a specific topic by request:
How ASP.NET Developers can leverage SharePoint webcast
SPSource Webcast: Reverse engineer Lists to ListTemplates and much more
SharePoint Development with Unit Testing webcast
Perth SharePoint UG Web Cast on approaches to deploying artefacts (SPSource)
More...


Podcasts

I have been interviewed about Leveraging the SharePoint Platform by the SharePoint Pod Show: listen here .

RSS Feed Feed your read!

Archives

November 2012 (6)
October 2012 (8)
September 2012 (4)
August 2012 (7)
July 2012 (13)
June 2012 (4)
March 2012 (1)
February 2012 (1)
January 2012 (5)
September 2011 (2)
August 2011 (1)
July 2011 (3)
June 2011 (7)
May 2011 (3)
April 2011 (3)
March 2011 (3)
February 2011 (2)
January 2011 (1)
December 2010 (4)
September 2010 (4)
July 2010 (5)
June 2010 (4)
May 2010 (6)
April 2010 (7)
March 2010 (5)
February 2010 (7)
January 2010 (3)
December 2009 (1)
November 2009 (6)
October 2009 (9)
September 2009 (7)
August 2009 (6)
July 2009 (13)
June 2009 (4)
May 2009 (12)
April 2009 (4)
March 2009 (4)
February 2009 (13)
January 2009 (4)
December 2008 (4)
November 2008 (11)
October 2008 (16)
September 2008 (4)
August 2008 (5)
July 2008 (4)
June 2008 (8)
May 2008 (5)
April 2008 (9)
March 2008 (5)
February 2008 (6)
January 2008 (1)
November 2007 (11)
October 2007 (8)
September 2007 (24)
August 2007 (5)
July 2007 (2)
May 2007 (1)
April 2007 (1)
March 2007 (1)
February 2007 (3)
January 2007 (4)
November 2006 (7)
October 2006 (7)
September 2006 (18)
August 2006 (14)
June 2006 (3)
May 2006 (8)
April 2006 (4)
March 2006 (38)
February 2006 (30)
January 2006 (2)
December 2005 (3)
November 2005 (28)
May 2005 (1)
April 2005 (5)
March 2005 (1)
November 2004 (1)
August 2004 (11)
July 2004 (1)
Failed to render control: An error occurred during a call to extension function 'createMonthUrl'. See InnerException for a complete description of the error.

Links

Tag Cloud

Ajax, Apple, DotNetNuke, Enterprise Content Management, Error Resolution, Gadgets, General, Governance, Microsoft .Net Development, Mobile, SharePoint, Sharepoint Business Forms, Sharepoint Business Intelligence, Sharepoint Collaboration, SharePoint Development, Sharepoint Enterprise Content Management, Sharepoint Enterprise Search, Sharepoint Portal, US Migration, Web 2.0, Workflow
Feb 272008

Working with SharePoint 2007 logs

The SharePoint 2007 logs are by default found in the 12 Hive:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\LOGS\

I found this article here on throttling MOSS logs to pick and chose what you want. The interface in the Central Administration is not the best in terms of drop downs...would have been a lot easier if it was just all check boxes and power options to select all etc.! Maybe in the next version!

There is a SharePoint Logging Spy CodePlex project that allows you to debug in real time from multiple servers. The Unified SharePoint Log Viewer accessible from the Logging tool by Windows | ULS Log File Parser is great for opening SharePoint logs directly with some formatting.

image

Published: 2/27/2008  3:49 PM | 0  Comments | 0  Links to this post

Feb 272008

SharePoint 2007 ContentTypeID's

Had some "great fun" with SharePoint over the last few days, basically when I copied some code on creating a Content Type to test in my environment. I noticed that the Content Type wasn't available on a Form Library and looked at the Parent Content Type in the user interface and noticed it was Item and someone told me it needed to be Form.

I couldn't see a property to set what the Parent type from 'Item' to 'Form'. This article explains it in further detail which means modifying the ContentTypeID although Andrew May had a bit more around it...especially about not just replacing 0x0100 with 0x0101 when changing to Document Parent Type....it also needs a 00 appended to it. It's not quite clear in the MSDN article. There is a good diagram that shows the base hierarchy types to help find parent types. The SharePoint 2007 Content Types Viewer is a great tool for viewing the Content Types in a portal.

Also another neat explanation Sezai bounced me in an email:

If you create a content type with the regular SharePoint user interface, and then view the content types page then you can get it’s ID from the URL.

http://<yoursite>/_layouts/ManageContentType.aspx?ctype=0x01

so

Item=0x01

http://<yoursite>/_layouts/ManageContentType.aspx?ctype=0x0101

so

Document=0x0101

So if I create a new content type with the site ui and select the parent as Document I get this :

http://<yoursite>/_layouts/ManageContentType.aspx?ctype=0x010100944417639B06B74A9E7CC211DFBB272A

so it’s content type ID is :

0x010100944417639B06B74A9E7CC211DFBB272A

Also if I create a content type with a parent of Item it generates this content type ID :

0x010067C8449C1622134BA39486C946950AA

So, it seems like you just need two more characters at the end of your document content type for it to work.

The entire content type parent inheritance chain makes up the id, so for example my custom page layout content types are this long :

0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D2A

Go up the parent chain Article Page

0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D

Page

0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF39

System Page

0x010100C568DB52D9D0A14D9B2FDCC96666E9F2

Document

0x0101

etc.

Published: 2/27/2008  3:48 PM | 13  Comments | 1  Links to this post

Feb 212008

Content Query Webpart fun!

I've been poking around an existing web part and have been having real troubles in pulling fields from a SharePoint List. I found this article extremely useful and basically found that this XSLT snippet saved me hours of debbugging:

<xsl:for-each select="@*">
    P:<xsl:value-of select="name()" />
</xsl:for-each>

This basically outputs all the fields being parsed from the query in the XML which can be transformed by the XSLT. If there are fields missing from the list, as in my case, you actually need to customise the Content Query Web Part using CAML. This is also explained by exporting the webpart file and then editing the 'CommonViewFields' property element in the file. This took three hours of debugging to get to the bottom especially with the internal name madness! Heather Soloman has a great explanation of the best way to get to the Internal Names of the fields.

I also wrote some quick code to inspect the sites and then list out the fields with Title's and InternalName's for a specific one:

using (SPSite mySite = new SPSite("http://intranet/"))
{
    SPWeb oWebsite = mySite.OpenWeb();
    Console.WriteLine(oWebsite.Name);
    foreach (SPList list in oWebsite.Lists)
    {
        Console.WriteLine(list.Title);
    }
    SPList oList = oWebsite.Lists["0"];
    Console.WriteLine(oList.Lists.Count);
    foreach (SPField oField in oList.Fields)
    {
        Console.WriteLine("'" + oField.Title + "' =  '" + oField.InternalName + "'");
    }
}
Published: 2/21/2008  10:48 PM | 0  Comments | 0  Links to this post

Feb 192008

Solution stuck on 'Deploying' status

Have spent some time looking around trying to work out how to change a Solution that is in 'Deploying' status to anything else. You can only Retract a solution when it is deployed. I found an article here which mentions the stsadm command 'canceldeployment' where you have to pass in a timer job guid. Anyway, another post showed me how to find this guid with the stsadm command 'execadmsvcjobs'. Alex Thissen goes onto explain that sometimes you just have to delete the Solution to get it to go in properly!

I also found that the Job Definitions still sits there, but if I click on it and click delete...when I check the Solution Management, it actually says it's 'Deployed'. Not sure why it's not completing the Job, but the change took place after this!

Published: 2/19/2008  9:37 PM | 39  Comments | 2  Links to this post

Feb 192008

Access Denied to Master Pages and everyone using Site Administrator Account!

image

We have a fairly big team of developers working on a MOSS 2007 implementation. I'm always dubious of everyone using the Site Administrator account in any environment, be it Dev, Test or Prod, to make changes to Master Pages. If something goes wrong, we can't go and ask the person that made the change as multiple people would use the account.

I found a thread online which walks you through giving other Users/Groups access to the Master Pages. This way, if Bob makes a change and something breaks, we can then go and speak to Bob about the change rather than having to ask everyone in the team. Even harder if the team aren't there anymore or if they are on leave etc.

Basically all we did is log in as the Site Administrator and go to Modify All Site Content and select the Master Pages and Layouts link under Galleries. You can also get to this page by going to http://[site-name]/_catalogs/masterpage/Forms/AllItems.aspx also.

This gives you a SharePoint list of all the Master Pages, from which if you go to List Settings page you can then modify the security. Default it is set to just Restricted Read on all authenticated users, and obviously the Site Administrator overrides this to make changes. So we just added our Administrator Group to this which is maintained by our Team Lead.

Published: 2/19/2008  7:03 PM | 1  Comment | 0  Links to this post

Feb 192008

The project type is not supported by this installation

I've just come on board at a new mining organisation in Perth, WA called CITIC Pacific Mining as the Senior SharePoint Consultant. As with all new client sites, when you rock up it's interesting to see how different everything is. Especially as this project started over 18 months ago when MOSS 2007 was extremely new and documentation and the community was no where near its saturation now.

I came across an error where I couldn't open a Visual Studio 2005 Project File.  The error message stated that 'The Project type is not supported by this installation'. And then in the Solution Explorer states 'The project flie cannot be loaded.'. 

Fortunately thanks to Google I found the solution to this in this forum thread on MSDN off this article. Basically I removed the <ProjectGuidType> element from the .csproj file, it hasn't recreated a new element once I've opened the project file but it all seems to work fine and dandy!

<ProjectTypeGuids>{9E5D3E2D-E4E2-418e-8D80-2F0DA9A94F9A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

Reading further in on this thread, it looks like basically someone was using Visual Studio 2008 beta and didn't realise that it would cause an issue with people using the SOE Visual Studio 2005! The pains of playing with new toys!

Published: 2/19/2008  3:46 PM | 0  Comments | 0  Links to this post