I wrapped up my project at a client today, so I’m on to a new one on Monday.
The project consisted mainly of SharePoint, but I did get to do some interesting development aside from that. I worked on a Stock Quote web service that would gather information from pluggable sources. They wanted to pay for a dedicated source, however politics and paperwork were such a barrier I ended up just scraping Google finance. It won’t last forever, but it’s free and avoids the paperwork.
We wrote a few custom SharePoint Web Parts, and I found out first hand what a pain in the ass it is to deploy these things. The deployment project outputs a CAB file. This CAB file needs to be copied onto the server, and you have to use the STSADM tool to install it into the portal server. This means you need Remote Desktop access just to deploy to a server! Our production servers are load-balanced, so this means you have to do it twice. To save us a lot of time and headaches I wrote a Windows service that would monitor a CAB file for changes using a FileSystemWatcher, when it detected a change, it would…
- Extract the CAB to get the dlls
- Copy the dlls to the target bin folder
- Optionally sign the assembly so it can be installed into the GAC
- Run STSADM to remove the old CAB file from the portal server
- Run STSADM to get the new CAB file in the portal server
- Reset IIS
This thing worked like a charm! We could kick off a build, run a batch file the copy the new CAB over, and the thing would install itself. I wish I could release the code here, but I wrote it at a client site, so it belongs to them.
We also managed to contort a SharePoint Portal site into something actually pleasing to look at, and ripped out most of SharePoints crappy markup. Why in the world does SharePoint output so many damn tables?
To be clear, this is all with SharePoint 2003, so I imagine MOSS 2007 is loads better, but I haven’t yet worked on it. Anyway, my next project doesn’t involve SharePoint, so I’m happy.