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
Dec 012005

Searching....

Ever found that Windows XP never finds what you want in your file structure using their standard search contains function in Explorer? ...me too! I found this program called WinGrep which is similar to the GREP function in UNIX. It is very powerful and pretty quick and has been a saviour so far!
Published: 12/1/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 292005

Visual Studio 2003 and SourceSafe6.0 integration

I've been using VSS6.0 at my new workplace for the last month and a bit now and at first was very impressed with the integration with Visual Studio with regards to Open from source control for a project which automatically pulled down the files in the solution (and child projects) and created IIS applications for all the web projects and placed everything in the same place as was originally set up.

I used to work in a Subversion environment where you could check things out manually and had to setup the IIS seperately. I've been using NANT for a while now and could quite happily write a script to pull down everything to get a dev environment setup.

There are problems with integration with VSS6.0 and VS2003 which have been highlighted by other ranting bloggers in the past such as Alan De Smet , Mark Levison and a lot more!

Microsoft have tried to come up with some standards on how to use VSS in a team environment.

My main concerns are with renaming files and it not renaming the files in VSS repository and creating two files. Also not deleting the files from the repository when you delete them from your Project in VS. I find the paradigm of Checking out a file (e.g. a code behind file) and it also checking out the aspx and the resx prevents a front end guy and a C# guy from working on the same thing at the same time. Subversion handles this a lot nicer with merging.

Also, if someone has the project checked out only one person can be adding and deleting files at the same time. I'd like to see how this works on a large project! I'd also like to see how this works offline and then when you try and reconnect!

I'm sure the new Team System works a lot better...but unfornately it is pretty expensive and needs a lot of servers etc. VS2005 doesn't seem to have changed too much either. The move now works and renaming seems a bit tidier.

Anyway... </rant>

Published: 11/29/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 282005

CruiseControl.NET | Nant Task | Nant Process timed out (after 600 seconds)

I'm trying to compile a 'ye old VB6 COM Object in a Nant Task in CruiseControl.NET and for some reason I get this error:

ThoughtWorks.CruiseControl.Core.Tasks.BuilderException: NAnt process timed out (after 600 seconds) at ThoughtWorks.CruiseControl.Core.Tasks.NAntTask.Run(IIntegrationResult result) at ThoughtWorks.CruiseControl.Core.Project.Run(IIntegrationResult result) at ThoughtWorks.CruiseControl.Core.IntegrationRunner.RunBuild(IIntegrationResult result) at ThoughtWorks.CruiseControl.Core.IntegrationRunner.RunIntegration(BuildCondition buildCondition) BaseDirectory: , Targets: , Executable: C:\Program Files\CI\nant-0.85-rc3\bin\nant.exe, BuildFile: default.build]

I've tried adding:

    <tasks>
      <nant>
        <executable>C:\Program Files\CI\nant-0.85-rc3\bin\nant.exe</executable>
        <buildArgs>-D:solution.name=SiteManagerV28 -D:vss.db=\\awimgimp01\vss.net\ -D:vss.password= -D:vss.username=jthake</buildArgs>
        <nologo>false</nologo>
        <buildFile>default.build</buildFile>
        <buildTimeoutSeconds>3200</buildTimeoutSeconds>
      </nant>
    </tasks>

...to try and set it higher and it doesn't like it at all. It permantly returns 600 seconds as the error. The running time for the CruiseControl.NET Project is always about 00:12:22 when I force it.

I've got other VB6 projects compiling and registering as a COM object fine at the same time and although the source code is complex it doesn't take that long to compile of the command line standalone.

Don't you just hate those little red error messages on your Continuous Integration? And I've just installed the CCTray too which now gives me MSN Messenger type pop ups of status of builds too! I can see that being uninstalled or ignored quite quickly!
Published: 11/28/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 282005

.Net CMS's

I've been investigating a few .NET CMS applications and Ant dropped me a line about Kentico . I had already had a look at DotNetNuke which is probably the largest open source community development out there in .Net.

