May 21, 2009 at 6:11 PM
Edited May 21, 2009 at 6:16 PM

I had the same idea ( but you beat me to release! Rather than have competing projects, I'd be glad to contribute here instead.

A few things to consider before there are too many contributions:

  1. Particularly if the project is going to include extensions on base types (string, etc), it might be a good idea to segment the extensions into sub-namespaces. SPExLib.General, SPExLib.SharePoint, SPExLib.SharePoint.Linq, SPExLib.MOSS (or Office?), etc.
  2. Some conventions should probably be set as far as naming (I prefer the more fluent String.FormatWith over Formatx, for example) and where extensions should live (SPListCollection.Exists vs SPWeb.ListExists, or both?).
  3. Where is the line drawn for extensions that would not be appropriate for this project? For example, I find my debugging extensions invaluable, but one could easily argue that they don't fit here.
  4. Should there be multiple builds for .NET 3.0/3.5 and WSS/MOSS? A 3.0 build could use LINQBridge for extension method support and LINQ to Objects.



May 22, 2009 at 7:42 AM

Awesome Keith. I would like as many contributions as possible for this.

You have some good points here:

  1. Had it like that at first but changed it for simplicity for the users, only one using statement. The goal is not to have that many system extensions, I just copied in those I frequently use when SharePointing.
  2. Yup, of course if there are many contributors to this project a standard should be used. I will try to limit the number of Coordinators of the project, so there won't be releases that are not checked and approved. But for now let's use this discussion board and the Issue Tracker or why not Twitter to discuss it.
  3. Another interesting point. I was thinking of having a seperate assembly for MOSS extensions (SPExLib.Server?). I don't want to mix in the MOSS references in the base library. And debugging extensions would be awesome to have another project (making the libs as small as possible) called SPExLib.Dev?
  4. Target is 3.5 SP1, having to many builds will only make the project suffer and I find that currently it's only 3.5 SP1 projects that I am doing. Having 3.0 versions of the methods will also require some maintenance. But hey, the source is there so if a 3.0 version is needed it's just to copy and paste and edit.

Thanks again for your ideas and you are so welcome in contributing. Drop a note if you would like to be added to the project..