Aug
14
2008
I have just leant the hard way that you should always check the name you have given your feature before deploying it to a server.
Quite stupidly I created several features, at least two of which I now know conflicted with existing SharePoint features. I used the xcopy method of deploying the feature on my local dev machine with the “/Y? switch to suppress prompts when over-writing existing files, so at the time I didn’t realise what I had done.
It was only when I can to create a new site collection that everything call falling down. I’m currently downloading the SharePoint installation DVD from Microsoft in the hopes that a re-install will fix the problems.
From now on I’m going to be prefixing all features I create with the clients name. This will provide two benefits:
- It will greatly reduce the risk of a feature name conflict.
- It will group all the directories together in explorer for easier deletion.
Aug
11
2008
I’ve seen this time and time again and I’m sure just about every developer out there has seem the same sort of thing:
try {
//many lines of code
catch (Exception ex) {
throw new Exception("Something went wrong dude!");
}
This is probably the single most un-helpful piece of code a developer can write. All you are doing is making you life and future developers lives harder when it comes to debugging. The whole point of the try…catch block is for times when you know an exception may happen and it allows you to gracefully handle it without the whole system crashing to the ground.
So lets have a closer look at what’s wrong with this code:
Continue Reading »
Jul
14
2008
One of the things I’m working on is Event Receivers in SharePoint but I’ve found registering the event receivers to be a bit on the annoying side. Yes you can do it with the feature.xml Receivers section and there is the great El Blanco Event Receivers Manager.
I personally prefer desktop GUI applications and so, based on code by Liron, I’ve created my own desktop Event Receiver Manager. It allows you to select site & list, browse for an assembly so it can give you the full assembly name and a list of classes inside, and a list of receivers you can attach to.
The current version only allows adding new event receivers. Before adding a new receiver it will check to make sure the same receiver doesn’t already exist.
Future plans for it include listing existing receivers to allow users to delete them but as I don’t need to do that myself yet I haven’t implemented it.
Download a copy of EventReceiverManager.
Jul
10
2008
These are a selection of list of links that I acquired on a recent SharePoint developer course with Patrick Tisseghem of U2U. This is part 3 of a 4 part series:
Workflow
Windows Workflow Foundation
http://netfx3.com/content/WFHome.aspx
An introduction and kick-off point for developers wanting to get started with Workflow Foundation.
Custom Workflow Activities
http://codeplex.com/SPDActivities
A set of handy SharePoint workflow activities for people that don’t want to get their hands dirty creating their own custom workflow activities.
Search
Microsoft search services
http://www.microsoft.com/enterprisesearch/products.aspx
Information on the Microsoft Search Server family of products. Aimed more at decision makers than developers.
MOSS Faceted Search AddOn
http://www.codeplex.com/FacetedSearch
A most excellent add-on for the MOSS search system. Allows for quick and easy refining of search criteria.
Silverlight
Silverlight for Sharepoint BluePrints
http://www.codeplex.com/sl4sp
Demonstrations of how Silverlight can be used with SharePoint.
Vertigo – FamilyShow
http://www.vertigo.com/familyshow.aspx
Example of using Silverlight in SharePoint
Deep Zoom Composer
http://blogs.msdn.com/expression/archive/tags/Deep+Zoom+Composer/default.aspx
Nothing to do with SharePoint but a very cool application. Useful if you want to embed a Deep-Zoom show in SharePoint
Jul
09
2008
These are a selection of list of links that I acquired on a recent SharePoint developer course with Patrick Tisseghem of U2U. This is part 2 of a 4 part series:
Utilities
STSAdm extensions
stsadm.blogspot.com
A set of extensions to STSAdm.exe that make just about any SharePoint administration task a piece of cake. The extensions are packaged as a SharePoint solution package (.wsp) and are installed with the STSAdm.exe utility itself.
Sharepoint Project Utility
http://www.andrewconnell.com/blog/articles/ACs-VS-SharePoint-Project-Utility-Tool-Window-for-SharePoint-Developers.aspx
A utility for VS developers for creating the standard directory structures and default files for various SharePoint development scenarios. Requires the installation of the DX Core VS addin.
VS2008 Sharepoint Extensions
http://blogs.msdn.com/sharepoint/archive/2008/06/04/announcing-the-vsewss-version-1-2.aspx
A set of projects and project items for VS2008 for SharePoint development. My initial investigation suggests that these may be geared more towards MOSS2007 than WSSv3.
Event Receiver Management – El Blanco
http://chrissyblanco.blogspot.com/2007/08/event-receiver-management.html
Allows management of event handlers to specific lists, libraries, etc.
Application Pool Manager
http://www.harbar.net/articles/APM.aspx
System tray access to IIS Application Pool tasks. Runs on the machine that SharePoint is installed on.
Fiddler – HTTP Debugging
http://www.fiddlertool.com/fiddler/
Useful tool for finding FrontPage rpc calls for uploading and downloading documents.
Expresso Regular Expressions
http://www.ultrapico.com/Expresso.htm
Wonderful utility for developing and debugging .Net regular expressions. Once you’ve created and tested your regular expression, Expresso can generate stub .Net code to get the regular expression into your project.
Caml Query Builder
http://www.u2u.info/Blogs/karine/Lists/Posts/Post.aspx?ID=28
I’ve not had any experience with CAML yet but I’m sure I’ll be using this tool when the time arises.
Word Content Control Toolkit
http://www.codeplex.com/dbe
Assists with binding xml embedded in a Word 2007 docx file to controls in the Word document. Useful for generating Word documents containing data from SharePoint.
SmartPart for SharePoint
http://www.codeplex.com/smartpart
The SharePoint web part which can host any ASP.NET web user control. Create your web parts without writing code!
Jul
08
2008
These are a selection of list of links that I acquired on a recent SharePoint developer course with Patrick Tisseghem of U2U. This is part 1 of a 4 part series:
Articles & Blogs
SharePoint Developer Site
http://www.microsoft.com/click/SharePointDeveloper/
John Holiday
http://www.johnholliday.net/
Ted Pattison Group Downloads
http://www.tedpattison.net/downloads.aspx
A host of utilities, demos and articles. Also, check out the rest of the site.
Ideas & Solutions, Etc.
http://blogs.msdn.com/johnlee/archive/2007/06/24/tips-tricks-from-moss-2007-development-training.aspx
A host of handy hints & tips.
Content Deployment
http://blogs.msdn.com/ecm/archive/2008/06/11/announcing-end-to-end-content-deployment-walkthrough.aspx
A guide to website content management and deployment using SharePoint.
OpenXML Developer
http://www.openxmldeveloper.org
Not really SharePoint specific but a developer site for working with the office documents OpenXML standard. Useful for developers wanting to tie SharePoint data into Word documents (see Word Content Control Toolkit in Part 2 – Utilities).
Jul
02
2008
Part of my job with Contract5 I have to do development on the Windows Sharepoint Services platform. In order to facilitate this I setup a VMWare virtual machine with Windows 2008 Server, Sharepoint and Visual Studio 2008.
However, I made the bad error of deciding to change the computer name once all of the above was installed. Unfortunately I didn’t realise that the computer name was so deeply rooted in the Sharepoint installation. I also tried reverting the computer name back to it’s original value but this didn’t seem to make much difference, if anything it made the situation worse.
No amount of removing Sharepoint and re-installing it made any difference as the original settings still seemed to be there. Eventually I gave in and completely rebuilt the VM.
I have since discovered that my problems were all due to the four Sharepoint databases that got installed the first time round which are not removed when Sharepoint is un-installed. I have found a this knowledge base article on removing the Sharepoint databases: http://support.microsoft.com/kb/920277
Jun
05
2008
Based on the Level of Enthusiasm blog post from Rick Strahl, I have come up with what I think is my enthusiasm cycle whilst developing software:
Typically, for me, everything is based around a default state of “Rat race”. If nothing changes for a log period of time I’ll enter the “In a rut” state the only thing that really breaks that state for me is going on holiday for some “Down time”. This gets me back into the “Rat race” state.
If, whilst in the “Rat race” state I come up to a deadline, I move into the “Pressure cooker” state. I don’t know if this is peculiar to me but it is normally from this state that i enter the “Inspired & wired” state. When the rush is over it’s back to the “Rat race”.
This is a very generalised cycle and things may not always work like that. I may be in a rut and then come up against a deadline, or whilst having some down time I’ll have a flash of inspiration and come back to work raring to get coding.
May
20
2008
Microsoft has been trying to make itself F/OSS friendly recently. From agreeing not to sue open source projects to working to provide a bridge between it’s proprietary source management system (TFS) and the much loved open source alternative SubVersion. Microsoft seems to be trying its best but still appears to be keeping open source at arms length.
The question is: is Microsoft ready to get into bed with open source itself. Enter Zend. Zend is an Israeli company that has grown up around the open source scripting engine PHP. Previously Microsoft announced that it would be working with Zend to provide better support for PHP under Windows Server.
In the last day or so it has become apparent that Zend is laying some of it’s staff. Erick Schonfeld has speculated that this may be to make Zend more attractive to a prospective purchaser. With Microsoft on the verge of finally to a deal to buy (some if not all) Yahoo, it may Zend may also look attractive if Microsoft is to continue supporting the applications that Yahoo has running on PHP.
There is also the long awaited dynamic language support for .Net. Maybe PHP could be leveraged to bring more hobbyist developers over to the .Net platform. Obviously there is the question of getting the .Net framework ported over to alternative operating systems, however Silverlight has demonstrated that they might not be adverse to that idea.
Of course, Oracle has also previously shown an interest in PHP and it would sit nicely alongside MySQL, which that previously purchased. And then there is IBM, who also seem to be embracing open source as their extensive use, distribution and support of Java show.
Feb
08
2008
Whilst reading an article I was curious about the number of commas and full-stops that the author used – when you become an editor of a newsletter you start to think about things like this. After hunting around the various utilities on my system I discovered that I didn’t have anything that could easily do this. So, I did what any self-respecting programmer would do and threw together a quick app to do it for me.
I have made both the source code and pre-compiled binary available for download under a BSD license (share, remix, no endorsement). It is written in C# and requires the .Net 2.0 framework, if you want to compile the source you will probably require MS Visual Studio (Express should be ok), although it may work with SharpDevelop or Mono.
It is a console application (sorry, no pretty GUI this time) that reads the contents of input.txt (in the same directory as the app), it then counts the occurrences of each character and outputs the results to the console. Simple!
If you make any improvements to the code please leave a comment and/or email the changes to me: gringod [at] gmail [dot] com.