Background
Kentico provides an API to work with and two ASP.NET 1.1 (or 2.0) IIS sites with VS2003 (or VS2005) projects (you can choose either C# or VB.NET). The developer reference documentation and user manual are both excellent and the feedback from the staff there has been very fast.

Upgrading

I did an upgrade from 7.1a to 7.1b on Friday and there was about 10 steps which were very thorough with detail on how to upgrade which was great. You can do a fresh base instance install from a wizard which creates all your IIS apps and the SQL database instance etc.

CMS
The built-in CMS Application allows you to add elements defined in the admin console which are stored in a SQL table when you create new instances of the element. The actual displaying of the elements as individual items or as lists is done by defining 'Transformations' as either XML/XSL or ASCX controls which is very clever. I quite like this idea to get some seperation from the database and the actual engine itself. All the templates are stored in the app in a seperate folder and both app projects can be stored in VSS quite happily and versioned.

For the end user editing can be done inplace or actually using the admin console with a tree based structure which gives the user both options. I also like the way it deals with adding graphics to items...you actually add a new file item to the tree and then select that item to insert. You can also add links to other items from one another by selecting them from the tree aswell.

Extras
There's some nice extras...like a BizForm app which allows you to create questionnaire type forms and then reference this form for inclusion in any item using a token. The results are stored in the SQL database and then can be viewed in the admin console or exported as Excel.
There is also a built-in shopping cart and forums coming in version 8.0.

All in all so far I'm very impressed with the product and we are half way through implementing it with our first solution.

Published: 11/28/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 272005

Enterprise Library Registry Error (installservices.bat)

I was just testing all my build scripts on our build server and hit the IIS app (created using NantContrib - very handy) and got a Registry Security Error on the web site. I found this solution which means modifying the InstallServices.bat so that Visual Studio is not required to be installed for the Enterprise Libraries to log properly. The .bat file can be found in the src directory and when run will install the required dll's etc. without needing to run the Enterprise Library full install etc.
It seems a bit inconvenient that you need to install this, and why it can't just use the dll's in the web application folder.

Published: 11/27/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 272005

Regular Expressions

I bought a book a while ago on Regular Expressions and just haven't got round to sitting down and reading it. I just came across this article which has a great introduction to pattern matching and also recommends using Expresso which is a great bit of software to show matches on sample text. Great for building up patterns without having to recompile code etc.
Published: 11/27/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 242005

Enterprise Library - Configuration Application Block Overhead

After setting this up with a few projects now I do feel that there is some overhead with the Configuration Application Block  ie. having to setup a class to define the configuration information (e.g. EditorFontData in the QuickStart) and then having to use the WriteConfiguration() method to create your first instance of the config setting file mainly because the XML is not something you can type out off the top of your head! This can be a bit of a pain because you then have to write a Manager class to use the configuration information class to populate and pass it into the WriteConfiguration() and then run this passing in the parameters you want.

I can see lots of advantages, e.g. your XML config files are strongly typed and when you are calling them you are calling them as properties so they will break at build time as apposed to at run-time like with grabbing old app settings.

You can't really re-use these settings either for other projects because each project will have different configuration settings. I did notice you can create a 'Custom Transformer Provider' instead of a 'XML Serializer Transformer' which you define a TypeName and also can set Attributes.

I did try and add some attributes but really wasn't sure where these Name Value pairs were being stored and can't find any information on this. The helpful 'Help' button doesn't do anything either. With this you use the standard Configuration.Transformer.XmlSerializerTransformer type which extends ITransformer.

I'm assuming that the DataConfiguration Configuration Application Block uses this method.

It would be great to be able to just create a new Configuration Application Block instance and add a few name value pairs and then be able to get at these with the GetConfiguration() method without having to define another class and call the WriteConfiguration() method. Maybe I just want things too easy ;-)

Maybe if there was some more information somewhere on how to create a configuration class that implemented ITransformer that could replace the built-in XmlSerializerTransformer then you could then edit the settings in the Enterprise Library Configurator directly which would be even better.
Published: 11/24/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 232005

SELECT TOP @var * FROM table

MS SQL 2000 doesn't allow you to have declared variables in the TOP x statement. Found this nice little way around this, you basically use SET ROWCOUNT command:

declare @v1 int
set @v1 = 25
set rowcount @v1
select * from MyTable Order by DateColumn
set rowcount 0

MS SQL 2005 actually allows you to do this directly and I remember being at the product demo and all the 'ohhhs' and 'ahhhs' came out for that one!

Published: 11/23/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 222005

Congratulations to Shane Palmer!

Congratulations to Shano for coming 3rd in his weight at the 4th Karate-Do Goju-Kai World Championships in Rotterdam this month!

Found some cool pictures of him.

Published: 11/22/2005  12:00 AM | 0  Comments | 0  Links to this post

Nov 222005

Troubleshooting Pre-build event in Visual Studio 2003 error

I've got Enterprise Library all wired up now in my Windows Service LDAPContacts Project I've created and also in the UnitTests project. I use a pre-build event found in the 'Project properties | Common Properties | Build Events' section. So when I rebuild my solution it automatically fires off and copies the main configuration file to my Unit Tests project rather than me keeping two copies. It's handy to do this because I point to all my config files by full path e.g. for the dataconfiguration.config to save having multiple copies of the same thing flying around. The example command is below:

copy "$(ProjectDir)..\LDAPContacts\ldapcontacts.exe.config" "$(TargetDir)UnitTests.dll.config"

I have also written a Windows Application to allow me to create my config files for each MachineName instance I require. The reason for this is they are encrypted, so I have a Text Box for each setting. I have tried to add a pre-build event to this project but for some reason it just isn't copying the file in there!

copy "$(ProjectDir)..\LDAPContacts\ldapcontacts.exe.config" "$(TargetDir)SettingsConfigManager.exe.config"

This will continue to bug me until I fix it...has anyone got any ideas?

UPDATE

I was jumping down the wrong holes...but I'm glad I found the pre-build feature. I've now renamed the ldapcontacts.exe.config in the LDAPContacts Project to app.config and then linked these in Source Safe in the other two projects directories and added them to my projects in Visual Studio. That way they are kept up to date and when you do a build Visual Studio automatically copies the app.config to the target directory and renames them accordingly anyway.

Published: 11/22/2005  12:00 AM | 0  Comments | 0  Links to this post

 Next >>