Welcome to SharePoint hell
Recently I started working on small application build on top of SharePoint 2007. I was brave and excited. Oh boy, but what i have learned!
Lesson 1: VSeWSS 1.3 CTP will give you a lot of pain.
For example, why is this tool still manipulating with content of solution.xml, especially with nodes containing assemblies referenced in project? During 'Deploy' you will get message "Cannot find assembly XYZ", but you know this assembly WAS listed in file. But somehow, VSeWSS removed it and later during deploy process it cannot find it (obviously). Oh boy
Side note: Final VSeWSS this year?
UPDATE 2010-4-11: Just found that problem goes away when references have "Copy local" option set to true.
Lesson 1a: Use WSP Builder instead of VSeWSS plugin.
Lesson 2 SPList, SPWeb
When you try access not existing List item (i.e. SPWeb.Lists['ListDoNotExist']), it will throw an exception. What? Why not returning null instead? I do not like the idea that my code must be covered in try-catch because of this.
It gets more interesting with SPWeb. When you try access non-existing web, it will return null or something totally different.
UPDATE 2010-4-11: TryGetList is added in SharePoint 2010. Returning null instead of throwing exception. Finally!
Lesson 3 Do not look on Sharepoint database design. No, more importantly, DO NOT learn how to design databases from it.
Lesson 4 Not informative error messages.
Messages like "Error occured" are not very useful.
Lesson 5 Inconsistent API.
I do not want give you an impression that SharePoint is bad. Not at all. It can do a lot of things. I hope that soon to be released Sharepoint 2010 will be much better and that some of problems will be solved.
