There were many reasons to miss the MOSS Camp 2007 in Chicago that the MS DPE team hosted. It conflicted with SharePoint Connections (which I didn’t attend) and TechED Europe (which I also didn’t attend). The reason I didn’t make it was that I was supporting a Women’s Ministry candle light dinner at my church. I committed to that before knowing about the MOSS Camp event. It was held on 11/9/2007.
Larry Clarkin posted a report about how it went. There were some “grievances” aired. I want to respond to a few of them because I think that they could look at the problem from a better angle or they’re the result of some relatively simple errors. In all honestly several others I don’t understand (Filtering views is not clear, having all fields available on contacts, etc.). If someone wants to explain them to me perhaps I can dispel a few of them too.
1) Column level security on lists – Another perspective on this is helpful. How many people use column level security in their database? (Does the word “none” come to mind?) The real core issue here, the thing that’s absolutely missing is relationships between lists. Two relationship types -- one-to-one and one-to-many relationships – would be a great help. With a one-to-one relationship you can suddenly just put fields that you want to control access to in a separate table. So I’m not saying that we don’t have issues here – we do, but the real problem – the one that the product team can solve and get more scenarios – is relationships. By the way, as a workaround, it’s possible to set a field not to display on the display form and it’s possible to change the forms to your own forms so people don’t see those fields if they don’t need to.
2) Impersonation testing – I can only assume people are having problems with the SPSecurity.RunwithElevatedPrivileges() call. This is pretty common. Most of the time it’s someone trying to use SPContext.Current.Site (or SPContext.Current.Web). These already contain the authentication information for the current user – you have to create your own instances inside the RunWithElevatedPrivileges call.
3) HTML Editor – Yea, ok, the built in editor is weak. However, Telerik offers their commercial RadEditor that can be dropped in as a replacement. Or you can get the commercial version or the free lite version off the version selector page. Admittedly Telerik’s site is impossible to navigate. However, with those links you should be able to get everything you need.
4) Lotus Notes Integration – This is one of those items that is on the line for me not understanding their point. From my perspective, SharePoint should be used to replace Lotus Notes except where rich offline support is needed. Notes can be searched and you can embed direct links to Notes documents if the client has Notes installed. What else do you want/need?
5) Relative links are broke(n) – Yea, they are. Server relative links work. Absolute links back to the SharePoint server are converted to server relative links and thus work across different access paths (think internally (server) vs. externally (server.mycompany.com)) Fully relative links don’t work, and here’s why: You don’t know where the content will be displayed. If I display it on the home page vs. on the listing page the path is different. Thus the relative paths wouldn’t work. So yes, the system totally strips them and you can’t prevent it from doing this. That being said, server relative links can be used as a workaround if you plan correctly.
6) WYSYWIG on Web Parts – Another perspective on this is helpful. There isn’t a WYSYWIG for server controls either and people don’t complain about that – they user controls. Web Parts are essentially sophisticated server controls. So my response is use user controls wrapped in a web part. There are public samples of how to do this all over the place. The most famous is undoubtedly SmartPart. Admittedly there are issues there. However, I have a configuration management supported process that works well for this – I just haven’t had time to convert it into a book yet. (If someone wants to engage me to show them how to do it I can.)
Two quick things I agree with:
1) Service Unavailable Message – We need better control of error messages. The 404 error is another example of this.
2) XHTML Compliance –Some of this is fixable with new master pages and new page layouts – however, there’s some that can’t be fixed. The ListViewWebPart and ListFormWebPart are tops on my hit list for this. In addition to standards compliance issues, they hardcode attributes rather than using CSS. (Check the output of a display form, you’ll find hardcoded cell widths.)
Feel free to send me mail on this if you don’t agree – or you need more details.